AU2024201207B2 - Context initialization in entropy coding - Google Patents
Context initialization in entropy codingInfo
- Publication number
- AU2024201207B2 AU2024201207B2 AU2024201207A AU2024201207A AU2024201207B2 AU 2024201207 B2 AU2024201207 B2 AU 2024201207B2 AU 2024201207 A AU2024201207 A AU 2024201207A AU 2024201207 A AU2024201207 A AU 2024201207A AU 2024201207 B2 AU2024201207 B2 AU 2024201207B2
- Authority
- AU
- Australia
- Prior art keywords
- bin
- probability
- entropy
- thethe
- contexts
- 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.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
20600755_1 (GHMatters) P95766.AU.6 A decoder for decoding a video from a data stream into which syntax elements are coded using binarizations of the syntax elements, comprises an entropy decoder configured to derive a number of bins of the binarizations from the data stream using binary entropy decoding by selecting a context among different contexts and updating probability states associated with the different contexts, dependent on previously decoded portions of the data stream, a desymbolizer configured to debinarize the binarizations of the syntax elements to obtain integer values of the syntax elements, and a reconstructor configured to reconstruct the video based on the integer values of the syntax elements using a quantization parameter. The entropy decoder is configured to distinguish between 126 probability states and to initialize the probability states associated with the different contexts according to a linear equation of the quantization parameter. The entropy decoder is also configured to, for each of the different contexts, independently derive a slope of the linear equation from the four most significant bits of an 8 bit initialization value and an offset of the linear equation from the four least significant bits of the 8 bit initialization value.
Description
ContextInitialization Context Initialization in in Entropy EntropyCoding Coding
Field of the Invention 20600755_1 (GHMatters) P95766.AU.6
Field of the Invention
Thepresent The present invention invention is is concerned withananentropy concerned with entropycoding codingconcept concept forcoding for coding video video data. data.
Related applications Related applications 2024201207
This application This applicationisisa adivisional divisionalapplication applicationof of Australian Australian patent patent application application number number
2022291506,which 2022291506, which in turn in turn is aisdivisional a divisional application application of Australian of Australian patent patent application application
number2021201291, number 2021201291, whichwhich in isturn in turn is a divisional a divisional application application of Australian of Australian patent patent application number application number2019203279, 2019203279, which which in turn in turn is a is a divisional divisional application application of Australian of Australian
patent application patent application number number 2017210534, 2017210534, which which in turninisturn is a divisional a divisional application application of of Australian patent Australian patent application applicationnumber 2015249167,which number 2015249167, whichin inturn turn is is a divisional a divisional application of application of Australian Australianpatent patentapplication applicationnumber number 2012268951. 2012268951. The disclosures The disclosures of of these applications are incorporated herein by reference. these applications are incorporated herein by reference.
Background Background
Manyvideo Many video codecs codecs areare known known in art. in the the art. Generally, Generally, these these codecs codecs reduce reduce the amount the amount of of data necessary data necessaryininorder ordertotorepresent representthethevideo videocontent, content,i.e. i.e.they theycompress compress thethe data. data. In In
entropy coding, entropy coding,itit is is essential essentialto tocode code the the symbols using aa probability symbols using probability estimation estimationwhich which correspondstotothetheactual corresponds actual symbol symbol statistics statistics as closely as closely as possible. as possible. The probability The probability
estimation associates estimation associates aa probability probability value value with with each possible value each possible value the the symbols symbolstotoencode encode mayassume. may assume.InIncase caseofofbinary binaryentropy entropy coding, coding, forfor example, example, thethe symbols symbols are are of aof a binary binary
nature and nature merelytwo and merely twosuch suchpossible possiblevalues valuesexist. exist. In In case case of of video coding, the video coding, the symbols to symbols to
be encoded be encodedbelong belong to to differentsyntax different syntaxelements elements which which fulfill fulfill differenttasks different tasksininorder ordertoto describe the describe the video content: there video content: there are are motion vector differences, motion vector differences, coding modes,transform coding modes, transform coefficient levels representing a prediction residual and so forth. First of all, all of these coefficient levels representing a prediction residual and SO forth. First of all, all of these
syntax elements syntax elementshave havea different a differentdomain domain of possible of possible values values and even and even those those which which are are defined on defined onthe the same samedomain domain of possible of possible values, values, most most likely likely showshow a different a different frequency frequency
histogramover histogram overthis thisdomain domain of possible of possible values. values. Accordingly, Accordingly, the symbols/bins the symbols/bins of the of the symbol symbol strings/bin strings/bin strings strings of the of the symbolization/binarization symbolization/binarization of these of theseelements syntax syntaxalso elements also showdifferent show different statisticsconcerning statistics concerning the probability the probability distribution distribution over theover thealphabet. symbol symbol alphabet. Accordingly,context-adaptive Accordingly, context-adaptive entropy entropy coding coding is first is used: used: different first different contextscontexts are are providedwith provided witheach each context context being being associated associated with with a different a different probability probability estimation. estimation.
Accordingly, it is feasible to, for example, assign bins of different syntax elements with Accordingly, it is feasible to, for example, assign bins of different syntax elements with
different contexts. different contexts. Even Evenspatial spatialinterrelationships interrelationshipsbetween between bins/symbols bins/symbols of syntax of syntax
20600755_1(GHMatters) 20600755_1 (GHMatters)P95766.AU.6 P95766.AU.6
elementsconcerning elements concerningneighboring neighboring portions portions of of an an image image of the of the video video may may be exploited be exploited in in order to order to select select among among thethevarious variouscontexts contextsprovided. provided.By By thisthis measure, measure, it possible it is is possible to to
classify the classify thebins/symbols bins/symbolsintointo groups, groups, the symbol the symbol statistics statistics of whichofchanges whichlikewise changesforlikewise for different video content. Beyond this, however, the probability estimations associated with different video content. Beyond this, however, the probability estimations associated with
thesecontexts these contextsarearecontinuously continuously adapted adapted to the to the actual actual symbol symbol statistics statistics during encoding. during encoding.
It directly results from the above description that it is important to carefully design the It directly results from the above description that it is important to carefully design the 2024201207
contexts and contexts andtoto initialize initialize the the probability probability estimations estimations of the contexts of the contexts appropriately. appropriately. For For example,ifif the example, the number numberofofcontexts contextswould would be be too too high, high, thethe adaptation adaptation of the of the probability probability
estimations would estimations wouldfail faildue duetotothethefrequency frequency of symbols of symbols within within the individual the individual context context
being too being too low. low.OnOn thethe other other hand, hand, if the if the number number of contexts of contexts is low, is too too the low,symbols the symbols collected within collected withinthe theindividual individual contexts contexts have, have, in fact, in fact, different different statistics statistics and and the the probabilityestimation probability estimation willwill failfail to closely to closely approximate approximate thesymbol the actual actualstatistics symbol ofstatistics all of all these symbols within the respective context. As far as the initialization of the probability these symbols within the respective context. As far as the initialization of the probability
estimation isis concerned, estimation concerned,samesame may may bebe gained gained from from performing performingsome sometraining training phase phase within which within whichaarepresentative representative blend blendofofvideo videocontents contentsare aresubject subject to to encoding encodingininorder ordertoto studythe study thesample sample statistics statistics of the of the syntax syntax elements. elements. At thisAt this occasion occasion it has it has been been exploited, exploited,
for example, for in H.264 example, in H.264that thatthe thesymbol symbolstatistics statistics of of the the symbols symbolsofofthe thedifferent different contexts contexts of the of the H.264 partially show H.264 partially showa adependence dependenceon on the the quantization quantization parameter parameter QP, which QP, which the the encoder chooses encoder chooses for for the the individual individual slices slices of of the video. Accordingly, the video. Accordingly, in H.264 aa in H.264 quantization parameter quantization parameterdependent dependent probabilityestimation probability estimation initializationhas initialization hasbeen beenused. used.InIn particular, the particular, the H.264 codecdefined H.264 codec defineda apair pairofofvalues values forfor each each context, context, namely namely a linear a linear
quantization parameter quantization parameterdependent dependent factor, factor, i.e.slope, i.e. slope,asaswell well as as an an offset offset value, value, i.e.i.e. a a quantization parameter quantization parameterindependent independent initializationvalue. initialization value.Both Bothvalues values were were defined defined in 8in 8 bits. bits.
Thereis There is an an ongoing ongoingwish wishtotofurther furtherincrease increasethe thecoding codingefficiency efficiencyofofvideo videocoding, coding, andand
accordingly, it accordingly, it would be favorable would be favorable if if the the context-adaptive context-adaptive binary binary entropy coding outlined entropy coding outlined abovecould above couldbebefurther furtherimproved improved in terms in terms of efficiency, of efficiency, i.e.ininterms i.e. terms of of a compromise a compromise
betweencompression between compression rate rate on on thethe oneone hand hand and and implementation implementation complexity complexity on the on the other other hand. hand.
Summary Summary of of thetheInvention Invention
Theinvention The inventionprovides providesa adecoder decoder forfor decoding decoding a video a video from from a stream a data data stream into into which which syntax elements syntax elementsare are coded codedusing usingbinarizations binarizations of of the the syntax elements, comprising: syntax elements, comprising:
2
an entropy an entropydecoder decoderconfigured configured to to derive derive a number a number of of of bins bins theofbinarizations the binarizations from the from the data data stream stream using using binary binary entropy entropy decoding decoding by by selecting selecting aa context context among among different contexts and updating probability states associated with the different contexts, different contexts and updating probability states associated with the different contexts,
dependentononpreviously dependent previouslydecoded decoded portions portions of of thedata the datastream; stream;
a desymbolizer a configuredtotodebinarize desymbolizer configured debinarizethethebinarizations binarizationsofofthe thesyntax syntaxelements elements to obtain integer values of the syntax elements; and to obtain integer values of the syntax elements; and 2024201207
a reconstructor a reconstructor configured to reconstruct configured to reconstruct the the video based on video based onthe the integer integer values values of of the syntax the syntax elements using aa quantization elements using quantization parameter, parameter,
whereinthe wherein theentropy entropy decoder decoder is configured is configured to initialize to initialize the probability the probability states states
associated with the different contexts at beginnings of slices of the video by reading the associated with the different contexts at beginnings of slices of the video by reading the
quantization parameter quantization parameterforfora current a current slice slice from from the data the data stream stream and initializing and initializing the the probabilitystates probability statesassociated associated withwith the different the different contexts contexts according according to equation to a linear a linear ofequation of the quantization the quantizationparameter parameter for current for the the current slice,slice,
wherein the entropy decoder is configured to, for each of the different contexts for wherein the entropy decoder is configured to, for each of the different contexts for
eachofofthe each theslices, slices,derive derivea slope a slope andand an offset an offset of linear of the the linear equation equation fromandfirst from first and second second
halvesofofa arespective halves respective initialization initialization value, value, and and
whereinthe wherein theslope slopeandand thethe offset offset for for the the linear linear equations equations of quantization of the the quantization parameterdo parameter donot notvary varybetween betweenslices. slices.
Theinvention The inventionalso also provides providesan anencoder encoderfor forencoding encodinga avideo videointo intoa adata datastream streambybycoding coding syntax elements syntax elementsinto into thethe datadata stream stream using using binarizations binarizations of the of the elements, syntax syntax elements, comprising: comprising:
a constructor a constructor configured configuredtotorepresent representthe thevideo videobyby settinginteger setting integervalues values of of thethe
syntax elements syntax elementsin in dependence dependenceonona aquantization quantizationparameter; parameter;
a symbolizer a symbolizerconfigured configured to to binarize binarize the the integer integer values values of syntax of syntax elements elements to to obtain binarizations of the syntax elements; and obtain binarizations of the syntax elements; and
an entropy an entropyencoder encoderconfigured configured to to encode encode a number a number of of of bins bins theofbinarizations the binarizations into the into the data datastream stream using using binary binary entropy entropy encoding byselecting encoding by selecting aa context context among different among different
contexts and updating probability states associated with the different contexts, dependent contexts and updating probability states associated with the different contexts, dependent
on previously on previously encoded encodedportions portionsofofthe the data data stream, stream, 3
whereinthe wherein theentropy entropy encoder encoder is configured is configured to initialize to initialize the probability the probability states states
associated with associated with the the different different contexts contexts at at beginnings of slices beginnings of slices of of the thevideo video in independence dependence
on the on the quantization quantizationparameter parameterforfora acurrent currentslice sliceandand initializingthe initializing theprobability probabilitystates states associated with associated with the the different different contexts according accordingtoto aa linear linear equation equation of of the the quantization quantization parameter for the current slice, parameter for the current slice,
wherein the entropy encoder is configured to, for each of the different contexts for wherein the entropy encoder is configured to, for each of the different contexts for 2024201207
eachofofthe each theslices, slices,derive derivea slope a slope andand an offset an offset of linear of the the linear equation equation fromandfirst from first and second second
halvesofofa arespective halves respective initialization initialization value, value, and and
wherein the slope and the offset for the linear equations of the quantization wherein the slope and the offset for the linear equations of the quantization
parameterdo parameter donot notvary varybetween betweenslices. slices.
Theinvention The inventionalso also provides providesaa method methodfor fordecoding decodinga a video video from from a data a data stream stream intowhich into which syntax elements syntax elementsare are coded codedusing usingbinarizations binarizations of of the the syntax elements, comprising: syntax elements, comprising:
deriving aa number deriving numberofofbins binsofofthe thebinarizations binarizationsfrom fromthe thedata datastream streamusing usingbinary binary entropy decoding entropy decoding bybyselecting selecting a acontext contextamong among differentcontexts different contextsandand updating updating probability states associated with the different contexts, dependent on previously decoded probability states associated with the different contexts, dependent on previously decoded
portionsofofthe portions thedata datastream; stream;
debinarizing the debinarizing the binarizations binarizations of of the the syntax syntax elements elementstotoobtain obtaininteger integervalues valuesofof the syntax the syntax elements; elements;
reconstructing the reconstructing the video basedon video based onthe theinteger integer values values of of the the syntax syntax elements elementsusing using a quantization a quantization parameter; and parameter; and
initializing the initializing probability states the probability states associated associatedwith with the the different different contexts contexts at at beginnings beginnings of of slices slices of of thethe video video by reading by reading the quantization the quantization parameterparameter for slice for a current a current slice from the data stream and initializing the probability states associated with the different from the data stream and initializing the probability states associated with the different
contextsaccording contexts according to atolinear a linear equation equation of theofquantization the quantization parameter parameter for theslice, for the current current slice, by, for by, for each eachofofthethedifferent different contexts contexts for each for each of theofslices, the slices, deriving deriving a slopeaand slope and an offset an offset
of the of the linear linear equation equationfrom from first first andand second second halveshalves of a respective of a respective initialization initialization value, value,
wherein the slope and the offset for the linear equations of the quantization wherein the slope and the offset for the linear equations of the quantization
parameterdo parameter donot notvary varybetween betweenslices. slices.
4
Theinvention The inventionalso alsoprovides providesa amethod methodforfor encoding encoding a video a video into into a data a data stream stream by by coding coding
syntax elements syntax elementsinto into thethe datadata stream stream using using binarizations binarizations of the of the elements, syntax syntax elements, comprising: comprising:
representing the representing thevideo videoby by setting setting integer integer values values ofsyntax of the the syntax elements elements in in dependenceonona aquantization dependence quantizationparameter; parameter; 2024201207
binarizing the binarizing the integer integer values values ofofsyntax syntaxelements elements to to obtain obtain binarizations binarizations of the of the
syntax elements; syntax elements;
encodingaanumber encoding numberof of bins bins of of thethe binarizationsinto binarizations intothe thedata datastream streamusing using binary binary
entropy encoding entropy encoding bybyselecting selecting a acontext contextamong among differentcontexts different contextsandand updating updating probability states associated with the different contexts, dependent on previously encoded probability states associated with the different contexts, dependent on previously encoded
portions of the data stream; and portions of the data stream; and
initializing the initializing probability states the probability states associated associatedwith with the the different different contexts contexts at at beginningsofofslices beginnings slicesofofthe thevideo videoin independence dependence on quantization on the the quantization parameter parameter for a for a
current slice and initializing the probability states associated with the different contexts current slice and initializing the probability states associated with the different contexts
accordingtotoa alinear according linearequation equationofofthethequantization quantization parameter parameter for for the the current current slice, slice, by by
deriving,for deriving, foreach eachof of thethe different different contexts contexts for of for each each the of the slices, slices, a slopea and slope and anofoffset of an offset
the linear the linear equation equationfromfrom first first andand second second halves halves of a respective of a respective initialization initialization value, value,
wherein the slope and the offset for the linear equations of the quantization wherein the slope and the offset for the linear equations of the quantization
parameterdo parameter donot notvary varybetween betweenslices. slices.
Theinvention The inventionalso also provides providesaa decoder decoderfor for decoding decodinga avideo videofrom froma adata datastream stream comprisingsyntax comprising syntaxelements elementsencoded encoded therein,the therein, thedecoder decoder comprising: comprising:
an entropy an entropy decoder decoderconfigured configuredtotodecode decodethe thesyntax syntaxelements elements based based on on oneone or or more more of of a a plurality of plurality ofcontexts contextsused used in inbinary binaryentropy entropydecoding, decoding, wherein wherein the the entropy entropy decoder is decoder is
configured to, in decoding data of a slice of the video, initialize at least one of the configured to, in decoding data of a slice of the video, initialize at least one of the
plurality of plurality of contexts contextsbased based at least at least on on a quantization a quantization parameter parameter associated associated with the with slice,the slice,
andaaslope and slopevalue value of of an an initialization initialization equation, equation, wherein wherein the value the slope slopeisvalue is derived derived based based on aa four-bit on four-bitpart partofofanan8-bit 8-bitinitialization initializationvalue value associated associated with with the atthe at least least one context; one context;
and and
a reconstructor a reconstructor configured configuredtotoreconstruct reconstructthethevideo video based based on entropy-decoded on entropy-decoded syntax syntax
elementsand elements andthe the quantization quantization parameter. parameter. 5
Theinvention The inventionalso also provides providesan anencoder encoderfor forencoding encodinga avideo videointo intoaadata data stream, stream, comprising: comprising:
an entropy an entropy encoder encoderconfigured configuredtotoencode encodesyntax syntaxelements elements relatedtotothe related thevideo videointo intothe the data stream data based one stream based oneor or more moreofofaaplurality plurality of of contexts contexts used used in in binary binary entropy entropy encoding, encoding,
wherein the entropy encoder is configured to initialize, in encoding data of a slice of the wherein the entropy encoder is configured to initialize, in encoding data of a slice of the
video, at least one of the plurality of contexts based at least on a quantization parameter video, at least one of the plurality of contexts based at least on a quantization parameter 2024201207
associatedwith associated with thethe slice, slice, andand a slope a slope value value of anof an initialization initialization equation, equation, whereinwherein the the slopevalue slope valueisisderived derived based based on aon a four-bit four-bit part part of anof an 8-bit 8-bit initialization initialization value value associated associated
withthe with theatatleast leastone onecontext. context.
Theinvention The inventionalso also provides providesaa method methodfor fordecoding decodinga avideo videofrom from a datastream a data stream comprisingsyntax comprising syntaxelements elementsencoded encoded therein,the therein, themethod method comprising: comprising:
decodingthe decoding the syntax syntaxelements elementsbased basedononone oneorormore more of of a pluralityofofcontexts a plurality contextsused usedinin binary entropy binary entropy decoding, decoding,wherein whereinthe thedecoding decoding includes,inindecoding includes, decodingdata dataofofa aslice slice of of the video, initializing at least one of the plurality of contexts based at least on a the video, initializing at least one of the plurality of contexts based at least on a
quantization parameter associated with the slice, and a slope value of an initialization quantization parameter associated with the slice, and a slope value of an initialization
equation,wherein equation, wherein the the slope slope valuevalue is derived is derived based based on on a four-bit a four-bit part part of an of an 8-bit 8-bit
initialization value initialization valueassociated associated with with the the at least at least one one context; context; and and
reconstructing the reconstructing the video video based on entropy-decoded based on entropy-decodedsyntax syntaxelements elements andand thethe quantization quantization
parameter. parameter.
Theinvention The inventionalso also provides providesaa non-transitory non-transitory computer-readable computer-readablemedium mediumfor for storing storing data data
associated with associated a video, with a video, comprising: comprising:
a data a data stream streamstored storedininthe thenon-transitory non-transitorycomputer-readable computer-readable medium, medium, the data the data stream stream
comprisingencoded comprising encoded syntax syntax elements elements associated associated with with the the wherein video, video, wherein the the syntax syntax elementsare elements areentropy entropyencoded encoded based based on one on one or more or more of a plurality of a plurality of contexts of contexts used in used in
binary entropy encoding, wherein, in encoding data of a slice of the video, at least one of binary entropy encoding, wherein, in encoding data of a slice of the video, at least one of the plurality the plurality of of contexts contextsis isinitialized initializedbased basedat at least least on aon a quantization quantization parameter parameter
associated with associated with thetheslice, slice, and andaaslope slopevalue valueofofan an initializationequation, initialization equation,wherein whereinthethe
slopevalue slope valueis isderived derived based based on a on a four-bit four-bit part ofpart of aninitialization an 8-bit 8-bit initialization value associated value associated
withthe with theatatleast leastone onecontext. context.
The invention The invention also also provides provides aa decoder decoder for for decoding decodinga avideo videofrom from a data a data stream stream comprisingsyntax comprising syntaxelements elementsencoded encoded therein,the therein, thedecoder decoder comprising: comprising:
6
an entropy an entropy decoder decoderconfigured configuredtotodecode decode thethe syntax syntax elements elements based based on one on one or more or more of a of a plurality of plurality of contexts used in contexts used in binary binaryentropy entropydecoding, decoding, wherein wherein the the entropy entropy decoder decoder is is configured configured to to initialize initialize at at least least one one of plurality of the the plurality of contexts of contexts based onbased on a quantization a quantization
parameter, a slope value and an offset value, wherein the slope value is derived from four parameter, a slope value and an offset value, wherein the slope value is derived from four
mostsignificant most significant bits bits ofof anan8-bit 8-bitinitialization initialization value value associated associatedwith withthetheat atleast leastoneone context and context andthe theoffset offsetvalue value is is derived derived fromfrom four four leastleast significant significant bits bits of the of 8-bit the 8-bit initialization value; and initialization value; and 2024201207
a reconstructor a reconstructor configured configuredtotoreconstruct reconstructthethevideo video based based on entropy-decoded on entropy-decoded syntax syntax
elementsand elements andthe the quantization quantization parameter. parameter.
Theinvention The inventionalso also provides providesencoder encoderfor forencoding encodinga avideo videointo intoaadata data stream, stream, comprising: comprising: an entropy an entropyencoder encoderconfigured configured to to encode encode syntax syntax elements elements related related to video to the the video into into the the data stream data basedon stream based onaaquantization quantizationparameter parameterand andoneone or or more more of of a pluralityofofcontexts a plurality contexts used in used in binary binary entropy entropyencoding, encoding,wherein whereinthethe entropy entropy encoder encoder is configured is configured to initialize to initialize
at least one of the plurality of contexts based on the quantization parameter, a slope value at least one of the plurality of contexts based on the quantization parameter, a slope value
andananoffset and offsetvalue, value, wherein wherein the slope the slope value value is derived is derived from from four most four most significant significant bits of bits of an 8-bit initialization value associated with the at least one context and the offset value is an 8-bit initialization value associated with the at least one context and the offset value is
derivedfrom derived from four four least least significant significant bitsbits of the of the 8-bit 8-bit initialization initialization value. value.
Theinvention The inventionalso also provides providesaa method methodfor fordecoding decodinga avideo videofrom from a datastream a data stream comprisingsyntax comprising syntaxelements elementsencoded encoded therein,the therein, themethod method comprising: comprising:
decodingthe decoding thesyntax syntaxelements elementsbased basedononone one oror more more of of a pluralityofofcontexts a plurality contextsused usedinin binary entropy decoding, wherein at least one of the plurality of contexts is initialized binary entropy decoding, wherein at least one of the plurality of contexts is initialized
basedonona aquantization based quantization parameter, parameter, a slope a slope value value and and anvalue, an offset offsetwherein value,the wherein slope the slope
valueisis derived value derivedfrom from four four mostmost significant significant bits bits of an of an 8-bit 8-bit initialization initialization value associated value associated
with the at least one context and the offset value is derived from four least significant bits with the at least one context and the offset value is derived from four least significant bits
of the of the 8-bit 8-bit initialization initializationvalue; value;and and reconstructing the reconstructing the video basedon video based onentropy-decoded entropy-decoded syntax syntax elements elements and and the the quantization quantization
parameter. parameter.
Theinvention The inventionalso also provides providesaa non-transitory non-transitory computer-readable computer-readablestorage storagemedium mediumfor for
storing data associated with a video, comprising: storing data associated with a video, comprising:
a data a data stream streamstored storedininthe thenon-transitory non-transitorycomputer-readable computer-readable medium, medium, the data the data stream stream
comprisingencoded comprising encoded syntax syntax elements elements associated associated with with the the wherein video, video, wherein the the syntax syntax elementsare elements areentropy entropyencoded encoded based based on one on one or more or more of a plurality of a plurality of contexts of contexts used in used in
7
binary entropy binary entropyencoding, encoding,wherein wherein at at leastoneone least of of thethe pluralityofofcontexts plurality contexts is is initialized initialized
based on based onaaquantization quantizationparameter, parameter,a aslope slopevalue valueandand an an offsetvalue, offset value,wherein wherein thethe slope slope
value is derived from four most significant bits of an 8-bit initialization value associated value is derived from four most significant bits of an 8-bit initialization value associated
with the at least one context and the offset value is derived from four least significant bits with the at least one context and the offset value is derived from four least significant bits
of the of the 8-bit 8-bit initialization initializationvalue. value.
Theinvention The inventionalso alsoprovides provides a decoder a decoder for for decoding decoding a video a video from afrom data a data into stream stream into 2024201207
whichsyntax which syntaxelements elementsare arecoded codedusing usingbinarizations binarizationsofofthe thesyntax syntaxelements, elements,comprising comprising
an entropy an entropy decoder decoderconfigured configured to to derivea number derive a number of bins of bins of the of the binarizations binarizations from from the the data stream data streamusing usingbinary binary entropy entropy decoding decoding by selecting by selecting a context a context among among different different contextsand contexts and updating updating probability probability statesstates associated associated with with the the different different contexts,contexts, dependent dependent
on previously on previously decoded decodedportions portionsofofthe the data data stream; stream;
a desymbolizer a desymbolizerconfigured configured to debinarize to debinarize the the binarizations binarizations of syntax of the the syntax elements elements to to obtain integer values of the syntax elements; obtain integer values of the syntax elements;
a reconstructor a reconstructor configured configuredtotoreconstruct reconstructthe thevideo videobased based on on the the integer integer values values of of the the syntax elements syntax elementsusing usinga aquantization quantizationparameter, parameter,bybyusing using predictive predictive decoding decoding andand using using
the quantization the quantization parameter parameterininorder order to to setset thethe accuracy accuracy for for representing representing a prediction a prediction
residual; residual;
whereinthe wherein theentropy entropydecoder decoderisisconfigured configured to to distinguishbetween distinguish between 126126 probability probability states states
and to initialize the probability states associated with the different contexts according to a and to initialize the probability states associated with the different contexts according to a
linear equation linear equationofofthethe quantization quantization parameter, parameter,
wherein the entropy decoder is configured to, for each of the different contexts, derive a wherein the entropy decoder is configured to, for each of the different contexts, derive a
slope and slope andananoffset offsetofofthethelinear linearequation equation from from first first and and second second fourparts four bit bit parts of a of a respective 8 bit initialization value respective 8 bit initialization value
In an embodiment, In theentropy embodiment, the entropydecoder decoder is is configured configured to to derive derive thenumber the number of bins of bins of of thethe
binarizations from binarizations fromthe thedata datastream stream using using binary binary arithmetic arithmetic decoding decoding or binary or binary PIPE PIPE decoding. decoding.
In an embodiment, In theentropy embodiment, the entropydecoder decoder is is configured configured to to perform perform thethe context context selectionforfor selection
a bin a bin currently currently to tobe bederived deriveddepending depending on one or on one or more moreofof a bin a position of bin position of the the bin bin currently currently to to be be derived derived within within the the binarization binarization to to which which
the bin currently to be derived belongs, the bin currently to be derived belongs,
8
a syntax a elementtype syntax element typeofofaasyntax syntaxelement elementthetheinteger integervalue valueofofwhich whichis is obtained obtained
by debinarizing the binarization to which the bin currently to be derived belongs, and by debinarizing the binarization to which the bin currently to be derived belongs, and
one or one or more morebins binspreviously previouslyderived derivedfrom from thedata the datastream, stream,ororthe theinteger integervalue valueofof a syntax a syntax element previouslydebinarized. element previously debinarized.
In an In an embodiment, embodiment,thethe entropy entropy decoder decoder is configured is configured to perform to perform the probability the probability state state update by, for a bin currently to be derived, transitioning from a current probability state update by, for a bin currently to be derived, transitioning from a current probability state 2024201207
associated with associated withthe thecontext context selected selected for for the the bin currently bin currently derived derived within within the 126 the 126
probability states, probability states,totoa anew new probability probability state stateamong the 126 among the probability states 126 probability states depending depending
onthe on thebin bincurrently currently to to be be derived. derived.
In an In an embodiment, embodiment, thethe entropy entropy decoder decoder is configured is configured to binary to binary arithmetic arithmetic decode decode a binabin currently to currently to bebederived derived by quantizing by quantizing a current a current probability probability intervalinterval width value width value
representing aa current representing currentprobability probabilityinterval intervaltotoobtain obtaina probability a probability intervalindex interval index and and
performingananinterval performing intervalsubdivision subdivisionbybyindexing indexinga table a tableentry entryamong among tables tables entries entries using using
the probability the probability interval interval index indexand anda probability a probability state state index index depending depending on a current on a current
probability state associated with the context selected for the bin currently to be derived, probability state associated with the context selected for the bin currently to be derived,
to obtain a sub-division of the current probability interval into two partial intervals. to obtain a sub-division of the current probability interval into two partial intervals.
In an embodiment, the entropy decoder is configured to use an 8 bit representation for the In an embodiment, the entropy decoder is configured to use an 8 bit representation for the
currentprobability current probability interval interval width width value value and and to to grab-out grab-out 2 orsignificant 2 or 3 most 3 most significant bits of the bits of the
8 bit representation in quantizing the current probability interval width value. 8 bit representation in quantizing the current probability interval width value.
In an In an embodiment, embodiment,thethe entropy entropy decoder decoder is configured is configured to select to select amongamong the twothe two partial partial
intervals based on an offset state value from an interior of the current probability interval, intervals based on an offset state value from an interior of the current probability interval,
updatethe update theprobability probability interval interval width width value value and an and an state offset offsetvalue, stateand value, inferand inferof a value of a value
the bin the bin currently currentlytotobe be derived, derived, using using the selected the selected partialpartial interval interval and perform and perform a a renormalization of the updated probability interval width value and the offset state value renormalization of the updated probability interval width value and the offset state value
includinga acontinuation including continuation of reading of reading bits bits from from thestream. the data data stream.
In an In an embodiment, embodiment, thethe entropy entropy decoder decoder is configured is configured to initialize to initialize thethe probability probability states states
associated with the different contexts at beginnings of slices of the video. associated with the different contexts at beginnings of slices of the video.
In an In an embodiment, embodiment,the the entropy entropy decoder decoder is configured is configured to individually to individually determine determine the the quantization parameter for each slice of the video. quantization parameter for each slice of the video.
In an In an embodiment, embodiment, thethe entropy entropy decoder decoder is configured is configured to initialize to initialize thethe probability probability states states
associated with the different contexts at beginnings of slices of the video by reading the associated with the different contexts at beginnings of slices of the video by reading the
9
quantization parameter quantization parameterforfora current a current slice slice from from the the datadata stream, stream, and initializing and initializing the the probabilitystates probability statesassociated associated withwith the different the different contexts contexts according according to equation to a linear a linear of equation of the quantization the quantizationparameter parameterfor for the the current current slice,slice, wherein wherein the entropy the entropy decoder isdecoder is configured to, for each of the slices, derive the slope and the offset of the linear equation configured to, for each of the slices, derive the slope and the offset of the linear equation
fromthe from thefirst firstand andsecond second fourfour bit bit parts parts of the of the same same respective respective 8 bit initialization 8 bit initialization value. value.
In an In embodiment, an embodiment, thethe reconstructor reconstructor is is configured configured to,to, ininreconstructing reconstructingthethevideo video based based 2024201207
on the on the integer integer values valuesofofthethesyntax syntax elements, elements, dequantize dequantize transform transform coefficient coefficient levels levels
comprisedbybythethesyntax comprised syntax elements elements using using the quantization the quantization parameter, parameter, performing performing a re- a re- transformation onto transformation ontothethedequantized dequantized transform transform coefficient coefficient levelslevels SO as so as to aobtain a to obtain
prediction residual, prediction residual, perform performa aspatial spatialand/or and/or temporal temporal prediction prediction SO asso to as to obtain obtain a a prediction signal, prediction signal, and and combine theprediction combine the predictionresidual residualand andthe theprediction predictionsignal signalSOsoasastoto reconstructthe reconstruct thevideo. video.
In an In embodiment,thetheentropy an embodiment, entropy decoder decoder is configured is configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation from the first and second four bit contexts, the slope and the offset of the linear equation from the first and second four bit
parts of parts of the therespective respective8 8bitbitinitialization initializationvalue value independently independently fromother. from each each other.
In an In embodiment,thetheentropy an embodiment, entropy decoder decoder is is configured configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation from the first and second four bit contexts, the slope and the offset of the linear equation from the first and second four bit
parts ofofthe parts therespective respective 8 bit 8 bit initialization initialization valuevalue by look-up by table table look-up or using or using an arithmetic an arithmetic
operation. operation.
In an In embodiment,thetheentropy an embodiment, entropy decoder decoder is is configured configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation by multiplying and offsetting the contexts, the slope and the offset of the linear equation by multiplying and offsetting the
first four first four bit bit part part by by aa first first pair pair of of parameters, and parameters, and thethe offset offset by multiplying by multiplying and offsetting and offsetting
the second the secondfour four bitbit part part by by a second a second pair pair of parameters. of parameters.
Theinvention The inventionalso also provides providesan anencoder encoderfor forencoding encodinga avideo videointo intoa adata datastream streambybycoding coding syntax elements syntax elementsinto into thethe datadata stream stream using using binarizations binarizations of the of the elements, syntax syntax elements, comprising comprising
a constructor a constructor configured configuredtotorepresent representthe thevideo videobyby settinginteger setting integervalues valuesof of thethe syntax syntax
elementsinin dependence elements dependenceon on a quantization a quantization parameter, parameter, by using by using predictive predictive encoding encoding and and using the quantization parameter in order to set the accuracy for representing a prediction using the quantization parameter in order to set the accuracy for representing a prediction
residual, residual,
10
a symbolizer a symbolizerconfigured configured to to binarize binarize the the integer integer values values of syntax of syntax elements elements to to obtain obtain binarizations of the syntax elements; binarizations of the syntax elements;
an entropy an entropy encoder encoderconfigured configured to to encode encode a number a number of bins of bins of binarizations of the the binarizations intointo the the data stream data streamusing usingbinary binary entropy entropy encoding encoding by selecting by selecting a context a context among different among different
contextsand contexts and updating updating probability probability statesstates associated associated with with the the different different contexts,contexts, dependent dependent
on previously on previously encoded encodedportions portionsofofthe the data data stream; stream; 2024201207
whereinthe wherein theentropy entropyencoder encoderisisconfigured configured to to distinguishbetween distinguish between 126126 probability probability states states
and to initialize the probability states associated with the different contexts according to a and to initialize the probability states associated with the different contexts according to a
linear equation of the quantization parameter, linear equation of the quantization parameter,
wherein the entropy encoder is configured to, for each of the different contexts, derive a wherein the entropy encoder is configured to, for each of the different contexts, derive a
slope and slope andananoffset offsetofofthethelinear linearequation equation from from first first and and second second fourparts four bit bit parts of a of a respective 8 bit initialization value. respective 8 bit initialization value.
In an In an embodiment, theentropy embodiment, the entropyencoder encoder is is configured configured to to encode encode thethe number number of bins of bins of the of the
binarizations into binarizations into the the data datastream streamusing using binary binary arithmetic arithmetic encoding encoding or binary or binary PIPE PIPE encoding. encoding.
In an In an embodiment, theentropy embodiment, the entropyencoder encoder is is configured configured to to perform perform thethe context context selectionforfor selection
a bin a bin currently currently to tobe beencoded encoded depending onone depending on oneorormore moreofof a bin a bin position position of of the the bin bin currently currentlyto tobe beencoded encoded within the binarization within the binarization to to which which
the bin the bin currently currently to tobe beencoded encoded belongs, belongs,
a syntax element type the integer value of which is binarized to the binarization to a syntax element type the integer value of which is binarized to the binarization to
whichthe which the bin bin currently currently to to be be encoded belongs, and encoded belongs, and oneorormore one more bins bins previously previously encoded encoded into into the datathe data stream, stream, or thevalue or the integer integer of avalue of a
syntax element syntax elementthe the binarization binarization of of which has previously which has previouslybeen beenencoded. encoded.
In an In an embodiment, embodiment,thethe entropy entropy encoder encoder is configured is configured to perform to perform the probability the probability state state update by, update by, for for aa bin bin currently currently to to be be encoded, encoded,transition transition from froma acurrent currentprobability probabilitystate state associated with associated withthe thecontext context selected selected for for the the bin currently bin currently encoded encoded within within the 126 the 126
probability states, probability states,totoa anew new probability probability state stateamong the 126 among the probability states 126 probability states depending depending
onthe on thebin bincurrently currently to to be be encoded. encoded.
In an In an embodiment, embodiment, thethe entropy entropy encoder encoder is configured is configured to binary to binary arithmetic arithmetic encode encode a bina bin currently to currently to bebeencoded encoded by quantizing by quantizing a current a current probability probability intervalinterval width value width value
representing aa current representing currentprobability probabilityinterval intervaltotoobtain obtaina probability a probability intervalindex interval index and and
11
performing a interval subdivision by indexing a table entry among tables entries using the performing a interval subdivision by indexing a table entry among tables entries using the
probability interval probability interval index index and anda aprobability probabilitystate stateindex index which which depends depends on a current on a current
probabilitystate probability stateassociated associated with with the context the context selected selected for thefor binthe bin currently currently to be encoded, to be encoded,
to obtain a sub-division of the current probability interval into two partial intervals. to obtain a sub-division of the current probability interval into two partial intervals.
In an In an embodiment, embodiment, the entropy the entropy encoder encoder is configured is configured to use an to userepresentation 8 bit an 8 bit representation for the for the currentprobability current probability interval interval width width value value and and to to grab-out grab-out 2 orsignificant 2 or 3 most 3 most significant bits of the bits of the
8 bit representation in quantizing the current probability interval width value. 8 bit representation in quantizing the current probability interval width value. 2024201207
In an In an embodiment, embodiment,thethe entropy entropy encoder encoder is configured is configured to select to select amongamong the twothe two partial partial
intervals based intervals onthe based on theinteger integervalue value of of thethe bin bin currently currently to encoded, to be be encoded, updateupdate the the probability interval width value and a probability interval offset using the selected partial probability interval width value and a probability interval offset using the selected partial
interval and interval performa arenormalization and perform renormalization of of thethe probability probability intervalwidth interval width value value and and the the
probabilityinterval probability intervaloffset offsetincluding including a continuation a continuation of writing of writing bits tobits the to thestream. data data stream.
In an In an embodiment, embodiment, thethe entropy entropy encoder encoder is configured is configured to initialize to initialize thethe probability probability states states
associated with the different contexts at beginnings of slices of the video. associated with the different contexts at beginnings of slices of the video.
In an In an embodiment, embodiment, thethe entropy entropy encoder encoder is configured is configured to initialize to initialize thethe probability probability states states
associated with the different contexts at beginnings of slices of the video by individually associated with the different contexts at beginnings of slices of the video by individually
setting the setting the quantization quantization parameter parameter for afor a current current slice slice from from the thestream, data data stream, and initializing and initializing
the probability the probabilitystates statesassociated associated withwith the different the different contexts contexts according according to aequation to a linear linear equation of the of the quantization quantizationparameter parameterforfor thethe current current slice, slice, wherein wherein the entropy the entropy encoder encoder is is configured configured to,to, foreach for each of the of the slices, slices, derive derive the slope the slope and and the the offset offset of the equation of the linear linear equation fromthe from thefirst firstand andsecond second fourfour bit bit parts parts of the of the same same respective respective 8 bit initialization 8 bit initialization value. value.
In an In an embodiment, embodiment, thethe constructor constructor is is configured configured to,to, in in settingthe setting theinteger integervalues valuesofofthethe syntax elements, perform a spatial and/or temporal prediction so as to obtain a prediction syntax elements, perform a spatial and/or temporal prediction SO as to obtain a prediction
signal, derive signal, derive aa prediction prediction residual residual from the prediction from the prediction signal signal and and the the video, video, perform performa a transformation onto transformation ontothe theprediction predictionresidual residualSOsoasastotoobtain obtaintransform transformcoefficient coefficientlevels, levels, and quantize and quantizethe thetransform transformcoefficient coefficientlevels levelsusing usingthe thequantization quantizationparameter parameter SO so as as to to obtain quantized obtain transformcoefficient quantized transform coefficient levels levels comprised by the comprised by the syntax syntax elements. elements. In an In embodiment,thetheentropy an embodiment, entropy encoder encoder is is configured configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation from the first and second four bit contexts, the slope and the offset of the linear equation from the first and second four bit
parts of parts of the therespective respective8 8bitbitinitialization initializationvalue value independently independently fromother. from each each other.
In an In embodiment,thetheentropy an embodiment, entropy encoder encoder is is configured configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation from the first and second four bit contexts, the slope and the offset of the linear equation from the first and second four bit
12
parts of the respective 8 bit initialization value by table look-up or using an arithmetic parts of the respective 8 bit initialization value by table look-up or using an arithmetic
operation. operation.
In an In embodiment,thetheentropy an embodiment, entropy encoder encoder is is configured configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope of the linear equation by multiplying and offsetting the first four bit contexts, the slope of the linear equation by multiplying and offsetting the first four bit
part by part byaafirst first pair pairofofparameters, parameters,and and the offset the offset by multiplying by multiplying and offsetting and offsetting the secondthe second
four bit part by a second pair of parameters. four bit part by a second pair of parameters. 2024201207
Theinvention The inventionalso also provides providesaa method methodfor fordecoding decodinga a video video from from a data a data stream stream intowhich into which syntax elements syntax elementsare are coded codedusing usingbinarizations binarizationsof of the the syntax elements, comprising syntax elements, comprising
deriving aa number deriving number ofofbins binsofofthe the binarizations binarizations from fromthe the data data stream streamusing usingbinary binaryentropy entropy decodingbybyselecting decoding selectingaacontext contextamong among differentcontexts different contextsandand updating updating probability probability states states
associated with associated with the the different different contexts, contexts, dependent onpreviously dependent on previouslydecoded decoded portions portions of of thethe
data stream; data stream;
debinarizing the debinarizing the binarizations binarizationsofofthe thesyntax syntaxelements elements to obtain to obtain integer integer values values of of the the syntax elements; syntax elements;
reconstructing the reconstructing the video videobased basedon on the the integer integer values values of syntax of the the syntax elements elements using ausing a quantization parameter, quantization parameter, by using predictive by using predictive decoding and using decoding and usingthe thequantization quantization parameter in order to set the accuracy for representing a prediction residual; parameter in order to set the accuracy for representing a prediction residual;
whereinthe wherein thederivation derivationofof the the number numberof of binsofofthethebinarizations bins binarizationsdistinguishes distinguishesbetween between 126 probability states 126 probability states and andthe themethod methodforfor comprises comprises initializing initializing thethe probability probability states states
associated with associated with the the different different contexts according toto aa linear contexts according linear equation equation of of the the quantization quantization parameter, and, parameter, and, for for each eachofofthe thedifferent different contexts, contexts, deriving deriving aa slope slope and andananoffset offsetofof the the linear equation linear fromfirst equation from first and andsecond secondfour fourbitbitparts partsofofa arespective respective8 bit 8 bitinitialization initialization value. value.
Theinvention The inventionalso alsoprovides providesa amethod methodforfor encoding encoding a video a video into into a data a data stream stream by by coding coding
syntax elements syntax elementsinto into thethe datadata stream stream using using binarizations binarizations of the elements, of the syntax syntax elements, comprising comprising
representing the representing the video video by by setting setting integer integer values values of of the the syntax syntax elements in dependence elements in dependence onon
a quantization a quantizationparameter, parameter,by by using using predictive predictive encoding encoding and the and using using the quantization quantization
parameter in order to set the accuracy for representing a prediction residual, parameter in order to set the accuracy for representing a prediction residual,
13
binarizing the binarizing the integer integer values values ofofsyntax syntaxelements elements to to obtain obtain binarizations binarizations of the of the syntax syntax
elements; elements;
encodingaanumber encoding numberof of binsofofthethebinarizations bins binarizationsinto intothe thedata data stream streamusing usingbinary binaryentropy entropy encodingbybyselecting encoding selectingaacontext contextamong among differentcontexts different contextsandand updating updating probability probability states states
associated with associated with the the different different contexts, contexts, dependent onpreviously dependent on previouslyencoded encoded portions portions of of thethe
data stream; data stream; 2024201207
whereinthe wherein therepresentation representation of of the the video video distinguishes distinguishes between between126 126 probabilitystates probability statesand and the method the methodfurther further comprises comprises initializing initializing the the probability probability states states associated associated with with the the different contexts different contexts according to aa linear according to linear equation of the equation of the quantization quantization parameter, parameter,and, and,for for each of the different contexts, deriving a slope and an offset of the linear equation from each of the different contexts, deriving a slope and an offset of the linear equation from
first and first secondfour and second four bitbit parts parts of of a respective a respective 8 bit 8 bit initialization initialization value. value.
Theinvention The inventionalso also provides providesaa digital digital storage storage medium storinga acomputer medium storing computer program program having having
a program a programcode codeforforperforming, performing, when when running running on a on a computer, computer, one orone orofboth both the of the above above methods. methods.
Theinvention The inventionalso also provides providesaa digital digital storage storage medium havingstored medium having storedthereon thereona a
a data a data stream streaminto intowhich whichsyntax syntax elements elements are are coded coded usingusing binarizations binarizations ofsyntax of the the syntax elements, and elements, and from fromwhich whicha avideo videoisisdecodable decodablebyby
deriving aa number deriving number ofofbins binsofofthe thebinarizations binarizations from fromthe thedata data stream streamusing usingbinary binaryentropy entropy decodingbybyselecting decoding selectingaacontext contextamong among differentcontexts different contextsandand updating updating probability probability states states
associated with associated with the the different different contexts, contexts, dependent onpreviously dependent on previouslydecoded decoded portions portions of of thethe
data stream; data stream;
debinarizing the debinarizing the binarizations binarizations ofofthe thesyntax syntaxelements elements to obtain to obtain integer integer values values of of the the syntax elements; syntax elements; reconstructing the reconstructing the video videobased basedon on thethe integer integer values values of syntax of the the syntax elements elements using ausing a quantization parameter quantization parameter by by using using predictive predictive decoding decoding and andusing usingthethe quantization quantization parameter parameter in in order order to to setset thethe accuracy accuracy for representing for representing a prediction a prediction residual, residual,
whereinthe wherein thederivation derivationofof the the number numberof of binsofofthethebinarizations bins binarizationsdistinguishes distinguishesbetween between 126 probability 126 probability states states andand the the probability probability states states associated associated with with the the different different contexts contexts are are initialized according initialized according toto aa linear linearequation equation of of the thequantization quantization parameter, parameter, and, and, for for each each of of
14
the different contexts, deriving a slope and an offset of the linear equation from first and the different contexts, deriving a slope and an offset of the linear equation from first and
secondfour second four bitparts bit parts of of a respective a respective 8 bit 8 bit initialization initialization value. value.
Brief Description Brief of the Description of the Drawings Drawings
Preferred embodiments Preferred embodiments of of the the present present application application are are described described in following in the the following with with respect to respect to the the Figures Figures among which among which 2024201207
Fig. 11 shows Fig. shows a block a block diagram diagram of encoder of an an encoder according according to antoembodiment; an embodiment;
Figs. 2a-2c Figs. 2a-2c schematically show schematically showdifferent differentsub-divisions sub-divisions of of a sample a sample array array such such as a as a picture into blocks; picture into blocks;
Fig. 33 shows Fig. shows a block a block diagram diagram of aofdecoder a decoder according according toembodiment; to an an embodiment;
Fig. 44 shows Fig. showsa ablock blockdiagram diagramofofananencoder encoderaccording accordingtotoananembodiment embodimentin in more more detail; detail;
Fig. 55 shows Fig. shows a block a block diagram diagram of aofdecoder a decoder according according toembodiment to an an embodiment in detail; in more more detail;
Fig. 6 Fig. 6 schematically illustrates a transform of a block from spatial domain into spectral schematically illustrates a transform of a block from spatial domain into spectral
domain, the resulting transform block and its retransformation; domain, the resulting transform block and its retransformation;
Fig. 77 shows Fig. shows a block a block diagram diagram of encoder of an an encoder according according to antoembodiment; an embodiment;
Fig. 88 shows Fig. shows a block a block diagram diagram of decoder of an an decoder suitable suitable for for decoding decoding bitstream bitstream generated generated
by the by the encoder of Fig. encoder of Fig. 8, 8, according according to to an an embodiment; embodiment;
Fig. 9 Fig. 9 showsaaschematic shows schematicdiagram diagram illustratingaa data illustrating data packet packet with with multiplexed multiplexedpartial partial bitstreams according bitstreams to an according to an embodiment; embodiment;
Fig. 10: shows a schematic diagram illustrating a data packet with an alternative Fig. 10: shows a schematic diagram illustrating a data packet with an alternative
segmentationusing segmentation usingfixed-size fixed-size segments segmentsaccording accordingtotoa afurther furtherembodiment; embodiment;
Fig. 11 Fig. shows 11 shows a a decoder decoder supporting supporting mode mode switching switching according according to antoembodiment; an embodiment;
Fig. 12 Fig. showsa adecoder 12 shows decoder supporting supporting mode mode switching switching according according to a to a further further embodiment; embodiment;
Fig. 13 Fig. showsananencoder 13 shows encoder fittingtotodecoder fitting decoderofofFig. Fig. 11 11according accordingtotoan anembodiment; embodiment;
15
Fig. 14 Fig. showsananencoder 14 shows encoder fittingtotodecoder fitting decoderofofFig. Fig. 12 12according accordingtotoan anembodiment; embodiment;
Fig. 15 Fig. showsmapping 15 shows mapping of pStateCtx of pStateCtx and and fullCtxState/256; fullCtxState/256;
Fig. 16 Fig. showsa adecoder 16 shows decoder according according to to an an embodiment embodiment of the of the present present invention; invention; and and
Fig. 17 Fig. showsananencoder 17 shows encoder according according to to an an embodiment embodiment of present of the the present invention. invention. 2024201207
Description of Description of the the preferred preferred embodiments embodiments
It is It is noted noted that that during the description during the description of of the the figures, figures, elements elementsoccurring occurringininseveral severalofof these Figures these Figures are are indicated indicated with with the the same samereference referencesign signinineach eachofofthese theseFigures Figures andand a a repeateddescription repeated description of these of these elements elements as far as as far the as the functionality functionality is concerned is concerned is avoided is avoided
in order in orderto toavoid avoid unnecessary unnecessary repetitions. repetitions. Nevertheless, Nevertheless, the functionalities the functionalities and and descriptions provided descriptions provided with withrespect respecttoto one onefigure figureshall shall also also apply apply to to other other Figures Figures unless unless the opposite the oppositeisisexplicitly explicitlyindicated. indicated.
In the In the following, firstly, embodiments following, firstly, ofaageneral embodiments of generalvideo videocoding codingconcept concept areare described, described,
with respect to Fig. 1 to 17. Fig. 1 to 6 relate to the part of the video codec operating on with respect to Fig. 1 to 17. Fig. 1 to 6 relate to the part of the video codec operating on
the syntax the level. The syntax level. following figures The following figures 88 to to 17 17 relate relate to to embodiments embodiments forforthe thepart partofofthe the code relating code relating to to the the conversion of the conversion of the syntax elementstream syntax element streamtotothe thedata datastream streamand andvice vice versa. Then, versa. specific aspects and Then, specific embodiments and embodiments of of thethe present present invention invention areare described described in in formof form of possible possible implementations implementationsofofthe thegeneral generalconcept conceptoutlined outlinedwith withregard regardtotoFig. Fig.11toto 17. 17.
Fig. 11 shows Fig. showsananexample exampleforfor an an encoder encoder 10which 10 in in which aspects aspects of present of the the present application application
may be may be implemented. implemented.
Theencoder The encoderencodes encodesanan arrayofofinformation array information samples samples 20 20 intointo a data a data stream. stream. TheThe array array of of information samples information samplesmay may represent represent information information samples samples corresponding corresponding to,example, to, for for example, brightness values, brightness values, color color values, values, luma lumavalues, values,chroma chroma values values or the or the like. like. However, However, the the information samples information samplesmaymay also also be depth be depth values values in case in case of theof sample the sample array array 20 abeing a 20 being
depthmap depth map generated generated by,example, by, for for example, a time a time of lightof lightorsensor sensor or the like. the like.
Theencoder The encoder1010isisa ablock-based block-based encoder. encoder. That That is,is, encoder encoder 10 10 encodes encodes the the sample sample arrayarray
20 into 20 into the the data data stream stream 30 in units 30 in units of of blocks blocks 40. 40. The The encoding in units encoding in units of of blocks 40 does blocks 40 does not necessarily not necessarily mean meanthat thatencoder encoder1010encodes encodes these these blocks blocks 40 totally 40 totally independent independent fromfrom
each other. each other. Rather, encoder10 Rather, encoder 10may may use use reconstructions reconstructions of of previously previously encoded encoded blocks blocks in in 16
order to order to extrapolate extrapolate or or intra-predict intra-predictremaining remaining blocks blocks and mayuse and may usethe thegranularity granularityofofthe the blocks for blocks for setting setting coding coding parameters, parameters,i.e. i.e. for for setting setting the the way eachsample way each sample array array region region
corresponding to a respective block is coded. corresponding to a respective block is coded.
Further, encoder Further, 10 is encoder 10 is aa transform coder. That transform coder. That is, is, encoder encoder 10 encodesblocks 10 encodes blocks4040bybyusing using a transform in order to transfer the information samples within each block 40 from spatial a transform in order to transfer the information samples within each block 40 from spatial
domaininto domain intospectral spectral domain. domain.A Atwo-dimensional two-dimensional transform transform suchsuch as aas a DCT DCT of FFTofor FFT theor the 2024201207
like may like maybebeused. used. Preferably, Preferably, the blocks the blocks 40 are40 of are of quadratic quadratic shape orshape or rectangular rectangular shape. shape. Thesub-division The sub-divisionof of the the sample samplearray array2020into into blocks blocks4040shown shown in in Fig.1 1merely Fig. merely serves serves forfor illustration purposes. illustration purposes. Fig. 1 1 shows showsthethesample sample array array 20being 20 as as being sub-divided sub-divided into a into a
regular two-dimensional regular arrangement two-dimensional arrangement of of quadratic quadratic or or rectangularblocks rectangular blocks 4040 which which abut abut to to each other each other inin a anon-overlapping non-overlappingmanner. manner.The The size size of blocks of the the blocks 40 may40be may be predetermined.That predetermined. Thatis, is, encoder encoder1010may maynotnot transferananinformation transfer information on on thethe block block size size of of
blocks 40 blocks 40 within withinthe the data data stream stream3030totothe thedecoding decodingside. side.For Forexample, example, thedecoder the decoder maymay
expect the expect the predetermined blocksize. predetermined block size.
However,several However, severalalternatives alternativesare arepossible. possible.For Forexample, example, thethe blocks blocks may may overlap overlap each each other. The other. overlappingmay, The overlapping may,however, however, be be restrictedtotosuch restricted suchananextent extentthat thateach eachblock blockhas has a portion a portion not not overlapped overlappedby by anyany neighboring neighboring block, block, or that or such such each that sample each sample of the of the blocks is blocks is overlapped overlapped by,by, atatthe themaximum, maximum, oneone block block among amongthe theneighboring neighboringblocks blocks arrangedininjuxtaposition arranged juxtaposition to the to the current current blockblock along aalong a predetermined predetermined direction. direction. The latter The latter
wouldmean would mean thatthe that theleft left and and right right hand neighborblocks hand neighbor blocksmay mayoverlap overlap thecurrent the currentblock blockSOso as to as to fully fully cover the current cover the current block block but but they theymay maynotnot overlay overlay each each other, other, and and the the samesame
applies for the neighbors in vertical and diagonal direction. applies for the neighbors in vertical and diagonal direction.
As aafurther As furtheralternative, alternative, the the sub-division sub-divisionofofsample sample array array 20 20 intointo blocks blocks 40 bemay be 40 may
adapted to adapted to the the content contentofofthe thesample samplearray array2020by by thethe encoder encoder 10 with 10 with the sub-division the sub-division
information on information onthe thesub-division sub-divisionused usedbeing beingtransferred transferredtotothe thedecoder decoderside sidevia viabitstream bitstream 30. 30.
Figures 2a Figures 2a toto 2c 2cshow show differentexamples different examples for for a sub-division a sub-division of aofsample a sample arrayarray 20 20 into into blocks 40. blocks 40. Fig. Fig. 2a showsa aquadtree-based 2a shows quadtree-basedsub-division sub-divisionofofa asample samplearrayarray 20 20 into into blocks blocks
40ofofdifferent 40 differentsizes, sizes,with with representative representative blocks blocks being being indicated indicated at 40a, at 40a, 40b, 40c 40b, 40c and 40d and 40d
with increasing with increasing size. size. In In accordance with the accordance with the sub-division sub-division ofof Fig. Fig. 2a, 2a, the the sample array 20 sample array 20 is firstly is firstly divided intoaaregular divided into regulartwo-dimensional two-dimensional arrangement arrangement of tree40dblocks of tree blocks which,40d in which, in
turn, have turn, have individual individual sub-division sub-division information associated therewith information associated therewith according accordingtotowhich whicha a certain tree certain tree block block 40d 40d maymaybebe furthersub-divided further sub-divided according according to atoquadtree a quadtree structure structure or or
not. The not. Thetree treeblock blockto to thethe left left of of block block 40d 40d is exemplarily is exemplarily sub-divided sub-divided intoblocks into smaller smaller blocks in accordance in accordance with with aa quadtree quadtree structure. structure. The encoder 1010may The encoder may perform perform one one two-two-
17
dimensionaltransform dimensional transformfor foreach eachofofthetheblocks blocksshown shown withwith solid solid and and dashed dashed lineslines in Fig. in Fig.
2a. In 2a. In other other words, words, encoder 10 may encoder 10 maytransform transformthe thearray array 2020ininunits units ofof the the block block subdivision. subdivision.
Instead of Instead of aa quadtree-based quadtree-basedsub-division sub-divisiona more a more general general multi multi tree-based tree-based sub-division sub-division
maybebeused may used andand the the number number of child of child nodes nodes per hierarchy per hierarchy level level may maybetween differ differ between different hierarchy levels. different hierarchy levels. 2024201207
Fig. 2b Fig. 2b shows anotherexample shows another example fora asub-division. for sub-division.InInaccordance accordancewith withFig. Fig.2b, 2b,the thesample sample array 20 array 20 is is firstly firstly divided divided into into macroblocks 40barranged macroblocks 40b arrangedin ina aregular regulartwo-dimensional two-dimensional arrangementinina anon-overlapping arrangement non-overlapping mutually mutually abutting abutting manner manner wherein wherein each macroblock each macroblock
40b has 40b hasassociated associatedtherewith therewithsub-division sub-divisioninformation informationaccording according to to which which a macroblock a macroblock
is not is not sub-divided, or, if sub-divided, or, if subdivided, subdivided, sub-divided in aa regular sub-divided in regular two-dimensional two-dimensional manner manner
into equally-sized into equally-sized sub-blocks sub-blocksSOsoasasto toachieve achieve different different sub-division sub-division granularities granularities forfor
different macroblocks. The result is a sub-division of the sample array 20 in differently- different macroblocks. The result is a sub-division of the sample array 20 in differently-
sized blocks sized blocks4040 with with representatives representatives of theofdifferent the different sizes indicated sizes being being indicated at 40a, at 40a, 40b and 40b and
40a’. As 40a'. in Fig. As in Fig. 2a, 2a, the the encoder encoder 10 performsaa two-dimensional 10 performs two-dimensional transform transform on on each each of the of the
blocks shown in Fig. 2b with the solid and dashed lines. Fig. 2c will be discussed later. blocks shown in Fig. 2b with the solid and dashed lines. Fig. 2c will be discussed later.
Fig. 3 shows Fig. shows aa decoder decoder5050being beingable abletotodecode decode thedata the datastream stream 30 30 generated generated by by encoder encoder
10 to reconstruct 10 to reconstruct aa reconstructed reconstructed version version 60 of the 60 of the sample array 20. sample array 20. Decoder Decoder5050extracts extracts from the from thedata datastream stream3030thethetransform transform coefficient coefficient block block forfor each each of the of the blocks blocks 40 40 and and reconstructs the reconstructs the reconstructed reconstructed version 60 by version 60 by performing performingananinverse inversetransform transform on on each each of of
the transform the transformcoefficient coefficient blocks. blocks.
Encoder1010and Encoder anddecoder decoder 50 50 maymay be configured be configured to perform to perform entropy entropy encoding/decoding encoding/decoding in in ordertotoinsert order insertthetheinformation information ontransform on the the transform coefficient coefficient blocks blocks into, into, and and extract thisextract this
information from information fromthe thedata datastream, stream,respectively. respectively. Details Details in in this this regard regard in in accordance with accordance with
different embodiments different aredescribed embodiments are describedlater. later. It It should be noted should be notedthat that the the data data stream 30 not stream 30 not necessarily comprises necessarily informationonontransform comprises information transformcoefficient coefficientblocks blocksfor forall all the the blocks blocks 40 40 of of
the sample the array 20. sample array 20. Rather, Rather, as as sub-set sub-set of of blocks blocks 40 40may maybebe coded coded into into thethe bitstream bitstream 30 30
in another in another way. For example, way. For example, encoder encoder1010maymay decide decide to refrainfrom to refrain from insertinga inserting a transform coefficient transform coefficient block blockforfora acertain certainblock block of blocks of blocks 40 inserting 40 with with inserting into theinto the bitstream 30 bitstream 30 alternative alternative coding coding parameters instead which parameters instead whichenable enablethe thedecoder decoder5050totopredict predict or otherwise or otherwisefill fill the the respective respective block blockininthethereconstructed reconstructed version version 60. 60. For example, For example,
encoder10 encoder 10may may perform perform a texture a texture analysis analysis in in ordertotolocate order locateblocks blockswithin withinsample sample array array
20 which 20 whichmay maybe be filledatatthe filled thedecoder decoder sidebyby side decoder decoder by way by way of texture of texture synthesis synthesis and and indicate this within the bitstream accordingly. indicate this within the bitstream accordingly.
18
As discussed As discussedwith withrespect respecttotothe thefollowing followingFigures, Figures,the thetransform transformcoefficient coefficientblocks blocksnot not necessarily represent necessarily represent a aspectral spectraldomain domain representation representation of theoforiginal the original information information
samplesofofa arespective samples respectiveblock block 40 the 40 of of sample the sample array array 20. Rather, 20. Rather, such a such a transform transform
coefficient block coefficient block may representaaspectral may represent spectral domain domainrepresentation representationofofa aprediction predictionresidual residual of the of the respective respectiveblock block40. 40.Fig. Fig.4 4shows shows an an embodiment for such embodiment for such an an encoder. encoder. The The encoderofofFig. encoder Fig.4 4comprises comprises a transform a transform stage stage 100,100, an entropy an entropy coder coder 102, 102, an an inverse inverse
transform stage transform stage104, 104,a apredictor predictor106106 and and a subtractor a subtractor 108well 108 as as as well as an 110. an adder adder 110. 2024201207
Subtractor 108, Subtractor 108, transform transformstage stage100 100and andentropy entropy coder coder 102102 are are serially serially connected connected in the in the
order mentioned order mentionedbetween between an an input input 112112 and and an output an output 114theofencoder 114 of the encoder of 4. of Fig. Fig.The4. The
inverse transform inverse transformstage stage104, 104,adder adder 110110 and and predictor predictor 106connected 106 are are connected in the in the order order
mentioned between mentioned betweenthe theoutput outputofoftransform transformstage stage100 100andand thethe invertinginput inverting inputofof subtractor 108, with the output of predictor 106 also being connected to a further input of subtractor 108, with the output of predictor 106 also being connected to a further input of
adder 110. adder 110.
Thecoder The coderofofFig. Fig.44isis aa predictive predictive transform-based blockcoder. transform-based block coder.That Thatis, is,the the blocks blocksofofaa sample array sample array 20 20entering entering input input 112 112arearepredicted predictedfrom from previously previously encoded and encoded and reconstructed portions reconstructed portions of the same of the samesample sample array array 20 previously 20 or or previously codedcoded and and reconstructed other reconstructed other sample samplearrays arrays which which may may precede precede or succeed or succeed the current the current sample sample array 20 array 20 in in presentation presentation time. time. The Theprediction predictionisis performed performedbyby predictor predictor 106. 106. Subtractor Subtractor
108 subtracts the 108 subtracts the prediction predictionfrom fromsuch such a original a original block block and and the transform the transform stage stage 100 100 performs aa two-dimensional performs two-dimensional transformation transformation ononthe theprediction prediction residuals. residuals. The two- The two- dimensionaltransformation dimensional transformationitself itselforora asubsequent subsequent measure measure inside inside transform transform stagestage 100 100 maylead may leadto toa quantization a quantization of transformation of the the transformation coefficients coefficients withinwithin the transform the transform
coefficient blocks. coefficient blocks. The quantizedtransform The quantized transformcoefficient coefficientblocks blocks areare losslesslycoded losslessly codedby,by,
for example, for entropyencoding example, entropy encodingwithin withinentropy entropy encoder encoder 102102 with with the the resulting resulting data data stream stream
being output being outputatat output output114. 114.The Theinverse inversetransform transform stage stage 104104 reconstructs reconstructs the the quantized quantized
residual and residual adder 110, and adder 110,ininturn, turn,combines combinesthethe reconstructed reconstructed residualwith residual with the the correspondingprediction corresponding predictionininorder ordertotoobtain obtainreconstructed reconstructedinformation informationsamples samples based based on on whichpredictor which predictor106106 may may predict predict the afore-mentioned the afore-mentioned currently currently encoded encoded predictionprediction
blocks. Predictor blocks. Predictor 106 mayuse 106 may usedifferent differentprediction predictionmodes modes such such as as intraprediction intra predictionmodes modes and inter and inter prediction modesininorder prediction modes ordertotopredict predictthe theblocks blocksand andthetheprediction predictionparameters parameters are forwarded are toentropy forwarded to entropyencoder encoder102102 forfor insertioninto insertion intothe thedata datastream. stream.For Foreach each inter- inter-
predicted prediction predicted prediction block, block,respective respectivemotion motion datadata is inserted is inserted intointo the the bitstream bitstream via via
entropy encoder entropy encoder114 114 in in order order to to enable enable the the decoding decoding side side to redo to redo the prediction. the prediction. The The
motiondata motion datafor for aa prediction prediction block block of of aa picture picture may mayinvolve involvea asyntax syntaxportion portionincluding includinga a syntax element syntax elementrepresenting representinga amotion motion vector vector difference difference differentiallycoding differentially codingthethemotion motion vectorfor vector forthe thecurrent current prediction prediction blockblock relative relative to a motion to a motion vector predictor vector predictor derived, for derived, for
19
example,bybyway example, wayofofa aprescribed prescribedmethod method from from the the motion motion vectors vectors of neighboring of neighboring already already
encodedprediction encoded predictionblocks. blocks.
That is, That is, in in accordance withthe accordance with theembodiment embodiment of Fig. of Fig. 4, the 4, the transform transform coefficient coefficient blocks blocks
represent aa spectral represent spectral representation representation of of aa residual residual of of the the sample samplearray arrayrather ratherthan thanactual actual information samples information samplesthereof. thereof.That That is,is,ininaccordance accordance with with the the embodiment embodiment of 4,Fig. of Fig. a 4, a sequenceofofsyntax sequence syntaxelements elementsmaymay enter enter entropy entropy encoder encoder 102being 102 for for being entropy entropy encoded encoded 2024201207
into data into data stream stream114. 114.The The sequence sequence of syntax of syntax elements elements may comprise may comprise motion motion vector vector difference syntax difference elementsfor syntax elements forinter-prediction inter-prediction blocks blocks and andsyntax syntaxelements elementsconcerning concerning a a
significancemapmap significance indicating indicating positions positions of significant of significant transform transform coefficient coefficient levels as levels well asas well as
syntax elements syntax elementsdefining defining thethe significant significant transform transform coefficient coefficient levels levels themselves, themselves, for for transform blocks. transform blocks.
It should It should be be noted that several noted that several alternatives alternativesexist existfor thethe for embodiment embodiment of of Fig. Fig. 44 with with some some
of them of havingbeen them having beendescribed describedwithin withinthetheintroductory introductoryportion portionofofthe thespecification specificationwhich which description is incorporated into the description of Fig. 4 herewith. description is incorporated into the description of Fig. 4 herewith.
Fig. 55 shows Fig. shows aadecoder decoderable abletotodecode decodea adata datastream stream generated generated by by thethe encoder encoder of Fig. of Fig. 4. 4. Thedecoder The decoderofofFig. Fig.55 comprises comprisesananentropy entropydecoder decoder 150, 150, an an inverse inverse transform transform stage stage 152, 152,
an adder an adder 154 154and andaapredictor predictor 156. 156. Entropy Entropydecoder decoder 150, 150, inversetransform inverse transform stage stage 152, 152, andand
adder 154 adder 154are are serially serially connected betweenananinput connected between input158 158andand an an output output 160160 of the of the decoder decoder
of Fig. of Fig. 55 in inthe theorder ordermentioned. mentioned. A further output A further output of of entropy entropy decoder 150is decoder 150 is connected connectedtoto predictor 156 predictor which,inin turn, 156 which, turn, is is connected betweenthe connected between theoutput outputofofadder adder154 154andand a further a further
input thereof. input thereof. The Theentropy entropy decoder decoder 150 150 extracts, extracts, from from the stream the data data stream enteringentering the the decoderofofFig. decoder Fig.5 5atatinput input158, 158, thethe transform transform coefficient coefficient blocks blocks wherein wherein an inverse an inverse
transformisisapplied transform applied to to thethe transform transform coefficient coefficient blocksblocks at152 at stage stage 152 in in order to order obtain to theobtain the
residual signal. residual signal. The The residual residual signal signal is iscombined withaaprediction combined with predictionfrom frompredictor predictor156 156atat adder 154 so as to obtain a reconstructed block of the reconstructed version of the sample adder 154 SO as to obtain a reconstructed block of the reconstructed version of the sample
array at array at output output 160. 160. Based Basedon on thethe reconstructed reconstructed versions, versions, predictor predictor 156 156 generates generates the the
predictions thereby predictions rebuilding the thereby rebuilding the predictions predictions performed bypredictor performed by predictor106 106atatthe theencoder encoder side. In order to obtain the same predictions as those used at the encoder side, predictor side. In order to obtain the same predictions as those used at the encoder side, predictor
156 uses the 156 uses the prediction prediction parameters parameterswhich whichthe theentropy entropydecoder decoder 150150 also also obtains obtains from from the the
data stream data streamatatinput input 158. 158.
It should It be noted should be notedthat thatininthe theabove-described above-described embodiments, embodiments, the spatial the spatial granularity granularity at at whichthe which theprediction prediction and andthe thetransformation transformationofofthe theresidual residualisis performed, performed,dodonot nothave havetoto be equal be equaltotoeach each other. other. This This is shown is shown in 2C. in Fig. Fig.This 2C.figure This shows figure shows a sub-division a sub-division for the for the prediction blocks prediction blocksofofthethe prediction prediction granularity granularity with with solid and solid lines lines theand the residual residual
20
granularity with granularity dashedlines. with dashed lines. As Ascan canbebeseen, seen,the thesubdivisions subdivisionsmaymay be selected be selected by by the the encoderindependent encoder independentfromfrom eacheach other. other. To To be more be more precise, precise, the data the data stream stream syntax syntax may may allow for allow fora adefinition definitionofofthethe residual residual subdivision subdivision independent independent from from the the prediction prediction
subdivision. Alternatively, the residual subdivision may be an extension of the prediction subdivision. Alternatively, the residual subdivision may be an extension of the prediction
subdivisionSOso subdivision that that each each residual residual block block is either is either equalequal to or to or a proper a proper subset subset of of a prediction a prediction
block. This block. This is is shown shownonon Fig. Fig. 2a 2a andand Fig.Fig. 2b, 2b, for for example, example, wherewhere again again the prediction the prediction
granularity is shown with solid lines and the residual granularity with dashed lines. That granularity is shown with solid lines and the residual granularity with dashed lines. That 2024201207
is, in is, in Fig. Fig. 2a-2c, all blocks 2a-2c, all having blocks having a reference a reference signsign associated associated therewith therewith would bewould be residual residual
blocks for blocks for which whichoneonetwo-dimensional two-dimensional transform transform would would be performed be performed while while the the greater greater
solid line solid line blocks blocks encompassing encompassing the the dashed dashed line blocks line blocks 40a,example, 40a, for for example, would bewould be
prediction blocks for which a prediction parameter setting is performed individually. prediction blocks for which a prediction parameter setting is performed individually.
Theabove The aboveembodiments embodimentshavehave in common in common that athat a block block of (residual of (residual or original) or original) samples samples is is to be transformed at the encoder side into a transform coefficient block which, in turn, is to be transformed at the encoder side into a transform coefficient block which, in turn, is
to be to be inverse inverse transformed transformed into into aa reconstructed reconstructed block block ofof samples samplesatat the the decoder decoderside. side. This This is illustrated is in Fig. illustrated in Fig. 6. 6. Fig. Fig.66shows shows a block a block of samples of samples 200. In200. case In of case ofthis Fig. 6, Fig.block 6, this block 200 is 200 is exemplarily quadratic and exemplarily quadratic and4x44x4samples samples202202 in in size.The size. Thesamples samples202202 are are regularly regularly
arranged along arranged alongaahorizontal horizontal direction direction Xx and and vertical vertical direction direction y. y.By By the the above-mentioned above-mentioned
two-dimensionaltransform two-dimensional transform T,T, block200200 block is is transformed transformed intospectral into spectraldomain, domain, namely namely into into
a block a 204 of block 204 of transform transform coefficients coefficients 206, the transform transform block 204 being block 204 beingof of the the same samesize size as block as block 200. 200.That Thatis, is, transform transformblock block204204 hashas as many as many transform transform coefficients coefficients 206 206 as as block 200 block 200has hassamples, samples,ininboth bothhorizontal horizontaldirection directionandand verticaldirection. vertical direction.However, However,as as transform TTisis aa spectral transform spectral transformation, transformation, the the positions positions of of the the transform transform coefficients coefficients 206 206 within transform within transformblock block204 204dodonotnot correspond correspond to spatial to spatial positions positions butbut rather rather to to spectral spectral
componentsof ofthethecontent components contentof of block block 200. 200. In particular, In particular, thethe horizontal horizontal axisof of axis transform transform
block 204 block 204corresponds corresponds to to an an axis axis along along which which the spectral the spectral frequency frequency in horizontal in the the horizontal direction monotonically direction monotonicallyincreases increaseswhile whilethethe verticalaxis vertical axiscorresponds correspondsto to an an axisaxis along along
whichthe which thespatial spatial frequency in the frequency in the vertical vertical direction directionmonotonically increases wherein monotonically increases the wherein the
DCcomponent DC component transform transform coefficient coefficient is positioned is positioned in in a corner a corner - here - here exemplarily exemplarily thethe toptop
left corner -- ofof block left block204204 so that SO that at bottom at the the bottom right-hand right-hand corner, corner, the transform the transform
coefficient 206 coefficient correspondingtotothethehighest 206 corresponding highestfrequency frequency in both in both horizontal horizontal and and vertical vertical
direction is positioned. Neglecting the spatial direction, the spatial frequency to which a direction is positioned. Neglecting the spatial direction, the spatial frequency to which a
certain transform certain transform coefficient coefficient 206 206 belongs, belongs, generally generally increases increases from from the top thecorner left top left to corner to
the bottom the right-handcorner. bottom right-hand corner. ByByananinverse inversetransform transformT-1,T-1,the the transform transformblockblock204 204isisre- re- transferredfrom transferred from spectral spectral domain domain to spatial to spatial domain, domain, SO as toso as to re-obtain re-obtain a copy 208a of copy 208 of block block
200. In 200. In case casenonoquantization/loss quantization/losshashas beenbeen introduced introduced during during the transformation, the transformation, the the reconstruction would reconstruction wouldbebeperfect. perfect.
21
As already As already noted notedabove, above,itit may maybebeseen seenfrom from Fig.6 6that Fig. thatgreater greaterblock blocksizes sizesofofblock block200 200 increase the spectral resolution of the resulting spectral representation 204. On the other increase the spectral resolution of the resulting spectral representation 204. On the other
hand, quantization hand, quantization noise noise tends tendstoto spread spreadover overthe thewhole wholeblock block 208208 andand thus, thus, abrupt abrupt and and
very localized very localized objects objects within blocks 200 within blocks 200tend tendtoto lead lead to to deviations deviations of of the the re-transformed re-transformed
block relative block relative to to the theoriginal originalblock block200 200 due due to toquantization quantization noise. noise.The The main main advantage of advantage of
using greater using greater blocks blocks is, is, however, however,that thatthe theratio ratio between betweenthethenumber number of significant, of significant, i.e. i.e.
non-zero(quantized) non-zero (quantized)transform transformcoefficients, coefficients, i.e. i.e. levels, levels,on onthe theone one hand hand and the number and the number 2024201207
of insignificant of insignificant transform transform coefficients coefficients on on the the other other hand hand may bedecreased may be decreasedwithin withinlarger larger blocks compared blocks compared to to smaller smaller blocks blocks thereby thereby enabling enabling a better a better coding coding efficiency. efficiency. In In other other
words, frequently, words, frequently,thethesignificant significant transform transform coefficient coefficient levels, levels, i.e. transform i.e. the the transform coefficients not quantized to zero, are distributed over the transform block 204 sparsely. coefficients not quantized to zero, are distributed over the transform block 204 sparsely.
Duetotothis, Due this, in in accordance accordancewithwiththetheembodiments embodiments described described in detail in more more detail below,below, the the positionsofofthe positions thesignificant significant transform transform coefficient coefficient levelslevels is signaled is signaled within within the data the data stream stream
by way by wayof of a significance a significance map.map. Separately Separately therefrom, therefrom, the of the values values of the significant the significant
transform coefficient, transform coefficient, i.e., i.e., the transform coefficient the transform coefficientlevels levelsinincase caseof of thethe transform transform
coefficients being quantized, are transmitted within the data stream. coefficients being quantized, are transmitted within the data stream.
All the All the encoders encodersand anddecoders decoders described described above, above, are, are, thus,thus, configured configured to with to deal deala with a certain syntax certain of syntax syntax of elements. That syntax elements. Thatis, is, the the afore-mentioned syntaxelements afore-mentioned syntax elements such such as as
the transform the transformcoefficient coefficientlevels, levels, syntax syntaxelements elements concerning concerning the the significance significance map of map of
transform blocks, transform blocks, the the motion data syntax motion data syntaxelements elementsconcerning concerning inter-predictionblocks inter-prediction blocksand and so on SO are assumed on are tobe assumed to besequentially sequentially arranged arrangedwithin withinthe the data data stream streamin in aa prescribed way. prescribed way.
Suchaaprescribed Such prescribedway waymaymay be represented be represented in form in form of a of a pseudo pseudo code code as as done, it is it is done, for for example,inin the example, the H.264 H.264standard standardororother other video videocodecs. codecs.
In even In other words, even other words,the the above abovedescription, description, primarily primarilydealt dealt with with the the conversion conversionofofmedia media data, here data, here exemplarily video data, exemplarily video data, to to aa sequence of syntax sequence of syntax elements elementsinin accordance accordancewith witha a predefined syntax predefined syntaxstructure structureprescribing prescribingcertain certainsyntax syntaxelement element types,itsitssemantics types, semanticsandand
the order the order among them.The among them. The entropy entropy encoder encoder and and entropy entropy decoder decoder of Fig. of Fig. 4 and 4 and 5, may 5, may be be configuredto configured to operate, operate, and and may maybebestructured, structured,asasoutlined outlinednext. next.Same Same areresponsible are responsible for for
performingthe performing theconversion conversionbetween between syntax syntax element element sequence sequence and and datadata stream, stream, i.e.i.e. symbol symbol
or bit stream. or bit stream.
Anentropy An entropyencoder encoder according according to embodiment to an an embodiment is illustrated is illustrated in 7. in Fig. Fig.The7.encoder The encoder losslessly converts losslessly converts aa stream streamofofsyntax syntaxelements elements 301301 intointo a set a set of two of two or more or more partial partial
bitstreams 312. bitstreams 312.
22
In aa preferred In preferred embodiment embodiment ofofthe theinvention, invention,each eachsyntax syntaxelement element301301 is is associatedwith associated witha a categoryofofa asetsetofofoneone category or or more more categories, categories, i.e. ai.e. a syntax syntax element element type. Astype. As an the an example, example, the categories can categories can specify specifythe thetype typeofofthe thesyntax syntax element. element. In In the the context context of hybrid of hybrid videovideo
coding, aa separate coding, separatecategory categorymay may be associated be associated withwith macroblock macroblock coding coding modes, modes, block block coding modes, coding modes,reference reference picture picture indices, indices, motion motion vector vector differences, differences, subdivision subdivision flags, flags,
codedblock coded blockflags, flags,quantization quantizationparameters, parameters, transform transform coefficient coefficient levels, levels, etc. etc. In In other other
application areas such as audio, speech, text, document, or general data coding, different application areas such as audio, speech, text, document, or general data coding, different 2024201207
categorizationsofof categorizations syntax syntax elements elements are possible. are possible.
In general, In general, each syntax element each syntax elementcan cantake takea value a value of of a finiteororcountable a finite countableinfinite infiniteset set ofof values, where values, wherethe theset set ofofpossible possiblesyntax syntaxelement element values values cancan differ differ forfor different different syntax syntax
elementcategories. element categories. For Forexample, example, there there areare binary binary syntax syntax elements elements as well as well as integer- as integer-
valued ones. valued ones.
For reducing For reducingthe the complexity complexityofofthe theencoding encodingandand decoding decoding algorithm algorithm and allowing and for for allowing a a general encoding general encodingand anddecoding decoding design design forfor different different syntax syntax elements elements and and syntax syntax element element
categories, the categories, the syntax elements301 syntax elements 301are areconverted converted intoordered into ordered sets sets of of binary binary decisions decisions
and these and thesebinary binarydecisions decisions areare then then processed processed by simple by simple binary binary coding algorithms. coding algorithms.
Therefore, the Therefore, the binarizer binarizer 302 302 bijectively bijectivelymaps maps the the value value of of each each syntax syntax element 301onto element 301 ontoaa sequence(or sequence (orstring string or or word) word)ofofbins bins303. 303.The The sequence sequence of bins of bins 303 303 represents represents a of a set set of ordered binary ordered binary decisions. decisions. Each Eachbin bin303 303ororbinary binarydecision decisioncan cantake takeoneone value value of of a setofof a set
two values, two values, e.g. e.g. one of the one of the values values 00 and and 1. 1. The Thebinarization binarizationscheme scheme can can be be differentforfor different
different syntax different elementcategories. syntax element categories.TheThe binarization binarization scheme scheme for afor a particular particular syntaxsyntax
elementcategory element categorycan candepend depend on on the the set set of of possible possible syntax syntax element element values values and/or and/or otherother
properties of the syntax element for the particular category. properties of the syntax element for the particular category.
Table 1 1illustrates Table illustrates three threeexample example binarization binarization schemes schemes for countable for countable infiniteinfinite sets. sets. Binarization schemes Binarization schemesforforcountable countable infinitesets infinite setscancan also also be be applied applied for for finite finite sets setsof of
syntax element syntax elementvalues. values.InInparticular particularfor forlarge largefinite finite sets sets of of syntax syntax element elementvalues, values,thethe inefficiency (resulting inefficiency (resulting from fromunused unused sequences sequences of bins) of bins) can be can be negligible, negligible, but the but the universality of universality of such binarization schemes such binarization providesananadvantage schemes provides advantage in in terms terms of of complexity complexity
and memory and memory requirements. requirements. For small For small finite finite sets sets of syntax of syntax element element values,values, it is often it is often
preferable (in preferable (in terms terms of of coding coding efficiency) efficiency) to to adapt adapt the thebinarization binarizationscheme scheme to to the the number number
of possible of possible symbol values. symbol values.
Table 2 2illustrates Table illustrates three threeexample example binarization binarization schemes schemes for finite for finite sets sets of of 8 values. 8 values.
Binarization schemes Binarization schemesforfor finitesets finite setscancan be derived be derived from from the universal the universal binarization binarization
schemesfor schemes forcountable countableinfinite infinitesets sets by bymodifying modifying some some sequences sequences of bins of bins in a in a that way way that 23
the finite the finite sets sets of of bin binsequences sequences represent represent a redundancy-free a redundancy-free codepotentially code (and (and potentially reordering the reordering the bin bin sequences). sequences). As an example, As an example,the thetruncated truncatedunary unarybinarization binarizationscheme schemeinin
Table 22was Table wascreated created by by modifying modifying the sequence the bin bin sequence for thefor the syntax syntax element element 7 of the 7 of the universal unary universal unarybinarization binarization(see (seeTable Table1).1).TheThe truncated truncated and and reordered reordered Exp-Golomb Exp-Golomb
binarization of binarization of order order 00 in in Table Table22was wascreated created by by modifying modifying the sequence the bin bin sequence for for the the syntax element syntax element77ofofthe the universal universal Exp-Golomb Exp-Golomb order order 0 binarization 0 binarization (see (see Table Table 1) and 1) and by by
reordering the reordering the bin bin sequences sequences(the (thetruncated truncatedbin binsequence sequenceforfor symbol symbol 7 was 7 was assigned assigned to to 2024201207
symbol symbol 1).1). ForFor finite finite setssets of syntax of syntax elements, elements, it ispossible it is also also possible to use non-systematic to use non-systematic / / non-universal binarization non-universal binarization schemes, schemes,asas exemplified exemplifiedininthethe last last column of Table column of Table2. 2.
24
Table 1: Binarization examples for countable infinite sets (or large finite sets). Table 1: Binarization examples for countable infinite sets (or large finite sets).
symbolvalue symbol value unary binarization unary binarization Exp-Golomb order Exp-Golomb Exp-Golomborder order00 Exp-Golomb order1 1 binarization binarization binarization binarization
0 0 1 1 11 10 10 11 01 01 010 010 11 11 2 2 001 001 011 011 0100 0100 3 3 0001 0001 0010 00 0010 0101 0101 2024201207
4 4 000011 0000 001011 0010 0110 0110 5 5 0000 01 0000 01 0011 00 0011 0111 0111 6 6 0000 001 0000 001 001111 0011 0010 00 0010 00 7 7 0000 0001 0000 0001 0001 000 0001 000 001001 0010 01 ... ... ... ...
Table 2: Binarization examples for finite sets. Table 2: Binarization examples for finite sets.
symbolvalue symbol value truncated truncated unary unary truncated truncated non-systematic and non-systematic and binarization binarization reordered Exp-Golomb reordered Exp-Golomb binarization binarization
order00binarization order binarization 0 0 11 11 000 000 11 01 01 000 000 001 001 2 2 001 001 010 010 01 01
3 3 0001 0001 011 011 1000 1000 4 4 000011 0000 0010 00 0010 1001 1001 5 5 0000 01 0000 01 001011 0010 1010 1010 6 6 0000 001 0000 001 0011 00 0011 1011 1011 00
7 7 0000 000 0000 000 001111 0011 1011 1011 11
Eachbin Each bin303303 of of the the sequence sequence of created of bins bins created by the by the binarizer binarizer 302into 302 is fed is fed the into the parameter assigner 304 in sequential order. The parameter assigner assigns a set of one or parameter assigner 304 in sequential order. The parameter assigner assigns a set of one or
moreparameters more parameterstotoeach eachbin bin303 303and andoutputs outputsthe thebin binwith withthe theassociated associatedset set of of parameters parameters
305. The 305. Theset set of of parameters parameters isis determined in exactly determined in exactly the the same wayatat encoder same way encoderand anddecoder. decoder. Theset The set of of parameters mayconsist parameters may consistofof one oneor or more moreofofthe thefollowing followingparameters: parameters:
In particular, In particular,parameter parameter assigner assigner 304 maybebeconfigured 304 may configuredtotoassign assigntotoa acurrent currentbin bin303 303aa context model. context model.For Forexample, example,parameter parameter assigner assigner 304304 maymay select select one one of available of available context context
indices for indices for the the current current bin bin 303. 303. The available set The available set of of contexts contexts for for aa current current bin bin 303 may 303 may
dependononthe depend thetype typeofofthe thebin binwhich, which,ininturn, turn, may maybebedefined definedbybythethetype/category type/categoryofofthethe syntax element syntax element301, 301,thethe binarization binarization of of which which the current the current binis303 bin 303 is of, part partandof,a and a positionofofthe position thecurrent currentbinbin 303303 within within the latter the latter binarization. binarization. The context The context selection selection among among
25
the available the available context context set setmay may depend onprevious depend on previousbins binsand andthe thesyntax syntaxelements elementsassociated associated with the latter. Each of these contexts has a probability model associated therewith, i.e. a with the latter. Each of these contexts has a probability model associated therewith, i.e. a
measurefor measure forananestimate estimateofofthe theprobability probability for for one one of of the the two twopossible possiblebin binvalues valuesfor forthe the current bin. The current probability model The probability mayininparticular model may particularbebea ameasure measure forananestimate for estimateofofthethe probability for probability for the the less less probable probable or or more probablebin more probable binvalue valueforforthethecurrent currentbin, bin,with witha a probability model probability additionallybeing model additionally beingdefined definedbybyanan identifierspecifying identifier specifyingananestimate estimateforfor whichofofthe which thetwo twopossible possiblebin binvalues valuesrepresents representsthetheless lessprobable probableor ormore more probable probable bin bin 2024201207
value for value for the the current current bin bin303. 303.InIncase caseof of merely merely one one context context beingbeing available available for the for the
current bin, current bin, the the context selection may context selection may bebeleft left away. away.AsAswill willbebe outlined outlined in in more more detail detail
below, parameter below, parameterassigner assigner304304may may also also perform perform a probability a probability model model adaptation adaptation in order in order
to adapt to adapt the the probability probability models modelsassociated associatedwith with thethe various various contexts contexts to the to the actual actual bin bin statistics of the respective bins belonging to the respective contexts. statistics of the respective bins belonging to the respective contexts.
As will As will also alsobebedescribed describedin inmore more detail detail below, below, parameter parameter assigner assigner 304operate 304 may may operate differently depending differently depending onona a high high efficiency efficiency (HE) (HE) modemode or loworcomplexity low complexity (LC) mode (LC) mode
being activated. being activated. In In both both modes modesthetheprobability probabilitymodel model associates associates the the current current bin bin 303 303 to to
any of any of the the bin bin encoders encoders310310asaswill willbebeoutlined outlinedbelow, below,but butthe themode modeof of operation operation of of thethe
parameterassigner parameter assigner304 304tends tends to to be be less less complex complex in LC in the themode LC with, modehowever, with, however, the the coding efficiency coding efficiencybeing beingincreased increasedin in thethe highhigh efficiency efficiency modemode due todue the to the parameter parameter
assigner304 assigner 304 causing causing the the association association of theof the individual individual bins 303bins 303individual to the to the individual encoders encoders 310 to 310 to be bemore moreaccurately accuratelyadapted adaptedto to thethe binbin statistics,thereby statistics, therebyoptimizing optimizing thethe entropy entropy
relative totothe relative theLC LC mode. mode.
Each bin with an associated set of parameters 305 that is output of the parameter assigner Each bin with an associated set of parameters 305 that is output of the parameter assigner
304isisfed 304 fedinto intoa abinbinbuffer buffer selector selector 306.306. Thebuffer The bin bin buffer selector selector 306 potentially 306 potentially modifies modifies
the value of the the the input input binbin 305 305 based based onon the the input bin value value and the associated parameters and the parameters
305 and 305 andfeeds feedsthe the output output bin bin 307 307-–with withaapotentially potentially modified value-–into modified value into one one of of two twoor or more bin more bin buffers buffers 308. 308. The The bin bin buffer buffer 308 308toto which whichthe theoutput outputbin bin307 307isissent sentisis determinedbased determined basedonon thethe value value of of thethe input input binbin 305 305 and/or and/or the value the value of associated of the the associated parameters305. parameters 305.
In a preferred embodiment In embodiment ofof theinvention, the invention,the thebin binbuffer bufferselector selector306 306does doesnot notmodify modify the value the value of of the the bin, bin, i.e., i.e., the the output bin 307 output bin 307has hasalways always thethe same same value value as input as the the input bin 305. bin In aa further preferred 305. In preferred embodiment embodiment ofof theinvention, the invention,the thebin binbuffer bufferselector selector306 306 determinesthe determines the output outputbin binvalue value307 307based basedonon theinput the inputbinbinvalue value305305 andand thethe associated associated
measurefor measure forananestimate estimateofofthe theprobability probability for for one one of of the the two twopossible possiblebin binvalues valuesfor forthe the current bin. current bin. In In aa preferred preferred embodiment embodiment ofof theinvention, the invention,the theoutput outputbinbinvalue value 307 307 is is set set
equal to equal to the the input input bin bin value value305 305ififthe themeasure measureforfor thethe probability probability forfor oneone of of thethe two two
26
possible bin values for the current bin is less than (or less than or equal to) a particular possible bin values for the current bin is less than (or less than or equal to) a particular
threshold;ififthe threshold; themeasure measure for for the the probability probability forofone for one theof the two two possible possible binforvalues bin values the for the currentbin current binisisgreater greaterthan than or equal or equal to greater to (or (or greater than) than) a particular a particular threshold, threshold, the outputthe output bin value 307 is modified (i.e., it is set to the opposite of the input bin value). In a further bin value 307 is modified (i.e., it is set to the opposite of the input bin value). In a further
preferred embodiment preferred embodiment of of thetheinvention, invention,thetheoutput outputbinbinvalue value307 307 is isset setequal equaltotothe theinput input bin value bin value305 305if if the the measure measure for probability for the the probability for onefor of one of the the two two possible possible bin valuesbin for values for
the current bin is greater than (or greater than or equal to) a particular threshold; if the the current bin is greater than (or greater than or equal to) a particular threshold; if the 2024201207
measurefor measure forthe theprobability probability for for one oneofofthe the two twopossible possiblebinbinvalues valuesforforthe thecurrent currentbin binisis less than less or equal than or equal toto (or (or less less than) than) aa particular particular threshold, threshold, the the output outputbinbinvalue value307 307is is modified(i.e., modified (i.e.,itit isis set set to to the theopposite oppositeof of thethe input input bin bin value). value). In a In a preferred preferred embodiment embodiment
of the invention, the value of the threshold corresponds to a value of 0.5 for the estimated of the invention, the value of the threshold corresponds to a value of 0.5 for the estimated
probabilityfor probability forboth both possible possible bin bin values. values.
In aa further In further preferred preferred embodiment embodiment ofofthe theinvention, invention, the the bin binbuffer buffer selector selector 306 306 determinesthe determines theoutput outputbin binvalue value307 307based basedonon theinput the inputbinbinvalue value305305 andand thethe associated associated
identifier specifying identifier specifying an an estimate estimate for for which of the which of the two two possible possible bin bin values valuesrepresents representsthe the less probable less or more probable or probablebin more probable binvalue valuefor forthe thecurrent currentbin. bin. In In aa preferred preferred embodiment embodiment of the of the invention, invention, the the output bin value output bin value 307 307isis set set equal equal to to the the input input bin bin value value 305 305ifif the the identifier specifies identifier specifies that that the first of the first the two of the twopossible possiblebinbinvalues values represents represents the the less less
probable (or more probable) bin value for the current bin, and the output bin value 307 is probable (or more probable) bin value for the current bin, and the output bin value 307 is
modified(i.e., modified (i.e.,itit is is set set to to the oppositeofofthetheinput the opposite input binbin value) value) if identifier if identifier specifies specifies that that the the
secondof second of the the two twopossible possible bin bin values values represents represents the the less less probable probable (or (or more probable) bin more probable) bin value for the current bin. value for the current bin.
In aa preferred In preferred embodiment embodiment of of thethe invention, invention, thethe binbin buffer buffer selector selector 306306 determines determines the the bin buffer 308 bin 308 toto which the output which the output bin bin 307 307isis sent sent based on the based on the associated measure for an measure for an estimateofofthetheprobability estimate probability for for one one of two of the thepossible two possible bin for bin values values for thebin. the current current In a bin. In a
preferred embodiment preferred embodiment of of theinvention, the invention,thetheset setofofpossible possiblevalues valuesfor forthe the measure measureforforanan estimate of estimate of the the probability probability for for one one ofof the the two twopossible possiblebin binvalues valuesis isfinite finiteand andthe thebin bin buffer selector buffer selector 306 contains aa table 306 contains table that that associates associates exactly exactly one one bin bin buffer buffer 308 with each 308 with each possible value for the estimate of the probability for one of the two possible bin values, possible value for the estimate of the probability for one of the two possible bin values,
wheredifferent where different values values for for the the measure measureforforananestimate estimateofofthetheprobability probabilityforforone oneofofthethe two possible two possiblebin binvalues valuescancanbe be associated associated withwith the the samesame bin buffer bin buffer 308. 308. In In a further a further
preferred embodiment preferred embodiment of of thethe invention,thetherange invention, range of of possible possible values values forfor themeasure the measureforfor
an estimate of the probability for one of the two possible bin values is partitioned into a an estimate of the probability for one of the two possible bin values is partitioned into a
numberofofintervals, number intervals,the thebin binbuffer bufferselector selector306 306 determines determines the the interval interval indexindex for for the the
currentmeasure current measurefor for an estimate an estimate of theofprobability the probability for one for onetwo of the of possible the twobinpossible values, bin values,
andthe and thebin binbuffer buffer selector selector 306 306 contains contains a table a table that associates that associates exactly exactly one bin one bin buffer 308buffer 308
27
with each with eachpossible possiblevalue valuefor forthe theinterval intervalindex, index,where where differentvalues different values forfor theinterval the interval index can index can be beassociated associatedwith withthe thesame samebinbinbuffer buffer308. 308.InIna apreferred preferredembodiment embodiment the of of the
invention, input invention, input bins bins 305 305with withopposite oppositemeasures measures forfor an an estimate estimate of the of the probability probability forfor
one of one of the the two twopossible possible bin binvalues values(opposite (opposite measure measureare arethose thosewhich which represent represent probability estimates probability estimates PPand and1 1- −P)P)arearefedfed into into thethe same same bin bin buffer buffer 308. 308. In a In a further further
preferred preferred embodiment embodiment of of theinvention, the invention,the theassociation associationofofthe themeasure measureforforananestimate estimateofof the probability for one of the two possible bin values for the current bin with a particular the probability for one of the two possible bin values for the current bin with a particular 2024201207
bin buffer bin bufferisisadapted adapted over over time, time, e.g. e.g. in order in order to ensure to ensure that that the the created created partial bitstreams partial bitstreams
have similar have similar bit bit rates. rates. Further Further below, the interval below, the interval index index will will also also bebe called called pipe pipe index, index, while the while the pipe pipeindex indexalong along withwith a refinement a refinement index index and a and flag a flag indicating indicating the morethe more
probable bin value indexes the actual probability model, i.e. the probability estimate. probable bin value indexes the actual probability model, i.e. the probability estimate.
In aa further In further preferred preferred embodiment embodiment ofofthe theinvention, invention, the the bin binbuffer buffer selector selector 306 306 determinesthe determines the bin bin buffer buffer 308 308to to which whichthe theoutput outputbin bin307 307isis sent sent based basedon onthe the associated associated measurefor measure forananestimate estimateofofthetheprobability probabilityforforthetheless lessprobable probable or or more more probable probable bin bin valuefor value forthe thecurrent current bin. bin. In In a preferred a preferred embodiment embodiment of the invention, of the invention, the set of the set of possible possible
values for values for the the measure measurefor forananestimate estimateofofthe theprobability probabilityfor forthe theless lessprobable probableorormore more probable bin value is finite and the bin buffer selector 306 contains a table that associates probable bin value is finite and the bin buffer selector 306 contains a table that associates
exactlyone exactly onebinbin buffer buffer 308 308 with with each possible each possible value ofvalue of the of the estimate estimate of the probability the probability for for the less the less probable probable or or more probablebin more probable binvalue, value,where wheredifferent differentvalues valuesfor forthe themeasure measureforfor an estimate an estimate ofof the the probability probability for for the the less less probable probable oror more moreprobable probablebinbin value value cancan be be
associated with associated withthe thesame same binbin buffer buffer 308.308. In a In a further further preferred preferred embodiment embodiment of the of the invention,the invention, therange rangeof of possible possible values values formeasure for the the measure for an of for an estimate estimate of the probability the probability
for the for the less less probable probable or or more more probable probable bin is bin value value is partitioned partitioned into aofnumber into a number of intervals, intervals,
the bin the bin buffer buffer selector selector 306 determinesthe 306 determines theinterval interval index indexfor for the the current current measure measureforforanan estimate of estimate of the the probability forfor the the less lessprobable probable oror more probable bin more probable bin value, value, and andthe the bin bin buffer selector buffer selector 306 contains aa table 306 contains table that that associates associates exactly exactly one one bin bin buffer buffer 308 with each 308 with each possible value for the interval index, where different values for the interval index can be possible value for the interval index, where different values for the interval index can be
associated with associated withthe thesame samebinbin buffer buffer 308.308. In a In a further further preferred preferred embodiment embodiment of the of the
invention, the invention, the association association of of the the measure forananestimate measure for estimateofofthe theprobability probabilityfor forthe theless less probable oror more probable moreprobable probable binbin value value for for thethe current current binbin with with a particular a particular binbin buffer buffer is is adaptedover adapted over time, time, e.g.e.g. in order in order to ensure to ensure thatcreated that the the created partial partial bitstreams bitstreams have similar have similar
bit rates. bit rates.
Eachofofthe Each the two twoorormore morebinbinbuffers buffers308308 is is connected connected with with exactly exactly oneone bin bin encoder encoder 310 310 and each and eachbin binencoder encoderisisonly onlyconnected connected with with oneone bin bin buffer buffer 308.308. EachEach bin encoder bin encoder 310 310
reads bins reads bins from the associated from the associated bin bin buffer buffer 308 308 and andconverts convertsa asequence sequenceofofbins bins309 309 intoa a into
codeword311, codeword 311,which which represents represents a sequence a sequence of bits. of bits. TheThe bin bin buffers buffers 308 308 represent represent first- first-
28
in-first-out buffers; bins that are fed later (in sequential order) into a bin buffer 308 are in-first-out buffers; bins that are fed later (in sequential order) into a bin buffer 308 are
not encoded not encoded before before bins bins that that areearlier are fed fed earlier (in sequential (in sequential order) order) into the into the binThebuffer. The bin buffer.
codewords311 codewords 311 thatare that areoutput outputofofa aparticular particularbin binencoder encoder310310arearewritten writtentotoa aparticular particular partial bitstream partial bitstream 312. 312. The overall encoding The overall algorithmconverts encoding algorithm convertssyntax syntaxelements elements 301301 into into
two or more partial bitstreams 312, where the number of partial bitstreams is equal to the two or more partial bitstreams 312, where the number of partial bitstreams is equal to the
numberofofbin number binbuffers buffersand andbinbin encoders. encoders. In In a preferred a preferred embodiment embodiment ofinvention, of the the invention, a a bin encoder bin 310 converts encoder 310 converts aa variable variable number of bins number of bins 309 into aa codeword 309 into 311 ofof aa codeword 311 2024201207
variable number variable number ofofbits. bits. One Oneadvantage advantageof of thethe above- above- andand below-outlined below-outlined embodiments embodiments
of the of the invention invention is is that that the the encoding ofbins encoding of binscan canbebedone done in in parallel(e.g. parallel (e.g.for fordifferent different groups of groups of probability probability measures), measures), which which reduces reducesthe theprocessing processingtime timeforforseveral several implementations. implementations.
Anotheradvantage Another advantageof of embodiments embodiments of invention of the the invention is that is that the encoding, the bin bin encoding, which which is is donebybythethe done binbin encoders encoders 310, 310, can becan be specifically specifically designeddesigned for different for different sets of sets of parameters305. parameters 305.InInparticular, particular, the the bin bin encoding andencoding encoding and encodingcancanbebeoptimized optimized (in(in terms terms
of coding of coding efficiency efficiency and/or and/orcomplexity) complexity)forfordifferent differentgroups groupsof ofestimated estimated probabilities. probabilities.
Onthe On theone onehand handside, side,this this allows allowsaareduction reductionofofthe theencoding/decoding encoding/decoding complexity, complexity, and and
on the on the other other hand side, it hand side, it allows allows an an improvement improvement ofofthe thecoding codingefficiency. efficiency.InInaa preferred preferred embodimentofofthe embodiment theinvention, invention, the the bin bin encoders encoders310 310implement implement differentencoding different encoding algorithms (i.e. algorithms (i.e. mapping mappingof of binbin sequences sequences onto onto codewords) codewords) for different for different groups groups of of measures measures forfor an an estimate estimate of probability of the the probability forof one for one of the the two two possible possible bin valuesbin 305 values for 305 for the current the current bin. bin. In Inaafurther furtherpreferred preferredembodiment of the embodiment of the invention, invention, the the bin bin encoders 310 encoders 310
implementdifferent implement differentencoding encodingalgorithms algorithms fordifferent for differentgroups groupsofofmeasures measures forananestimate for estimate of the probability for the less probable or more probable bin value for the current bin. of the probability for the less probable or more probable bin value for the current bin.
In aa preferred In preferred embodiment embodiment ofofthe theinvention, invention,the thebin bin encoders encoders310 310- –ororone oneorormore moreofof the the
bin encoders bin encoders -– represent represent entropy entropyencoders encodersthat thatdirectly directly map mapsequences sequences of of input input bins bins 309 309
onto codewords onto codewords310. 310. Such Such mappings mappings canefficiently can be be efficiently implemented implemented and require and don't don't require a a complexarithmetic complex arithmeticcoding codingengine. engine.The The inverse inverse mapping mapping of codewords of codewords onto onto sequences sequences of of bins (as bins (as done in the done in the decoder) shouldto decoder) should to be be unique uniqueininorder ordertoto guarantee guaranteeperfect perfectdecoding decoding of the of the input input sequence, sequence, but but the the mapping ofbin mapping of bin sequences sequences309 309onto ontocodewords codewords 310 310 doesn't doesn't
necessarily need to be unique, i.e., it is possible that a particular sequence of bins can be necessarily need to be unique, i.e., it is possible that a particular sequence of bins can be
mappedonto mapped onto more more thanthan one one sequence sequence of codewords. of codewords. In a preferred In a preferred embodiment embodiment of the of the invention, the invention, the mapping mapping ofofsequences sequences of of input input bins bins 309 309 onto onto codewords codewords 310 310 is is bijective. bijective.
In aa further In further preferred preferred embodiment embodiment of of thethe invention, invention, thethe binbin encoders encoders 310 310 - or – ororone one or moreofofthe more the bin binencoders encoders- –represent represententropy entropyencoders encoders that that directlymap directly map variable-length variable-length
sequences of sequences of input input bins bins 309 309onto ontovariable-length variable-length codewords codewords310. 310.In Ina preferred a preferred
29
embodiment embodiment of of thethe invention, invention, the the output output codewords codewords represent represent redundancy-free redundancy-free codes codes such as such as general general huffman codesororcanonical huffman codes canonicalhuffman huffman codes. codes.
Twoexamples Two examples forfor thethe bijectivemapping bijective mapping of bin of bin sequences sequences to redundancy-free to redundancy-free codes codes are are illustrated inin Table illustrated Table 3. 3. In a further In a further preferred preferred embodiment embodiment of of thethe invention, invention, the the output output
codewordsrepresent codewords representredundant redundant codes codes suitable suitable forerror for errordetection detectionand anderror errorrecovery. recovery.InInaa further preferred further preferred embodiment embodiment ofofthe theinvention, invention,the theoutput outputcodewords codewords represent represent 2024201207
encryption codes encryption codessuitable suitable for for encrypting encrypting the the syntax syntax elements. elements.
Table 3: Table 3: Examples formappings Examples for mappings between between bin bin sequences sequences and and codewords. codewords.
sequence sequence of of bins bins codewords codewords (bin order is from left to right) (bits (bin order is from left to right) (bits order is from order is fromleft lefttotoright) right) 0000 0000 0000 0000 11 0000 0001 0000 0001 0000 0000 0000 001 0000 001 0001 0001 0000 01 0000 01 0010 0010 000011 0000 0011 0011 0001 0001 0100 0100 001 001 0101 0101 01 01 0110 0110 11 0111 0111
sequence sequence of of bins bins codewords codewords (bin order is from left to right) (bin order is from left to right) (bits (bits order is from order is fromleft lefttotoright) right) 000 000 10 10 01 01 11 11
001 001 010 010 11 11 011 011 1000 1000 00 0001 0001 1001 1001 0010 0010 1010 1010 0011 0011 1000 1000 11 0000 00 0000 1011 1011 000011 0000
In aa further In further preferred preferred embodiment embodiment of of thethe invention, invention, thethe binbin encoders encoders 310 310 - or – ororone one or moreofofthe more the bin binencoders encoders- –represent represententropy entropyencoders encoders that that directlymap directly map variable-length variable-length
sequencesofofinput sequences inputbins bins309309 onto onto fixed-length fixed-length codewords codewords 310. 310. In In a further a further preferred preferred
embodiment embodiment of of thethe invention,thethebin invention, binencoders encoders 310 310 – or - or oneone or or more more of the of the bin bin encoders encoders
– represent - represent entropy entropy encoders encodersthat thatdirectly directly map mapfixed-length fixed-lengthsequences sequencesof of input input bins bins 309 309
onto variable-length onto variable-length codewords 310. codewords 310.
30
Thedecoder The decoderaccording according an an embodiment embodiment of theofinvention the invention is illustrated is illustrated in Figure in Figure 8. 8. The The decoderperforms decoder performsbasically basicallythe theinverse inverseoperations operationsofofthe theencoder, encoder,SOsothat that the the (previously (previously encoded)sequence encoded) sequenceof of syntax syntax elements elements 327327 is decoded is decoded fromfrom a seta of settwo of or twomore or more partial partial
bitstreams 324. bitstreams 324.The Thedecoder decoder includes includes two different two different process process flows:flows: A flow A forflow data for data requests,which requests, which replicates replicates the the datadata flow flow of theofencoder, the encoder, andflow, and a data a data flow, which which represents represents
the inverse the inverse of of the the encoder encoderdatadataflow. flow.In In thethe illustrationininFig. illustration Fig.8,8,thethedashed dashed arrows arrows
represent the represent the data data request requestflow, flow,while while thethe solid solid arrows arrows represent represent the data the data flow.flow. The The 2024201207
buildingblocks building blocks of of thethe decoder decoder basically basically replicate replicate the building the building blocks ofblocks of thebut the encoder, encoder, but implementthe implement theinverse inverseoperations. operations.
Thedecoding The decodingof ofa syntax a syntax element element is triggered is triggered by abyrequest a request for for a new a new decoded decoded syntax syntax
element 313 that is sent to the binarizer 314. In a preferred embodiment of the invention, element 313 that is sent to the binarizer 314. In a preferred embodiment of the invention,
each request each request for for aa new decodedsyntax new decoded syntaxelement element 313313 is is associated associated with with a category a category of of a set a set
of one of one or or more morecategories. categories.The The category category that that is is associated associated with with a request a request for for a syntax a syntax
elementisis the element the same sameasasthe thecategory categorythat thatwas was associated associated with with the the corresponding corresponding syntax syntax
elementduring element duringencoding. encoding.
Thebinarizer The binarizer 314 314maps mapsthethe request request forfor a syntax a syntax element element 313313 intointo one one or more or more requests requests
for a bin that are sent to the parameter assigner 316. As final response to a request for a for a bin that are sent to the parameter assigner 316. As final response to a request for a
bin that bin that is is sent sent to to the the parameter parameterassigner assigner316 316 by by the the binarizer binarizer 314, 314, the the binarizer binarizer 314 314
receives aa decoded receives bin326 decoded bin 326from fromthe thebin binbuffer bufferselector selector318. 318.The Thebinarizer binarizer314 314compares compares the received the receivedsequence sequenceof of decoded decoded binswith bins 326 326 the with binthe bin sequences sequences of a particular of a particular
binarization scheme binarization forthe scheme for therequested requestedsyntax syntax element element and,and, if the if the received received sequence sequence of of decodedbins decoded bins2626matches matches thethe binarization binarization of of a syntax a syntax element, element, the the binarizer binarizer empties empties its its
bin buffer bin buffer and outputs the and outputs the decoded decodedsyntax syntaxelement elementas as finalresponse final responseto to therequest the requestforfor aa newdecoded new decoded symbol. symbol. If the If the already already received received sequence sequence of decoded of decoded bins not bins does doesmatch not match any of any of the the bin bin sequences sequencesfor forthe thebinarization binarizationscheme schemeforfor thethe requested requested syntax syntax element, element,
the binarizer sends another request for a bin to the parameter assigner until the sequence the binarizer sends another request for a bin to the parameter assigner until the sequence
of decoded of decodedbins binsmatches matches oneone of the of the bin bin sequences sequences ofbinarization of the the binarization schemescheme for thefor the
requested syntax requested syntaxelement. element.For Foreach each request request forfor a syntax a syntax element, element, the the decoder decoder uses uses the the samebinarization same binarization scheme schemethatthatwas was used used forfor encoding encoding the the corresponding corresponding syntax syntax element. element.
Thebinarization The binarizationscheme scheme cancan be different be different for for different different syntax syntax element element categories. categories. The The
binarization scheme binarization scheme forfora aparticular particularsyntax syntaxelement element category category cancan depend depend onset on the theofset of possible syntax possible syntax element elementvalues values and/or and/or other other properties properties of the of the syntax syntax elements elements for the for the
particular category. particular category.
Theparameter The parameterassigner assigner316 316assigns assignsa aset setofofone oneorormore moreparameters parameters to to each each request request fora for a bin and bin andsends sendsthethe request request for for a with a bin bin with the associated the associated set of parameters set of parameters to the binto the bin buffer buffer
31
selector. The selector. set of The set of parameters parametersthat thatare areassigned assignedto toa requested a requested binbin by the by the parameter parameter
assigner is assigner is the the same same that that was assigned to was assigned to the the corresponding binduring corresponding bin duringencoding. encoding.The The set set
of parameters of parametersmay may consistof ofoneone consist or or more more of the of the parameters parameters that that are mentioned are mentioned in thein the encoder description of Fig. 7. encoder description of Fig. 7.
In aa preferred In preferred embodiment embodiment of of thethe invention, invention, thethe parameter parameter assigner assigner 316316 associates associates eacheach
request for request for aa bin bin with withthe thesame same parameters parameters as assigner as assigner 304 304 did, did, i.e. i.e. a context a context and and its its
associated measure associated measureforforananestimate estimate of of thethe probability probability forfor oneone of the of the two two possible possible bin bin 2024201207
valuesfor values forthe thecurrent current requested requested bin, bin, such such as a measure as a measure for an of for an estimate estimate of the probability the probability
for the for less probable the less probable oror more moreprobable probable binbin value value for for thethe current current requested requested bin bin and and an an
identifier specifying identifier specifying an an estimate estimate for for which of the which of the two two possible possible bin bin values valuesrepresents representsthe the less probable or more probable bin value for the current requested bin. less probable or more probable bin value for the current requested bin.
The parameter The parameter assigner assigner 316 maydetermine 316 may determineoneone or or more more of the of the above above mentioned mentioned probability measures probability measures(measure (measure forfor an estimate an estimate of probability of the the probability for ofone for one theoftwo the two possible bin possible bin values valuesforforthethe current current requested requested bin, bin, measure measure for an for an estimate estimate of the of the
probabilityfor probability forthe theless lessprobable probable or more or more probable probable binfor bin value value for therequested the current current requested bin, bin, identifier specifying identifier specifying an an estimate estimate for for which which ofof the the two two possible possible bin bin values valuesrepresents representsthe the less probable less or more probable or probablebin more probable binvalue valuefor forthe thecurrent current requested requestedbin) bin) based basedonona aset setof of one or one or more morealready alreadydecoded decoded symbols. symbols. TheThe determination determination of the of the probability probability measures measures for for a particular a particularrequest requestforfor a bin a bin replicates replicates the process the process at the at the encoder encoder for the corresponding for the corresponding
bin. The bin. decodedsymbols The decoded symbols thatthat are are usedused for for determining determining the probability the probability measures measures can can include one include one or or more morealready alreadydecoded decoded symbols symbols of the of the same same symbol symbol category, category, onemore one or or more already decoded already decodedsymbols symbolsof of thesame the same symbol symbol category category that that correspond correspond to data to data setssets (such (such
as blocks as blocks ororgroups groupsofofsamples) samples) of neighboring of neighboring spatial spatial and/or and/or temporal temporal locations locations (in (in relation toto the relation thedata dataset setassociated associated with with the the current current request request for a for a syntax syntax element), element), or one oror one or
morealready more alreadydecoded decodedsymbols symbolsof of differentsymbol different symbol categories categories that that correspond correspond to to data data sets sets
of the of the same and/orneighboring same and/or neighboringspatial spatialand/or and/ortemporal temporal locations(in(inrelation locations relationtotothe the data data set associated with the current request for a syntax element). set associated with the current request for a syntax element).
Eachrequest Each requestfor fora abin binwith with an an associated associated set set of of parameters parameters 317 317 that that is output is output of of the the parameterassigner parameter assigner316316isis fed fed into into aa bin bin buffer buffer selector selector 318. 318. Based Based on onthe theassociated associatedsetset of parameters of parameters 317, 317, the the bin bin buffer buffer selector selector 318 asends 318 sends a request request for a binfor 319ato bin one319 to one of two of two
or more or bin buffers more bin buffers 320 320and andreceives receivesaa decoded decodedbinbin325 325from from thethe selectedbinbinbuffer selected buffer320. 320. Thedecoded The decodedinput inputbin bin325 325isispotentially potentially modified modifiedandandthe thedecoded decoded output output binbin 326 326 – with - with
a potentially modified value – is send to the binarizer 314 as final response to the request a potentially modified value - is send to the binarizer 314 as final response to the request
for aa bin for bin with withananassociated associated set set of parameters of parameters 317. 317.
32
The bin buffer 320 to which the request for a bin is forwarded is selected in the same way The bin buffer 320 to which the request for a bin is forwarded is selected in the same way
as the as the bin binbuffer buffertotowhich whichthe the output output bintheofbin bin of thebuffer bin buffer selector selector at the encoder at the encoder side was side was
sent. sent.
In aa preferred In preferred embodiment embodiment of of thethe invention, invention, thethe binbin buffer buffer selector selector 318318 determines determines the the bin buffer bin buffer 320 to which 320 to the request which the request for for aa bin bin 319 is sent 319 is sent based based on on the the associated associated measure measure
for an for estimate of an estimate of the the probability probability for for one of the one of the two two possible possiblebin binvalues valuesfor forthe thecurrent current 2024201207
requested bin. requested bin. In In a preferred embodiment embodiment ofof theinvention, the invention,the theset setofofpossible possiblevalues valuesfor for the measure the measurefor forananestimate estimateofofthe theprobability probabilityfor forone oneofofthe thetwo twopossible possiblebinbinvalues values is is
finite and finite the bin and the bin buffer buffer selector selector 318 318contains containsa atable tablethat thatassociates associatesexactly exactlyoneone binbin
buffer 320 buffer with each 320 with eachpossible possiblevalue valueofofthe theestimate estimateofofthe the probability probability for for one one of of the the two two possible bin possible bin values, values,where where different different values values for for the the measure measure for anfor an estimate estimate of the of the
probability for probability for one of the one of the two twopossible possiblebin binvalues valuescan canbebeassociated associated with with thethe same same bin bin
buffer 320. In buffer In aa further further preferred preferred embodiment embodiment of the of the invention, invention, the the range range of possible of possible
values for values for the the measure for an measure for an estimate estimateofofthe the probability probability for for one of the one of the two two possible possible bin bin values is partitioned into a number of intervals, the bin buffer selector 318 determines the values is partitioned into a number of intervals, the bin buffer selector 318 determines the
interval index interval indexfor forthethecurrent current measure measure forestimate for an an estimate of the of the probability probability forthe for one of onetwoof the two possible bin possible bin values, values,and andthethebinbin buffer buffer selector selector 318318 contains contains a table a table that that associates associates
exactly one bin buffer 320 with each possible value for the interval index, where different exactly one bin buffer 320 with each possible value for the interval index, where different
values for values for the theinterval interval index indexcancan be be associated associated withwith the bin the same samebuffer bin buffer 320. In320. a In a preferred embodiment preferred embodiment of of theinvention, the invention,requests requestsfor forbins bins317 317with withopposite oppositemeasures measures forfor
an estimate an estimate of of the the probability probability for for one of the one of the two twopossible possiblebin binvalues values(opposite (oppositemeasure measure are those are whichrepresent those which representprobability probabilityestimates estimatesP Pand and1 1- −P)P)areareforwarded forwarded to to thethe same same
bin buffer 320. In a further preferred embodiment of the invention, the association of the bin buffer 320. In a further preferred embodiment of the invention, the association of the
measurefor measure forananestimate estimateofofthe theprobability probability for for one oneof of the the two twopossible possiblebin binvalues valuesfor forthe the currentbin current binrequest request with with a particular a particular bin bin buffer buffer is adapted is adapted over time. over time.
In aa further In further preferred preferred embodiment embodimentofofthetheinvention, invention,the thebin binbuffer bufferselector selector318 318 determinesthe determines thebin binbuffer buffer320 320totowhich which thethe request request for for a bin a bin 319 319 is sent is sent based based on on the the associated measure associated measureforforan an estimate estimate of the of the probability probability for less for the the less probable probable or or more more probable bin probable binvalue valueforforthethe current current requested requested bin.bin. In aInpreferred a preferred embodiment embodiment of the of the
invention,the invention, thesetsetofofpossible possible values values for measure for the the measure for an for an estimate estimate of the probability of the probability for for the less the less probable probable oror moremoreprobable probable binbin value value is finite is finite andand the the bin bin buffer buffer selector selector 318 318
containsa atable contains tablethat thatassociates associates exactly exactly onebuffer one bin bin buffer 320each 320 with with each possible possible value of the value of the
estimate of estimate of the theprobability probabilityfor forthe theless lessprobable probable or or more more probable probable bin value, bin value, where where different values different valuesforforthethemeasure measure forestimate for an an estimate of the of the probability probability for the for the less less probable probable or or moreprobable more probablebinbinvaluevaluecancan be associated be associated withwith the same the same bin buffer bin buffer 320. In320. In a further a further
preferred embodiment preferred embodiment of of thethe invention,thetherange invention, rangeof of possible possible values values forfor thethemeasure measure forfor
33
an estimate an estimateofofthe theprobability probabilityforfor thethe less less probable probable or more or more probable probable binisvalue bin value is partitionedinto partitioned intoa anumber number of intervals, of intervals, thebuffer the bin bin buffer selector selector 318 determines 318 determines the interval the interval
index for index for the the current current measure measureforforananestimate estimateofofthe theprobability probabilityfor for the the less less probable probableoror moreprobable more probablebin binvalue, value,and andthethebin binbuffer bufferselector selector318 318contains containsa atable tablethat thatassociates associates exactly one bin buffer 320 with each possible value for the interval index, where different exactly one bin buffer 320 with each possible value for the interval index, where different
valuesfor values forthe theinterval intervalindex index can can be associated be associated with with the samethe binsame bufferbin buffer 320. 320. In a further In a further
preferred embodiment preferred embodiment of of theinvention, the invention,the theassociation associationofofthe themeasure measureforforananestimate estimateofof 2024201207
the probability the probability for for the the less less probable probableorormore more probable probable bin value bin value forcurrent for the the current bin bin request with a particular bin buffer is adapted over time. request with a particular bin buffer is adapted over time.
After receiving After receiving a adecoded decodedbinbin 325 325 from from the selected the selected bin buffer bin buffer 320, 320, the binthe bin buffer buffer selector 318 selector 318 potentially potentially modifies modifies the input input bin bin 325 325 and sends the and sends the output output bin bin 326 326 -– with withaa potentially modified potentially value-–totothe modified value thebinarizer binarizer314. 314.The Theinput/output input/outputbinbinmapping mapping of the of the
bin buffer bin buffer selector selector 318 is the 318 is the inverse inverse of of the the input/output input/output bin mappingofofthe bin mapping thebin binbuffer buffer selector at the encoder side. selector at the encoder side.
In aa preferred In preferred embodiment embodiment of of theinvention, the invention,the thebin binbuffer bufferselector selector318 318does doesnot notmodify modify the value the value ofof the thebin, bin, i.e., i.e., the the output bin 326 output bin 326has hasalways always thethe same same value value as input as the the input bin 325. bin In aa further 325. In further preferred preferred embodiment embodiment of of theinvention, the invention,thethebin binbuffer bufferselector selector318 318 determinesthe determines the output output bin bin value value 326 326based basedononthe theinput inputbin binvalue value325 325and andthe themeasure measure for for
an estimate an estimate ofofthe theprobability probabilityfor forone oneof of thethe twotwo possible possible bin bin values values for current for the the current requested bin that is associated with the request for a bin 317. In a preferred embodiment requested bin that is associated with the request for a bin 317. In a preferred embodiment
of the of the invention, invention, thethe output output binbin value value 326 326isis setset equal equal to to the the input input bin bin value value325 325ifif the the measurefor measure forthe theprobability probabilityfor forone oneofofthethetwotwo possible possible binbin values values for for the the current current bin bin
requestisisless request lessthan than(or(orless lessthan than or or equal equal to) to) a particular a particular threshold; threshold; if theifmeasure the measure for the for the
probability for probability for one one of of the the two twopossible possiblebin binvalues valuesforforthe thecurrent currentbin binrequest requestisisgreater greater than or than or equal equaltoto(or(orgreater greaterthan) than)a aparticular particularthreshold, threshold,thetheoutput outputbinbin value value 326 326 is is
modified(i.e., modified (i.e., itit isisset setto tothe the opposite opposite of of the the input bin value). input bin value). In In aa further further preferred preferred embodiment embodiment of of thethe invention, invention, the the output output bin value bin value 326 326 is setisequal set equal to theto the bin input input bin value 325 if the measure for the probability for one of the two possible bin values for the value 325 if the measure for the probability for one of the two possible bin values for the
currentbin current binrequest request is is greater greater thanthan (or greater (or greater than orthan orto) equal equal to) a particular a particular threshold;threshold; if if the measure the measure forfor thethe probability probability for oneforofone theof the two two possible possible bin valuesbinforvalues for the the current bin current bin
request is request is less less than than ororequal equaltoto(or(orless lessthan) than) a particular a particular threshold, threshold, thethe output output bin bin
value326 value 326isismodified modified (i.e., (i.e., it issetset it is to to thethe opposite opposite of input of the the input bin value). bin value). In a preferred In a preferred
embodiment embodiment of of theinvention, the invention,the thevalue valueofofthe thethreshold thresholdcorresponds correspondstotoa avalue valueofof0.5 0.5for for the estimated probability for both possible bin values. the estimated probability for both possible bin values.
34
In aa further In further preferred preferred embodiment embodimentofofthetheinvention, invention,the thebin binbuffer bufferselector selector318 318 determinesthe determines theoutput outputbin binvalue value326 326based based on on thethe input input binbin value value 325325 andand the the identifier, identifier,
specifying an specifying anestimate estimateforforwhich which of the of the two two possible possible bin values bin values represents represents the the less less probable or probable or more moreprobable probable binbin value value forfor thethe current current binbin request,that request, thatisisassociated associatedwith with the request the request for for aa bin bin 317. 317. InIn aapreferred preferredembodiment embodiment of the of the invention, invention, the output the output bin bin value326 value 326isissetsetequal equal to to thethe input input bin bin valuevalue 325 if325 the if the identifier identifier specifies specifies that thethat theoffirst of first
the two the possible bin two possible bin values values represents represents the the less less probable (or more probable (or probable)bin more probable) binvalue valuefor for 2024201207
the current the current bin bin request, request, and andthe theoutput outputbin binvalue value326326 is is modified modified (i.e.,ititisisset (i.e., set toto the the opposite of the input bin value) if identifier specifies that the second of the two possible opposite of the input bin value) if identifier specifies that the second of the two possible
bin values bin values represents represents the the less less probable (or more probable (or moreprobable) probable)binbinvalue valueforforthethecurrent currentbin bin request. request.
As described above, the bin buffer selector sends a request for a bin 319 to one of the two As described above, the bin buffer selector sends a request for a bin 319 to one of the two
or more bin buffers 320. The bin buffers 20 represent first-in-first-out buffers, which are or more bin buffers 320. The bin buffers 20 represent first-in-first-out buffers, which are
fed with fed with sequences sequences of of decoded decodedbins bins 321 321 from fromthetheconnected connectedbin bindecoders decoders322.322.AsAs response to response to aa request request for for aa bin bin 319 319that thatisis sent sent to to aa bin bin buffer buffer 320 320from fromthethebin binbuffer buffer selector318, selector 318,the thebinbin buffer buffer 320 320 removes removes the binthe bincontent of its of its content that was that was first firstthe fed into fed into the bin buffer 320 and sends it to the bin buffer selector 318. Bins that are earlier sent to the bin buffer 320 and sends it to the bin buffer selector 318. Bins that are earlier sent to the
bin buffer bin buffer320 320areare earlier earlier removed removed andtosent and sent the to binthe bin buffer buffer selectorselector 318. 318.
Eachofofthe Each the two twoorormore more bin bin buffers320320 buffers is is connected connected with with exactly exactly one one bin bin decoder decoder 322 322 and each and eachbin bindecoder decoderisisonly onlyconnected connected with with one one bin bin buffer buffer 320.320. EachEach bin decoder bin decoder 322 322 reads codewords reads 323,which codewords 323, which represent represent sequences sequences of of bits,from bits, froma a separatepartial separate partial bitstream bitstream 324. The 324. Thebin bin decoder decoderconverts convertsa acodeword codeword 323323 intointo a sequence a sequence of bins of bins 321321 thatthat is is senttoto sent
the connected the connectedbin binbuffer buffer320. 320.TheThe overall overall decoding decoding algorithm algorithm converts converts two or two more or more
partial bitstreams partial bitstreams 324 into a number 324 into number ofofdecoded decoded syntax syntax elements, elements, where where the number the number of of partial bitstreams partial bitstreamsisisequal equalto tothethe number number ofbuffers of bin bin buffers and and bin bin decoders decoders and the decoding and the decoding
of syntax of syntax elements elementsis istriggered triggeredby by requests requests for for new new syntax syntax elements. elements. In a preferred In a preferred
embodiment embodiment of of thethe invention, invention, a bin a bin decoder decoder 322 322 converts converts codewords codewords 323 of323 of a variable a variable
numberofofbits number bitsinto intoa asequence sequence of aofvariable a variable number number of 321. of bins binsOne 321.advantage One advantage of of embodiments embodiments of of thethe invention invention is is thatthe that thedecoding decoding of of bins bins from from the the twotwo or more or more partial partial
bitstreams can bitstreams can bebedone donein in parallel(e.g. parallel (e.g.for fordifferent differentgroups groupsofofprobability probabilitymeasures), measures), whichreduces which reducesthe theprocessing processingtime timefor forseveral several implementations. implementations.
Anotheradvantage Another advantageof of embodiments embodiments of invention of the the invention is that is that the decoding, the bin bin decoding, which which is is donebybythethe done bin bin decoders decoders 322, 322, can becan be specifically specifically designeddesigned for different for different sets of sets of
parameters317. parameters 317.InIn particular, particular, the the bin bin encoding anddecoding encoding and decodingcancanbebe optimized optimized (in(in terms terms
of coding of coding efficiency efficiency and/or and/orcomplexity) complexity)forfordifferent differentgroups groupsof ofestimated estimated probabilities. probabilities.
35
Onthe On theone onehand hand side, side, thisthis allows allows a reduction a reduction of encoding/decoding of the the encoding/decoding complexity complexity
relative to relative to state-of-the-art state-of-the-artentropy entropycoding coding algorithms algorithms with with similar similar coding efficiency. On coding efficiency. On
the other the other hand handside, side,it itallows allows an an improvement improvement of theof the coding coding efficiency efficiency relative relative to to state-of-the-art entropy state-of-the-art entropycoding coding algorithms algorithms with with similar similar encoding/decoding complexity.InIn encoding/decoding complexity.
a preferred a preferred embodiment embodiment of invention, of the the invention, the decoders the bin bin decoders 322 implement 322 implement different different
decodingalgorithms decoding algorithms(i.e. (i.e. mapping mapping ofofbin binsequences sequencesonto ontocodewords) codewords) for for different different groups groups
of measures of for an measures for an estimate estimateofof the the probability probability for for one of the one of the two possible bin two possible bin values values 317 317 2024201207
for the current bin request. In for In aa further further preferred preferred embodiment embodiment ofof theinvention, the invention,the thebin bin decoders 322 decoders 322implement implement different different decoding decoding algorithms algorithms for for different different groups groups of measures of measures
for an estimate of the probability for the less probable or more probable bin value for the for an estimate of the probability for the less probable or more probable bin value for the
current requested bin. current requested bin.
Thebin The bindecoders decoders322 322do do thethe inverse inverse mapping mapping of corresponding of the the corresponding bin encoders bin encoders at the at the encoderside. encoder side.
In aa preferred In preferred embodiment embodiment ofofthe theinvention, invention,the the bin bin decoders decoders322 322- –ororone oneorormore moreofof the the
bin decoders bin decoders -– represent represent entropy entropy decoders decoders that that directly directly map codewords323 map codewords 323onto onto sequencesofof bins sequences bins 321. 321. Such Suchmappings mappingscancan be be efficientlyimplemented efficiently implementedand and don't don't require require a a complexarithmetic complex arithmeticcoding coding engine. engine. TheThe mapping mapping of codewords of codewords onto sequences onto sequences of bins of bins
has to has to be be unique. unique. InIna apreferred preferredembodiment embodimentof of the the invention, invention, thethe mapping mapping of of codewords 323 codewords 323 onto ontosequences sequencesof ofbinsbins 321321 is bijective.In In is bijective. a further a further preferred preferred embodiment embodiment of of thethe invention,thethebin invention, bindecoders decoders 310 310 – or - or oneone or or more more of the of the bin bin decoders decoders
– represent - represententropy entropydecoders decoders thatthat directly directly map variable-length map variable-length codewords codewords 323 into323 into variable-length sequences variable-length sequencesofofbins bins321. 321.InIna apreferred preferredembodiment embodiment of the of the invention, invention, the the
input codewords input codewordsrepresent represent redundancy-free redundancy-free codescodes such such as as general general huffman huffman codes or codes or
canonical huffman canonical huffmancodes. codes.TwoTwo examples examples for theforbijective the bijective mapping mapping of redundancy-free of redundancy-free
codestotobin codes binsequences sequences are are illustrated illustrated in Table in Table 3. 3. In aa further In further preferred preferred embodiment embodiment of of thethe invention, invention, the the bin bin decoders decoders 322 322 - or – ororone one or moreofofthe more thebin bindecoders decoders – represent - represent entropy entropy decoders decoders that that directly directly map fixed-length map fixed-length
codewords323 codewords 323 onto onto variable-length variable-length sequences sequences of binsof321. bins In321. In a preferred a further further preferred embodiment embodiment of of thethe invention,thethebin invention, bindecoders decoders 322 322 – or - or oneone or or more more of the of the binbin decoders decoders
– represent - represent entropy entropydecoders decodersthatthat directly directly map map variable-length variable-length codewords codewords 323 onto323 onto
fixed-length sequences fixed-length sequences of of bins bins 321. 321.
Thus, Fig. Thus, Fig. 77 and and8 8showed showed an embodiment an embodiment for anfor an encoder encoder for encoding for encoding a sequence a sequence of of symbols33and symbols anda adecoder decoderfor forreconstructing reconstructingsame. same.The The encoder encoder comprises comprises an assigner an assigner 304 304
configured toto assign configured assigna anumber number of parameters of parameters 305each 305 to to symbol each symbol of the sequence of the sequence of of symbols.The symbols. Theassignment assignmentis is based based on on information information contained contained within within previous previous symbols symbols of of 36
the sequence the sequence of of symbols symbolssuch such as as thethe category category of the of the syntax syntax element element 1 to 1the to the representation -- such representation as binarization such as binarization -- of of which the current which the current symbol symbolbelongs belongsandand which, which,
accordingtotothethe according syntax syntax structure structure of syntax of the the syntax elements elements 1, is currently 1, is currently be expected be expected which which expectation, in expectation, in turn, turn, is is deducible fromthe deducible from thehistory historyofofprevious previous syntax syntax elements elements 1 1 and and symbols3.3.Further, symbols Further,the theencoder encoder comprises comprises a plurality a plurality of entropy of entropy encoders encoders 10 of 10 each each of whichisis configured which configured to to convert convert the the symbols symbols 33forwarded forwardedtotothe therespective respectiveentropy entropyencoder encoder into aa respective into respective bitstream bitstream 312, 312, and a selector and a selector 306 configured to 306 configured to forward forwardeach eachsymbol symbol3 3 2024201207
to aa selected to selected one one of of the the plurality pluralityofofentropy entropy encoders encoders 10, 10, the the selection selection depending depending ononthe the numberofofparameters number parameters 305305 assigned assigned to the to the respective respective symbol symbol 3. The3. The assignor assignor 304 could 304 could
be thought be thoughtof of as as being being integrated integrated into selector into selector 206 in 206 orderintoorder yield to yield a respective a respective selector selector 502. 502.
Thedecoder The decoderfor forreconstructing reconstructinga asequence sequence of of symbols symbols comprises comprises a plurality a plurality of entropy of entropy
decoders 322, decoders 322,each eachofofwhich which is configured is configured to convert to convert a respective a respective bitstream bitstream 323 323 into into symbols321; symbols 321;ananassigner assigner316 316 configured configured to to assign assign a number a number of parameters of parameters 317 317 to to each each
symbol315 symbol 315ofofa asequence sequenceofofsymbols symbolsto to bebe reconstructed reconstructed based based on on information information contained contained
within previously within previously reconstructed reconstructed symbols symbolsofofthethesequence sequenceof of symbols symbols (see (see 326326 and and 327 327 in in
Fig. 8); Fig. 8); and and aa selector selector318 318configured configured to toretrieve retrieveeach eachsymbol symbol of of the thesequence sequence of of symbols symbols
to be to be reconstructed reconstructedfrom froma aselected selectedoneone of of thethe plurality plurality of of entropy entropy decoders decoders 322, 322, the the selection depending selection depending ononthe thenumber numberof of parameters parameters defined defined to the to the respective respective symbol. symbol. The The
assigner 316 assigner 316may maybe be configured configured suchsuch that that the the number number of parameters of parameters assigned assigned to each to each
symbol comprises,ororis, symbol comprises, is, aa measure measurefor forananestimate estimateof of aa probability probability ofof distribution distributionamong among
the possible the possible symbol symbolvalues valuesa arespective respectivesymbol symbol may may assume. assume. Again,Again, assignor assignor 316 and316 and
selector 318 selector 318 may may be bethought thoughtofofasasintegrated integrated into into one block, aa selector one block, selector 402. 402. The The sequence sequence
of symbols of symbols to to be bereconstructed reconstructedmay maybebeofofa abinary binaryalphabet alphabetandandthethe assigner316316 assigner maymay be be
configured configured such such thatthat the the estimate estimate ofprobability of the the probability distribution distribution consistsconsists of afor of a measure measure for an estimate an estimate of of aa probability probability ofofaaless less probable probableorormore more probable probable bin bin value value of two of the the two possible bin possible bin values values ofof the the binary binaryalphabet alphabetand and an an identifierspecifying identifier specifyingan an estimate estimate forfor
whichofofthe which thetwo twopossible possiblebin binvalues valuesrepresents representsthetheless lessprobable probableorormore more probable probable bin bin value. The value. assigner 316 The assigner 316may may furtherbebeconfigured further configured to to internallyassign internally assigna acontext contexttotoeach each symbolofofthe symbol thesequence sequence of of symbols symbols 315betoreconstructed 315 to be reconstructed based based on the on the information information
contained within contained withinpreviously previouslyreconstructed reconstructed symbols symbols of sequence of the the sequence of symbols of symbols to be to be reconstructed with reconstructed witheach eachcontext context having having a respective a respective probability probability distribution distribution estimate estimate
associatedtherewith, associated therewith, andand to adapt to adapt the probability the probability distribution distribution estimate estimate for each for eachtocontext to context
an actual an actual symbol statistic based symbol statistic based on on symbol valuesof symbol values of previously previouslyreconstructed reconstructedsymbols symbolstoto whichthe which therespective respectivecontext contextisisassigned. assigned.The The context context maymay take take into into account account a spatial a spatial
relationship or relationship or neighborhood ofpositions neighborhood of positions to to which whichthe the syntax syntaxelements elementsbelong belongsuch such as as inin
video or video or picture picture coding, coding,ororeven evenin intables tablesinincase caseof of financialapplications. financial applications.Then, Then, thethe
37
measure for measure for the the estimate estimate of of the the probability probability distribution distributionfor foreach eachsymbol symbol may be may be determinedbased determined basedon on thethe probability probability distribution distribution estimate estimate associated associated withwith the context the context
assigned to assigned to the the respective respectivesymbol symbol such such as quantizing, as by by quantizing, or using or using as anasindex an index into ainto a respective table, the probability distribution estimate associated with the context assigned respective table, the probability distribution estimate associated with the context assigned
with the with the respective respective symbol symbol(in(inthe thebelow below embodiments embodiments indexed indexed by aindex by a pipe pipe along index along with aarefinement with refinementindex) index) to one to one of a of a plurality plurality of probability of probability distribution distribution estimate estimate
representatives (clipping representatives (clipping away therefinement away the refinementindex) index)ininorder ordertotoobtain obtainthethemeasure measure forfor 2024201207
the estimate of the probability distribution (the pipe index indexing the partial bitstream the estimate of the probability distribution (the pipe index indexing the partial bitstream
312). The 312). selector may The selector beconfigured may be configuredsuch suchthatthata abijective bijective association association is is defined defined between between
the plurality the plurality of of entropy encodersand entropy encoders andthetheplurality pluralityofofprobability probabilitydistribution distributionestimate estimate representatives. The representatives. selector 18 The selector 18may maybe be configured configured to change to change a quantization a quantization mapping mapping
froma arange from rangeof of thethe probability probability distribution distribution estimates estimates to the to the plurality plurality of probability of probability
distribution estimate distribution estimate representatives representatives in in aapredetermined deterministic way predetermined deterministic waydepending dependingon on
previously reconstructed previously reconstructed symbols symbolsofofthe thesequence sequenceofofsymbols, symbols, over over time.That time. That is,selector is, selector 318 may change the quantization step sizes, i.e. the intervals of probability distributions 318 may change the quantization step sizes, i.e. the intervals of probability distributions
mappedonto mapped ontothetheindividual individualprobability probabilityindices indicesbijectively bijectively associated associated with withthe theindividual individual entropy decoders. entropy decoders.The Theplurality pluralityofofentropy entropydecoders decoders 322, 322, in in turn,maymay turn, be configured be configured to to
adapt their adapt their way wayofofconverting convertingsymbols symbols intointo bit bit streams streams responsive responsive to a to a change change in thein the quantization mapping. quantization mapping.For Forexample, example, each each entropy entropy decoder decoder 322 322 may may be be optimized optimized for, i.efor, i.e mayhave may havean an optimal optimal compression compression rate afor, rate for, a certain certain probability probability distribution distribution estimate estimate
within the within the respective respectiveprobability probabilitydistribution distributionestimate estimatequantization quantizationinterval, interval,and and maymay
changeits change its codeword/symbol sequence codeword/symbol sequence mapping mapping SO asso toas to adapt adapt the position the position of this of this certain certain
probability distribution probability distribution estimate within the estimate within the respective respective probability probability distribution distribution estimate estimate quantization interval quantization interval upon upon aa change changeofofthe the latter latter so SO as as to tobe be optimized. optimized. The selector may The selector may
be configured be configuredtoto change changethe thequantization quantizationmapping mapping such such thatthat rates rates by by which which the the symbols symbols
are retrieved are retrieved from the plurality from the plurality of of entropy decoders, are entropy decoders, are made madeless lessdispersed. dispersed.AsAstotothethe binarizer 314 binarizer it is 314 it is noted that same noted that mebebeleft same me leftaway awayif if thethe syntax syntax elements elements are are already already
binary. Further, depending on the type of decoder 322, the existence of the buffers 320 is binary. Further, depending on the type of decoder 322, the existence of the buffers 320 is
not necessary. not necessary.Further, Further, thethe buffers buffers may may be integrated be integrated within within the the decoders. decoders.
Terminationofoffinite Termination finite syntax syntax element sequences element sequences
In aa preferred In preferred embodiment embodiment of of thethe invention, invention, the the encoding encoding and decoding and decoding is doneis for done a for a finite set finite set of of syntax syntax elements. Oftenaacertain elements. Often certain quantity quantityofofdata datasuch suchasasa still a stillimage, image,a a frame or field of a video sequence, a slice of an image, a slice of a frame or a field of a frame or field of a video sequence, a slice of an image, a slice of a frame or a field of a
video sequence, video sequence,orora aset setofofsuccessive successiveaudioaudio samples, samples, etc.etc. is is coded. coded. For For finite finite sets sets of of
syntax elements, syntax elements,iningeneral, general,the thepartial partial bitstreams bitstreams that that are are created created atat the the encoder encoderside side have to have to be be terminated, terminated, i.e., i.e., itithas hastotobebeensured ensured that thatall allsyntax syntaxelements elements cancan bebe decoded decoded
38
from the transmitted or stored partial bitstreams. After the last bin is inserted into the from the transmitted or stored partial bitstreams. After the last bin is inserted into the
corresponding bin corresponding buffer 308, bin buffer 308, the the bin bin encoder 310 has encoder 310 has toto ensure ensure that that aa complete complete codewordisiswritten codeword writtentotothe thepartial partialbitstream bitstream312. 312.IfIfthe thebin binencoder encoder 310310 represents represents an an
entropy encoder entropy encoderthat that implements implements a directmapping a direct mappingof of binbin sequences sequences ontoonto codewords, codewords, the the bin sequence bin sequencethatthat is stored is stored in bin in the thebuffer bin buffer after writing after writing the last the lastthebin bin to bin to the bin buffer buffer
mightnot might notrepresent representa abinbinsequence sequence thatthat is associated is associated withwith a codeword a codeword (i.e.,(i.e., it might it might
represent aa prefix represent prefix of of two or more two or morebin binsequences sequencesthat thatare areassociated associatedwith withcodewords). codewords). In In 2024201207
such aa case, such case, any any ofof the the codewords codewords associated associated with with a bin a bin sequence sequence thatthat contains contains the the bin bin
sequenceininthe sequence thebin binbuffer bufferasasprefix prefixhas hastotobebewritten writtento tothethepartial partialbitstream bitstream(the (thebinbin buffer has buffer has to to be be flushed). flushed). This This could couldbebedone doneby by inserting inserting binsbins with with a particular a particular or or an an
arbitrary value into the bin buffer until a codeword is written. In a preferred embodiment arbitrary value into the bin buffer until a codeword is written. In a preferred embodiment
of the of the invention, invention, the the bin bin encoder selects one encoder selects one of of the the codewords withminimum codewords with minimum length length (in (in
additiontotothe addition theproperty property that that thethe associated associated bin sequence bin sequence must the must contain contain the bininsequence in bin sequence
the bin the bin buffer buffer as as prefix). prefix).At Atthe thedecoder decoder side, side,the thebin decoder bin decoder322 322 may decodemore may decode morebins bins than required for the last codeword in a partial bitstream; these bins are not requested by than required for the last codeword in a partial bitstream; these bins are not requested by
the bin the bin buffer buffer selector selector 318 318 and are discarded and are and ignored. discarded and ignored.The Thedecoding decoding of of thethe finiteset finite set of symbols of symbolsisiscontrolled controlledbybyrequests requestsfor fordecoded decoded syntax syntax elements; elements; if further if no no further syntax syntax
element is requested for a quantity of data, the decoding is terminated. element is requested for a quantity of data, the decoding is terminated.
Transmissionand Transmission andmultiplexing multiplexingofofthe thepartial partial bitstreams bitstreams
Thepartial The partial bitstreams bitstreams 312 that are 312 that are created created by the encoder by the encoder can canbebetransmitted transmittedseparately, separately, or they or they can canbebemultiplexed multiplexed intointo a single a single bitstream, bitstream, or codewords or the the codewords of the of the partial partial
bitstreams can be interleaved in a single bitstream. bitstreams can be interleaved in a single bitstream.
In an In anembodiment embodimentof theofinvention, the invention, each partial each partial bitstream bitstream for a of for a quantity quantity data is of data is written written
to one to onedata datapacket. packet. TheThe quantity quantity of data of data can becan an be an arbitrary arbitrary set of elements set of syntax syntax elements such as such as a still a still picture, a field picture, a field or or frame frameof of a video a video sequence, sequence, a of a slice slice of apicture, a still still picture, a sliceaofslice a of a field or frame of a video sequence, or a frame of audio samples, etc. field or frame of a video sequence, or a frame of audio samples, etc.
In another In preferred embodiment another preferred embodiment of of thethe invention, invention, twotwo or or more more of the of the partial partial bitstreams bitstreams
for a quantity of data or all partial bitstreams for a quantity of data are multiplexed into for a quantity of data or all partial bitstreams for a quantity of data are multiplexed into
one data one datapacket. packet.TheThe structure structure of a of a packet data data packet that contains that contains multiplexed multiplexed partial partial
bitstreamsisisillustrated bitstreams illustratedininFigure Figure9. 9.
Thedata The datapacket packet400 400consists consistsofofa aheader header andand oneone partition partition forfor thethe data data of of each each partial partial
bitstream (for bitstream (for the the considered consideredquantity quantity of of data). data). The The header header 400 400 of theof thepacket data data packet contains indications contains indications for forthe thepartitioning partitioningofofthethe (remainder (remainder of the) of the) data data packetpacket into into
segmentsofofbitstream segments bitstreamdata data402. 402.Beside Beside thethe indications indications forfor thethe partitioning,thetheheader partitioning, header 39
maycontain may containadditional additionalinformation. information. In In a preferred a preferred embodiment embodiment of the of the invention, invention, the the indicationsfor indications forthe thepartitioning partitioning of of thethe datadata packet packet arelocations are the the locations of the of the beginning beginning of the of the data segments data segmentsininunits unitsofofbits bitsororbytes bytesorormultiples multiplesofofbits bitsorormultiples multiplesofofbytes. bytes.InIna a preferred embodiment preferred embodiment of the of the invention, invention, the locations the locations of theofbeginning the beginning of the of the data data segments segments areare coded coded as absolute as absolute values values in theofheader in the header of packet, the data the data packet, either either relative to relative to
the beginning the beginningofofthethedata datapacket packetororrelative relativetotothe theend endofofthetheheader headeror or relativetotothethe relative
beginning of beginning of the the previous previous data data packet. packet. In In aa further further preferred preferred embodiment of the embodiment of the 2024201207
invention, the invention, the locations locations of of the the beginning beginningofofthe thedata datasegments segmentsareare differentiallycoded, differentially coded, i.e., only i.e., onlythe thedifference differencebetween between the the actual actualbeginning beginning of of aa data data segment andaaprediction segment and prediction for the beginning for of the beginning of the data data segment segmentisiscoded. coded.The The predictioncancan prediction be be derived derived based based on on already known already knownorortransmitted transmittedinformation information such such as as thethe overallsize overall sizeofofthe thedata datapacket, packet,the the size of the header, the size the number number ofofdata datasegments segments in in thethe data data packet, packet, thethe location location of of thethe
beginningofofpreceding beginning precedingdata datasegments. segments. In In a preferred a preferred embodiment embodiment ofinvention, of the the invention, the the location of the beginning location of the beginning of the first first data data packet packet is is not not coded but inferred coded but inferred based onthe based on the size of the data packet header. At the decoder side, the transmitted partition indications size of the data packet header. At the decoder side, the transmitted partition indications
are used are used for for deriving deriving the thebeginning beginningofofthethedata data segments. segments. The The datadata segments segments are then are then
used as used as partial partial bitstreams and the bitstreams and the data datacontained containedininthe thedata datasegments segments areare fedfed into into thethe
correspondingbin corresponding bindecoders decodersininsequential sequentialorder. order.
There are several alternatives for multiplexing the partial bitstreams into a data packet. There are several alternatives for multiplexing the partial bitstreams into a data packet.
Onealternative, One alternative, which which can reduce can reduce the require the require side information, side information, in particular in particular for cases infor cases in
which the sizes of the partial bitstreams are very similar, is illustrated in Fig. 10. The which the sizes of the partial bitstreams are very similar, is illustrated in Fig. 10. The
payloadofofthethe payload data data packet, packet, i.e.,i.e., thethe datadata packet packet 410 without 410 without its 411, its header header 411, is partitioned is partitioned
into segments into segments412 412a apredefined predefined way.way. As anAsexample, an example, the datathepacket data packet payloadpayload can be can be
partitionedinto partitioned intosegments segments of the of the same same size. size. Then Then each each is segment segment is associated associated with a partial with a partial
bitstreamororwith bitstream with thethe first first part part of aofpartial a partial bitstream bitstream 413. 413. If If a partial a partial bitstream bitstream is greater is greater
thanthe than theassociated associated data data segment, segment, its remainder its remainder 414 is 414 isinto placed placed the into unusedthe unused space at thespace at the
end ofof other end otherdata datasegments. segments. This This cancan be done be done in a in wayathat waythe thatremaining the remaining part of part a of a bitstream is bitstream is inserted inserted in in reverse reverse order order (starting (startingfrom from the theend end of of the the data data segment), segment), which which
reduces the reduces the side side information. information. The Theassociation associationofofthe theremainders remaindersofofthe thepartial partial bitstreams bitstreams to data to data segments and, when segments and, whenmore more than than oneone remainder remainder is added is added todata to a a data segment, segment, thethe start start
point for point for one or more one or moreofofthe the remainders remaindershave have to to bebe signaled signaled insidethethebitstream, inside bitstream,e.g. e.g.inin the data packet header. the data packet header.
Interleaving of Interleaving of variable-length variable-length codewords codewords
For some For someapplications, applications,the theabove abovedescribed described multiplexing multiplexing of of thethe partialbitstreams partial bitstreams (fora (fora quantity of quantity of syntax syntax elements) in one elements) in one data data packet packet can have the can have the following following disadvantages: disadvantages:OnOn 40
the one hand side, for small data packets, the number of bits for the side information that the one hand side, for small data packets, the number of bits for the side information that
is required is forsignaling required for signalingthethe partitioning partitioning can can become become significant significant relativerelative to thedata to the actual actual data in the in the partial partial bitstreams, bitstreams,which which finally finally reduces reduces the coding the coding efficiency. efficiency. On hand, On the other the other hand, the multiplexing may not suitable for applications that require a low delay (e.g. for video the multiplexing may not suitable for applications that require a low delay (e.g. for video
conferencingapplications). conferencing applications). With Withthe the described describedmultiplexing, multiplexing,the theencoder encodercannot cannotstart startthe the transmission of transmission of aa data data packet packet before before the the partial partial bitstreams bitstreams have have been completelycreated, been completely created, since the since the locations locations of of the the beginning beginning of of the the partitions partitionsare arenot notknown known before. before. Furthermore, Furthermore, 2024201207
in general, the decoder has to wait until it receives the beginning of the last data segment in general, the decoder has to wait until it receives the beginning of the last data segment
before it before it can can start startthe thedecoding decoding of of aa data data packet. packet. For For applications applications as as video video conferencing conferencing
systems, these systems, these delays delays can canadd-up add-uptotoananadditional additionaloverall overalldelay delayofofthe thesystem systemofofseveral several video pictures (in particular for bit rates that are close to the transmission bit rate and for video pictures (in particular for bit rates that are close to the transmission bit rate and for
encoders/decodersthat encoders/decoders thatrequire require nearly nearly the time the time interval interval betweenbetween two for two pictures pictures for encoding/decodinga picture), encoding/decoding a picture), which which is critical is critical for applications. for such such applications. In toorder to In order
overcome the overcome thedisadvantages disadvantagesfor forcertain certain applications, applications, the encoder of the encoder of a apreferred preferred embodiment embodiment of of thethe invention invention can can be configured be configured in athat in a way waythe thatcodewords the codewords that arethat are generated by generated bythe thetwo twoorormore more binbin encoders encoders are are interleaved interleaved intointo a single a single bitstream. bitstream. TheThe
bitstream with bitstream withthe theinterleaved interleavedcodewords codewords can can be directly be directly send send to thetodecoder the decoder (when (when
neglecting aa small neglecting smallbuffer bufferdelay, delay,see seebelow). below).AtAtthethe decoder decoder side, side, thethe twotwo or more or more bin bin decoders read decoders readthethe codewords codewords directlyfrom directly fromthethebitstream bitstreaminindecoding decoding order;thethedecoding order; decoding canbebestarted can startedwith with thethe first first received received bit. bit. In addition, In addition, noinformation no side side information is required is required for for signaling the multiplexing signaling the multiplexing(or (or interleaving) interleaving) ofof the the partial partial bitstreams. bitstreams. A further way A further wayofof reducing the reducing the decoder decodercomplexity complexitycancan be be achieved achieved whenwhen the decoders the bin bin decoders 322 don't 322 don't read read variable-length variable-length codewords codewords fromfrom a global a global bitbit buffer,but buffer, butinstead insteadthey theyalways always read read fixed- fixed-
length sequences length sequencesofofbits bits from fromthe theglobal globalbitbit buffer buffer and addthese and add these fixed-length fixed-length sequences sequences of bits of bits to to aa local local bit bit buffer, buffer, where whereeach each bin bin decoder decoder 322 is322 is connected connected with a local with a separate separate local bit buffer. bit buffer.TheThe variable-length variable-length codewords codewords arearethen thenread readfrom fromthethelocal localbit bit buffer. buffer. Hence, Hence,
the parsing the parsing of of variable-length variable-lengthcodewords codewords can can be done be done in parallel, in parallel, only only the access the access of of fixed-length sequences fixed-length sequencesofofbits bits has has to to be be done doneinin aa synchronized synchronizedway, way,butbutsuch such an an access access
of fixed-length of fixed-length sequences sequencesof of bits bits is is usually usually very very fast, fast, so that SO that the overall the overall decoding decoding
complexitycan complexity canbebereduced reducedfor forsome some architectures.The architectures. Thefixed fixednumber number of bins of bins that that arearesent sent to a particular local bit buffer can be different for different local bit buffer and it can also to a particular local bit buffer can be different for different local bit buffer and it can also
vary over vary over time, time, depending dependingononcertain certainparameters parametersasasevents eventsininthe thebin bindecoder, decoder,binbinbuffer, buffer, or bit or bit buffer. buffer. However, However, thethe number numberof ofbits bitsthat thatare areread readbybya aparticular particularaccess accessdoes doesnot not dependonon depend thethe actual actual bitsbits thatthat are are readread during during the particular the particular access,access, which which is is the important the important
difference to difference to the the reading of variable-length reading of variable-length codewords. codewords.The The reading reading of of thethe fixed-length fixed-length
sequences of bits is triggered by certain events in the bin buffers, bin decoders, or local sequences of bits is triggered by certain events in the bin buffers, bin decoders, or local
bit buffers. bit buffers. As an example, As an example,itit isis possible possible to to request request the the reading readingofofa anew new fixed-length fixed-length
sequence ofbits sequence of bits when whenthethenumber number of of bits bits thatare that arepresent presentinina aconnected connected bitbuffer bit bufferfalls falls 41
belowaapredefined below predefinedthreshold, threshold,where wheredifferent differentthreshold thresholdvalues valuescan canbebe used used forfor different different
bit buffers. At the encoder, it has to be insured that the fixed-length sequences of bins are bit buffers. At the encoder, it has to be insured that the fixed-length sequences of bins are
insertedininthe inserted thesame same order order intointo the the bitstream, bitstream, in which in which they they are readare read from the from the at bitstream bitstream at the decoder side. It is also possible to combine this interleaving of fixed-length sequences the decoder side. It is also possible to combine this interleaving of fixed-length sequences
with aalow-delay with low-delay control control similar similar to the to the ones ones explained explained above. above. In the following, In the following, a a preferred embodiment preferred embodiment forfor theinterleaving the interleavingofoffixed-length fixed-lengthsequences sequences ofof bitsisis described. bits described. For further For furtherdetails detailsregards regardsthethe latter latter interleaving interleaving schemes, schemes, reference reference is madeistomade to 2024201207
WO2011/128268A1. WO2011/128268A1
After having After havingdescribed describedembodiments embodiments according according to which to which the previously the even even previously coding coding is is used for used for compressing compressing video video data, data, is is described described as as an even further an even further embodiment for embodiment for implementingembodiments implementing embodiments of present of the the present invention invention whichwhich renders renders the implementation the implementation
especially effective especially effective in in terms of aa good terms of goodtrade-off trade-offbetween between compression compression raterate on one on the the one handand hand andlook-up look-uptable tableandand computation computation overhead overhead onother on the the other hand. hand. In particular, In particular, the the following embodiments following embodiments enable enable the the use use of computationally of computationally less less complex complex variable variable lengthlength
codesininorder codes orderto to entropy-code entropy-code the individually the individually bitstreams, bitstreams, and effectively and effectively cover portions cover portions
of the of the probability probability estimate. estimate. InIn the the embodiments embodiments described described below, below, the symbols the symbols are of are of
binary nature binary natureand andthetheVLCVLC codescodes presented presented below effectively below effectively cover cover the the probability probability
estimate represented by, for example, R , extending within [0;0.5]. estimate represented by, for example, RLPS, extending LPS within [0;0.5].
In particular, In particular,the theembodiments outlinedbelow embodiments outlined belowdescribe describepossible possibleimplementations implementations for for thethe
individual entropy individual entropy coders coders310 310and and decoders decoders 322322 in Fig. in Fig. 7 to7 17, to 17, respectively. respectively. They They are are suitable for suitable for coding codingofofbins, bins,i.e. i.e.binary binarysymbols, symbols, as they as they occuroccur in or in image image videoor video
compressionapplications. compression applications.Accordingly, Accordingly,these theseembodiments embodiments are also are also applicable applicable to image to image
or video or codingwhere video coding wheresuch such binary binary symbols symbols are are split-up split-up into into thethe oneone or or more more streams streams of of bins 307 bins 307 to to be be encoded encodedand andbitstreams bitstreams324 324 to to bebe decoded, decoded, respectively, respectively, where where each each suchsuch
bin stream bin stream can canbebeconsidered consideredasasa arealization realizationofofa aBernoulli Bernoulliprocess. process.The The embodiments embodiments
described below described belowuseuseoneone or or moremore of the of the below-explained below-explained various various so-called so-called variable-to- variable-to-
variable-codes (v2v-codes) variable-codes (v2v-codes)totoencode encodethethebin binstreams. streams.A A v2v-code v2v-code can can be considered be considered as as two prefix-free two prefix-free codes codes with withthe the same samenumber number of of codecode words. words. A primary, A primary, and aand a secondary secondary
prefix-free code. prefix-free code. Each codeword Each code wordofofthetheprimary primary prefix-freecode prefix-free code is is associatedwith associated with oneone
code word code wordof of thethe secondary secondary prefix-free prefix-free code. code. In accordance In accordance with with the the below-outlined below-outlined
embodiments,atatleast embodiments, least some someofofthe theencoders encoders310 310and and decoders decoders 322, 322, operate operate as as follows: follows: To To
encodeaaparticular encode particular sequence sequenceofofbins bins307, 307,whenever whenever a code a code wordword of primary of the the primary prefix- prefix-
free code free is read code is read from buffer 308, from buffer 308, the the corresponding correspondingcode-word code-wordof of thethe secondary secondary prefix- prefix-
free code free is written code is written to to the the bit bitstream stream 312. 312. The sameprocedure The same procedureisisused usedtotodecode decode such such a a bit stream bit stream 324, 324, but but with with primary andsecondary primary and secondaryprefix-free prefix-freecode codeinterchanged. interchanged.That That is,toto is,
decodeaabitstream decode bitstream324, 324,whenever whenever a code a code word word of the of the secondary secondary prefix-free prefix-free codecode is read is read
42
fromthe from the respective respective bit bit stream stream 324, 324,the thecorresponding correspondingcode-word code-word of the of the primary primary prefix- prefix-
free code is written to buffer 320. free code is written to buffer 320.
Advantageously,the Advantageously, thecodes codesdescribed described below below do not do not necessitate necessitate look-up look-up tables. tables. TheThe codes codes
are implementable are implementable ininform formofoffinite finite state state machines. Thev2v-codes machines. The v2v-codespresented presentedhere, here,can canbebe generated by simple construction rules such that there is no need to store large tables for generated by simple construction rules such that there is no need to store large tables for
the code the codewords. words.Instead, Instead, a simple a simple algorithm algorithm can can be betoused used carrytoout carry out encoding encoding or or 2024201207
decoding. Three decoding. construction rules Three construction rulesarearedescribed describedbelow belowwhere where two two ofof them can be them can be parameterized. They parameterized. Theycover cover different different or or even even disjoint disjoint portions portions of afore-mentioned of the the afore-mentioned probabilityinterval probability intervalandand are, are, accordingly, accordingly, specifically specifically advantageous advantageous if used together, if used together, such such as all as all three three codes codes in in parallel parallel (each (each for for different differentones ones of of the the en/decoders 11 and en/decoders 11 and22), 22), oror two of them. With the construction rules described below, it is possible to design a set of two of them. With the construction rules described below, it is possible to design a set of
v2v-codes, such v2v-codes, such that that for for Bernoulli Bernoulli processes processes with arbitrary with arbitrary probability probability p, one ofp, one the of the codes codes
performswell performs wellin in terms terms of of excess excess code codelength. length.
As stated As stated above, above, the the encoding encodingand anddecoding decodingofof thestreams the streams312312 andand 324324 respectively, respectively, cancan
either be either performedindependently be performed independently forfor each each stream stream oranininterleaved or in an interleaved manner. manner. This, This, however,isisnot however, notspecific specifictotothe thepresented presentedclasses classesofofv2v-codes v2v-codes andand therefore, therefore, onlyonly the the encodingand encoding anddecoding decodingof aof a particular particular codeword codeword is described is described for eachfor of each of the three the three
construction rules construction rules in in the the following. following.However, However, it is it is emphasized, emphasized, thatthat all all of the of the above above
embodimentsconcerning embodiments concerningthetheinterleaving interleaving solutions solutions areare also also combinable combinablewith withthethe presently described presently codes or described codes or en- en- and decoders310 and decoders 310and and322, 322,respectively. respectively.
Constructionrule Construction rule 1: 1: 'Unary bin pipe' 'Unary bin pipe' codes codes or or en-/decoders en-/decoders 310 and 322 310 and 322
Unarybin Unary binpipe pipecodes codes (PIPE (PIPE = probability = probability interval interval partitioning partitioning entropy) entropy) are aare a special special
version of version of the the so-called so-called 'bin 'bin pipe' pipe' codes, codes, i.e. i.e. codes codes suitable suitable for for coding codingofofanyany of of thethe
individual bitstreams individual bitstreams 1212and and24,24, each each transferring transferring datadata of aofbinary a binary symbol symbol statistics statistics
belongingtoto aa certain belonging certain probability probability sub-interval sub-interval of of the the afore-mentioned afore-mentionedprobability probabilityrange range
[0;0.5].
[0;0.5]. The construction of The construction of bin bin pipe pipecodes codesisisdescribed describedfirst. first. AAbin binpipe pipecode code cancan be be
constructed from constructed fromany anyprefix-free prefix-freecode code with with at at leastthree least threecode code words. words. To form To form a v2v-a v2v-
code, it code, it uses the prefix-free uses the prefix-free code codeasasprimary primaryandand secondary secondary code, code, but with but with two code two code
wordsofofthe words thesecondary secondary prefix-freecode prefix-free code interchanged. interchanged. ThisThis means means that that exceptexcept for two for two
code words, code words,thethebins binsare arewritten writtentoto the the bit bit stream stream unchanged. unchanged.With With this this technique, technique, only only
one prefix-free one prefix-free code codeneeds needsto tobe be stored stored along along withwith the information, the information, whichwhich two two code code wordsare words areinterchanged interchangedandand thus, thus, memory memory consumption consumption is reduced. is reduced. Note, Note, that that it only it only
makessense makes sensetotointerchange interchangecode codewords words of of differentlength different lengthsince sinceotherwise, otherwise,the thebit bit stream stream
43
would have the same length as the bin stream (neglecting effects that can occur at the end would have the same length as the bin stream (neglecting effects that can occur at the end
of the of the bin binstream). stream).
Duetotothis Due this construction constructionrule, rule, an anoutstanding outstandingproperty propertyofofthethebinbin pipe pipe codes codes is, is, that that if if
primaryand primary andsecondary secondaryprefix-free prefix-freecode codeare areinterchanged interchanged (while (while thethe mapping mapping of the of the code code
words is retained), the resulting v2v-code is identical to the original v2v-code. Therefore, words is retained), the resulting v2v-code is identical to the original v2v-code. Therefore,
the encoding the algorithmand encoding algorithm anddecoding decoding algorithm algorithm areare identicalfor identical forbin-pipe bin-pipecodes. codes. 2024201207
A unary bin pipe code is constructed from a special prefix-free code. This special prefix- A unary bin pipe code is constructed from a special prefix-free code. This special prefix-
free code free is constructed code is as follows. constructed as follows. First, First, aa prefix-free prefix-freecode code consisting consisting of of nn unary code unary code
words is generated starting with '01', '001', '0001', ... until n code words are produced. n is words is generated starting with '01', '001', '0001', until n code words are produced. n is
the parameter the for the parameter for the unary unarybin binpipe pipecode. code.From Fromthethe longest longest code code word, word, the the trailing trailing 1 is 1 is
removed.This removed. Thiscorresponds correspondsto to a truncated a truncated unaryunary codecode (but (but without without the word the code code'0'). word '0'). Then, nn-- 11 unary Then, unary code codewords wordsarearegenerated generated startingwith starting with'10', '10','110', '110', '1110', '1110', ... untiln n- -11 until
code words code wordsareare produced. produced. From From the longest the longest of code of these these codethe words, words, the 0 trailing trailing is 0 is removed.The removed. Theunion union setset of of thesetwotwo these prefix-freecodes prefix-free codesareare used used as as input input to to generate generate thethe
unary bin unary bin pipe pipe code. code. The The two twocode codewords words thatareareinterchanged that interchangedarearethe theone oneonly only consisting of 0s and the one only consisting of 1s. consisting of Os and the one only consisting of 1s.
Examplefor Example forn n==4:4: Nr Nr Primary Primary Secondary Secondary 11 0000 0000 111 111
2 2 0001 0001 0001 0001 3 3 001 001 001 001 4 4 01 01 01 01 5 5 10 10 10 10 6 6 110 110 110 110 7 7 111 111 0000 0000
Construction rule 2: 'Unary to rice' codes and Unary to rice en-/decoders 10 and 22: Construction rule 2: 'Unary to rice' codes and Unary to rice en-/decoders 10 and 22:
Unarytotorice Unary rice codes codesuse usea atruncated truncatedunary unarycode code as as primary primary code. code. I.e.I.e. unary unary code code words words n 1 code words are generated and are are generated starting with '1', '01', '001', ... until 2 + 1 code words are generated and generated starting with '1', '01', '001', ... until 2nd +
from the from the longest longest code codeword, word,the thetrailing trailing 11 is is removed. removed. nnis is the the parameter parameterofof the the unary unarytoto rice code. rice Thesecondary code. The secondary prefix-freecode prefix-free code is constructed is constructed fromfrom the code the code words words of the of the
primaryprefix-free primary prefix-free code code as as follows. follows. To Tothe the primary primarycode codeword word only only consisting consisting of of Os,0s, the the
code word code word'1' '1' is is assigned. assigned. All All other other code wordsconsist code words consistofofthe theconcatenation concatenationofofthe thecode code
44
word'0' word '0' with with the the n-bit n-bit binary binary representation representation of of the the number numberof of Os 0s of of thethe corresponding corresponding
code word code wordofofthe theprimary primaryprefix-free prefix-free code. code.
Examplefor Example forn n==3:3: Nr Nr Primary Primary Secondary Secondary 11 1 1 0000 0000 2 2 01 01 0001 0001 2024201207
3 3 001 001 0010 0010 4 4 0001 0001 0011 0011 5 5 00001 00001 0100 0100 6 6 000001 000001 0101 0101 7 7 0000001 0000001 0110 0110 8 8 00000001 00000001 0111 0111 9 9 00000000 00000000 11 Note, that Note, that this this is is identical identical to to mapping aninfinite mapping an infinite unary unarycode codetotoa arice ricecode code with with rice rice n parameter2n. parameter 2.
Construction rule 3: 'Three bin' code Construction rule 3: 'Three bin' code
Thethree The threebinbincode code is given is given as: as:
Nr Nr Primary Primary Secondary Secondary 11 000 000 0 0 2 2 001 001 100 100 3 3 010 010 101 101
4 4 100 100 110 110 5 5 110 110 11100 11100 6 6 101 101 11101 11101 7 7 011 011 11110 11110 8 8 111 111 11111 11111
It has It has the the property, property, that thatthe theprimary primary code code (symbol sequences)isisofoffixed (symbol sequences) fixedlength length(always (always three bins) three bins) and and the the code code words are sorted words are sorted by by ascending numbersofof1s. ascending numbers 1s.
Anefficient An efficient implementation implementation ofofthree threebin bin code codeisis described described next. next. An Anencoder encoderand anddecoder decoder for the for the three threebin bincode code can can be be implemented withoutstoring implemented without storingtables tables in in the the following following way. way.
In the encoder (any of 10), three bins are read from the bin stream (i.e.7). If these three In the encoder (any of 10), three bins are read from the bin stream (i.e.7). If these three
bins contain exactly one 1, the code word '1' is written to the bit stream followed by two bins contain exactly one 1, the code word '1' is written to the bit stream followed by two
bins consisting bins consistingof of thethe binary binary representation representation of the of the position position of the 1 of the 1 from (starting (starting right from right
45
with 00). If the three bins contain exactly one 0, the code word '111' is written to the bit with 00). If the three bins contain exactly one 0, the code word '111' is written to the bit
streamfollowed stream followed by bins by two two consisting bins consisting of the representation of the binary binary representation of theofposition of the position the of the 0 (starting 0 (starting from from the the right rightwith with00). 00).The The remaining code words remaining code words'000' '000' and and'111' '111' are are mapped mapped
to '0' and '11111', respectively. to '0' and '11111', respectively.
In the In the decoder decoder (any (any of 22), of 22), oneorbin one bin bit or is bit readisfrom read thefrom the respective respective bitstream 24.bitstream If it 24. If it equals'0', equals '0', the the code codeword word '000' '000' is decoded is decoded to the to binthe bin 21. stream stream If it21. If it'1', equals equals '1', two more two more
bins are bins are read readfrom fromthethe bitbit stream stream 24. 24. If these If these two do two bits bitsnotdoequal not '11', equal they '11',are they are 2024201207
interpreted as interpreted as the the binary binary representation representation of of aa number andtwo number and twoOs0sand andoneone 1 isdecoded 1 is decoded to to
the bit the bit stream streamsuchsuch thatthat thethe position position of 1the of the is 1 is determined determined by the If by the number. number. the two If the two bits bits
equal'11', equal '11', two twomore morebitsbits are are readread and interpreted and interpreted as binary as binary representation representation of aIfnumber. If of a number.
this number this is smaller number is smaller than than 3, 3, two two 1s 1s and andone one0 0are aredecoded decodedandand thethe number number determines determines
the position of the 0. If it equals 3, '111' is decoded to the bin stream. the position of the 0. If it equals 3, '111' is decoded to the bin stream.
Anefficient An efficient implementation implementationofofunary unarybinbin pipe pipe codes codes is is described described next. next. An An encoder encoder and and decoderfor decoder for unary unarybinbin pipe pipe codes codescan canbebeefficiently efficiently implemented implementedbyby using using a counter.Due a counter. Due to the to the structure structure ofof bin bin pipe codes, encoding pipe codes, encodingandanddecoding decoding of of binbin pipe pipe codes codes is easy is easy to to
implement: implement:
In the encoder (any of 10), if the first bin of a code word equals '0', bins are processed In the encoder (any of 10), if the first bin of a code word equals '0', bins are processed
until aa '1' until '1' occurs occursororuntil untiln Os n 0s areare readread (including (including the '0' the first firstof'0' theofcode theword). code Ifword). a '1' If a '1'
occurred,thetheread occurred, read bins bins are are written written to bit to the the stream bit stream unchanged. unchanged. OtherwiseOtherwise (i.e. n 0s were (i.e. n Os were
read), n - 1 1s are written to the bit stream. If the first bin of the code word equals '1', bins read), n - 1 1s are written to the bit stream. If the first bin of the code word equals '1', bins
are processed are processed until until a '0'occurs a 'O' occurs or or until until n - n1 -1s 1 are 1s are readread (including (including the '1' the first firstof'1'theofcode the code word).IfIfa a'0' word). '0' occurred, occurred,thethe read read binsbins are are written written to thetobit thestream bit stream unchanged. unchanged. Otherwise Otherwise
(i.e. nn --11 1s (i.e. 1s were read),nnOs0sare were read), arewritten written to to thethe bitbit stream. stream.
In the In the decoder (anyofof 322), decoder (any 322),the the same samealgorithm algorithm is isused usedasasforforthe theencoder, encoder,since sincethis thisisis the same the for bin same for bin pipe pipe codes as described codes as above. described above.
Anefficient An efficient implementation implementationofofunary unary to to rice rice codes codes is described is described next. next. An encoder An encoder and and decoderfor decoder for unary unaryto to rice rice codes can be codes can be efficiently efficiently implemented byusing implemented by usinga acounter counterasaswill will be described be described now. now.
In the encoder (any of 310), bins are read from the bin stream (i.e. 7) until a 1 occurs or In the encoder (any of 310), bins are read from the bin stream (i.e. 7) until a 1 occurs or
n Os are read. The number of Os is counted. If the counted number equals 2n, nthe until 22nd until 0s are read. The number of 0s is counted. If the counted number equals 2 , the codeword code word'1''1' is is written written to to thethe bitbit stream. stream. Otherwise, Otherwise, '0' is '0' is written, written, followed followed by the binary by the binary
representation of the counted number, written with n bits. representation of the counted number, written with n bits.
46
n decoded to the bin In the decoder (any of 322), one bit is read. If it equals '1', 2 0s are decoded to the bin In the decoder (any of 322), one bit is read. If it equals '1', 2nd Os are
string. If string. If it it equals '0', nn more equals '0', morebits bits areare readread and and interpreted interpreted as binary as binary representation representation of a of a number.This number. Thisnumber number of ofOs0sisisdecoded decoded to to thethebin binstream, stream,followed followedbybya a'1'. '1'.
In other In other words, words,the thejust-described just-describedembodiments embodiments describe describe an encoder an encoder for encoding for encoding a a sequenceofofsymbols sequence symbols303, 303, comprising comprising an assigner an assigner 316 316 configured configured to assign to assign a number a number of of parameters 305 parameters 305 to to each each symbol symbolofofthe thesequence sequenceofofsymbols symbols based based on on information information 2024201207
contained within contained withinprevious previoussymbols symbols of the of the sequence sequence of symbols; of symbols; a plurality a plurality of entropy of entropy
encoders310 encoders 310each eachofofwhich which is is configured configured to to convert convert the the symbols symbols 307 forwarded 307 forwarded to theto the respective entropy respective entropyencoder encoder 310 310 into into a respective a respective bitstream bitstream 312; 312; and and a 6selector 6 a selector
configured totoforward configured forwardeach each symbol symbol 303a selected 303 to to a selected one ofone the of the plurality plurality of entropy of entropy
encoders10, encoders 10,the theselection selection depending dependingonon thethe number number of parameters of parameters 305 assigned 305 assigned to theto the respectivesymbol respective symbol303.303. According According to the just-outlined to the just-outlined embodiments, embodiments, at least at least a first a first subset subset
of the of the entropy entropy encoders encodersmaymay be abevariable a variable length length encoder encoder configured configured to map to map symbol symbol sequencesofofvariable sequences variable lengths lengths within within the the stream stream ofof symbols symbols307 307totocodewords codewords of variable of variable
lengthstotobebeinserted lengths inserted in in bitstream bitstream 312,312, respectively, respectively, withofeach with each of the coders the entropy entropy 310 coders 310
of the of the first first subset subset using using a a bijective bijective mapping ruleaccording mapping rule accordingtotowhich which code code words words of a of a
primary prefix-free primary prefix-free code codewith with(2n-1) (2n-1) ≥ 33 code code words words are are mapped mappedtoto code code words wordsofofaa secondary secondary prefix-free prefix-free codecode whichwhich is identical is identical to the primary to the primary prefix prefix code such code such that all but that all but
two ofofthe two thecode codewords words of the of the primary primary prefix-free prefix-free code code are mapped are mapped to identical to identical code code wordsofofthe words thesecondary secondaryprefix-free prefix-freecode code while while thethe twotwo codecode wordswords of theofprimary the primary and and secondaryprefix-free secondary prefix-free codes codeshave havedifferent different lengths lengths and andare aremapped mapped onto onto each each other other in in an an
interchangedmanner, interchanged manner,wherein wherein thethe entropy entropy encoders encoders may may use different use different n SO nassotoascovers to covers different portions different portions of an interval of an interval of of the the above-mentioned above-mentioned probability probability interval.TheThe interval. first first
prefix-free code prefix-free code may beconstructed may be constructedsuch suchthat thatthe thecodewords codewordsof of thethe firstprefix-free first prefix-free code code are (a,b) , (a,a,b) , …, (a,…,a,b) , (a,…,a) , (b,a) , (b,b,a) , …, (b,…,b,a) , (b,…,b)n-1, are (a,b)2, 2 (a,a,b)3, 3 (a,...,a,b)n, (a,...,a)n, n (b,a)2, n (b,b,a)3, 2 (b,...,b,a)n-1, 3 (b,...,b)n-1, n-1
and the and the two two codewords codewords mapped mapped ontoonto eacheach otherother in the in the interchanged interchanged manner manner are (a,…,a)n are (a,...,a)n
and(b,...,b)n-1 and (b,…,b)n-1 with withbb# ≠a aand anda,ba,b ∈ {0,1}. E {0,1}. However, However, alternatives alternatives are feasible. are feasible.
In other In other words, words,each eachof of a firstsubset a first subsetof of entropy entropy encoders encoders may may be be configured configured to, to, in in converting the converting the symbols symbolsforwarded forwarded to to thethe respective respective entropy entropy encoder encoder intointo the the respective respective
bitstream, examine bitstream, examinea first a firstsymbol symbol forwarded forwarded to thetorespective the respective entropyentropy encoder,encoder, to to determineasastotowhether determine whether(1) (1) the the first first symbol symbol equalsequals a ∈ in a E {0,1}, {0,1}, whichincase which the case the
respective entropy respective encoderisis configured entropy encoder configuredtoto examine examinethethefollowing followingsymbols symbols forwarded forwarded to to
the respective the respective entropy entropy encoder encoder toto determine determine asas to to whether (1.1) b with whether (1.1) b with b # ba ≠ anda band E b ∈
{0,1} occurs within {0,1} occurs withinthe the next nextn-1 n-1symbols symbols following following thethe firstsymbol, first symbol,in in which which casecase the the
respective entropy respective encoderisis configured entropy encoder configuredtoto write write aa codeword codewordtotothe therespective respectivebitstream, bitstream, whichequals which equalsthethefirst firstsymbol symbol followed followed by following by the the following symbolssymbols forwarded forwarded to the to the 47
respective entropy respective entropy encoder, encoder,upuptotothe thesymbol symbol b; (1.2) b; (1.2) no no b occurs b occurs within within the next the next n-1 n-1 symbolsfollowing symbols followingthethe firstsymbol, first symbol, in in which which case case the respective the respective entropy entropy encoder encoder is is configuredtoto write configured write aa codeword codeword to to thethe respectivebitstream, respective bitstream,which which equals equals (b,…,b)n-1;oror (b,...,b)n-1;
(2) the the first firstsymbol symbol equals equals b, b, in inwhich which case case the the respective respective entropy entropy encoder is configured encoder is configured
to examine to examine the the following following symbols symbolsforwarded forwardedtotothe therespective respective entropy entropy encoder encoder toto determineasastotowhether determine whether(2.1) (2.1)a aoccurs occurswithin withinthethe next next n-2n-2 symbols symbols following following the first the first
symbol,inin which symbol, whichcase casethe therespective respectiveentropy entropyencoder encoder is is configured configured to to write write a codeword a codeword 2024201207
to the to the respective respective bitstream, bitstream, which whichequals equals thethe firstsymbol first symbol followed followed by following by the the following symbolsforwarded symbols forwardedto to thethe respective respective entropy entropy encoder encoder upthe up to to the symbol symbol a; ora;(2.2) or (2.2) no a no a occurs within occurs withinthe thenext next n-2n-2 symbols symbols following following the symbol, the first first symbol, in whichincase which the case the
respective entropy respective encoderisis configured entropy encoder configuredtoto write write aa codeword codewordtotothe therespective respectivebitstream, bitstream, which equals (a,…,a) . which equals (a,...,a)n. n
Additionally ororalternatively, Additionally alternatively, aa second secondsubset subsetof of thethe entropy entropy encoders encoders 10bemay 10 may a be a variable length variable length encoder encoderconfigured configured to map to map symbol symbol sequences sequences of variable of variable lengths tolengths to codewordsofoffixed codewords fixedlengths, lengths,respectively, respectively,with witheach eachofofthe theentropy entropycoders coders of of thesecond the second subset using subset usinga abijective bijectivemapping mappingrulerule according according to which to which code ofwords code words of a primary a primary n truncated unary truncated unarycode codewith with 2 +1 2"+1 code code words words oftype of the the type {(a), {(a), (ba),(ba), (bba), … ,(b…ba), (bba), ,(b...ba),
(bb…b)} with (bb...b)} with b b ≠# a a and and a,b a,b ∈e {0,1} {0,1} are are mapped mapped totocode codewords wordsofofa asecondary secondary prefix-free prefix-free
code such code suchthat that the the codeword (bb…b)ofof the codeword (bb...b) the primary primarytruncated truncatedunary unarycode codeisismapped mapped onto onto
codeword(c) codeword (c)ofofthe thesecondary secondaryprefix-free prefix-freecode codeand andall allother othercodewords codewords {(a),(ba), {(a), (ba),(bba), (bba), … ,(b…ba)} (b...ba)} of thethe primary truncated unary primary truncated unary code codeare are mapped mapped onto onto codewords codewords having having (d) (d)
with Cc #≠ dd and with andc,d c,dE ∈{0,1} {0,1} as as a prefixandand a prefix a n-bitword a n-bit word as suffix, as suffix, wherein wherein the the entropy entropy
encoders use encoders use different different n.n. Each of the Each of the second second subset subset of of entropy entropy encoders encoders may maybebe configured such that the n-bit word is an n-bit representation of the number of b’s in the configured such that the n-bit word is an n-bit representation of the number of b's in the
respective codeword respective codeword of of thethe primary primary truncated truncated unaryunary code. code. However, However, alternatives alternatives are are feasible. feasible.
Again, from Again, fromthe theperspective perspectiveofofthe themode modeofof operation operation of of therespective the respectiveencoder encoder 10,10, each each
of the second of second subset of entropy entropy encoders maybebeconfigured encoders may configuredto, to,inin converting convertingthe the symbols symbols forwardedtoto the forwarded the respective respective entropy encoderinto entropy encoder into the the respective respective bitstream, bitstream, count count aa number number
of b’s of b's in in aa sequence of symbols sequence of symbolsforwarded forwarded to to thethe respective respective entropy entropy encoder, encoder, until until an an a a occurs, or occurs, or until until the the number numberof of thethe sequence sequence of symbols of symbols forwarded forwarded to the respective to the respective n n entropy encoder entropy encoderreaches reaches2nd2 with withall all 2nd 2 symbols symbols of of the the sequence sequencebeing beingb, b, and and (1)(1) if if the the n numberofofb's number b’sequals equals2n, 2 ,write writeCcwith withCcE∈{0,1} {0,1}asascodeword codewordof aofsecondary a secondary prefix-free prefix-free
code to code to the the respective respective bitstream, bitstream, and and(2)(2) ifif the the number numberofofb's b’sisislower than2n,2nwrite lowerthan , writea a codewordofofthethesecondary codeword secondary prefix-free prefix-free code code to the to the respective respective bitstream, bitstream, which which has has (d) (d)
48
with Cc ≠ with # d d and and dd E {0,1}as ∈ {0,1} as prefix prefix and and aa n-bit n-bit word determineddepending word determined dependingon on thethe number number
of b’s as suffix. of b's as suffix.
Also additionally Also additionally or or alternatively, alternatively, aa predetermined oneofofthe predetermined one theentropy entropyencoders encoders10 10 maymay
be aa variable be variable length length encoder encoderconfigured configured to to mapmap symbol symbol sequences sequences of lengths of fixed fixed lengths to to codewordsofofvariable codewords variablelengths, lengths,respectively, respectively,thethepredetermined predetermined entropy entropy codercoder using using a a 3 bijective mapping bijective ruleaccording mapping rule accordingtotowhich which23 2code code words words of length of length 3 of3 aofprimary a primary code code 2024201207
are mapped are mapped totocode codewords words of of a secondary a secondary prefix-free prefix-free code code such such that that thethe codeword codeword (aaa)3 (aaa)3
of the of the primary code with primary code with aa E∈{0,1} {0,1}isis mapped mappedonto ontocodeword codeword (c) (c) with with C Ec {0,1}, ∈ {0,1}, allall three three
codewordsofofthe codewords theprimary primarycode code having having exactly exactly oneone b with b with b#ab≠a and and b Eb ∈ {0,1} {0,1} are mapped are mapped
onto codewords onto codewordshaving having (d)(d) with with C #c d d and ≠ and d ∈ {0,1} E {0,1} as a prefix as a prefix and aand a respective respective firstfirst 2- 2- bit word bit wordoutout of of a first a first setset of of 2-bit 2-bit words words as a suffix, as a suffix, all three all three codewords codewords of the primary of the primary
code having code havingexactly exactlyoneone a are a are mapped mapped onto codewords onto codewords having having (d) as a (d) as aandprefix prefix a and a concatenation of a first 2-bit word not being an element of the first set and a second 2-bit concatenation of a first 2-bit word not being an element of the first set and a second 2-bit
wordout word outofofaa second secondset setofof 2-bit 2-bit words, words, as as aa suffix, suffix, and and wherein wherein thethe codeword codeword (bbb)is (bbb)3 3 is
mappedonto mapped onto a codeword a codeword havinghaving (d) as(d) as a prefix a prefix and a and a concatenation concatenation of the of the2-bit first first 2-bit wordnot word notbeing beingananelement element of of thefirst the first set set and and aa second second2-bit 2-bit word wordnotnotbeing beingananelement element of the of the second set, as second set, as aa suffix. suffix.The The first first2-bit word 2-bit wordofofthe codewords the codewords ofof the the primary code primary code
havingexactly having exactly oneone b may b may be a 2-bit be a 2-bit representation representation of a position of a position of the of the b in the respective b in the respective codeword ofof the codeword the primary primary code, code, and and the the second second 2-bit 2-bit word word of of the the codewords codewordsofofthe the primarycode primary codehaving havingexactly exactlyone onea amay may be be a 2-bit a 2-bit representation representation ofof a a positionofofthe position theaainin the respective the respective codeword ofthe codeword of the primary primarycode. code.However, However, alternativesare alternatives arefeasible. feasible.
Again, the Again, the predetermined predetermined one one ofofthe theentropy entropyencoders encodersmay may be configured be configured to, to, in in converting the converting symbols forwarded the symbols forwardedtotothe thepredetermined predeterminedentropyentropyencoder encoderintointothethe respective bitstream, respective bitstream, examine examine thethe symbols symbols to predetermined to the the predeterminedentropyentropy encoder encoder in in triplets asas toto whether triplets (1) the whether (1) the triplet triplet consists consists of of a’s, a's, in in which casethe which case thepredetermined predetermined entropy encoder entropy encoderisisconfigured configuredtotowrite writethe thecodeword codeword (c)(c) to to thethe respective respective bitstream,(2)(2) bitstream,
the triplet the tripletexactly exactlycomprises comprises one b, in one b, in which casethe which case the predetermined predeterminedentropy entropy encoder encoder is is configured toto write configured writeaacodeword codeword having having (d) (d) as aasprefix a prefix and and a 2-bit a 2-bit representation representation of a of a
positionofofthethe position b the b in in triplet the triplet as a as a suffix, suffix, to the to the respective respective bitstream;bitstream; (3) the triplet (3) the triplet
exactly comprises exactly comprisesone onea,a,inin which whichcase casethe thepredetermined predetermined entropy entropy encoder encoder is configured is configured
to write a codeword having (d) as a prefix and a concatenation of the first 2-bit word not to write a codeword having (d) as a prefix and a concatenation of the first 2-bit word not
beingananelement being element of first of the the first set aand set and a representation 2-bit 2-bit representation of a of of a position position the a inofthethe a in the
triplet as triplet as aa suffix, suffix, totothe therespective respective bitstream; bitstream; or the or (4) (4)triplet the triplet consists consists of b's,ofinb’s, in which which
case the case the predetermined entropyencoder predetermined entropy encoderisisconfigured configuredtotowrite writeaa codeword codeword having having (d)(d) asas a a
prefix and a concatenation of the first 2-bit word not being an element of the first set and prefix and a concatenation of the first 2-bit word not being an element of the first set and
49
the first 2-bit word not being an element of the second set as a suffix, to the respective the first 2-bit word not being an element of the second set as a suffix, to the respective
bitstream. bitstream.
Regarding the Regarding the decoding decodingside, side, just-described just-described embodiments embodimentsdisclose disclose a adecoder decoderforfor reconstructing aa sequence reconstructing sequenceofofsymbols symbols 326, 326, comprising comprising a plurality a plurality of entropy of entropy decoders decoders
322, each 322, each of of which whichisis configured configuredtoto convert convertaa respective respective bitstream bitstream 324 324into into symbols symbols321; 321; an assigner an assigner 316 316configured configuredtotoassign assigna anumber number of parameters of parameters to each to each symbol symbol 326 of326 a of a 2024201207
sequence of sequence of symbols symbolstotobebereconstructed reconstructedbased basedon on information information contained contained within within previously reconstructed previously reconstructedsymbols symbols of of the the sequence sequence ofof symbols; symbols; and and aaselector selector 318 318 configured toto retrieve configured retrieve each each symbol symbol325 325of of thethe sequence sequence of symbols of symbols to betoreconstructed be reconstructed fromaa selected from selected one oneofofthe the plurality plurality of of entropy decoders, the entropy decoders, the selection selection depending dependingononthethe numberofofparameters number parameters defined defined to to thethe respective respective symbol. symbol. According According to the to the just-described just-described
embodiments embodiments at at least least a firstsubset a first subset of of thethe entropy entropy decoders decoders 322variable 322 are are variable length length decoders configured decoders configured to to map codewordsofofvariable map codewords variable lengths lengths to to symbol symbol sequences sequences ofof variable lengths, variable lengths, respectively, respectively, with with each of the each of the entropy entropydecoders decoders2222 of of thethe firstsubset first subset using aa bijective using bijective mapping ruleaccording mapping rule accordingtotowhich which code code words words of a of a primary primary prefix-free prefix-free
code with code with(2n-1) 3 code (2n-1)3 ≥code words words are mapped are mapped to codetowords codeofwords of a secondary a secondary prefix-free prefix-free
code which is identical to the primary prefix code such that all but two of the code words code which is identical to the primary prefix code such that all but two of the code words
of the of the primary primaryprefix-free prefix-freecode codeare aremapped mapped to identical to identical codecode wordswords of theofsecondary the secondary prefix-free code prefix-free whilethe code while thetwo two code code words words of primary of the the primary and secondary and secondary prefix-free prefix-free
codes have codes havedifferent different lengths lengths and and are are mapped mappedonto onto each each other other in in anan interchanged interchanged manner, manner,
wherein the wherein the entropy entropy encoders encoders use usedifferent different n. n. The The first first prefix-free prefix-free code code may be may be constructed such that the codewords of the first prefix-free code are (a,b) , (a,a,b)3, …, constructed such that the codewords of the first prefix-free code are (a,b)2, (a,a,b)3,2
(a,…,a,b) , (a,…,a) , (b,a) , (b,b,a) , …, (b,…,b,a) , (b,…,b) , and the two codewords (a,...,a,b)n, n (a,...,a)n, n (b,a)2, 2 (b,b,a)3, 3 (b,...,b,a)n-1,n-1(b,...,b)n-1, n-1and the two codewords
mappedonto mapped ontoeach each otherininthe other theinterchanged interchangedmanner mannermay may be (a,…,a)and be (a,...,a)n n and (b,…,b)n-1 with (b,...,)))-- with b #≠ aa and b anda,b a,bE ∈ {0,1}. {0,1}. However, However, alternatives alternatives are feasible. are feasible.
Eachofofthe Each thefirst first subset subset ofofentropy entropyencoders encoders maymay be configured be configured to, into, in converting converting the the respective bitstream into the symbols, examine a first bit of the respective bitstream, to respective bitstream into the symbols, examine a first bit of the respective bitstream, to
determineasastotowhether determine whether(1)(1)the thefirst first bit bit equals equals aa 00 {0,1}, {0,1}, in in which whichcase casethetherespective respective entropyencoder entropy encoder is configured is configured to examine to examine the following the following bits bits of the of the respective respective bitstream to bitstream to determineasas to determine to whether whether(1.1) (1.1)bbwith withbb#≠a aand andb b0 0{0,1} {0,1}occurs occurs within within thethe next next n-1 n-1 bits bits
following the following thefirst first bit, bit, in in which casethe which case therespective respectiveentropy entropydecoder decoder is configured is configured to to reconstruct aa symbol reconstruct sequence,which symbol sequence, which equals equals thethe firstbit first bitfollowed followedbybythethefollowing following bits bits
of the of the respective respectivebitstream, bitstream, up toupthe to bit theb;bitorb;(1.2) or (1.2) no b occurs no b occurs within within the thebits next n-1 next n-1 bits following the following thefirst first bit, bit, in in which casethe which case therespective respectiveentropy entropydecoder decoder is configured is configured to to
reconstructa asymbol reconstruct symbol sequence, sequence, which(b,...,b)n-1; which equals equals (b,…,b) or (2) ; orfirst n-1the (2) bit the equals first bit equals b, in b, in
whichcase which casethe the respective respective entropy entropydecoder decoderisisconfigured configuredtotoexamine examine thethe following following bitsofof bits
50
the respective bitstream to determine as to whether (2.1) a occurs within the next n-2 bits the respective bitstream to determine as to whether (2.1) a occurs within the next n-2 bits
following the following thefirst first bit, bit, in in which casethe which case therespective respectiveentropy entropydecoder decoder is configured is configured to to
reconstruct aa symbol reconstruct sequence,which symbol sequence, which equals equals thethe firstbit first bitfollowed followedbybythethefollowing following bits bits
of the of the respective respective bitstream up to bitstream up to the the symbol symbola;a;oror(2.2) (2.2) no noaa occurs occurswithin withinthe thenext nextn-2 n-2 bits following the first bit, in which case the respective entropy decoder is configured to bits following the first bit, in which case the respective entropy decoder is configured to
reconstruct aa symbol reconstruct sequence,which symbol sequence, whichequals equals(a, (a,…,a) a) n.
Additionally or alternatively, at least a second subset of the entropy decoders 322 may be Additionally or alternatively, at least a second subset of the entropy decoders 322 may be 2024201207
a variable a variable length length decoder decoderconfigured configured to map to map codewords codewords of fixedoflengths fixed lengths to symbolto symbol
sequences ofvariable sequences of variablelengths, lengths,respectively, respectively,with witheach each of of thethe entropy entropy decoders decoders of the of the
second subset second subset using using aa bijective bijective mapping mapping rule rule according according toto which which code words of code words of aa secondaryprefix-free secondary prefix-free code codeare aremapped mapped ontoonto codecode wordswords of a primary of a primary truncated truncated unary unary code with code 2n+1code with 2"+1 codewords wordsof of thetype the type{(a), {(a),(ba), (ba), (bba), (bba), … ,(b…ba), (b...ba), (bb…b)} (bb...b)} with with b #ba≠ a and a,b and a,b ∈ {0,1}such E {0,1} suchthat that codeword codeword(c)(c)ofofthe thesecondary secondaryprefix-free prefix-freecode codeisismapped mapped onto onto
the codeword the codeword(bb...b) (bb…b)ofofthetheprimary primary truncated truncated unary unary codecode and codewords and codewords having having (d) (d) with Cc #≠d dand with andc,dc,dE {0,1} ∈ {0,1} as aasprefix a prefix and and a a n-bit n-bit word word as suffix, as suffix, are mapped are mapped to a to a respective one respective one ofofthe theother othercodewords codewords {(a), {(a), (ba), (ba), (bba), (bba), … ,(b…ba)} (b ba)) of of the the primary primary truncated unary truncated unary code, code,wherein whereinthetheentropy entropy decoders decoders useuse different different n. n. Each Each of the of the second second
subset of subset of entropy entropydecoders decoders maymay be configured be configured suchthethat such that theword n-bit n-bitis word is an n-bit an n-bit
representation of representation of the the number number ofofb's b’sinin the the respective respective codeword codeword of of theprimary the primary truncated truncated
unary code. However, alternatives are feasible. unary code. However, alternatives are feasible.
Eachof Each of aa second secondsubset subsetof of entropy entropydecoders decodersmay maybe be a variablelength a variable lengthdecoder decoder configured configured
to map to codewords map codewords of of fixedlengths fixed lengthstotosymbol symbol sequences sequences of variable of variable lengths, lengths, respectively, respectively,
and configured and configuredto, to, in in converting converting the the bitstream bitstream of of the the respective respective entropy decoderinto entropy decoder intothe the symbols,examine symbols, examine a firstbit a first bitofofthe therespective respectivebitstream bitstreamtotodetermine determineasastotowhether whether (1)(1)
sameequals same equalsCcwith withCc E∈{0,1}, {0,1},inin which whichcase casethe therespective respectiveentropy entropydecoder decoderisisconfigured configured n to reconstruct to a symbol reconstruct a symbolsequence sequence which which equals equals (bb…b)with (bb...b)2" 2 with b E b ∈ {0,1}; {0,1}; orsame or (2) (2) same equals dd with equals withC c# ≠d dandand c,dc,d ∈ {0,1}, E {0,1}, in which in which case case the respective the respective entropy entropy decoder decoder is is configured totodetermine configured determinea n-bit a n-bitword word fromfrom n further n further bits bits of respective of the the respective bitstream, bitstream,
following the following the first first bit, bit,and andreconstruct reconstructa a symbol symbol sequence therefrom which sequence therefrom whichisisofofthe the type type {(a), {(a),(ba), (ba),(bba), …(b,(b…ba), (bba), b...ba), (bb…b)} (bb...b)}with with bb ≠# aa and and bb ∈ E {0,1} with the {0,1} with the number numberofofb's b’s dependingononthe depending then-bit n-bit word. word.
Additionally or Additionally or alternatively, alternatively, aapredetermined one of predetermined one of the the entropy entropy decoders decoders322 322may may be be a a variable length variable length decoders decodersconfigured configuredto to mapmap codewords codewords of variable of variable lengths lengths to symbol to symbol
sequencesofoffixed sequences fixedlengths, lengths,respectively, respectively,thethepredetermined predetermined entropy entropy decoder decoder using ausing a bijective mapping bijective ruleaccording mapping rule accordingtotowhich which code code words words of a of a secondary secondary prefix-free prefix-free code code are mapped are 23code mapped toto23 codewords wordsofoflength length3 3ofofa aprimary primarycode code such such thatcodeword that codeword (c) (c) with with C c 51
{0,1}is ∈ {0,1} E is mapped mapped totothe thecodeword codeword (aaa)of (aaa)3 3 ofthe theprimary primarycode code with with a∈ a E {0,1}, {0,1}, codewords codewords
having (d) with c ≠ d and d ∈ {0,1} as a prefix and a respective first 2-bit word out of a having (d) with C # d and d E {0,1} as a prefix and a respective first 2-bit word out of a
first set first setof of three three 2-bit 2-bit words as aa suffix words as suffix are are mapped mapped onto onto all all three three codewords codewords of the of the
primarycode primary codehaving havingexactly exactly one one b with b with b≠a band ba and b ∈ {0,1}, E {0,1}, codewords codewords having having (d) as a (d) as a prefix and prefix anda aconcatenation concatenation of a of a first first 2-bit 2-bit word word not an not being being an element element of the of the first firsta set and a set and
second2-bit second 2-bitword word out out of aof a second second set ofset of three three 2-bit 2-bit words, words, as a are as a suffix suffix areonto mapped mapped all onto all three codewords three codewords ofofthe theprimary primarycode codehaving having exactly exactly oneone a, a, andand a codeword a codeword having having (d) (d) as as 2024201207
a prefix a prefixand anda concatenation a concatenation of theoffirst the first 2-bit 2-bit word word not notan being being elementanof element the first of setthe first set
and aa second and second2-bit 2-bitword wordnotnotbeing beingan an element element of the of the second second set, set, as aassuffix a suffix is mapped is mapped
onto the onto the codeword codeword (bbb)3The (bbb)3. . The first2-bit first 2-bitword word of the of the codewords codewords of the ofprimary the primary code code
having exactly one b may be a 2-bit representation of a position of the b in the respective having exactly one b may be a 2-bit representation of a position of the b in the respective
codeword ofof the codeword the primary primary code, code, andand the the second second 2-bit 2-bit word word of of the the codewords codewordsofofthe the primarycode primary codehaving havingexactly exactlyone onea amaymay be be a 2-bit a 2-bit representation representation ofofa a positionofofthe position theaainin the respective codeword the ofthe codeword of the primary primarycode. code.However, However, alternativesare alternatives arefeasible. feasible. The predetermined The predetermined one oneofofthe theentropy entropydecoders decodersmay maybe be a variablelength a variable lengthdecoder decoder configuredto configured to map mapcodewords codewords of variable of variable lengths lengths to symbol to symbol sequences sequences of three of three symbols symbols
each, respectively, each, respectively, and andconfigured configured to,to, in in converting converting the the bitstream bitstream ofrespective of the the respective entropy decoder entropy decoderinto intothe thesymbols, symbols, examine examine the first the first bit bit of the of the respective respective bitstream bitstream to to determineasastotowhether determine whether(1)(1)thethefirst firstbitbit of of the the respective respective bitstream bitstreamequals equalsC cwith withC cE ∈ {0,1}, {0,1}, inin which casethe which case thepredetermined predetermined entropy entropy decoder decoder is configured is configured to reconstruct to reconstruct a a symbol symbol sequence sequence whichwhich equals equals (aaa)a 30 with (aaa)3 with {0,1},a or 0 {0,1}, (2) the or (2)bit first theoffirst the bit of the respective respective
bitstream equals bitstream equals dd with withCc#≠d dandandd dE {0,1}, ∈ {0,1}, in in which which casecase the the predetermined predetermined entropy entropy
decoderisisconfigured decoder configured to determine to determine a firsta 2-bit first 2-bit word word from from 2bits 2 further further of thebits of the respective respective
bitstream, following bitstream, following the the first first bit, bit, and examinethe and examine thefirst first 2-bit 2-bit word wordtotodetermine determine as as to to whether(2.1) whether (2.1) the the first2-bit first 2-bitword word is element is no no element of a first of a first setthree set of of three 2-bit 2-bit words,words, in which in which case the case the predetermined predeterminedentropy entropydecoder decoder is is configured configured to to reconstruct reconstruct a symbol a symbol sequence sequence
whichhas which hasexactly exactlyoneoneb bwith withb#a b≠aandand b 0b {0,1}, 0 {0,1}, with with thethe position position of of b inthetherespective b in respective symbolsequence symbol sequence depending depending on theonfirst the first 2-bit2-bit word,word, or the or (2.2) (2.2)first the 2-bit first 2-bit word is word is element of the first set, in which case the predetermined entropy decoder is configured to element of the first set, in which case the predetermined entropy decoder is configured to
determineaasecond determine second2-bit 2-bitword wordfrom from 2 further 2 further bitsofofthe bits therespective respectivebitstream, bitstream,following following the two the bits from two bits from which the first which the first 2-bit 2-bitword word has hasbeen been determined, determined, and examinethe and examine thesecond second 2-bit word 2-bit to determine word to determineasastotowhether whether (3.1) (3.1) thethe second second 2-bit 2-bit wordword is noiselement no element of a of a secondset second set ofofthree three2-bit 2-bitwords, words,ininwhich whichcasecase the the predetermined predetermined entropy entropy decoderdecoder is is configuredtoto reconstruct configured reconstruct aa symbol symbolsequence sequence which which has has exactly exactly one one a, with a, with the the position position
of aa in of in the the respective respective symbol sequencedepending symbol sequence depending on on thethe second second 2-bit 2-bit word, word, or (3.2) or (3.2) thethe
second2-bit second 2-bit word wordisiselement elementof of a second a second set set of three of three 2-bit 2-bit words, words, in which in which case the case the
predeterminedentropy predetermined entropydecoder decoder is configured is configured to reconstruct to reconstruct a symbol a symbol sequence sequence which which equals (bbb)3 equals (bbb)3 . 52
Now,after Now, after having havingdescribed describedthe thegeneral generalconcept conceptofofa avideo videocoding codingscheme, scheme, embodiments embodiments
of the of the present invention are present invention are described described with withrespect respecttotothe theabove aboveembodiments. embodiments. In other In other
words, the words, the embodiments embodimentsoutlined outlined below belowmay maybe be implemented implemented by use by use of the of the above above schemes, and schemes, and vice vice versa, versa, the the above above coding coding schemes maybebeimplemented schemes may implementedusing usingund und exploiting the exploiting the embodiments outlinedbelow. embodiments outlined below.
In the In the above embodiments above embodiments described described with with respect respect to to Fig. Fig. 7 to9,9,the 7 to theentropy entropyencoder encoder andand 2024201207
decodersofofFig. decoders Fig.1 1toto6,6,were were implemented implemented in accordance in accordance with a with PIPE a PIPE concept. concept. One One special embodiment special used embodiment used arithmeticsingle-probability arithmetic single-probabilitystate stateen/decoders en/decoders310 310andand 322. 322. AsAs
will be will be described below, in described below, in accordance accordancewith withananalternative alternativeembodiment, embodiment, entities306-310 entities 306-310 and the and the corresponding corresponding entities entities 318 318 to to 322 322 may be replaced may be replaced by by aacommon common entropy entropy encodingengine. encoding engine.For Forexample, example, an an arithmetic arithmetic encoding encoding engine engine may manage may manage merely merely one one commonstate common state RRand andL Landandencode encode allallsymbols symbolsinto intoone onecommon common bitstream, bitstream, thereby thereby giving-up the giving-up theadvantageous advantageous aspects aspects of present of the the present PIPE concept PIPE concept regardingregarding parallel parallel processing, but processing, but avoiding avoidingthethenecessity necessityofofinterleaving interleavingthethepartial partialbitstreams bitstreamsasasfurther further discussed below. discussed below.InIndoing doingso,so,thethenumber number of probability of probability statesstates by which by which the context’s the context's
probabilities are probabilities are estimated estimated by by update (table look-up), update (table look-up), may may be behigher higherthan thanthe thenumber numberof of
probability states probability states by whichthe by which theprobability probabilityinterval intervalsub-division sub-divisionisisperformed. performed.That That is,is,
analogouslytotoquantizing analogously quantizingthe theprobability probabilityinterval intervalwidth widthvalue valuebefore before indexing indexing into into thethe
table Rtab, also the probability state index may be quantized. The above description for a table Rtab, also the probability state index may be quantized. The above description for a
possible implementation possible implementationforforthe thesingle singleen/decoders en/decoders310310 andand 322322 may,may, thus, thus, be extended be extended
for an for an example exampleofofan an implementation implementation of entropy of the the entropy en/decoders en/decoders 318-322/306-310 318-322/306-310 as as context-adaptive binary context-adaptive binary arithmetic arithmetic en/decoding en/decodingengines: engines:
To be To bemore moreprecise, precise,ininaccordance accordancewith with anan embodiment, embodiment, the entropy the entropy encoder encoder attached attached to to the output the of parameter output of parameterassigner assigner(which (whichacts actsasasaacontext contextassigner, assigner,here) here) may mayoperate operateinin the following the way: following way:
0. The 0. The assigner assigner 304304 forwards forwards the the bin bin value value along along with with the probability the probability parameter. parameter. The The
probability is pState_current[bin]. probability is pState_current[bin].
1. Thus, the 1. Thus, the entropy entropy encoding encodingengine enginereceives: receives: 1) 1) valLPS, valLPS, 2)2) the the bin bin and and 3)3) the the probability distribution probability distribution estimate estimate pState_current[bin]. pState_current[bin] pState_current[bin] may mayhavehave morestates more states than than the the number numberof of distinguishable distinguishable probabilitystate probability stateindices indicesofofRtab. Rtab.IfIf so, pState_current[bin] so, maybebequantized pState_current[bin] may quantized such such as,as, forfor example, example, by disregarding by disregarding m m LSBswith LSBs withm m being being greaterthan greater thanororequal equaltoto1 1and andpreferably preferably2 2oror33SOsoasas to to obtain obtain an an p_state, i.e p_state, i.ethe theindex index which which isis then then used used toto access access the the table table Rtab. Rtab. The Thequantization quantization may,however, may, however,bebeleft left away, away,i.e. i.e. p_state p_state may bepState_current[bin]. may be pState_current[bin]. 2. Then, 2. Then, a quantization a quantization ofisR performed of R is performed (As mentioned (As mentioned above:one above: either either one R (and R (and
corresponding LL with corresponding with one one common common bitstream)is isused/managed bitstream) used/managed for for all all 53
distinguishable values distinguishable values of of p_state, p_state, or or one oneR R(and (and corresponding corresponding L with L with associated associated
partial bitstream per R/L pair) per distinguishable value of p_state which latter case partial bitstream per R/L pair) per distinguishable value of p_state which latter case
wouldcorrespond would correspondtotohaving havingone one binencoder bin encoder310310 perper such such value) value)
q_index==Qtab[R>>q] q_index Qtab[R>>q] (or some (or some otherother form form of quantization) of quantization)
3. 3. Then, aa determination Then, determinationof of RLPS RLPSand andRRisis performed: performed: RLPS ==Rtab[p_state][q_index]: RLPS Rtab[p_state][q_index]; Rtab Rtab has has stored stored therein therein pre-calculated pre-calculated values values for for p[p_state]·Q[q_index] p[p_state]-Q[q_index] 2024201207
R R=R= -RRLPS – RLPS [thatis,
[that is,RRisis preliminarily preliminarily pre-updated as if pre-updated as if “bin” "bin" was was MPS] MPS]
4. 4. Calculation of the new partial interval: Calculation of the new partial interval:
if (bin if (bin = = 11 -- valMPS) then valMPS) then
L¬L+R L-L+R R ¬RLPS R RLPS 5. Renormalization 5. Renormalization of of L and L and R, R, writing writing bits, bits,
Analogously,the Analogously, theentropy entropydecoder decoder attached attached to the to the output output of parameter of parameter assigner assigner (which (which
acts as a context assigner, here) may operates in the following way: acts as a context assigner, here) may operates in the following way:
0. 0. Theassigner The assigner304 304forwards forwards thethe binbin value value along along with with the the probability probability parameter. parameter. The The probability is pState_current[bin]. probability is pState_current[bin].
1. Thus,thetheentropy 1. Thus, entropy decoding decoding engine engine receives receives the request the request for a for a bin with: bin along along1)with: 1) valLPS, and valLPS, and2) 2) the the probability probability distribution distribution estimate estimate pState_current[bin]. pState_current[bin]. pState_current[bin] may pState_current[bin] may have morestates have more states than than the the number numberof ofdistinguishable distinguishable probability state indices of Rtab. If so, pState_current[bin] may be quantized such as, probability state indices of Rtab. If so, pState_current[bin] may be quantized such as,
for example, for example, bybydisregarding disregardingm m LSBs LSBs withwith m being m being greater greater than than or or equal equal to 1 andto 1 and preferably2 2oror3 3SOso preferably as as to to obtain obtain an p_state, an p_state, i.e the i.e the index index which which is thenis then used to used accessto access
the table the table Rtab. Rtab. TheThequantization quantizationmay, may, however, however, be left be left away, away, i.e. i.e. p_state _state may bemay be pState_current[bin]. pState_current[bin].
2. Then, 2. Then, aaquantization quantizationofofR R is is performed performed (As (As mentioned mentioned above: above: either either one R (and one R (and
corresponding VV with corresponding with one onecommon common bitstream)is isused/managed bitstream) used/managed for for all all distinguishable values distinguishable values of of p_state, p_state, or or one oneR R(and (and corresponding corresponding V with V with associated associated
partial bitstream per R/L pair) per distinguishable value of p_state which latter case partial bitstream per R/L pair) per distinguishable value of p_state which latter case
wouldcorrespond would correspondtotohaving havingone one binencoder bin encoder 310310 perper such such value) value)
q_index==Qtab[R>>q] q_index Qtab[R>>q] (or some (or some otherother form form of quantization) of quantization)
3. 3. Then, aa determination Then, determinationof of RLPS RLPSand andRRisis performed: performed: RLPS ==Rtab[p_state][q_index]; RLPS Rtab[p_state][q_index]; Rtab Rtab has has stored stored therein therein pre-calculated pre-calculated values values for for p[p_state]·Q[q_index] p[p_state]-Q[q_index]
R = -RRLPS R=R – RLPS [thatis,is,RRisis preliminarily
[that preliminarily pre-updated as if pre-updated as if “bin” "bin" was was MPS] MPS]
4. 4. Determination of bin depending on the position of the partial interval: Determination of bin depending on the position of the partial interval:
54
if (V if (V ³³R) R then then
bin -¬ 11 -- valMPS bin valMPS (bin(bin is decoded is decoded as LPS; as LPS; bin buffer bin buffer selector selector 18 will 18 will obtain obtain the the
actual bin actual bin value value by by use use of of this thisbin bininformation informationand andvalMPS) valMPS)
V ¬- VV - RR V R -¬ RLPS R RLPS else else
bin ¬ bin - valMPS (bin valMPS (bin is is decoded decoded as as MPS;MPS; the the 2024201207
actual bin actual bin value value isis obtained obtainedbybyuseuse of of this this binbin information information and and
valMPS) valMPS) 5. Renormalization 5. Renormalizationof of R, R, reading reading outout oneone bitbit andand updating updating V, V,
As described As described above, above, the the assigner assigner 44assigns assigns pState_current[bin] pState_current[bin] to each bin. to each bin. The The association may association maybebedone done based based on on a context a context selection. selection. That That is, is, assigner assigner 4 may 4 may select select a a context using context using anancontext contextindex index ctxIdx ctxIdx which, which, in turn, in turn, has has a respective a respective pState_current pState_current
associated therewith. associated therewith. AAprobability probabilityupdate updatemay may be be performed performed each each time,time, a probabililty a probabililty
pState_current[bin] has pState_current[bin] has been beenapplied appliedtotoaacurrent currentbin. bin. An Anupdate updateofofthe theprobability probabilitystate state pState_current[bin] is pState_current[bin] is performed dependingononthe performed depending thevalue valueofofthe thecoded codedbit: bit:
if (bit = 1 - valMPS) then if (bit = 1 - valMPS) then
pState_current Next_State_LPS pState_current Next_State_LPS [pState_current]
[pState_current]
if (pState_current if (pState_current= 0)=0) then valMPS then 11 –- valMPS valMPS valMPS else else
pState_current Next_State_MPS pState_current Next_State_MPS [pState_current]
[pState_current]
If more If more than than one onecontext contextis isprovided, provided,thetheadaptation adaptationisisdone done context-wise,i.e. context-wise, i.e. pState_current[ctxIdx] is pState_current[ctxIdx] is used used for for coding codingand andthen thenupdated updated using using the the current current bin bin value value
(encodedoror decoded, (encoded decoded,respectively). respectively).
As will As will bebeoutlined outlinedininmore more detailbelow, detail below, in accordance in accordance with with embodiments embodiments described described
now,the now, theencoder encoderandand decoder decoder may may optionally optionally be implemented be implemented to operate to operate in different in different
modes,namely modes, namelyLowLow complexity complexity (LC), (LC), and High and High efficiency efficiency (HE) (HE) mode. mode. This isThis is illustrated illustrated
primarily regarding primarily regardingPIPE PIPEcoding coding in the in the following following (then (then mentioning mentioning LC andLC HE and PIPE HE PIPE modes), but the description of the complexity scalability details is easily transferable to modes), but the description of the complexity scalability details is easily transferable to
other implementations other ofthe implementations of the entropy entropyencoding/decoding encoding/decoding engines engines such such as as thethe embodiment embodiment
of using of using one common one common context-adaptive context-adaptive arithmetic arithmetic en/decoder. en/decoder.
In accordance In accordancewith withthetheembodiments embodiments outlined outlined below, below, both entropy both entropy coding coding modes modes may may share share
55
• the same the samesyntax syntaxandand semantics semantics (for(for thethe syntax syntax element element sequence sequence 301 301 and and 327, 327, respectively) respectively)
the same • the samebinarization binarization schemes schemesforforall allsyntax syntaxelements elements (ascurrently (as currentlyspecified specifiedfor for CABAC) CABAC) (i.e.binarizers (i.e. binarizersmay may operate operate irrespectiveofofthe irrespective themode mode activated) activated)
• the usage the usage of of the the same samePIPE PIPE codes codes (i.e.bin (i.e. binen/decoders en/decoders maymay operate operate irrespective irrespective
of the of the mode activated) mode activated)
• the usage the usageofof8 8bitbitprobability probability model model initialization initialization values values (instead (instead of 16ofbit 16 bit 2024201207
initialization values initialization valuesasas currently specified currently forfor specified CABAC) CABAC)
Generallyspeaking, Generally speaking,LC-PIPE LC-PIPE differs differs from from HE-PIPE HE-PIPE in theinprocessing the processing complexity, complexity, such such as the complexity of selecting the PIPE path 312 for each bin. as the complexity of selecting the PIPE path 312 for each bin.
For example, For example,the theLCLC mode mode may operate may operate under under the following the following constraints: constraints: Forbineach For each bin (binIdx), there may be exactly one probability model, i.e., one ctxIdx. That is, no context (binIdx), there may be exactly one probability model, i.e., one ctxIdx. That is, no context
selection/adaptation may selection/adaptation beprovided may be providedininLCLCPIPE. PIPE. Specificsyntax Specific syntax elements elements such such as as those those
used for used for residual residual coding codingmay, may, hover, hover, coded coded using using contexts, contexts, as further as further outlined outlined below. below.
Moreover,all Moreover, all probability probability models modelsmay maybebe non-adaptive, non-adaptive, i.e.,all i.e., all models maybebeinitialized models may initialized at the beginning at ofeach beginning of eachslice slicewith withappropriate appropriatemodel model probabilities probabilities (depending (depending on on the the choice of choice of slice slice type and slice type and slice QP) QP)and andmay maybe be kept kept fixed fixed throughout throughout processing processing of the of the
slice. For slice. For example, only8 8different example, only differentmodel model probabilities probabilities corresponding corresponding to 8 different to 8 different
PIPEcodes PIPE codes310/322 310/322 maymay be supported, be supported, bothboth for context for context modelling modelling and coding. and coding. Specific Specific
syntax elements syntax elements forforresidual residualcoding, coding, i.e.,i.e., significance_coeff_flag and significance_coeff_flag and coeff_abs_level_greaterX(with coeff_abs_level_greaterX (withX=1,2), X=1,2), thesemantics the semantics of of which which areare outlied outlied inin more more detail detail
below, may below, maybebeassigned assignedtotoprobability probabilitymodels models such such that(at(atleast) that least) groups groupsof, of, for for example, example,
4 syntax 4 syntax elements elementsare areencoded/decoded encoded/decodedwithwith the same the same modelmodel probability. probability. Compared Compared to to
CAVLC, CAVLC, thethe LC-PIPE LC-PIPE mode mode achieves achieves roughly roughly samesame the the R-D performance R-D performance and theand the samethroughput. same throughput.
HE-PIPEmaymay HE-PIPE be be configured configured to to be be conceptually conceptually similar similar to to CABAC CABAC of H.264 of H.264 with with the following the followingdifferences: differences:Binary Binaryarithmetic arithmeticcoding coding(BAC) (BAC) is replaced is replaced by PIPE by PIPE coding coding
(sameasasininthetheLC-PIPE (same LC-PIPE case). case). Each Each probability probability model, model, i.e.,ctxIdx, i.e., each each ctxIdx, may be may be represented by represented byaapipeIdx pipeIdxand anda arefineIdx, refineIdx,where where pipeIdx pipeIdx with with values values in the in the range range fromfrom
0…7 represents 0...7 represents the the model probability of model probability of the the 88 different different PIPE codes. This PIPE codes. This change changeaffects affects only the only the internal internal representation representation ofofstates, states, not not the the behavior behaviorofofthethestate statemachine machine (i.e., (i.e.,
probability estimation) itself. As will be out.ined in more detail below, the initialization probability estimation) itself. As will be out.ined in more detail below, the initialization
of probability of probability models modelsmaymay use use 8 initialization 8 bit bit initialization values values as stated as stated above. above. Backward Backward
scanning ofof syntax scanning syntax elements elements coeff_abs_level_greaterX(with coeff_abs_level_greaterX (with X = 1, 2), = 1, 2), coeff_abs_level_minus3,andand coeff_abs_level_minus3, coeff_sign_flag coeff_sign_flag (the (the semantics semantics of of which which willwill getget clear clear from from
56
the below the belowdiscussion) discussion)may maybe be performed performed alongalong the same the same scanning scanning path aspath the as the forward forward
scan (used scan (used in, in, for for example, the significance example, the significance map mapcoding). coding).Context Context derivation derivation forfor coding coding
of coeff_abs_level_greaterX of coeff_abs_level_greaterX (with (with X X = = 1, 1,2)2)may also be may also be simplified. simplified. Compared to Compared to CABAC, CABAC, the the proposed proposed HE-PIPE HE-PIPE achieves achieves roughlyroughly theR-D the same same R-D performance performance at at a better a better throughput. throughput.
It isis easy It easy to to see see that that the the just-mentioned modesare just-mentioned modes arereadily readilygenerated generated by by rendering, rendering, forfor 2024201207
example,the example, theafore-mentioned afore-mentioned context-adaptive context-adaptive binary binary arithmetic arithmetic en/decoding en/decoding engine engine such that such that same operates in same operates in different different modes. modes.
Thus, in Thus, in accordance accordancewith withananembodiment embodiment in accordance in accordance with with a first a first aspect aspect of the of the present present
invention, aa decoder invention, for decoding decoder for decoding aadata data stream streammay maybebe constructed constructed as as shown shown in Fig. in Fig. 11.11.
Thedecoder The decoderisisfor fordecoding decoding a datastream a datastream 401,401, suchsuch as interleaved as interleaved bitstream bitstream 340, 340, into into whichmedia which mediadata, data,such such as as video video data, data, is is coded. coded. TheThe decoder decoder comprises comprises a mode a mode switch switch
400 configured 400 configured to to activate activate the the low-complexity modeororthe low-complexity mode thehigh highefficiency efficiency mode mode dependingononthethedata depending data stream stream 401. 401. To this To this end,end, the data the data stream stream 401comprise 401 may may comprise a a syntax element syntax elementsuch suchasasaabinary binarysyntax syntaxelement, element,having havinga abinary binaryvalue valueofof1 1inincase caseofofthe the low-complexitymode low-complexity mode being being the the one one to betoactivated, be activated, and and having having a binary a binary value value of of 0 in 0 in caseofofthe case thehigh highefficiency efficiency mode mode being being the onethe to one to be activated. be activated. Obviously, Obviously, the association the association
between binary between binary value value and and coding coding mode modecouldcouldbebeswitched, switched,andanda anon-binary non-binarysyntax syntax elementhaving element havingmore more thanthan two two possible possible values values could could be usedbeasused well.asAswell. As the actual the actual
selection between selection betweenboth bothmodes modes is not is not yet yet clear clear before before the reception the reception of theofrespective the respective syntax element, syntax element, this this syntax elementmay syntax element maybebecontained contained within within some some leading leading header header of of the the datastream 401 datastream 401encoded, encoded, forfor example, example, withwith a fixed a fixed probability probability estimate estimate or probability or probability
modelororbeing model being written written intointo the datastream the datastream 401 as 401 as i.e., it is, it is, using i.e., using a bypass a bypass mode. mode.
Further, the Further, decoder ofofFig. the decoder Fig. 1111comprises comprises a pluralityofofentropy a plurality entropy decoders decoders 322 322 each each of of whichisis configured which configuredto to convert convert codewords codewordsin in thedatastream the datastream 401 401 to to partialsequences partial sequences 321 321
of symbols. of Asdescribed symbols. As describedabove, above, a de-interleaver404404 a de-interleaver maymay be connected be connected between between inputsinputs
of entropy of decoders322 entropy decoders 322ononthetheoneone hand hand andand the the input input of the of the decoder decoder of Fig. of Fig. 11 where 11 where
the datastream the datastream401 401isisapplied, applied,ononthetheother otherhand. hand. Further, Further, as as already already described described above, above,
each ofofthe each theentropy entropy decoders decoders 322 bemay 322 may be associated associated with a respective with a respective probability probability
interval, the interval, the probability probability intervals intervalsofofthe thevarious variousentropy entropy decoders together covering decoders together covering the the wholeprobability whole probabilityinterval interval from from00toto11-- or or 00 to to 0.5 0.5 in in case of the case of the entropy decoders322 entropy decoders 322 dealing with dealing with MPS MPSandand LPS LPS rather rather than than absolute absolute symbolsymbol values.values. DetailsDetails regarding regarding this this issue have issue been described have been describedabove. above.Later Lateron, on,it it is is assumed that the assumed that the number of decoders number of decoders322 322 is 88 with is with aa PIPE PIPEindex indexbeing being assigned assigned to each to each decoder, decoder, but other but any any other numbernumber is also is also
feasible. Further, feasible. Further,one oneof of these these coders, coders, in following in the the following this isthis is exemplarily exemplarily the one having the one having
57
pipe_id 0,0, isis optimized pipe_id optimizedforforbins bins having having equi-probable equi-probable statistics, statistics, i.e.i.e. their their binbin value value
assumes1 1andand assumes 0 equally 0 equally probably. probably. This, This, decoder decoder may merely may merely pass on pass on the the bins. The bins.The respective encoder respective encoder 310 310operates operatesthe thesame. same.Even Even anyany bin bin manipulation manipulation depending depending on theon the
value of value of the the most probable bin most probable bin value, value, valMPS, valMPS, bybythe theselectors selectors 402 402and and502, 502,respectively, respectively, maybebeleft may left away. away.InInother otherwords, words,the theentropy entropyofofthe therespective respectivepartial partial stream streamisis already already optimal. optimal. 2024201207
Further, the Further, the decoder decoderofofFig. Fig.1111comprises comprises a selector a selector 402 402 configured configured to retrieve to retrieve each each symbolofofa asequence symbol sequence 326326 of symbols of symbols from from a selected a selected one ofone the of the plurality plurality of entropy of entropy
decoders 322. decoders 322. AsAs mentioned mentionedabove, above,selector selector 402 402 may maybebesplit-up split-upinto into aa parameter parameter assigner 316 assigner 316 and andaaselector selector 318. 318. AAde-symbolizer de-symbolizer314314 is is configured configured to to de-symbolize de-symbolize the the sequence 326 sequence 326 of of symbols symbolsinin order order toto obtain obtain aa sequence sequence 327 327 of of syntax syntax elements. elements. AA reconstructor 404 reconstructor 404 is is configured to reconstruct configured to reconstruct the the media data 405 media data 405based basedononthethesequence sequence of syntax of syntax elements elements 327. 327. The Theselector selector 402 402isisconfigured configuredtotoperform performthe theselection selection dependingononthethe depending activated activated oneone of the of the low low complexity complexity mode mode and the and the high-efficiency high-efficiency
mode as it is indicated by arrow 406. mode as it is indicated by arrow 406.
As already As alreadynoted notedabove, above, thethe reconstructor reconstructor 404404 may may bepart be the the of parta predictive of a predictive block-block-
based video based videodecoder decoderoperating operatingonon a fixed a fixed syntax syntax andand semantics semantics of syntax of syntax elements, elements, i.e.,i.e.,
fixed relative fixed relative to tothe themode selection by mode selection by mode switch400. mode switch 400.That Thatis,is,the theconstruction constructionofofthe the reconstructor 404 reconstructor 404 does doesnot notsuffer sufferfrom fromthe themode mode switchability. switchability. To To be be moremore precise, precise, the the reconstructor 404 reconstructor 404 does does not not increase increase the the implementation implementation overhead overhead due to the due to the mode mode switchability offered by mode switch 400 und at least the functionality with regard to the switchability offered by mode switch 400 und at least the functionality with regard to the
residual data residual data and the prediction and the prediction data data remains the same remains the sameirrespective irrespectiveofof the the mode modeselected selected by switch by switch 400. 400.The Thesame same applies,however, applies, however, with with regard regard to to thethe entropy entropy decoders decoders 322.322. All All
these decoders these decoders322322arearereused reused in in bothboth modes modes and, and, accordingly, accordingly, there there is no is no additional additional
implementationoverhead implementation overhead although although thethe decoder decoder of of Fig. Fig. 11 11 is is compatible compatible with with both both modes, modes,
the low-complexity the andhigh-efficiency low-complexity and high-efficiencymodes. modes.
As a side aspect it should be noted that the decoder of Fig. 11 is not only able to operate As a side aspect it should be noted that the decoder of Fig. 11 is not only able to operate
on self-contained on self-contained datastreams datastreamseither eitherininthe theoneone mode mode or other or the the other mode.mode. Rather,Rather, the the decoderof decoder of Fig. Fig. 11 11 as as well well as as the the datastream datastream 401401 could couldbebeconfigured configuredsuch suchthat thatswitching switching betweenboth between bothmodes modes would would even even be possible be possible during during oneofpiece one piece mediaofdata media suchdata as such as
during aavideo during videoor or some some audioaudio piece,piece, in order in order to, forto, for example, example, control control the the coding coding
complexityatat the complexity the decoding decodingside sidedepending dependingon on external external or or environmental environmental conditions conditions suchsuch
as aa battery as battery status statusor orthe thelike likewith withusing usinga afeedback feedback channel from decoder channel from decodertotoencoder encoderinin order to order to accordingly accordingly locked-loop control the locked-loop control the mode selection. mode selection.
58
Thus, the Thus, the decoder decoderofofFig. Fig.1111operates operatessimilarly similarlyininboth both cases,in incase cases, case of of thethe LC LC modemode
being selected being selected ororthe theHEHE modemode being being selected. selected. The reconstructor The reconstructor 404 performs 404 performs the the reconstruction using reconstruction using the the syntax syntaxelements elementsandand requests requests the the current current syntax syntax element element of a of a
predeterminedsyntax predetermined syntax element element typetype by processing by processing or obeying or obeying somestructure some syntax syntax structure prescription. The prescription. de-symbolizer314 The de-symbolizer 314requests requestsa number a number of bins of bins in order in order to yield to yield a valid a valid
binarization for binarization for the the syntax syntax element elementrequested requestedby by thethe reconstructor reconstructor 404.404. Obviously, Obviously, in in case of case of aa binary binary alphabet, alphabet, the thebinarization binarizationperformed performed by by de-symbolizer 314reduces de-symbolizer 314 reducesdown down 2024201207
to merely to passing the merely passing the respective respective bin/symbol 326totoreconstructor bin/symbol 326 reconstructor 404 404asasthe the binary binary syntax syntax elementcurrently element currently requested. requested.
Theselector The selector 402, 402, however, however,acts acts independently independentlyononthe themode mode selected selected byby mode mode switch switch 400.400.
Themode The modeof of operation operation of selector of selector 402402 tends tends to more to be be more complex complex in casein ofcase of the the high high efficiency mode, efficiency andless mode, and lesscomplex complexin in case case of of thethe low-complexity low-complexity mode.mode. Moreover, Moreover, the the following discussion following discussionwill willshow show thatthethemode that mode of operation of operation of selector of selector 402 402 in less- in the the less- complexmode complex mode also also tends tends to to reduce reduce thethe rate rate at at which which selector selector 402402 changes changes the selection the selection
amongthe among theentropy entropydecoders decoders 322322 in retrieving in retrieving thethe consecutive consecutive symbols symbols fromfrom the entropy the entropy
decoders 322. decoders 322. In In other other words, words, in in the the low-complexity low-complexity mode, mode,there thereisis ananincreased increased probability that probability that immediately consecutivesymbols immediately consecutive symbols are are retrieved retrieved fromfrom the same the same entropy entropy
decoderamong decoder amongthethe pluralityofofentropy plurality entropy decoders decoders 322.322. This, This, in turn, in turn, allows allows for for a faster a faster
retrieval of retrieval of the thesymbols fromthe symbols from the entropy entropydecoders decoders322. 322.InInthethehigh-efficiency high-efficiencymode, mode, in in turn, the turn, the mode mode ofofoperation operationofofthe theselector selector402 402tends tends to to lead lead to to a selectionamong a selection among the the
entropy decoders entropy decoders322322 where where the probability the probability interval interval associated associated with with the the respective respective
selected entropy selected entropy decoder decoder322322 more more closely closely fits fits to the to the actual actual symbol symbol statistics statistics of of the the symbol symbol currently currently retrieved retrieved by selector by selector 402, thereby 402, thereby yieldingyielding a better a better compression compression ratio at ratio at the encoding the encodingsidesidewhen when generating generating the the respective respective datadata stream stream in accordance in accordance with the with the
high-efficiency mode. high-efficiency mode.
For example, For example,the thedifferent different behavior of the behavior of the selector selector 402 402 in in both both modes, maybeberealized modes, may realizedasas follows. For follows. example, the For example, theselector selector 402 402maymay be configured be configured to perform, to perform, for a for a predetermined symbol, predetermined symbol, the the selection selection among the plurality among the plurality of of entropy entropy decoders decoders 322 322 dependingononpreviously depending previouslyretrieved retrievedsymbols symbolsofof thesequence the sequence 326326 of of symbols symbols in case in case of the of the
high-efficiency mode high-efficiency modebeing being activated activated and and independent independent from from any any previously previously retrieved retrieved
symbolsofofthe symbols the sequence sequenceofofsymbols symbolsin in caseofofthe case thelow-complexity low-complexity mode mode being being activated. activated.
Thedependency The dependencyon on previously previously retrieved retrieved symbols symbols of sequence of the the sequence 326 of326 of symbols symbols may may result from a context adaptivity and/or a probability adaptivity. Both adaptivities may be result from a context adaptivity and/or a probability adaptivity. Both adaptivities may be
switched off switched off during during low lowcomplexity complexitymode modein in selector402. selector 402.
59
In accordance In accordancewith witha further a furtherembodiment, embodiment, the datastream the datastream 401be may 401 may be structured structured into into consecutive portions consecutive portionssuch suchasasslices, slices, frames, frames,group groupof of pictures,frame pictures, frame sequences sequences or the or the
like, and like, and each symbolofofthe each symbol thesequence sequence of of symbols symbols may may be associated be associated with awith a respective respective
one of one of aa plurality plurality of of symbol types.InInthis symbol types. this case, case, the the selector selector 402 402 may maybebe configured configured to to vary, for vary, for symbols of aa predetermined symbols of predeterminedsymbol symbol type type within within a current a current portion, portion, thetheselection selection depending on depending onpreviously previouslyretrieved retrieved symbols symbolsofofthethe sequence sequence of symbols of symbols of theof the predeterminedsymbol predetermined symbol type type within within thecurrent the currentportion portioninincase caseofofthe the high-efficiency high-efficiency mode mode 2024201207
being activated, and leave the selection constant within the current portion in case of the being activated, and leave the selection constant within the current portion in case of the
low-complexitymode low-complexity mode being being activated. activated. That That is,is,selector selector402 402may maybebe allowed allowed to to change change thethe
selection among selection theentropy among the entropydecoders decoders 322322 forfor thethe predetermined predetermined symbol symbol type,type, but these but these
changesare changes are restricted restricted to to occur occur between transitions between between transitions consecutiveportions. between consecutive portions.By Bythis this measure,evaluations measure, evaluationsofofactual actualsymbol symbol statisticsare statistics are restricted restricted to to seldom occurringtime seldom occurring time instances while instances coding complexity while coding complexityisisreduced reducedwithin withinthe themajority majorityofofthe the time. time.
Further, each Further, each symbol ofthe symbol of the sequence sequence326 326ofofsymbols symbols may may be associated be associated with with a respective a respective
one of one of aaplurality plurality of of symbol symboltypes, types,andand thethe selector selector 402402 may may be configured be configured to,a for a to, for
predeterminedsymbol predetermined symbol of aofpredetermined a predetermined symbolsymbol type, one type, select select of aone of a plurality plurality of of contexts depending contexts dependingononpreviously previouslyretrieved retrievedsymbols symbolsof of thethe sequence sequence 326326 of symbols of symbols and and performthe perform the selection selection among amongthetheentropy entropydecoders decoders 322322 depending depending on aon a probability probability model model
associated with associated with aa selected selected context context along alongwith withupdating updatingthetheprobability probabilitymodel model associated associated
with aa selected with selected context contextdepending depending on on the the predetermined predetermined symbolsymbol in caseinofcase of the high- the high-
efficiency mode being activated, and perform selecting the one of the plurality of context efficiency mode being activated, and perform selecting the one of the plurality of context
dependingononthethe depending previously previously retrieved retrieved symbols symbols of theofsequence the sequence 326 of 326 of symbols symbols and and performthe perform theselection selectionamongamong the the entropy entropy decoders decoders 322 depending 322 depending on the probability on the probability
modelassociated model associatedwith with thethe selected selected context context along along with with leaving leaving the probability the probability model model
associated with associated with the the selected selected context context constant constant inin case case ofof the the low-complexity low-complexitymode mode being being
activated.That activated. Thatis,is,selector selector402402 maymay use context use context adaptivity adaptivity with respect with respect to asyntax to a certain certain syntax elementtype element typeinin both bothmodes, modes,while while suppressing suppressing probability probability adaptation adaptation in in case case of of thethe LC LC mode. mode.
Alternatively, instead Alternatively, instead of of completely suppressingthe completely suppressing theprobability probability adaptation, adaptation, selector selector 402 402 maymerely may merelyreduce reduce an an update update rate rate of of thethe probability probability adaptation adaptation of of theLCLC the mode mode relative relative
to the to the HE mode. HE mode.
Further, possible Further, possible LC-pipe-specific LC-pipe-specificaspects, aspects,i.e., i.e.,aspects aspectsof of thethe LC mode, LC mode, could could be be described as described as follows follows in in other other words. words. In In particular, particular,non-adaptive non-adaptive probability probability models could models could
be used be used inin the the LC mode.A A LC mode. non-adaptive non-adaptive probability probability model model can can either either havehave a hardcoded, a hardcoded,
i.e., overall i.e., overall constant probability constant probability or or itsits probability probability is kept is kept fixed fixed throughout throughout processing processing of a of a 60
slice only slice and thus only and thuscan canbebesetsetdependent dependent on slice on slice typetype and i.e., and QP, QP, i.e., the quantization the quantization
parameterwhich parameter whichis,is,for forexample, example,signaled signaledwithin within thethe datastream datastream 401401 for for eacheach slice. slice. By By assumingthat assuming thatsuccessive successivebins binsassigned assigned to to thethe same same context context follow follow a fixed a fixed probability probability
model, it is possible to decode several of those bins in one step as they are encoded using model, it is possible to decode several of those bins in one step as they are encoded using
the same the pipecode, same pipe code,i.e., i.e., using the same using the entropydecoder, same entropy decoder,and anda probability a probabilityupdate update after after
each decoded each decodedbinbinis isomitted. omitted.Omitting Omitting probability probability updates updates saves saves operations operations during during the the
encodingand encoding anddecoding decoding process process and, and, thus,thus, also also leadsleads to complexity to complexity reductions reductions and a and a 2024201207
significant simplification in hardware design. significant simplification in hardware design.
Thenon-adaptive The non-adaptiveconstraint constraintmay maybe be eased eased forfor allallororsome some selected selected probability probability models models in in such aa way such waythat that probability probability updates updates are are allowed allowedafter after aa certain certain number ofbins number of binshave havebeen been encoded/decoded encoded/decoded using using this this model. model. An appropriate An appropriate update update interval interval allows allows a probability a probability
adaptation while having the ability to decode several bins at once. adaptation while having the ability to decode several bins at once.
In the In the following, following,a amore more detailed detailed description description of possible of possible common common and complexity- and complexity-
scalable aspects scalable aspects of of LC-pipe LC-pipeandand HE-pipe HE-pipe is presented. is presented. In particular, In particular, in the in the following, following,
aspects are aspects are described described which whichmaymay be used be used for for LC-pipe LC-pipe mode mode and HE-pipe and HE-pipe mode mode in the in the sameway same wayororinina acomplexity-scalable complexity-scalable manner. manner. Complexity-scalable Complexity-scalable means means thatLC-the that the LC- case is case is derived derived from the HE-case from the HE-casebybyremoving removing particular particular partsororbybyreplacing parts replacingthem them with with
somethingless something lesscomplex. complex.However, However, before before proceeding proceeding therewith, therewith, it should it should be mentioned be mentioned
that the that the embodiment embodiment ofof Fig.1111isiseasily Fig. easilytransferable transferable onto onto the the above-mentioned above-mentioned context- context-
adaptive binary adaptive binary arithmetic arithmetic en/decoding en/decodingembodiment: embodiment: selector selector 402 402 and and entropy entropy decoders decoders
322 would 322 wouldcondense condense intointo a context-adaptive a context-adaptive binarybinary arithmetic arithmetic decoder decoder which which would would receivethe receive thedatastream datastream401 401 directly directly and select and select the context the context forcurrently for a bin a bin currently to be derived to be derived
fromthe from thedatastream. datastream.ThisThis is is especially especially true true forfor context context adaptivity adaptivity and/or and/or probability probability
adaptivity. Both adaptivity. Bothfunctionalities/adaptivities functionalities/adaptivities maymaybebe switched switched off,off, or designed or designed more more
relaxed, during relaxed, during low complexitymode. low complexity mode. For example, For example,ininimplementing implementingthethe embodiment embodiment of Fig. of Fig. 11, the 11, the pipepipe entropy entropy coding coding stagestage
involving the involving theentropy entropydecoders decoders 322 322 couldcould use systematic use eight eight systematic variable-to-variable- variable-to-variable-
codes, i.e., codes, i.e., each each entropy entropy decoder 322could decoder 322 couldbebeofofa av2v v2v type type which which has has beenbeen described described
above. The above. ThePIPE PIPE coding coding concept concept using using systematic systematic v2v-codes v2v-codes is simplified is simplified by restricting by restricting
the number the number ofofv2v-codes. v2v-codes.InIncase caseofofa context-adaptive a context-adaptive binary binary arithmetic arithmetic decoder, decoder, same same
could manage could managethethesame same probability probability statesforforthethedifferent states differentcontexts contextsand anduse usesame samea – or - or a
quantoizedversion quantoized versionthereof thereof -– for for the the probability probability sub-division. sub-division.The The mapping of CABAC mapping of CABAC or or
probability model probability modelstates, states,i.e. i.e. the the states states used usedforforprobability probabilityupdate, update, to to PIPE PIPE ids ids or or probability indices probability indices for forlook-up look-up into intoRtab Rtab may be as may be as depicted depicted in in Table Table A. A.
61
CABAC CABAC PIPE PIPE CABAC CABAC state state PIPE PIPE state state index index index index 0 0 0 0 32 32 5 5 11 33 33 2 2 34 34 3 3 11 35 35 4 4 36 36 5 5 37 37 6 38 2024201207
6 38 7 7 39 39 8 8 40 40 9 9 41 41 10 10 2 2 42 42 11 11 43 43 12 12 44 44 13 13 45 45 14 14 46 46 6 6 15 15 3 3 47 47 16 16 48 48 17 17 49 49 18 18 50 50 19 19 51 51 20 20 52 52 21 21 53 53 22 22 4 4 54 54 23 23 55 55 24 24 56 56 25 25 57 57 26 26 58 58 27 27 59 59 28 28 60 60 29 29 61 61 30 30 62 62 7 7 31 31
Table A: Table A:Mapping Mappingof of CABAC CABAC statesstates to PIPE to PIPE indices indices
This modified This modifiedcoding codingscheme scheme may may be used be used as a basis as a basis for complexity-scalable for the the complexity-scalable video video
coding approach. coding approach.When When performing performing probability probability mode adaptation, mode adaptation, the selector the selector 402 or 402 or context-adaptive binary arithmetic context-adaptive binary arithmetic decoder, decoder,respectively, respectively, would wouldselect selectthe thePIPE PIPEdecoder decoder 322, 322, .i.e. derive the .i.e. derive the pipe pipeindex, index,to to be be used, and the used, and probability index into the probability indexRtab, into Rtab, respectively, based on the probability state index - here exemplarily ranging from 0 to 62 respectively, based on the probability state index - here exemplarily ranging from 0 to 62 -– associated associated with with the the currently currently to to be be decoded symbol decoded symbol – such - such as as viavia a context a context - usingthethe - using
mappingshown mapping shown in table in table A, A, andand would would update update this this probability probability statestate index index depending depending on on the currently the currently decoded decodedsymbol symbol using, using, forfor example, example, specific specific table table walkwalk transition transition values values
pointing to pointing to the the next next probability probability state state index index to to be be visited visited in in case case of of an an MPS anda aLPS, MPS and LPS, 62
respectively. In respectively. In case case of ofLC LC mode, the latter mode, the latter update update could could be be left leftaway. away. Even the mapping Even the mapping could be left away in case of globally fixed probability models. could be left away in case of globally fixed probability models.
However,anan However, arbitraryentropy arbitrary entropy coding coding setup setup could could be and be used usedthe and the techniques techniques in this in this documentcan document canalso alsobebeused usedwith withminor minor adaptations. adaptations.
Theabove The abovedescription descriptionofofFig. Fig.1111rather rathergenerally generallyreferred referred to to syntax syntax elements elementsand andsyntax syntax 2024201207
element types. element types. In In the the following, following, aa complexity complexityconfigurable configurable coding codingofoftransform transform coefficient levels is described. coefficient levels is described.
For example, For example,the thereconstructor reconstructor404 404maymay be configured be configured to reconstruct to reconstruct a transform a transform blockblock
200 ofoftransform 200 transformcoefficient coefficientlevels levels202 202based based on on a portion a portion of the of the sequence sequence of syntax of syntax
elementsindependent elements independentfrom from thethe high-efficiency high-efficiency mode mode or the or the low-complexity low-complexity mode mode being being activated, the activated, portion of the portion of the the sequence sequence327327 of of syntax syntax elements elements comprising, comprising, in an in un-an un- interleaved manner, interleaved manner,significance significancemapmap syntax syntax elements elements defining defining a significance a significance map map indicating positions indicating positions of of non-zero transformcoefficient non-zero transform coefficient levels levels within within the the transform transformblock block 200, and 200, andthen then(followed (followed by) by) level level syntax syntax elements elements defining defining the non-zero the non-zero transformtransform coefficient levels. coefficient levels. In In particular, particular,the thefollowing following elements maybebeinvolved: elements may involved: endend position position
syntax elements syntax elements(last_significant_pos_x (last_significant_pos_x,last_significant_pos_y) last_significant_pos_y) indicatinga aposition indicating positionofof a last a last non-zero non-zerotransform transform coefficient coefficient level level within within the the transform transform block;block; first first syntaxsyntax
elements (coeff_significant_flag) together defining a significance map and indicating, for elements (coeff_significant_flag) together defining a significance map and indicating, for
each position each position along alonga aone-dimensional one-dimensional pathpath (274) (274) leading leading from from a DC position a DC position to the to the positionofofthe position thelast lastnon-zero non-zero transform transform coefficient coefficient level within level within the transform the transform block (200), block (200),
as to as to whether whether thethe transform transform coefficient coefficient level level at theat the respective respective positionposition is non-zero is non-zero or not; or not; secondsyntax second syntaxelements elements (coeff_abs_greater1) (coeff_abs_greater1) indicating, indicating, for for eacheach position position of one- of the the one- dimensionalpath dimensional path(274) (274)where, where,according accordingto to thethe firstbinary first binarysyntax syntaxelements, elements,a non-zero a non-zero transformcoefficient transform coefficient level level is positioned, is positioned, as to as to whether whether the transform the transform coefficientcoefficient level at level at the respective the respective position position is greater than is greater one; and than one; andthird thirdsyntax syntaxelements elements (coeff_abs_greater2, coeff_abs_minus3) (coeff_abs_greater2, coeff_abs_minus3) revealing, revealing, for for each position of each position of the the one- one- dimensionalpath dimensional pathwhere, where, according according to first to the the first binary binary syntax syntax elements, elements, a transform a transform
coefficient level coefficient level greater greater than than one oneisispositioned, positioned,anan amount amount by which by which the respective the respective
transform coefficient level at the respective position exceeds one. transform coefficient level at the respective position exceeds one.
Theorder The orderamong amongthe the end end position position syntax syntax elements, elements, the first, the first, the the second second andthird and the the third syntax elements syntax elements may be same may be samefor forthe thehigh-efficiency high-efficiency mode and the mode and the low-complexity low-complexity mode, and mode, and the the selector selector 402 maybebeconfigured 402 may configuredtoto perform performthe the selection selection among amongthe the entropy decoders entropy decoders322 322 forfor symbols symbols fromfrom whichwhich the de-symoblizer the de-symoblizer 314 obtains 314 obtains the end the end position syntax position elements, first syntax elements, first syntax syntax elements, secondsyntax elements, second syntaxelements elementsand/or and/or thethe third third
63
syntax elements, syntax elements, differently differently depending depending on the low-complexity on the low-complexity mode modeororthethehigh- high- efficiency mode efficiency beingactivated. mode being activated.
In particular, In particular,the theselector 402 selector 402may may be be configured, configured, for forsymbols symbols of of aa predetermined symbol predetermined symbol
type among type amonga subsequence a subsequence of symbols of symbols from the from which which the de-symbolizer de-symbolizer 314the 314 obtains obtains the first syntax first elementsand syntax elements andsecond second syntax syntax elements, elements, to select to select for symbol for each each symbol of the of the
predeterminedsymbol predetermined symbol typetype onea plurality one of of a plurality of contexts of contexts depending depending on previously on previously 2024201207
retrieved symbols retrieved of the symbols of the predetermined predeterminedsymbol symbol type type among among the subsequence the subsequence of symbols of symbols
and perform and performthe theselection selectiondepending dependingonon a probabilitymodel a probability model associated associated with with thethe selected selected
context in context in case case of of the the high-efficiency high-efficiency mode beingactivated, mode being activated, and andperform performthe theselection selectioninin a piece a piece wise wiseconstant constant manner manner such such thatselection that the the selection is constant is constant over consecutive over consecutive
continuoussubparts continuous subpartsof of the the subsequence subsequenceinincase caseofofthe the low-complexity low-complexity mode mode be activated. be activated.
As described As describedabove, above,the thesubparts subpartsmay maybebemeasured measured in in thethe number number of positions of positions over over which which
the respective the respective subpart subpart extends whenmeasured extends when measured along along thethe one-dimensional one-dimensional pathpath 274,274, or or in in the number the numberofofsyntax syntax elements elements of the of the respective respective type type already already codedcoded with with the the current current
context. That context. That is, is, the binary syntax the binary syntaxelements elementscoeff_significant_flag, coeff_significant_flag,coeff_abs_greater] coeff_abs_greater1 and coeff_abs_greater2, and coeff_abs_greater2,forforexample, example, are are coded coded context context adaptively adaptively with selecting with selecting the the decoder 322 decoder 322 based based ononthe theprobability probability model modelofofthe theselected selected context context in in HE HEmode. mode. Probability adaptation is used as well. In LC mode, there are also different conexts which Probability adaptation is used as well. In LC mode, there are also different conexts which
are used are used for foreach eachof the of binary the binary syntaxsyntax elements elements coeff_significant_flag, coeff_significant_flag, andcoeff_abs_greater2. coeff_abs_greater1and coeff_abs_greater] coeff_abs_greater2. However, However, for for eacheach of these of these syntax syntax elements, elements,
the context the context is is kept kept static static for forthe thefirst firstportion along portion alongpath path274 274 with with changing the context changing the context merelyat merely at aa transition transition to tothe thenext, next,immediately immediately following portion along following portion along the the path path 274. 274. For For example, each example, each portion portion may maydefined definedtotobebe4, 4,8, 8,16 16 positionsof of positions block block 200200 long, long, independentfrom independent fromasastotowhether whetherforforthe therespective respectiveposition positionthe therespective respectivesyntax syntaxelement element is present is present or not. For or not. example,coeff_abs_greater] For example, coeff_abs_greater1andand coeff_abs_greater2 coeff_abs_greater2 are merely are merely
present for present for significant significant positions, positions, i.e. i.e. positions positions where where- or– for or which for which - -
coeff_significant_flag is 1. Alternatively, each portion may defined to be 4, 8, 16 syntax coeff_significant_flag is 1. Alternatively, each portion may defined to be 4, 8, 16 syntax
elementslong, elements long, independent independentfrom from as as to to whether whether for for the the thus thus resulting resulting respective respective portion portion
extends over extends overaahigher highernumber numberof of block block positions. positions. ForFor example, example, coeff_abs_greater1 coeff_abs_greater] and and coeff_abs_greater2 coeff_abs_greater2 are merely are merely presentpresent for significant for significant positions, positions, and thus,and thus,ofportions portions four of four syntax elements syntax elementseach eachmaymay extend extend over over more4 than more than block4positions block positions due to positions due to positions
therebetweenalong therebetween alongpath path274274forforwhich whichno no such such syntax syntax element element is transmitted is transmitted suchsuch as no as no
coeff_abs_greater1and coeff_abs_greater] andcoeff_abs_greater2 coeff_abs_greater2 because because the the respective respective levellevel at this at this position position
is zero. is zero.
Theselector The selector 402 maybebeconfigured 402 may configuredto,to,for for the the symbols symbolsofofthe the predetermined predeterminedsymbol symbol type type
amongthe among thesubsequence subsequence of of symbols symbols fromfrom which which the de-symbolizer the de-symbolizer obtains obtains the first the first syntax syntax
elementsand elements andsecond second syntax syntax elements, elements, select select for symbol for each each symbol of the predetermined of the predetermined
64
symboltype symbol typethetheoneone of of a plurality a plurality of of contexts contexts depending depending on a on a number number of previously of previously
retrieved symbols retrieved of the symbols of the predetermined predeterminedsymbol symbol type type within within thethe subsequence subsequence of symbols, of symbols,
whichhave which havea apredetermined predetermined symbol symbol value value and belong and belong tosame to the the same subpart, subpart, or a number or a number
of previously of retrieved symbols previously retrieved of the symbols of the predetermined predeterminedsymbol symbol type type within within thethe sequence sequence of of symbols,which symbols, which belong belong to theto the same same subpart. subpart. The alternative The first first alternative hastrue has been been fortrue for
coeff_abs_greater1and coeff_abs_greater] andthethesecondary secondary alternative alternative hashas be be truetrue forfor coeff_abs_greater2 in in coeff_abs_greater2 accordancewith accordance withthe theabove abovespecific specificembodiments. embodiments. 2024201207
Further, the Further, the third third syntax elementsrevealing, syntax elements revealing,for foreach eachposition positionofofthetheone-dimensional one-dimensional path where, path where,according accordingtotothe thefirst first binary binary syntax syntaxelements, elements,a atransform transform coefficientlevel coefficient level greater than greater than one is positioned, one is positioned, an amountbybywhich an amount which thethe respective respective transform transform coefficient coefficient
level at level at the the respective respectiveposition positionexceeds exceeds one,one, may comprise may comprise integer-valued integer-valued syntax syntax elements, i.e. elements, i.e. coeff_abs_minus3, andthe coeff_abs_minus3, and thedesymbolizer desymbolizer314314 may may be configured be configured to usetoa use a
mapping function mapping function controllable controllable by by aa control control parameter parameter to to map map aa domain domainofofsymbol symbol sequencewords sequence wordsto to a co-domain a co-domain of integer-valued of the the integer-valued syntax syntax elements, elements, and to and set to theset the control parameter control per integer-valued parameter per integer-valuedsyntax syntaxelement elementdepending dependingon on integer-valued integer-valued syntax syntax
elementsofof previous elements previousthird third syntax syntaxelements elementsififthe thehigh-efficiency high-efficiencymode modeis is activated,and activated, and performthe perform thesetting setting in in aa piecewise constant manner piecewise constant mannersuch such thatthe that thesetting settingisis constant constant over over consecutive continuous consecutive continuoussubparts subpartsofofthe thesubsequence subsequencein in case case of of thelow-complexity the low-complexity modemode
being activated, being activated, wherein the selector wherein the selector 402 402may mayconfigured configured to to selecta predetermined select a predetermined one one
of the of the entropy decoders(322) entropy decoders (322)for forthe thesymbols symbolsof of symbol symbol sequence sequence wordswords mappedmapped onto onto the integer-valued the integer-valuedsyntax syntax elements, elements, which which is associated is associated with probability with a equal a equal probability distribution, in distribution, in both both the high-efficiency mode the high-efficiency modeandand thethe low-complexity low-complexity mode.mode. That That is, is, even the even the desymbolizer desymbolizer maymay operate operate dependent dependent on theonmode the selected mode selected be 400 be switch switch is 400 is
illustrated by illustrated by dotted line 407. dotted line 407. Instead Insteadofofa apiecewise piecewise constant constant setting setting of the of the control control
parameter, the parameter, the desymbolizer desymbolizer 314314 may may keep keep the control the control parameter parameter constant constant during the during the
currentslice, current slice, for for example, example, or or constant constant globally globally in time. in time.
Next, aa complexity-scalable Next, contextmodelling complexity-scalable context modellingisisdescribed. described.
Theevaluation The evaluationofofthethesame same syntax syntax element element of top of the theand topthe andleft theneighbour left neighbour for thefor the derivation of derivation of the the context context model indexisis aa common model index approach common approach and and is often is often used used in the in the HE HE
case, e.g. case, e.g. for the motion for the motionvector vectordifference differencesyntax syntax element. element. However, However, this evaluation this evaluation
requires more requires buffer storage more buffer storage and anddisallows disallowsthethe direct direct coding of the coding of the syntax syntax element. element. Also, Also, to achieve to achieve higher higher coding performance,more coding performance, more availableneighbours available neighbours cancan be be evaluated. evaluated.
In aa preferred In preferred embodiment, embodiment,allall context context modelling modelling stage stage evaluating evaluating syntax syntax elements elements of of neighborsquare neighbor squareororrectangle rectangleblocks blocksororprediction predictionunits unitsare arefixed fixedtotoone onecontext contextmodel. model. Thisisisequal This equalto tothethe disabling disabling of adaptivity of the the adaptivity in the in the context context model stage. model selection selection For stage. For
65
that preferred that preferred embodiment, thecontext embodiment, the contextmodel modelselection selectiondepending dependingon on thethe bin bin index index of of the the
bin string bin string after aftera a binarization is is binarization notnot modified compared modified comparedto tothe thecurrent design current forfor design CABAC. CABAC.
In another In anotherpreferred preferredembodiment, embodiment, additional additional to fixed to the the fixed context context model model for for syntax syntax elementsemploy elements employthetheevaluation evaluationofofneighbors, neighbors,also alsothe thecontext contextmodel model forthe for thedifferent differentbin bin index are index are fixed. fixed. Note Notethat that the the description description does doesnot notinclude includethe thebinarization binarizationand andcontext context modelselection model selectionfor for the the motion motionvector vectordifference differenceandand thethe syntax syntax elements elements related related to to thethe
coding of the transform coefficient levels. coding of the transform coefficient levels. 2024201207
In a preferred embodiment, only the evaluation of the left neighbor is allowed. This leads In a preferred embodiment, only the evaluation of the left neighbor is allowed. This leads
to reduced to buffer in reduced buffer in the the processing processingchain chainbecause becausethethelast lastblock blockororcoding coding unitline unit linehas has not to not to be be stored stored anymore. In aa further anymore. In further preferred preferred embodiment, onlyneighbors embodiment, only neighbors lying lying in in the the
samecoding same codingunit unitare are evaluated. evaluated.
In aa preferred In preferredembodiment, embodiment, all available all available neighbors neighbors are evaluated. are evaluated. For example, For example, in in additiontotothethetoptop addition andand the the left left neighbor, neighbor, the the top topthe left, left, topthe topand right, right, and the the bottom bottom left left
neighborareare neighbor evaluated evaluated in case in case of availability. of availability.
That is, That is, the theselector selector402 402of ofFig. Fig.1111may may be be configured configured to use, use, for fora apredetermined predetermined symbol symbol
relating to relating to aa predetermined block of predetermined block of the the media mediadata, data,previously previouslyretrieved retrievedsymbols symbolsofofthethe sequenceofofsymbols sequence symbols relatingtotoa ahigher relating highernumber number of different of different neighboring neighboring blocks blocks of of the the mediadata media data in in case case of the of the high-efficiency high-efficiency modeactivated mode being being activated in order toinselect orderone to of select a one of a plurality ofof contexts plurality contextsand and perform the selection perform the selection among the entropy among the entropy decoders decoders322 322 dependingonona probability depending a probability model model associated associated with with the selected the selected context. context. That That is, the is, the neighboringblocks neighboring blocksmay may neighbor neighbor in times in times and/or and/or spatial spatial domain. domain. Spatially Spatially neighboring neighboring
blocks are blocks are visible, visible, for forexample, example, in in Figs. Figs. 11 to to3. 3.Then, Then, selector selector402 402 may be responsive may be responsivetoto the mode the selection by mode selection by mode modeswitch switch400400totoperform performa contact a contactadaptation adaptationbased basedonon previously retrieved previously retrieved symbols or syntax symbols or syntax elements elements relating relating to to aa higher higher number numberofof neighboringblocks neighboring blocksinincase caseofofthe theHEHEmode mode compared compared to LC to the themode LC thereby mode thereby reducing reducing
the storage overhead as just-described. the storage overhead as just-described.
Next, aa reduced-complexity Next, reduced-complexity coding coding of motion of motion vector vector differences differences in accordance in accordance with with an an embodiment embodiment is is described. described.
In the In the H.264/AVC video H.264/AVC video codec codec standard, standard, a motion a motion vector vector associated associated with with a macroblock a macroblock isis transmitted by transmitted bysignaling signalingthe thedifference difference(motion (motion vector vector difference difference – mvd) - mvd) between between the the motionvector motion vectorofofthe the current current macroblock macroblock and and thethe median median motion motion vector vector predictor. predictor. WhenWhen
the CABAC the CABAC is used is used as entropy as entropy coder, coder, the is the mvd mvd is coded coded as follows. as follows. The integer-valued The integer-valued
mvdisissplit mvd split into into an an absolute absolute and andthe thesign signpart. part.The Theabsolute absolute part part is is binarized binarized using using a a
combinationofoftruncated combination truncatedunary unaryand and3rd3rd order order Exp-Golomb, Exp-Golomb, referred referred tothe to as as the prefix prefix and and
66
the suffix of the resulting bin string. The bins related to the truncated unary binarization the suffix of the resulting bin string. The bins related to the truncated unary binarization
is coded is usingcontext coded using contextmodels, models, while while binsbins related related to the to the Exp-Golomb Exp-Golomb binarization binarization is is codedininaabypass coded bypassmode, mode,i.e.i.e.with with a fixed a fixed probability probability of of 0.50.5 withwith CABAC. CABAC. The unary The unary
binarization works binarization works asas follows. follows. LetLet the the absolute absolute interger-value interger-value of of the the mvd mvdbeben,n then , thenthethe resultingbin resulting binstring stringconsists consistsof of n times n times ‘1’ one '1' and andtrailing one trailing '0'. As‘0’. As an example, an example, let n = 4,let n = 4 ,
then the bin string is ‘11110’. In case of truncated unary, a limit exists and if the value then the bin string is '11110'. In case of truncated unary, a limit exists and if the value
excessesthis excesses thislimit, limit,the thebin binstring stringconsists consists of of n + n1 + 1 times times '1'. ‘1’. Forcase For the the of case ofthe mvd, mvd , the limit limit 2024201207
is equal is to 9. equal to 9. That meansif ifananabsolute That means absolute mvdmvd is equal is equal to ortogreater or greater than than 9 is coded, 9 is coded,
resulting in 9 times ‘1’, the bin string consists of a prefix and a suffix with Exp-Golomb resulting in 9 times '1', the bin string consists of a prefix and a suffix with Exp-Golomb
binarization. The binarization. context modelling The context modellingforforthe thetruncated truncatedunary unarypart partisisdone doneasasfollows. follows.For For the first bin of the bin string, the absolute mvd values from the top and the left neighbour the first bin of the bin string, the absolute mvd values from the top and the left neighbour
macroblocks macroblocks are are taken taken if available if available (ifavailable, (if not not available, theisvalue the value is inferred inferred to be 0). to If be the 0). If the
sumfor sum forthe thespecific specificcomponent component (horizontal (horizontal or vertical or vertical direction) direction) is is greaterthan greater than2,2,the the second context model is selected, if the absolute sum is greater than 32, the third context second context model is selected, if the absolute sum is greater than 32, the third context
modelisis selected, model selected, otherwise otherwise (the (the absolute absolute sumsumisissmaller smallerthanthan3)3)the the first first context context model model
is selected. is selected. Furthermore, Furthermore, the the context context models modelsarearedifferent differentfor foreach eachcomponent. component. For For the the
secondbinbin second of of thethe binbin string, string, the the fourth fourth context context model model is used is andused and the the fifth fifthmodel context context model is employed is employed for forthe the remaining remainingbins binsofofthe theunary unarypart. part.When When thethe absolute absolute mvdmvd is equal is equal to to
or greater or greaterthan than9,9,e.g. e.g.allallbins bins of of thethe truncated truncated unaryunary partequal part are are toequal '1', to the‘1’, the difference difference
betweenthe between theabsolute absolutemvd mvd value value and and 9 is9 coded is coded in ain a bypass bypass mode mode with with 3rd 3rd Exp- order order Exp- Golomb binarization. In the last step, the sign of the mvd is coded in a bypass mode. Golomb binarization. In the last step, the sign of the mvd is coded in a bypass mode.
The latest The latest coding coding technique technique for for the the mvd whenusing mvd when usingCABAC CABAC as entropy as entropy codercoder is is specified in the specified the current current Test Test Model (HM)ofofthe Model (HM) theHigh High Efficiency Efficiency Video Video Coding Coding (HEVC) (HEVC)
project. In project. InHEVC, theblock HEVC, the blocksizes sizes are are variable variable and the shape and the specified by shape specified a motion by a vector motion vector
is referred is referred to to as asprediction predictionunit unit(PU). (PU).The The PU size of PU size of the the top top and andthe the left left neighbor may neighbor may
have other have othershapes shapesandand sizes sizes thanthan the the current current PU. Therefore, PU. Therefore, whenever whenever relevant, relevant, the the definition of definition of top top and the left and the left neighbor are referred neighbor are referred now nowasastop topand andleft leftneighbor neighborofofthethe top-left corner of the current PU. For the coding itself, only the derivation process for the top-left corner of the current PU. For the coding itself, only the derivation process for the
first bin first bin may be changed may be changedininaccordance accordance with with an embodiment. an embodiment. Instead Instead of evaluating of evaluating the the absolute sum absolute sumofofthe the MV MV from from thethe neighbors, neighbors, each each neighbor neighbor may may be evaluated be evaluated separately. separately.
If the absolute MV If MVof of a neighbor a neighbor is available is available and and greater greater thanthan 16, context 16, the the context modelmodel
index may index maybebeincremented incremented resulting resulting in in thethe same same number number of context of context models models for thefor the firstfirst bin, while bin, the coding while the codingofofthe theremaining remainingabsolute absoluteMVDMVD levellevel andsign and the the is signexactly is exactly the the
same as same as in inH.264/AVC. H.264/AVC.
In the In the above outlined technique above outlined technique on oncoding codingofofthe mvd,upuptoto99bins themvd, binshave havetotobe becoded codedwith with a context model, a model, while whilethe theremaining remainingvalue valueofofananmvd cancan mvd be be coded coded in ainlow a low complexity complexity
67
bypass mode bypass mode together together with with thethe sign sign information. information. ThisThis present present embodiment embodiment describes describes a a technique to technique to reduce reduce the the number numberofofbins binscoded coded with with context context models models resulting resulting in in increased increased
numberofofbypass number bypassandand reduces reduces thethe number number of context of context models models required required forcoding for the the coding of of mvd.For mvd. Forthat, that, the the cut-off cut-off value is decreased value is from99toto 11 or decreased from or 2. 2. That That means meansonly onlythethefirst first bin specifying if the absolute mvd is greater than zero is coded using context model or the bin specifying if the absolute mvd is greater than zero is coded using context model or the
first and first and the the second bin specifying second bin specifyingifif the the absolute absolute mvd mvdisisgreater greaterthan thanzero zeroandand oneone is is
codedusing coded usingcontext contextmodel, model, while while the remaining the remaining value value is coded is coded in the mode in the bypass bypass mode 2024201207
and/or using and/or using aa VLC VLC code. code. AllAll bins bins resultingfrom resulting fromthethe binarizationusing binarization usingthetheVLCVLC codecode - - not using not using the the unary unary oror truncated truncatedunary unarycode code- -arearecoded coded using using a low a low complexity complexity bypass bypass
mode.InIncase mode. caseof of PIPE, PIPE, a direct a direct insertion insertion intointo and and from from the bitstream the bitstream are possible. are possible.
Moreover, a different definition of the top and the left neighbor to derive better context Moreover, a different definition of the top and the left neighbor to derive better context
modelselection model selection forfor thethe first first bin, bin, maymay be used, be used, if ever. if ever.
In aa preferred In preferred embodiment, Exp-Golomb embodiment, Exp-Golomb codes codes are used are used to binarize to binarize the the remaining remaining part part of of the absolute the MVD absolute MVD components. components. For that, For that, the the order order of the of the Exp-Golomb Exp-Golomb code iscode is variable. variable.
Theorder The orderof of the the Exp-Golomb Exp-Golomb code code is derived is derived as as follows. follows. After After thethe context context model model for for thethe
first bin, first bin, and thereforethetheindex and therefore index of of that that context context model, model, is derived is derived andthe and coded, coded, index the is index is
used as used as the the order order for for the theExp-Golomb binarizationpart. Exp-Golomb binarization part. In In this this preferred preferredembodiment, the embodiment, the
context model for the first bin is ranged from 1 – 3 resulting in the index 0 – 2, which are context model for the first bin is ranged from 1 - 3 resulting in the index 0 - 2, which are
used as used as the the order order of of the the Exp-Golomb Exp-Golomb code. code. ThisThis preferred preferred embodiment embodiment can becan usedbefor used for the HE the case. HE case.
In an In an alternative alternative to to the the above aboveoutlined outlinedtechnique technique of of using using two two times times five five contexts contexts in in coding ofofthe coding theabsolute absoluteMVD, MVD, in order in order to code to code the 9the 9 unary unary code binarization code binarization bins, bins, 14 14 context models context models(7(7for foreach eachcomponent) component) couldcould be used be used as well. as well. For example, For example, while the while the
first and first secondbins and second binsofofthe theunary unary part part could could be could be could be coded be coded withdifferent with four four different contexts as contexts as described described before, before, aa fifth fifth context context could be used could be usedfor forthe thethird third bin bin and andaasixth sixth context could be used with respect to the forth bin, while the fifth to ninth bins are coded context could be used with respect to the forth bin, while the fifth to ninth bins are coded
using aa seventh using seventhcontext. context.Thus, Thus, in in thiscase this case even even 14 contexts 14 contexts wouldwould be required, be required, and and merelythe merely the remaining remainingvalue valuecan canbebecoded coded in in a a low low complexity complexity bypass bypass mode. mode. A technique A technique
to reduce to the number reduce the ofbins number of binscoded codedwith withcontext contextmodels models resultingininincreased resulting increasednumber number of of bypass and bypass andreduce reducethe thenumber number of of context context models models required required for the for the codingcoding of MVD, of MVD, is to is to
decrease the decrease the cut-off cut-off value value such suchas, as, for for example, example,from from9 9to to1 1oror2.2.That That means means onlyonly the the
first bin first bin specifying specifying if if the the absolute absolute MVD MVD is is greaterthan greater than zerozero would would be coded be coded using using a a context model context modelororthe thefirst first and and the the second secondbin binspecifying specifyingifif the the absolute absoluteMVD MVD is greater is greater
than zero than zero and and one onewould wouldbebecoded coded using using a respective a respective context context model, model, while while thethe remaining remaining
value is value is coded with aa VLC coded with VLC code. code. AllAll bins bins resultingfrom resulting from thethe binarizationusing binarization using theVLCVLC the
code are code are coded codedusing usinga alow lowcomplexity complexity bypass bypass mode. mode. In case In case of PIPE, of PIPE, a direct a direct insertion insertion
68
into and into and from fromthe thebitstream bitstreamis ispossible. possible.Furthermore, Furthermore, the the presented presented embodiment embodiment uses uses anotherdefinition another definitionof of thethe toptop andand the the leftleft neighbor neighbor to derive to derive better better contextcontext model selection model selection
for the for the first first bin. In addition bin. In additiontotothis, this,the thecontext context modeling modeling is modified is modified inSOa that in a way waythe so that the numberofofcontext number contextmodels models required required forfor thethe firstororthe first thefirst first and and second secondbin binisisdecreased decreased leading to leading to aa further furthermemory reduction.Also, memory reduction. Also,the the evaluation evaluation of of the the neighbours suchasasthe neighbours such the aboveneighbour above neighbourcancan be disabled be disabled resulting resulting in saving in the the saving of theof thebuffer/memory line line buffer/memory required for required for storage storage of of mvd valuesof ofthetheneighbours. mvdvalues neighbours. Finally, Finally, thethe coding coding order order of the of the 2024201207
componentsmaymay components be split be split in ain waya allowing way allowing the of the coding coding of thebins the prefix prefix for bins both for both
components(i.e. components (i.e. bins bins coded codedwith withcontext contextmodels) models)followed followed byby thecoding the coding of of bypass bypass bins. bins.
In aa preferred In preferred embodiment, Exp-Golomb embodiment, Exp-Golomb codes codes are used are used to binarize to binarize the the remaining remaining part part of of the absolute the absolute mvd components. mvdcomponents. For For that, that, thethe order order of of thethe Exp-Golomb Exp-Golomb code iscode is variable. variable.
Theorder The orderofofthe the Exp-Golomb Exp-Golombcodecode may may be be derived derived as follows. as follows. After After the context the context model model
for the first bin, and therefore the index of that context model is derived, the index is used for the first bin, and therefore the index of that context model is derived, the index is used
as the as the order order forfor the the Exp-Golomb binarization.InInthis Exp-Golomb binarization. thispreferred preferred embodiment, embodiment, thethe context context
modelforforthethe model firstbinbin first is is ranged ranged fromfrom 1 - 3 1resulting – 3 resulting in the in the0 index index 0 – 2, - 2, which is which used as is used as
the order the order ofof the the Exp-Golomb Exp-Golomb code. code. This This preferred preferred embodiment embodiment can becanusedbefor used thefor HE the HE
case and case and the the number numberofofcontext contextmodels models is is reduced reduced to to 6. 6. InInorder ordertotoreduce reducethe thenumber numberof of context models context modelsagain again andand therefore therefore to save to save memory, memory, the horizontal the horizontal and the and the vertical vertical
componentsmaymay components share share the the samesame context context models models in a further in a further preferred preferred embodiment. embodiment. In In that case, that case, only only 33 context context models are required. models are required. Furthermore, Furthermore,only onlythe theleft left neighbour neighbourmay may be taken be takeninto intoaccount account forfor thethe evaluation evaluation in a in a further further preferred preferred embodiment embodiment of the of the
invention. In invention. In this this preferred preferred embodiment, embodiment, the the threshold threshold can can be unmodified be unmodified (e.g. only (e.g. only
single threshold single of 16 threshold of 16 resulting resulting in in Exp-Golomb Exp-Golomb parameter parameter of 0of or0 1or or1 single or single threshold threshold
of 32 of 32 resulting resulting in inExp-Golomb parameter Exp-Golomb parameter of of 0 0 oror2). 2).This Thispreferred preferredembodiment embodiment saves saves thethe
line buffer line buffer required requiredfor forthe thestorage storage of of In .another mvd.mvd In another preferred preferred embodiment, embodiment, the the threshold is threshold is modified modified andandisis equal equal toto 22 and and 16. 16. For For that that preferred preferred embodiment, embodiment, inintotal total33 context models context modelsarearerequired requiredforforthethe coding coding of the of the mvd mvd andpossible and the the possible Exp-Golomb Exp-Golomb
parameteris parameter is ranged ranged from from0 0-–2.2. In In aa further further preferred preferred embodiment, thethreshold embodiment, the thresholdisis equal equal to 16 to 16 and 32. Again, and 32. the described Again, the embodiment described embodiment is is suitablefor suitable for the the HE HEcase. case.
In a further In further preferred preferred embodiment embodiment ofofthe theinvention, invention,the the cut-off cut-off value is decreased value is from99 decreased from
to 2. to 2. In In this thispreferred preferredembodiment, the first embodiment, the first bin bin and and the the second bin may second bin maybebecoded coded using using
context models. The context model selection for the first bin can be done as in the state- context models. The context model selection for the first bin can be done as in the state-
of-the-art or of-the-art or modified in aa way modified in waydescribed describedin inthethepreferred preferred embodiment embodiment above. above. For theFor the secondbin, second bin, aa separate separatecontext contextmodel modelis is selected selected as as in in thethe state-of-the-art. InIn aafurther state-of-the-art. further preferred embodiment, preferred thecontext embodiment, the contextmodel model forfor thesecond the second binbin is is selectedbybyevaluating selected evaluatingthethe mvd of the left neighbor. For that case, the context model index is the same as for the first mvd of the left neighbor. For that case, the context model index is the same as for the first
69
bin, while the available context models are different than those for the first bin. In total, 6 bin, while the available context models are different than those for the first bin. In total, 6
context models context modelsarearerequired required (note (note thatthat the the components components sharing sharing the context the context models).models).
Again, the Again, the Exp-Golomb Exp-Golomb parameter parameter may depend may depend on the on the selected selected contextcontext model model index of index of
the first the first bin. bin.InInanother anotherpreferred preferredembodiment embodiment of of the the invention, invention, the the Exp-Golomb Exp-Golomb parameterisis depending parameter dependingon on thethe context context model model indexindex of theofsecond the second bin.described bin. The The described embodiments embodiments of of theinvention the inventioncan canbebeused used forthe for theHEHE case. case. 2024201207
In aa further In further preferred preferred embodiment embodiment ofofthe theinvention, invention,the thecontext contextmodels modelsforforboth bothbins binsareare fixed and fixed andnot notderived derivedby by evaluating evaluating either either the the leftleft or the or the above above neighbors. neighbors. For For this this preferred embodiment, preferred embodiment, thethe totalnumber total number of context of context models models is equal is equal to 2. to 2. In In a further a further
preferred embodiment preferred embodiment of of thethe invention,thethefirst invention, firstbin binand andthe thesecond secondbinbinshares sharesthethesame same context model. context model.As Asa aresult, result, only one context only one context model modelisisrequired requiredfor for the the coding coding of of the the mvd. mvd. In both In both preferred preferred embodiments embodiments ofofthe theinvention, invention,the the Exp-Golomb Exp-Golomb parameter parameter may may be fixed be fixed
and be and be equal equaltoto 1. Thedescribed 1. The describedpreferred preferredembodiment embodiment of the of the invention invention are are suitable suitable forfor
both HE both HEand andLCLC configuration. configuration.
In another In another preferred preferred embodiment, embodiment, the theorder orderofofthetheExp-Golomb Exp-Golomb part part is derived is derived independently from the context model index of the first bin. In this case, the absolute sum independently from the context model index of the first bin. In this case, the absolute sum
of the of the ordinary ordinary context context model selection of model selection of H.264/AVC H.264/AVC is used is used to to derive derive thethe order order forthethe for
Exp-Golomb Exp-Golomb part.This part. This preferredembodiment preferred embodiment can can be used be used for the for the HE case. HE case.
In aa further In further preferred preferredembodiment, the order embodiment, the order of of the the Exp-Golomb Exp-Golomb codes codes is fixed is fixed andand is is setset to 0. to 0. In In another another preferred preferred embodiment, theorder embodiment, the orderofofthe theExp-Golomb Exp-Golombcodescodes is fixed is fixed and and set to 1. In a preferred embodiment, the order of the Exp-Golomb codes is fixed to 2. In a set to 1. In a preferred embodiment, the order of the Exp-Golomb codes is fixed to 2. In a
further embodiment, further embodiment,thethe order order of the of the Exp-Golomb Exp-Golomb codes iscodes fixed is to fixed 3. In to 3. In a further a further
embodiment,thetheorder embodiment, order of of thethe Exp-Golomb Exp-Golomb codes codes is fixed is fixed according according the and the shape shape the and the
size of size the current of the current PU. PU.TheThepresented presented preferred preferred embodiments embodiments can becan befor used used thefor LC the LC
case. Note case. Notethat that the thefixed fixedorder orderofofthetheExp-Golomb Exp-Golomb partconsidered part are are considered with reduced with reduced
numberofofbins number binscoded codedwith withcontext contextmodels. models.
In aa preferred In preferred embodiment, theneighbors embodiment, the neighbors areare defined defined as as follows. follows. ForFor thethe above above PU, PU, all all PUscovers PUs coversthe thecurrent currentPUPUarearetaken takeninto intoaccount account and and thethe PU PU withwith the the largest largest MV MV used.used.
This is This is done also for done also for the the left leftneighbor. neighbor. All All PUs covers the PUs covers the current current PU PUare areevaluated evaluatedand and the PU the PUwith withthethe largest largest MV MV is used. is used. In another In another preferred preferred embodiment, embodiment, the the average average absolute motion absolute motionvector vectorvalue valuefrom fromallallPUs PUs cover cover thethe toptop andand the the leftleft border border thethe current current
PUisisused PU usedtotoderive derive thethe first first bin. bin.
For the For the presented preferred embodiments presented preferred embodiments above, above, it it isispossible possibletoto change changethe thecoding codingorder order as follows. as follows. The Themvd mvd have have to specified to be be specified for for the the horizontal horizontal and and vertical vertical direction direction one one
70
after another (or vice versa). Thus, two bin strings have to be coded. In order to minimize after another (or vice versa). Thus, two bin strings have to be coded. In order to minimize
the number the ofmode number of mode switching switching forfor thethe entropy entropy coding coding engine engine (i.e.thetheswitch (i.e. switchbetween between thethe
bypass and bypass andthe theregular regularmode), mode),ititisis possible possible to to code code the the bins bins coded codedwith withcontext contextmodels models for both for componentsininthethefirst both components first step step followed followedbybythe thebins binscoded codedin in bypass bypass mode mode in in the the second step. Note that this is a reordering only. second step. Note that this is a reordering only.
Please note that the bins resulting from the unary or truncated unary binarization can also Please note that the bins resulting from the unary or truncated unary binarization can also 2024201207
be represented be representedbybyan an equivalent equivalent fixed fixed length length binarization binarization of flag of one one per flagbin perindex bin index specifying whether specifying whetherthe thevalue valueisisgreater greaterthan thanthe thecurrent currentbin binindex. index.AsAs an an example, example, the the
cut-off value cut-off valueforfortruncated truncated unary unary binarization binarization of mvdof is mvd is 2set set to to 2 resulting resulting in codewords in codewords 0, 0, 10, 11for 10, 11 forvalues values0,0,1,1,2.2.InInthethe corresponding corresponding fixed fixed length length binarization binarization with one with one flag per flag per
bin index, bin index,oneone flag flag forfor bin bin indexindex 0 (i.e. 0 (i.e. the first the first bin) bin) specifies specifies whether whether the absolute the absolute mvd mvd value is value is greater greater than than 00 or or not not and and one flag for one flag for the the second second binbin with withbin binindex index11specifies specifies whetherthe whether theabsolute absolutemvd mvd value value is is greater greater than than 1 or 1 or not.When not. When the second the second flag flag is only is only
codedwhen coded whenthe the first first flag flag is equal is equal tothis to 1, 1, this results results in the in the samesame codewords codewords 0, 10, 11. 0, 10, 11.
Next, complexity-scalable Next, complexity-scalablerepresentation representationofofthetheinternal internalstate stateofofprobability probabilitymodels models in in accordancewith accordance withananembodiment embodiment as described. as described.
In the HE-PIPE In setup,the HE-PIPE setup, theinternal internal state state of aa probability probability model is updated model is after encoding updated after encoding
a bin with it. The updated state is derived by a state transition table lookup using the old a bin with it. The updated state is derived by a state transition table lookup using the old
state and state and the the value value of of the thecoded coded bin. bin.InInthe thecase caseofofCABAC, CABAC, a aprobability probability model modelcan cantake take 63 different 63 different states states where eachstate where each state corresponds correspondstotoa amodel model probability probability in the in the interval interval
(0.0, 0.5). Each of these states is used to realize two model probabilities. In addition to (0.0, 0.5). Each of these states is used to realize two model probabilities. In addition to
the probability the probability assigned assigned to to the the state, state, 1.0 1.0 minus minus thetheprobability probabilityisis also also used usedandanda aflag flag called valMps called stores the valMps stores the information informationwhether whetherthetheprobability probabilityoror 1.0 1.0 minus minusthe theprobability probability is used. is Thisleads used. This leadstotoa atotal totalofof126126 states. states. To To use use such such a probability a probability model model with the with PIPE the PIPE
coding concept, coding concept,each eachofofthethe126126states statesneeds needstotobebemapped mappedto to oneone of the of the available available PIPEPIPE coders. In coders. In current current implementations ofPIPE implementations of PIPEcoders, coders,this thisisis done donebybyusing usinga alookup-table. lookup-table. Anexample An exampleofofsuch sucha amapping mappingis is depicted depicted in in Table Table A. A.
In the In the following, following, ananembodiment embodiment is described is described howinternal how the the internal state state of a probability of a probability
modelcan model canbeberepresented representedtotoavoid avoidusing using a lookup a lookup table table to to convert convert thethe internalstate internal statetoto aa PIPEindex. PIPE index.Solely Solelysome some simple simple bit bit masking masking operations operations are needed are needed to extract to extract the the PIPE PIPE index from index fromthe theinternal internal state state variable variable of of the the probability probability model. model.This Thisnovel novelcomplexity- complexity- scalable representation of scalable of the the internal internal state stateof ofaaprobability probabilitymodel model is is designed in aa two designed in two level manner. level Forapplications manner. For applicationswhere where lowlow complexity complexity operation operation is mandatory is mandatory only only the the first level first levelisisused. used.ItIt describes describesonly onlythe thepipe pipeindex index and and the flag flag valMps that isis used valMps that usedtoto 71
encodeorordecode encode decodethetheassociated associatedbins. bins.InInthe thecase caseofofthe thedescribed describedPIPE PIPE entropy entropy coding coding
scheme, the scheme, the first first level level can can be be used usedtotodifferentiate differentiate between between 8 8different different model model probabilities. Thus, the first level would need 3 bit for the pipeIdx and one further bit for probabilities. Thus, the first level would need 3 bit for the pipeIdx and one further bit for
the valMps the flag. With valMps flag. Withthe thesecond secondlevel leveleach eachofofthethecoarse coarseprobability probabilityranges ranges of of thefirst the first level is refined into several smaller intervals that support the presentation of probabilities level is refined into several smaller intervals that support the presentation of probabilities
at higher at resolutions.This higher resolutions. This more more detailed detailed presentation presentation enablesenables the more the more exact exactofoperation of operation
probability estimators. In general, it is suitable for coding applications that aim towards probability estimators. In general, it is suitable for coding applications that aim towards 2024201207
high RD-performances. high RD-performances. As anAsexample an example this complexity-scaled this complexity-scaled representation representation of the of the internal state internal state of of probability probabilitymodels models withwith the usage the usage ofisPIPE of PIPE is illustrated illustrated as follows: as follows:
First Level First Level Second Level Second Level b7 b7 b6 b6 b5 b5 b4 b4 b3 b3 b2 b2 b b11 b0 bo
MPS PIPE MPS PIPEIdx Idx(0-7) (0-7) Refinement Refinement Idx Idx (0-15) (0-15)
The first and the second level are stored in a single 8 bit memory. 4 bits are required to The first and the second level are stored in a single 8 bit memory. 4 bits are required to
store the store the first firstlevel – an level index - an indexthat defines that thethe defines PIPE PIPEindex indexwith withthe thevalue valueof ofthe theMPS on MPS on
the most the mostsignificant significantbit- bit- and andanother another 4 bits 4 bits are are usedused to store to store the second the second level. level. To To implementthethebehavior implement behaviorof of thethe CABAC CABAC probability probability estimator, estimator, each each PIPE PIPE index hasindex a has a particular number particular of allowed number of allowedrefinement refinementindices indicesdepending depending on on howhow manymany CABACCABAC states states
were mapped were mappedononthethePIPE PIPE index.E.g. index. E.g.for forthe themapping mappingininTable TableA,A, thethe number number of of CABAC CABAC states states perper PIPE PIPE index index is depicted is depicted in in Table Table B. B.
PIPEidx PIPE idx 0 0 11 2 2 3 3 4 4 5 5 6 6 7 7 Number of Number of CABAC CABAC 33 7 7 5 5 7 7 10 10 14 14 16 16 11 states states
Table B: Table B: Number Number of of CABAC CABAC statesstates per PIPE per PIPE indexindex forexample for the the example of Table of Table A. A.
Duringthe During theencoding encodingor or decoding decoding process process of aof a the bin bin PIPE the PIPE index index and valMps and valMps can be can be accessed directly accessed directly by by employing employingsimple simple bitbit mask mask or or bitbit shiftoperations. shift operations.Low Low complexity complexity
coding processes coding processesrequire requirethethe4 4bits bitsofofthethefirst firstlevel levelonly onlyandand high high efficiency efficiency coding coding
processes can additionally utilize the 4 bits of the second level to perform the probability processes can additionally utilize the 4 bits of the second level to perform the probability
modelupdate model updateofofthe theCABAC CABAC probability probability estimator. estimator. For carrying For carrying out this out this update, update, a state a state
transition lookup-table can be designed that does the same state transitions as the original transition lookup-table can be designed that does the same state transitions as the original
table, but table, but using using the the complexity-scalable two-levelrepresentation complexity-scalable two-level representationofofstates. states. The Theoriginal original state transition state transitiontable tableconsists consistsof of twotwo times times 63 elements. 63 elements. For eachFor each input input state, state, it contains it contains
two output two outputstates. states. When When using using the the complexity-scalable complexity-scalable representation, representation, the size the size of the of the
state transition state transition table table does does not not exceed twotimes exceed two times128128 elements elements which which is an is an acceptable acceptable
increase of increase of table table size. size.This Thisincrease increasedepends depends on howmany on how many bitsareareused bits used to to representthethe represent
72
refinement index refinement index and and to to exactly exactly emulate emulate the the behavior behavior ofof the the CABAC CABAC probability probability estimator, four bits are needed. However, a different probability estimator could be used, estimator, four bits are needed. However, a different probability estimator could be used,
that can that can operate operate on on aa reduced set of reduced set of CABAC statessuch CABAC states such thatfor that foreach eachpipe pipeindex indexnonomore more than 88 states than states are are allowed. Therefore memory allowed. Therefore memory consumption consumption canmatched can be be matched to the to the given given complexitylevel complexity levelofof the the coding codingprocess processbybyadapting adaptingthethenumber number of bits of bits used used to to represent represent
the refinement the index. Compared refinement index. Compared to to theinternal the internalstate state of of model probabilities with model probabilities with CABAC CABAC - where - 64probability where 64 probabilitystate stateindices indicesexist exist- -the theusage usageof oftable tablelookups lookups to map to map modelmodel 2024201207
probabilities to a specific PIPE code is avoided and no further conversion is required. probabilities to a specific PIPE code is avoided and no further conversion is required.
Next, aa complexity-scalable Next, complexity-scalablecontext contextmodel model updating updating in accordance in accordance withwith an embodiment an embodiment
is described. is described.
For updating For updatingaa context context model, model,its its probability probability state stateindex index may be updated may be updatedbased basedononone oneoror morepreviously more previouslycoded codedbins. bins.InInthe theHE-PIPE HE-PIPE setup, setup, this this update update is is done done afterencoding after encodingor or
decodingofofeach decoding eachbin. bin. Conversely, Conversely,inin the the LC-PIPE LC-PIPE setup,this setup, thisupdate updatemay may never never bebe done. done.
However,ititis However, is possible possible to to do an update do an update of of context context models modelsinina acomplexity-scalable complexity-scalable way. way.
That is, That is, the the decision decision whether to update whether to update aa context context model modelorornot notmay may be be based based on various on various
aspects. E.g., aspects. E.g., aa coder coder setup setup could do no could do noupdates updatesfor forparticular particular context context models modelsonly only like like
e.g. the e.g. the context context models of syntax models of syntaxelement coeff_significant_flag,and elementcoeff_significant_flag, anddodoalways always updates updates
for all other context models. for all other context models.
In other In other words, the selector words, the selector 402 402 could be configured could be configuredto, to, for for symbols of each symbols of eachof of aa number number of predetermined of predeterminedsymbol symbol types, types, perform perform the the selection selection among among the entropy the entropy decoders decoders 322 322 dependingonona respective depending a respective probability probability model model associated associated the respective the respective predetermined predetermined
symbol such that symbol such that the the number numberofofpredetermined predeterminedsymbol symbol types types is is lower lower in in thethe lowlow complexitymode complexity mode than than compared compared to the to the high-efficiency high-efficiency mode. mode.
Furthermore,criteria Furthermore, criteria for for controlling controlling whether to update whether to update aa context context model modelorornot notcould couldbe,be, e.g. the e.g. the size size of of aa bitstream bitstream packet, packet, the the number ofbins number of binsdecoded decodedSO so far,ororthe far, theupdate update is is
done only after coding a particular fixed or variable number of bins for a context model. done only after coding a particular fixed or variable number of bins for a context model.
Withthis With this scheme schemeforfor deciding deciding whether whether to update to update context context modelsmodels or not,orcomplexity- not, complexity- scalable context scalable context model updating can model updating can be beimplemented. implemented.ItItallows allowsfor forincreasing increasing oror decreasing the decreasing the portion portion of of bins bins in in aa bitstream bitstream for for which contextmodel which context modelupdates updates areare done. done.
Thehigher The higherthe thenumber numberof of context context model model updates, updates, the the better better is is thecoding the coding efficiency efficiency andand
the higher the higherthe thecomputational computational complexity. complexity. Thus, Thus, complexity-scalable complexity-scalable context context model model updating can updating can be be achieved achievedwith withthe thedescribed describedscheme. scheme. 73
In aa preferred In preferred embodiment, embodiment,the the context context model model updateupdate is for is done done forofbins bins of all syntax all syntax
elementsexcept elements exceptthethe syntax syntax elements elements coeff_significant_flag coeff_significant_flag, , coeff_abs_greater1 coeff_abs_greater1, and , and
coeff_abs_greater2. coeff_abs_greater2.
In aa further In further preferred preferred embodiment, embodiment,thethe context context model model update update is for is done donebins forofbinsof the the
syntax elements syntax elementscoeff_significant_flag, , coeff_abs_greater1 coeff_significant_flagcoeff_abs_greater1, and, coeff_abs_greater2 and coeff_abs_greater2 only. only. 2024201207
In aa further In further preferred preferred embodiment, embodiment,the the context context model model updateupdate is for is done done allfor all context context
modelswhen models when encoding encoding or or decoding decoding of aofslice a slice starts.After starts. Afteraaparticular particular predefined number predefined number
of transform of transform blocks blocksbeing beingprocessed, processed, context context model model update update is disabled is disabled for context for all all context models until the end of the slice is reached. models until the end of the slice is reached.
For example, For example,the theselector selector402 402 maymay be configured be configured to, symbols to, for for symbols of a predetermined of a predetermined
symbol type,perform symbol type, perform thethe selection selection among among the entropy the entropy decoders decoders 322 depending 322 depending on a on a probability model probability associatedwith model associated withthe thepredetermined predetermined symbol symbol typetype alongalong with with or without or without
updating the updating the associated associated probability probability model, model,such suchthat thata alength lengthofofa alearning learningphase phaseofofthethe sequenceofofsymbols sequence symbols over over which which the selection the selection forsymbols for the the symbols of the of the predetermined predetermined
symboltype symbol typeisisperformed performedalong along with with thethe update, update, is is shorterininthe shorter thelow low complexity complexity modemode
than compared than comparedtotothe thehigh-efficiency high-efficiencymode. mode.
A further A furtherpreferred preferredembodiment embodiment is identical is identical to thetopreviously the previously described described preferredpreferred
embodiment,butbut embodiment, it it usesthethecomplexity-scalable uses complexity-scalable representation representation of the of the internal internal state state of of context models context modelsininaa way, way,such suchthat thatone onetable table stores stores the the “first "firstpart” part"(valMps and pipeIdx) (valMps and pipeIdx) of all of all context models context models andand a second a second table table storesstores the “second the "second part” (refineIdx) part" (refineIdx) of all context of all context
models.At models. Atthe the point, point, where the context where the context model modelupdating updatingisisdisabled disabledforfor all all context context models models
(as described (as in the described in the previous preferred embodiment), previous preferred embodiment),thethetable tablestoring storingthe the"second “secondpart" part” is not is not needed needed any longer and any longer and can can be be discarded. discarded.
Next, context Next, context model modelupdating updatingforfora asequence sequence of of bins bins in in accordance accordance with with an embodiment an embodiment
is described. is described.
In the In the LC-PIPE configuration,the LC-PIPE configuration, thebins binsofofsyntax syntaxelements elementsofoftype typecoeff_significant_flag, coeff_significant_flag, coeff_abs_greater1,and coeff_abs_greater], andcoeff_abs_greater2 coeff_abs_greater2areare grouped grouped intointo subsets. subsets. ForFor each each subset, subset, a a single context single context model model is is used used toto encode encodeitsits bins. bins. In In this thiscase, case,a a context contextmodel model update update may may
be done be doneafter aftercoding coding of aoffixed a fixed number number of binsofofbins thisof this sequence. sequence. This ismulti-bin This is denoted denoted multi-bin update in update in the the following. However,this following. However, thisupdate updatemay may differfrom differ from thethe update update using using only only thethe
74
last coded last bin and coded bin andthe theinternal internalstate state of of the the context contextmodel. model.E.g., E.g.,for foreach eachbinbinthat thatwaswas coded, one coded, one context context model modelupdate updatestep stepisisconducted. conducted.
In the following, In following, examples aregiven examples are givenfor forthe the encoding encodingofofananexemplary exemplary subset subset consisting consisting
of 8 bins. The letter ‘b’ denotes the decoding of a bin and the letter ‘u’ denotes the update of 8 bins. The letter 'b' denotes the decoding of a bin and the letter 'u' denotes the update
of the context model. of In the model. In the LC-PIPE LC-PIPE case case only only thethe binbin decoding decoding is done is done without without doing doing
context model context modelupdates: updates: 2024201207
bbbbbbbb bbbbbbbb
In the In the HE-PIPE case,after HE-PIPE case, after decoding decodingofofeach eachbin, bin, aa context context model modelupdate updateisis done: done:
bbubububububububu ubububububububu
In order In order to to somewhat somewhatdecrease decrease thethe complexity, complexity, the the context context model model update update may bemay donebe done after aa sequence after sequence of of bins bins (in(in this this example example after after each 4each bins,4 the bins, the updates updates of these of these 4 bins are4 bins are
done): done):
bbbbuuuubbbbuuuu bbbbuuuubbbbuuuu
That is, That is, the the selector selector 402 402 may beconfigured may be configuredto,to,for forsymbols symbolsof of a predetermined a predetermined symbol symbol
type, perform type, the selection perform the selection among amongthetheentropy entropy decoders decoders 322322 depending depending on a on a probability probability
modelassociated model associatedwith withthe thepredetermined predeterminedsymbol symbol type type along along with with or without or without updating updating the the associated probability associated probability model suchthat model such that aa frequency frequencyatat which whichthetheselection selection for for the the symbols symbols
of the of the predetermined symboltype predetermined symbol typeisisperformed performed along along with with thethe update, update, is islower lowerininthe thelow low complexitymode complexity mode than than compared compared to the to the high-efficiency high-efficiency mode. mode.
In this case, after the decoding of 4 bins, 4 update steps follow based on the 4 bins just- In this case, after the decoding of 4 bins, 4 update steps follow based on the 4 bins just-
decoded.Note decoded. Notethat thatthese these four four update updatesteps steps can can be be conducted conductedininone onesingle singlestep step by byusing usingaa lookupspecial lookup special lookup-table. lookup-table. This This lookup lookuptable tablestores stores for for each each possible possible combination combinationofof4 4 bins and bins andeach each possible possible internal internal state state of context of the the context model model the resulting the resulting new statenew afterstate the after the
four conventional four updatesteps. conventional update steps.
In a certain mode, the multi-bin update is used for syntax element coeff_significant_flag. In a certain mode, the multi-bin update is used for syntax element coeff_significant_flag.
For bins For bins ofof all all other other syntax elements, no syntax elements, nocontext contextmodel model update update is is used. used. TheThe number number of of bins that bins that are arecoded coded before before a multi-bin a multi-bin update update step isstep doneisisdone is n. set to setWhen to n.theWhen numberthe of number of
bins of the set is not divisible by n, 1 to n-1 bins remain at the end of the subset after the bins of the set is not divisible by n, 1 to n-1 bins remain at the end of the subset after the
last multi-bin last multi-bin update. For eachofofthese For each thesebins, bins, aaconventional conventionalsingle-bin single-binupdate update is is done done
75
after coding after coding all all of ofthese thesebins. bins.The The number number nn may maybebeany any positivenumber positive number greater greater than than 1.1. Anothermode Another mode could could besbes identical identical to to thethe previous previous mode, mode, except except thatthat multi-bin multi-bin update update is is
donefor done forarbitrary arbitrarycombinations combinations of coeff_significant_flag, of coeff_significant_flag. coeff_abs_greater1 coeff_abs_greater] and and (insteadofofcoeff_significant_flag coeff_abs_greater2(instead coeff_abs_greater2 only).Thus, coeff_significant_flagonly). Thus,this thismode mode would would be be morecomplex more complex than than thethe other. other. AllAll other other syntax syntax elements elements (where (where multi-bin multi-bin update update is not is not
used) could used) could be bedivided dividedinto intotwo twodisjoint disjoint subsets subsets where wherefor forone oneofofthe thesubsets, subsets,single single bin bin update is update is used used and andfor forthe theother othersubset subsetnonocontext contextmodel model update update is used. is used. Any Any possible possible 2024201207
disjoint subsets are valid (including the empty subset). disjoint subsets are valid (including the empty subset).
In an In an alternative alternativeembodiment, the multi-bin embodiment, the multi-bin update updatecould couldbe bebased basedononthe thelast last m bins only m bins only that are that are coded codedimmediately immediately before before the the multi-bin multi-bin update update step. step. m maymbe may be any any natural natural numbersmaller number smallerthan thann.n.Thus, Thus,decoding decodingcould could bebe done done like: like:
bbbbbuubbbbuubbbbuubbbb.. b b b u u b b b b u u b b b b u u b b b b…
with n=4 with n=4 and and m=2. m=2.
That is, That is, the the selector selector 402 402 may beconfigured may be configuredto,to,for forsymbols symbolsof of a predetermined a predetermined symbol symbol
type, perform type, the selection perform the selection among amongthetheentropy entropy decoders decoders 322322 depending depending on a on a probability probability
modelassociated model associatedwith withthe thepredetermined predeterminedsymbol symbol type, type, along along with with updating updating thethe associated associated
probability model probability everyn-th model every n-thsymbol symbolof of thethe predetermined predetermined typetype based based on mon m recent most most recent symbolsofofthe symbols thepredetermined predetermined symbol symbol typetype suchsuch that that the ratio the ratio n/m n/m is higher is higher in low in the the low complexitymode complexity mode than than compared compared to the to the high-efficiency high-efficiency mode. mode.
In aa further In further preferred preferred embodiment, forsyntax embodiment, for syntaxelement elementcoeff_significant_flag, coeff_significant_flag,the the context context modeling scheme modeling schemeusing using a local a local template template as described as described above above for HE-PIPE for the the HE-PIPE configuration may configuration maybe be used used to assign to assign context context models models to binstoofbins the of the element. syntax syntax element. However,for However, forthese thesebins, bins, no no context context model modelupdate updateisisused. used.
Further, the selector Further, selector 402 402 may beconfigured may be configuredto,to,for forsymbols symbolsof of a predetermined a predetermined symbol symbol
type, select type, select one one of of aa number ofcontexts number of contextsdepending dependingon on a number a number of previously of previously retrieved retrieved
symbols of symbols of the the sequence sequence of of symbols symbolsand andperform performthetheselection selection among amongthetheentropy entropy decoders322 decoders 322depending dependingonon a probabilitymodel a probability model associated associated with with thethe selectedcontext, selected context,such such that the that the number of contexts, number of contexts, and/or and/or the the number numberofofpreviously previouslyretrieved retrievedsymbols, symbols,isislower lower in the in the low low complexity modethan complexity mode thancompared compared to the to the high-efficiency high-efficiency mode. mode.
76
Probabilitymodel Probability model initializationusing initialization using8 8bit bitinitialization initialization values values
This section describes the initialization process of the complexity-scalable internal state This section describes the initialization process of the complexity-scalable internal state
of probability of probability models modelsusing usinga so-called a so-called 8 bit 8 bit initializationvalue initialization valueinstead insteadofoftwotwo 8 bit 8 bit
values as is the case in the state-of-the-art video coding standard H.265/AVC. It consists values as is the case in the state-of-the-art video coding standard H.265/AVC. It consists
of two of two parts parts which whichare arecomparable comparable to the to the initializationvalue initialization valuepairs pairsused usedforforprobability probability modelsinin CABAC models CABAC of H.264/AVC. of H.264/AVC. The The two tworepresent parts parts represent theparameters the two two parameters of a linear of a linear 2024201207
equation toto compute equation computethethe initialstate initial stateofofa aprobability probabilitymodel, model, representing representing a particular a particular
probability (e.g. probability (e.g.ininform formof ofa aPIPE PIPEindex) index)from from aa QP: QP:
• Thefirst The first part part describes describes the the slope and it slope and it exploits exploits the the dependency dependency ofof theinternal the internal state in respect to the quantization parameter (QP) that is used during encoding or state in respect to the quantization parameter (QP) that is used during encoding or
decoding. decoding. • Thesecond The secondpart partdefines definesaa PIPE PIPEindex indexatataa given givenQP QPasaswell wellasasthe the valMps. valMps.
Twodifferent Two differentmodes modes are are available available to initialize to initialize a probability a probability model model using using the the given given initialization value. initialization value.The The firstmode first mode is denoted is denoted QP-independent QP-independent initialization. initialization. It only uses It only uses
the PIPE the PIPEindex indexand andvalMps valMps defined defined in the in the second second part part of the of the initialization initialization value value forfor allall
QPs. This QPs. Thisisis identical identical to to the the case case where the slope equals where the 0. The equals 0. secondmode The second modeis is denoted denoted
QP-dependent QP-dependent initializationand initialization andititadditionally additionallyuses usesthethe slope slope of of the the first first part part of of thethe
initialization value initialization valueto toalter alterthethePIPE PIPEindex index and and to to define define the the refinement index. The refinement index. Thetwo two parts of an 8 bit initialization value is illustrated as follows: parts of an 8 bit initialization value is illustrated as follows:
First Part First Part Second Part Second Part b7 b7 b6 b6 b5 b5 bb44 b3 b3 b2 b2 b b11 b0 bo
Slope Index Slope Index PIPEProbability PIPE Probability Index Index
It consists of two 4 bit parts. The first part contains an index that points to 1 out of 16 It consists of two 4 bit parts. The first part contains an index that points to 1 out of 16
different predefined different predefined slopes slopes thatthat are are stored stored in anin an array. array. The predefined The predefined slopes slopes consist of consist 7 of 7 negative slopes negative slopes(slope (slopeindex index0-6), 0-6),oneone slope slope thatthat equals equals zerozero (slope (slope indexindex 7) and7)8 and 8 positive slopes (slope index 8 -15). The slopes are depicted in Table C. positive slopes (slope index 8 -15). The slopes are depicted in Table C.
Slope Slope 0 0 11 2 2 3 3 4 4 5 5 6 6 7 7 Index Index Slope Slope -239 -239 -143 -143 -85 -85 -51 -51 -31 -31 -19 -19 -11 -11 0 0 Value Value Slope Slope 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 Index Index Slope Slope 11 11 19 19 31 31 51 51 85 85 143 143 239 239 399 399 Value Value
77
Table C: Table C:
All values All values are are scaled scaled by by aa factor factor of of 256 256 to to avoid avoidthe the usage usageofoffloating floatingpoint point operations. operations. Thesecond The secondpart partis is the the PIPE indexwhich PIPE index whichembodies embodiesthethe ascending ascending probability probability of of valMps valMps = = 11 between theprobability between the probabilityinterval interval pp ==00and andp p= =1.1.InInother otherwords, words, PIPE PIPE coder coder n must n must
operate at operate at aa higher higher model probability than model probability than PIPE codernn-–1.1. For PIPE coder Forevery everyprobability probability model model one PIPE probability index is available and it identifies the PIPE coder whose probability one PIPE probability index is available and it identifies the PIPE coder whose probability 2024201207
interval contains interval containsthetheprobability probability of pvalMPs=1 of PvalMPs=1 for for QP QP = 26.= 26.
PIPE PIPE Probability Probability 0 0 11 2 2 3 3 4 4 5 5 6 6 77 Index Index PIPE Coder PIPE Coder UR5 UR5 UR4 UR4 UR3 UR3 UR2 UR2 TB TB BP2 BP2 BP3 BP3 EP EP MPS MPS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PIPE PIPE Probability Probability 88 9 9 10 10 11 11 12 12 13 13 14 14 15 15 Index Index PIPE Coder PIPE Coder EP EP BP3 BP3 BP2 BP2 TB TB UR2 UR2 UR3 UR3 UR4 UR4 UR5 UR5 MPS MPS 1 1 1 1 1 1 11 11 11 11 11 Table D:D:Mapping Table Mapping of second of the the second parttheofinitialization part of the initialization valuevalue to coders to PIPE PIPE coders andand valMps:URUR valMps: = unary-to-rice-code, = unary-to-rice-code, TB TB = three-bin-code, = three-bin-code, BP =BP = bin-pipe-code, bin-pipe-code, EP = EP = equal equal
probability (uncoded) probability (uncoded)
The QP and the 8 bit initialization value are required to calculate the initialization of the The QP and the 8 bit initialization value are required to calculate the initialization of the
internal state internal state of of the theprobability probabilitymodels models by computing by computing a simplealinear simpleequation linear inequation the formin the form
of yy == m of m ** (QP (QP- –QPref) QPref)+ +256256 * b. * b. Note Note m defines m defines the the slope slope thatthat is is taken taken from from Table Table C C
byusing by usingthetheslope slope index index (the (the firstfirst partpart of 8the of the bit8initialization bit initialization value)value) and b denotes and b denotes the the PIPEcoder PIPE coderat atQPref QPref = 26= (the 26 (the second second part ofpart the of the initialization 8 bit 8 bit initialization value: value: "PIPE “PIPE Probability Index"). Probability Index”). Then, Then,valMPS valMPS is and is 1 1 and the the pipeIdx pipeIdx equals equals (y - (y - 2048) 2048) >> 8 >> if y8 is if y is greater than greater than 2047. 2047.Otherwise, Otherwise, valMPS valMPS is 0 isand0pipeIdx and pipeIdx equals- (2047 equals (2047 - y)The y) >> 8. >> 8. The refinement index refinement indexequals equals( (((y-2048) ((y-2048) & 255) & 255) * numStates * numStates ) >> 8) if >>valMPS 8 if valMPS equals equals 1. 1.
Otherwise, the Otherwise, the refinement refinementindex indexequals equals( (((2047-y) ((2047-y)& & 255)255) * numStates * numStates ) >> )8. >>In8.both In both cases, numStates cases, equalsthe numStates equals the number numberofofCABAC CABAC states states of the of the pipeIdx pipeIdx as depicted as depicted in Table in Table
Theabove The abovescheme scheme can can not not onlyonly be used be used in combination in combination withcoders, with PIPE PIPE coders, but alsobut in also in connection with connection with the the above-mentioned above-mentioned CABAC schemes. CABAC schemes. In Inthethe absence absence of of PIPE, PIPE, thethe numberofofCABAC number CABAC states, states, i.e.i.e. thetheprobability probabilitystates statesbetween betweenwhich whichthethe statetransition state transitioninin the probability the probability update updateis is performed performed (pState_current[bin]), (pState_current[bin]), per Idx per PIPE PIPE (i.e.Idx the (i.e. the
respective most respective mostsignificant significant bits bits of of pState_current[bin]) pState_current[bin]) isis then then only only aa set set of of parameters parameters
whichrealizes, which realizes, in in fact, fact, aapiece-wise piece-wise linear linear interpolation interpolationofofthe theCABAC statedepending CABAC state depending on the QP. Furthermore, this piece-wise linear interpolation can also virtually be disabled on the QP. Furthermore, this piece-wise linear interpolation can also virtually be disabled
78
in the in the case case where wherethe theparameter parameter numStates numStates usesuses the same the same value value forPIPE for all all Idx. PIPEFor Idx. For example,setting example, settingnumStates numStates to to 8 for 8 for all all cases cases yields yields a total a total of of 168 *states 16 * 8 states and the and the
computationofofthetherefinement computation refinement index index simplifies simplifies to ((y-2048) to ((y-2048) & 255) & 255) >> 5 >> for 5valMPS for valMPS equal 11 or equal or ((2047-y)&255)>>5 ((2047-y)&255)>>5forforvalMPS valMPS equal equal 0. this 0. For For this case,case, mapping mapping the the representation using representation using valMPS, valMPS, PIPE PIPE idx,idx, and and refinement refinement idx to idx back back thetorepresentation the representation used by used bythe the original original CABAC CABAC of H.264/AVC of H.264/AVC is veryissimple. very simple. Thestate The CABAC CABAC state is given is given
as (PIPE as PIPEIdxIdx << << 3) 3) + refinement + refinement Idx.Idx. This This aspect aspect is described is described further further below below withwith regard regard 2024201207
to Fig. 16. to Fig. 16.
Unless the slope of the 8 bit initialization value equals zero or unless the QP equals 26 it Unless the slope of the 8 bit initialization value equals zero or unless the QP equals 26 it
is necessary is to compute necessary to theinternal compute the internal state state by employingthethelinear by employing linearequation equationwith withthetheQPQP of the encoding or decoding process. In the case of the slope equaling to zero or that the of the encoding or decoding process. In the case of the slope equaling to zero or that the
QPofofthe QP thecurrent currentcoding codingprocess processequals equals 26 26 thethe second second partpart of 8ofbit 8 bit initializationvalue initialization value can be used directly for initializing the internal state of a probability model. Otherwise can be used directly for initializing the internal state of a probability model. Otherwise
the decimal the decimalpart partofofthe theresulting resulting internal internal state state can can bebe further further exploited exploited toto determine determinea a refinementindex refinement indexininhigh highefficiency efficiencycoding codingapplications applicationsbyby linearinterpolation linear interpolationbetween between the limits the limits of the specific of the specific PIPE PIPE coder. coder. InInthis this preferred preferred embodiment embodimentthethe linear linear interpolation isisexecuted interpolation executed by by simply multiplying the simply multiplying the decimal decimalpart part with with the the total total number of number of
refinementindices refinement indicesavailable availablefor forthe thecurrent currentPIPE PIPE coder coder andand mapping mapping the result the result to to the the closest integer refinement index. closest integer refinement index.
The process of initialization of the internal state of the probability models could be varied The process of initialization of the internal state of the probability models could be varied
with regard with regardtotothethenumber number of of PIPEPIPE probability probability indexindex states. states. In particular, In particular, the the double double
occurrenceof occurrence of the the equal equal probable probablemode mode using using PIPE PIPE coder coder E1, E1, i.e.i.e. thetheuseuse ofof two two different different
PIPEindices PIPE indicestotodistinguish distinguishbetween betweenMPSMPS beingbeing 1 or 1 or 0, 0, could could be avoided be avoided as follows. as follows.
Again,thetheprocess Again, process could could be invoked be invoked during during the startthe of start ofofparsing parsing of data, the slice the slice data, and the and the
input of input of this this process couldanan8 8bit process could bitinitialization initialization value as depicted value as depicted inin Table TableE,E,which which wouldbe, would be,for forexample, example,transmitted transmittedwithin within thethe bitstream bit stream forevery for every context context model model to to be be initialized. initialized.
TableE:E:Setup Table Setupofofthe the8 8bits bitsofof initValue initValuefor foraaprobability probabilitymodel model First 4 bits First 4 bits Last 4 bits Last 4 bits
initValue initValue bits b7 b7 b6 b6 b5 b5 b4 b4 b3 b3 b2 b2 b1 b1 b0 bo
Variable Variable slopeIdx slopeIdx propIdx propIdx Thefirst The first 44 bits bits define define aa slope slope index index and are retrieved and are retrieved by maskingthe by masking thebits bitsb4b4- –b7. b7.For For every slope index a slope (m) is specified and displayed in Table . every slope index a slope (m) is specified and displayed in Table.
TableFFValues Table Valuesofof variable variable m m forfor slopeIdx slopeIdx
79
slopeIdx slopeIdx 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 m m 012345678910112131415 - -
239 239 -143 -143 -85 -85 -51 -51 -31 -31 -19 -19 -11 -11 0 11 11 19 19 31 31 51 51 85 85 143 239 399 143 239 399
Bits b0 Bits b0 -b3, –b3,the thelast last 44bits bits ofofthe the8 8bit bitinitialization initialization value, value, identify identify the the probIdx probIdxand and describe the describe the probability probability at at aa predefined QP.probIdx predefined QP. probIdx0 0indicates indicatesthethehighest highestprobability probability for symbols for withvalue symbols with value0 0andand respectively,probIdx respectively, probIdx 14 14 indicates indicates thethe highest highest probability probability 2024201207
for symbols for withvalue symbols with value1.Table 1.TableG G shows shows for for eacheach probIdx probIdx the corresponding the corresponding pipeCoder pipeCoder
and its and its valMps. valMps.
TableG GMapping Table Mapping of last of the the last 4 bits 4 bits part part ofinitialization of the the initialization valuevalue to coders to PIPE PIPE coders andvalMps: and valMps: UR UR = unary-to-rice-code, = unary-to-rice-code, TB = TB = three-bin-code, three-bin-code, BP = bin-pipe-code, BP = bin-pipe-code, EP EP = equal = equalprobability probability(uncoded) (uncoded) probIdx probIdx 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 pipeCoder pipeCoder valMps valMps 01234567891011121314 UR5 UR4 UR5 0 UR4 UR3 0 UR3 UR2 0 UR2 TBC 0 TBC BP2 0 BP2 BP3 0 BP3 EP 0 EP BP3 0 BP3 BP2 1 BP2 TBC 1 TBC UR2 1 UR2 UR3 1 UR3 UR4 1 UR4 UR5 1 UR5 1
Withboth With bothvalues equation like equation like y=m currentslice current sliceand 000001111111 valuesthethecalculation calculationofofthetheinternal y=m* *X +256 x +256 * b,* where
andb bisisderived derived b, where from from internalstate m denotes m denotes statecould the slope,
the probIdx the probIdx couldbebedone the slope, X denotes
as in as shown shown done x denotes by using by using
the QP the QP of the
in the following the following a linear a linear
of the description. description. All All values in values in this this process process are are scaled scaled by by aa factor factor of of 256 to avoid 256 to avoid the the usage usageofoffloating floating point point operations. The output (y) of this process represents the internal state of the probability operations. The output (y) of this process represents the internal state of the probability
modelatat the model the current current QP andisis stored QP and stored in in aa 88 bit bitmemory. Asshown memory. As shownin in G G thethe internalstate internal state consistsofofthe consists thevalMPs, valMPs, the the pipeIdx pipeIdx andrefineIdx. and the the refineIdx.
TableHHSetup Table Setupof of theinternal the internal stateofofa aprobability state probabilitymodel model First 4 bits First 4 bits Last 4 bits Last 4 bits
initValue bits nitValue bits b7 b7 b6 b5 b6 b5 b4 b4 b3 b2 b1 b0 Variable Variable valMps valMps pipeIdx pipeIdx b3bb refineIdx refineIdx
Theassignment The assignmentofofthe therefineIdx refineIdxand andpipeIdx pipeIdxisis similar similar to to the the internal internalstate ofof state thethe CABAC CABAC
probability models probability (pStateCtx)and models (pStateCtx) andisis presented presented in in H. H.
TableII Assignement Table Assignement of of pipeIdx, pipeIdx, refineIdx refineIdx and and pStateCtx pStateCtx
pipeIdx 00 pipeIdx 11 2 2 refineIdx 0 1 2 0 1 2 3 4 5 6 0 1 2 3 4 refineIdx pStateCtx 0 1 2 3 0120123456 pStateCtx 01234 4 5 6 7 8 9 10 11 12 13 14 10 11 13 14
0123456789 80
pipeIdx 33 pipeIdx 4 4 refineIdx 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 8 9 refineIdx 15 16 17 18 1901234560123456789 pStateCtx pStateCtx 15 20 21 22 23 24 25 26 27 28 29 30 31 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
pipeIdx pipeIdx 5 5 refineIdx refineIdx 0 1 2 3 4 5 6 7 8 9 10 11 11 12 12 13 13
pStateCtx pStateCtx
pipeIdx 012345678910 32 33 32 6 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 4243 4344 444545 7 2024201207
pipeIdx 6 7 refineIdx refineIdx 0 1 2 3 4 5 10 11 12 6 13 14 12 13 7 14 15 0 15 0 8 9 pStateCtx 46 pStateCtx 01234567891011 46 47 48 48 49 49 50 50 51 51 52 52 53 53 54 54 55 55 56 56 57 57 58 58 59 59 60 60 61 61 62 62
In aa preferred In preferred embodiment embodimentthe theprobIdx probIdxisisdefined definedatatQP26. QP26. Based Based on 8thebit8 on the bit initialization value initialization value the the internal internal state state(valMps, pipeIdx and (valMps, pipeIdx andrefineIdx) refineIdx)ofofa aprobability probability modelisis processed model processedas as described describedin in the the following pseudo-code: following pseudo-code:
n = (probIdx<<8)-m n= ( probIdx << 8 ) – *m 26 * 26 fullCtxState = max( fullCtxState max( min( 0, min( 3839, 3839, (m( * m max( ∗ max( 0,min(51, 0,min( 51,SliceQPy SliceQPY)) +n+ ) ) ) 128) +n+ 128 ) remCtxState= =fullCtxState remCtxState fullCtxState&&255 255 preCtxState == fullCtxState preCtxState fullCtxState >> >>88 if( preCtxState if( < 8 {) preCtxState <8) { pipeIdx == 77 -− preCtxState pipeIdx preCtxState valMPS==00 valMPS }} else else { { pipeIdx == preCtxState pipeIdx preCtxState-−88 valMPS valMPS ==11 }} offset offset == 3,{ 3, 7, 7, 5, 5, 7, 7, 10, 10, 14,14, 16,} 1 } 16,1
if( pipeIdx if( pipeIdx == 0 ) {{ ==0) if( remCtxState if( remCtxState <= <=127) 127 ) remCtxState= =127 remCtxState 127- −remCtxState remCtxState else else
remCtxState = remCtxState = remCtxState remCtxState –128 128 refineIdx ==( (remCtxState refineIdx remCtxState<<1) << 1*) *offset) offset ) >> >>88 } else { } else {
if( valMPS if( valMPS == =0) 0) remCtxState = remCtxState 255 – remCtxState =255-remCtxState refineIdx ==( remCtxState refineIdx (remCtxState* offset[pipeIdx] offset[pipeIdx] ) >> >>88 }}
As shown As shownininthe thepseudo pseudocode code therefineIdx the refineIdxisiscalculated calculatedby bylinearly linearly interpolating interpolating between between
the interval the interval of of the the pipeIdx pipeIdx and quantizing the and quantizing the result result to to the the corresponding refineIdx. The corresponding refineIdx. The
offset specifies offset specifies the the total total number ofrefineIdx number of refineIdxfor foreach eachpipeIdx. pipeIdx.TheThe interval interval [7,[7, 8) 8) of of fullCtxState/256 is fullCtxState/256 is divided divided in in half. half. The interval [7, The interval [7, 7.5) is is mapped mapped totopipeIdx pipeIdx= =0 and 0 and 81
valMps= =0 0and valMps and thethe interval[7.5, interval [7.5,8)8)isis mapped mapped to to pipeIdx pipeIdx = 0= and 0 and valMps valMps = 1. = Fig. 15 15 1. Fig.
depicts the depicts process of the process of deriving deriving the the internal internal state state and displays the and displays the mapping mappingofof fullCtxState/256 to fullCtxState/256 to pStateCtx. pStateCtx.
Notethe Note the slope slope indicates indicates the the dependency ofthe dependency of theprobldx probIdxand andthe theQP. QP.IfIfthe theslopeIdx slopeIdxofofthe the 8 bit initialization value equals 7 the resulting internal state of the probability model is 8 bit initialization value equals 7 the resulting internal state of the probability model is
the same the sameforforallallslice sliceQPs QPs - hence - hence the initialization the initialization process process of internal of the the internal statestate is is 2024201207
independentfrom independent fromthe thecurrent currentQPQPofofthe theslice. slice.
That is, selector 402 may initialize the pipe indices to be used in decoding the following That is, selector 402 may initialize the pipe indices to be used in decoding the following
portion of portion of the the datastream datastreamsuch suchasasthe thewhole whole stream stream or the or the nextnext slice, slice, using using the the syntax syntax
element indicating the quantization step size QP used in order to quantize the data of this element indicating the quantization step size QP used in order to quantize the data of this
portion, such portion, such asasthe thetransform transform coefficient coefficient levels levels contained contained therein therein using using this this syntax syntax
elementas element as an an index indexinto into aa table table which maybebecommon which may commonfor for bothboth modes, modes, LCHE. LC and andThe HE. The table such table as table such as table D maycomprise D may comprise pipe pipe indices indices forfor each each symbol symbol type,type, for for a respective a respective
reference QPref, reference QPref, or or other other data data for for each each symbol symboltype. type.Depending Depending on the on the actual actual QP QP of the of the
current portion, current portion, the the selector selector may computea apipe may compute pipeindex index value value using using the the respective respective table table
entry aa indexed entry indexedbybythe theactual actualQPQP andand QP QP itself, itself, such such as multiplication as by by multiplication a with a with (QP-(QP-
QPref). The QPref). Theonly onlydifference difference in in LC andHEHE LC and mode: mode: TheThe selector selector computes computes the the result result merely merely
at aa lower at lower accuracy in case accuracy in case of of LC compared LC compared toto HEHE mode. mode. The The selector selector may,may, for example, for example,
merelyuse merely usethe theinteger integer part part of of the the computation computationresult. result. In In HE HEmode, mode, thethe higher higher accuracy accuracy
remainder, such remainder, suchasasthethefractional fractionalpart, part,isisused used to to select select oneone of available of available refinement refinement
indices for indices for the the respective respective pipe pipe index as indicated index as indicated by by the the lower loweraccuracy accuracyororinteger integerpart. part. Therefinement The refinementindex index is is used used in in HE HE mode mode (in portentially (in portentially more seldomly more seldomly also in also LC in LC mode)ininorder mode) orderto to perform perform the probability the probability adaptation adaptation such such as as bytheusing by using the above- above-
mentionedtable mentioned tablewalk. walk.When When leaving leaving the the available available indices indices for for the the current current pipepipe index index at at
the higher the higher bound, bound,then then thethe higher higher pipepipe indexindex is selected is selected nextminimizing next with with minimizing the the refinementindex. refinement index.When When leaving leaving the the available available indices indices for for the the current current pipepipe index index at the at the
lower bound, lower bound,then then thethe next next lower lower pipe pipe index index is selected is selected nextmaximizing next with with maximizing the the refinement index refinement indextoto the the maximum maximum available available forfor thethe new new pipe pipe index. index. TheThe pipepipe indec indec along along
with the with the refinement refinementindex indexdefine definethetheprobability probabilitystate, state,but butfor forthe theselection selectionamong amongthethe
partial streams, partial streams, the the selector selector merely uses the merely uses thepipe pipeindex. index.The The refinement refinement index index merely merely
serves for tracking the probability more closely, or in a finer accuracy. serves for tracking the probability more closely, or in a finer accuracy.
The above The abovediscussion discussion also also showed, showed, however, however,that that aacomplexity complexityscalability scalability may be may be achieved independent achieved independentfrom from thethe PIPE PIPE or CABAC or CABAC coding coding concept concept of Fig. of 7 -Fig. 17, 7using – 17,a using a decoderasas shown decoder shownininFig. Fig.12. 12.The The Decoder Decoder of Fig. of Fig. 12 for 12 is is for decoding decoding a data a data stream stream 601 601
into which into mediadata which media dataisis coded, coded,and andcomprises comprises a mode a mode switch switch 600 600 configured configured to activate to activate
82
a low-complexity a mode low-complexity mode or or a high a high efficiency efficiency mode mode depending depending ondata on the the stream data stream 601, 601, as as well as well as aa desymbolizer desymbolizer 602602 configured configured to to desymbolize desymbolize aa sequence sequence 603603ofofsymbols symbols obtained -– either obtained either directly directlyororby byentropy entropydecoding, decoding, for for example example -- from the data from the data stream 601 stream 601
to obtain to obtain integer-valued integer-valued syntax elements604 syntax elements 604using usinga amapping mapping function function controllable controllable by by a a control parameter, control parameter, for for mapping mappinga adomain domain of symbol of symbol sequence sequence words words to a co-domain to a co-domain of of the integer-valued the syntax elements. integer-valued syntax elements.AAreconstructor reconstructor605 605isisconfigured configuredto to reconstructthethe reconstruct
mediadata media data606 606based based on on thethe integer-valued integer-valued syntax syntax elements. elements. The desymbolizer The desymbolizer 602 is 602 is 2024201207
configured totoperform configured performthethe desymbolization desymbolization such such that control that the the control parameter parameter varies varies in in accordancewith accordance withthethedata datastream streamatata afirst first rate rate in in case case of ofthe thehigh-efficiency high-efficiencymode being mode being
activatedand activated andthethe control control parameter parameter is constant is constant irrespective irrespective of the of the data dataorstream stream changes or changes
depending on the data stream, but at a second rate lower than the first rate in case of the depending on the data stream, but at a second rate lower than the first rate in case of the
low-complexity low-complexity modemode being activated, being activated, , as it ,isasillustrated it is illustrated by607. by arrow arrow For 607. Forthe example, example, the control parameter control mayvary parameter may varyininaccordance accordancewith withpreviously previously desymbolized desymbolized symbols. symbols.
Someofofthe Some theabove aboveembodiments embodiments mademade use use of ofaspect the the aspect of Fig. of Fig. 12. syntax 12. The The syntax elements elements
and MVD coeff_abs_minus3 and coeff_abs_minus3 MVD within within sequence sequence 327 327 were,were, for example, for example, binarized binarized in in desymbolizer 314 desymbolizer 314 depending dependingononthethemodemode selected selected as indicated as indicated by by 407,407, and and the the reconstructor 605 reconstructor usedthese 605 used these syntax syntaxelements elementsfor forreconstruction. reconstruction.Obviously, Obviously,both bothaspects aspects of Fig. of Fig. 11 11 and and 12 are readily 12 are readily combinable, but the combinable, but the aspect aspect of of Fig. Fig. 12 12 may also be may also be combined combined
with other with other coding environments. coding environments.
See, for See, for example, the motion example, the motionvector vectordifference differencecoding codingdenoted denoted above. above. TheThe desymbolizer desymbolizer
602 may 602 maybebe configured configured such such thatthat the the mapping mapping function function uses uses a a truncated truncated unary unary code code to to performthe perform themapping mapping within within a first a first interval interval of domain of the the domain of integer-valued of integer-valued syntax syntax elementsbelow elements belowa cutoff a cutoffvalue valueandand a combination a combination of a of a prefix prefix in form in form of theoftruncated the truncated unary code unary codefor for the the cutoff cutoff value value and and aa suffix suffix in in form of aa VLC form of codeword VLC codeword within within a second a second
interval of interval of the the domain of integer-valued domain of integer-valuedsyntax syntaxelements elementsinclusive inclusiveand and above above thethe cutoff cutoff
value, wherein value, wherein thethe decoder decodermay may comprise comprise an an entropy entropy decoder decoder 608 configured 608 configured to derive to derive a a numberofoffirst number first bins bins of of the the truncated truncated unary codefrom unary code fromthe thedata datastream stream601 601 using using entropy entropy
decodingwith decoding withvarying varyingprobability probabilityestimation estimation and and a number a number of second of second bins bins ofVLC of the the VLC codeword using codeword using aa constant constant equi-probability equi-probability bypass bypassmode. mode. In In HE mode,the HE mode, theentropy entropy coding may coding maybe be more more complex complex than than in LC in LC coding coding as illustrated as illustrated by 609. by arrow arrow 609. That is,That is, context-adaptivity and/or context-adaptivity and/orprobability probability adaptation adaptationmaymaybebeapplied appliedininHE modeand HE mode and suppressedin suppressed in LC LCmode, mode, or or thecomplexity the complexitymaymay be scaled be scaled in other in other terms, terms, as as setset outoutabove above with respect with respect to to the the various various embodiments. embodiments.
An encoder fitting to decoder of Fig. 11, for encoding media data into a data stream is An encoder fitting to decoder of Fig. 11, for encoding media data into a data stream is
shown shown in in Fig. Fig. 13.13. It It maymay comprise comprise an inserter an inserter 500 configured 500 configured to signal to signal within the within data the data 83
stream 501 stream 501an anactivation activation of of aa low-complexity mode low-complexity mode or or a a highefficiency high efficiencymode, mode,a a constructor 504 constructor configuredtoto precode 504 configured precodethe themedia mediadata data505 505into intoaasequence sequence506 506ofof syntax syntax
elements, aa symbolizer elements, 507configured symbolizer 507 configuredtotosymbolize symbolize thesequence the sequence506506 of of syntax syntax elements elements
into aa sequence into 508 of sequence 508 of symbols, symbols,aa plurality plurality of of entropy entropy encoders 310 each encoders 310 eachof of which whichisis configuredto configured to convert convert partial partial sequences of symbols sequences of into codewords symbols into codewordsofofthe thedata datastream, stream, and aa selector and selector 502 502 configured to forward configured to each symbol forward each symbolofofthe thesequence sequence508 508 of of symbols symbols to to a selected one of the plurality of entropy encoders 310, wherein the selector 502 is a selected one of the plurality of entropy encoders 310, wherein the selector 502 is 2024201207
configuredto configured to perform performthe the selection selection depending dependingononthe theactivated activated one oneofof the the low low complexity complexity modeand mode andthe thehigh-efficiency high-efficiencymode modeas as illustrated by illustrated byarrow arrow511. 511.AnAninterleaver interleaver510 510may may be optionally be optionally provided for interleaving provided for interleaving the the codewords of the codewords of the encoders 310. encoders 310.
An encoder fitting to decoder of Fig. 12, for encoding media data into a data stream is An encoder fitting to decoder of Fig. 12, for encoding media data into a data stream is
shown shown in in Fig. Fig. 14 14 as as comprising comprising an inserter an inserter 700 configured 700 configured to signal to signal within thewithin data the data stream 701 stream 701an anactivation activation of of aa low-complexity mode low-complexity mode or or a a highefficiency high efficiencymode, mode,a a constructor 704 constructor configuredtoto precode 704 configured precodethe themedia mediadata data705 705into intoaasequence sequence706706 ofof syntax syntax
elementscomprising elements comprisingananinteger-valued integer-valuedsyntax syntaxelement, element,andand a symbolizer a symbolizer 707707 configured configured
to symbolize to the integer-valued symbolize the integer-valued syntax syntax element elementusing usingaamapping mapping function function controllablebyby controllable
a control a control parameter, parameter, for for mapping mapping aa domain domainofofinteger-valued integer-valuedsyntax syntaxelements elementstoto a aco- co- domainofofthe domain thesymbol symbolsequence sequence words, words, wherein wherein the the symbolizer symbolizer 707 707 is configured is configured to to performthe perform the symbolization symbolizationsuch suchthat thatthethe control control parameter parametervaries varies in in accordance withthe accordance with the data stream data streamatata afirst firstrate rateinincase caseofofthethehigh-efficiency high-efficiency modemode being activated being activated and the and the
control parameter is constant irrespective of the data stream or changes depending on the control parameter is constant irrespective of the data stream or changes depending on the
data stream, data stream,butbutatata asecond secondraterate lower lower than than the first the first rate rate in case in case of theoflow-complexity the low-complexity modebeing mode beingactivated activatedasasillustrated illustrated byby arrow arrow 708. 708. The symbolizationresult The symbolization result is is coded into coded into
the datastream the 701. datastream 701.
Again, it Again, it should be mentioned should be mentionedthat thatthe theembodiment embodiment of Fig. of Fig. 14 14 is is easilytransferable easily transferableonto onto the above-mentioned the above-mentioned context-adaptive context-adaptive binary binary arithmetic arithmetic en/decoding en/decoding embodiment: embodiment: selector 509 selector andentropy 509 and entropyencoders encoders 310310 would would condense condense into ainto a context-adaptive context-adaptive binary binary
arithmetic encoder arithmetic encoderwhich which would would output output the stream the data data stream 401 directly 401 directly andtheselect and select the contextfor context fora abinbincurrently currently to derived to be be derived from from the thestream. data data stream. This is especially This is especially true for true for contextadaptivity context adaptivity and/or and/or probability probability adaptivity. adaptivity. Both functionalities/adaptivities Both functionalities/adaptivities may be may be switchedoff, switched off, or or designed designed more relaxed, during more relaxed, during low lowcomplexity complexitymode. mode.
It has It has briefly brieflybeen been noted noted above that the above that the mode switchingability mode switching ability explained explainedwith withrespect respecttoto someofofthe some theabove above embodiments embodiments may, may, in accordance in accordance with alternative with alternative embodiments, embodiments, be be left away. left away. To makethis To make thisclear, clear, reference reference isis made made toto Fig. Fig. 16, 16, which summarizes which summarizes theabove the above descriptioninsofar description insofar as as merely merely the removal the removal of the of theswitching mode mode switching ability differentiates ability differentiates the the 84
embodimentofofFig. embodiment Fig.16 16 from from the the aboveabove embodiments. embodiments. Moreover, Moreover, the following the following description will reveal the advantages resulting from initializing the probability estimates description will reveal the advantages resulting from initializing the probability estimates
of the of the contexts contexts using usingless lessaccurate accurateparameters parameters forfor slope slope and and offset offset compared compared to, forto, for example,H.264. example, H.264.
In particular, In particular,Fig. Fig.16 16shows shows a a decoder for decoding decoder for decodinga avideo videofrom from a datastream a data stream 401401 into into
whichsyntax which syntaxelements elements327 327 arecoded are coded using using binarizationsofofthe binarizations thesyntax syntaxelements elements 327. 327. ItItis is 2024201207
essential to note that in the above description, the whole details provided with the Figs. essential to note that in the above description, the whole details provided with the Figs.
1-15 arealso 1-15 are alsotransferable transferable ontoonto the entities the entities shownshown in Fig.in 16 Fig. such 16 as, such as, for asexample, for example, far as far as the as the functionality functionality ofof the thedesymbolizer desymbolizer 314, 314, the the reconstructor reconstructor 404 the 404 and andentropy the entropy decoder409 decoder 409isisconcerned. concerned. Nevertheless, Nevertheless, for for the the sakesake of completeness, of completeness, some some of of these these details are again outlined below. details are again outlined below.
Thedecoder The decodercomprises comprisesan an entropy entropy decoder decoder 409 configured 409 configured to derive to derive a number a number of bins of bins
326 ofofthe 326 thebinarizations binarizationsfrom fromthethe data data stream stream 401 401 usingusing binary binary entropy entropy decoding decoding by by selecting aa context selecting amongdifferent context among differentcontexts contextsandand updating updating probability probability states states associated associated
with the with the different different contexts, contexts, dependent on previously dependent on previously decoded decodedportions portionsofofthe thedata datastream stream 401. To 401. Tobebemore moreprecise, precise,asasdescribed describedabove abovethetheentropy entropydecoder decoder 409409 maymay be configured be configured
to derive to derive the the number numberofofbins bins 326326 of the of the binarizations binarizations from from the the datadata stream stream 401 using 401 using
binary entropy binary entropy decoding decodingsuch such as as theabove-mentioned the above-mentioned CABACCABAC scheme, scheme, or binaryorPIPE binary PIPE decoding, i.e. decoding, i.e. using usingthethe construction construction involving involving several several parallel parallel operating operating entropy entropy
decoders322322 decoders along along with with a respective a respective selector/assigner. selector/assigner. As far asAs thefar as the context contextisselection is selection
concerned,the concerned, the dependency dependency thereofonon thereof thepreviously the previously decoded decoded portions portions of of thethe data data stream stream
401, may 401, maybebeembodied embodiedas as outlined outlined above. above. That That is,is, theentropy the entropydecoder decoder may may be configured be configured
to perform to performthe thecontext contextselection selectionfor fora abin bincurrently currentlytotobebederived derived depending depending on a on bina bin position of position of the the bin bincurrently currentlytotothe thederived derivedwithin within thethe binarization binarization to which to which the bin the bin
currently to currently to be derived belongs, be derived belongs, aa syntax syntaxelement elementtype type of of a syntax a syntax element, element, thethe integer integer
value of value of which whichisis obtained obtainedby bydebinarizing debinarizingthe thebinarization binarizationtoto which whichthethebin bincurrently currentlytoto be derived be derived belongs, belongs,or or one oneorormore morebins binspreviously previously derived derived from from thethe data data stream stream 401 401 oror the integer the integer value of aa syntax value of syntax element elementpreviously previouslydebinarized. debinarized.ForFor example, example, the the context context
selected may selected maydiffer differbetween betweenthethe firstandand first second second bin bin of binarization of the the binarization of a of a certain certain
syntax element. syntax element.Moreover, Moreover, different different groups groups of contexts of contexts may may be provided be provided for different for different
syntax element syntax elementtypes typessuch such as as transform transform coefficient coefficient levels, levels, motion motion vector vector differences, differences,
coding mode coding modeparameters parameters andand thethe like. like.
As far As far as as the the probability probability state stateupdate update isisconcerned, concerned,entropy entropydecoder decoder 409 409 may be may be configuredtoto perform configured performsame, same,forfora abin bincurrently currentlyderived, derived,bybytransitioning transitioningfrom froma acurrent current probability state associated with the context selected for the bin currently derived within probability state associated with the context selected for the bin currently derived within
the 126 the 126probability probabilitystates states to to aa new newprobability probabilitystate stateamong among the the 126 126 probability probability states states
85
dependingononthethebinbin depending currently currently derived. derived. As As described described above, above, the entropy the entropy decoder decoder 409 409 may,for may, for example, example,access accessa table a tableentry entryusing using thethe current current stateandand state thethe value value of of thethe binbin
currently derived currently with the derived with the accessed accessedtable tableentry entryrevealing revealingthe thenew new probability probability state.See state. See abovetables above tablesNext_State_LPS Next_State_LPSand and Next_State_MPS Next_State_MPS thelook-up the table table with look-up withtorespect respect to whichisis performed which performedby by thethe entropy entropy decoder decoder in addition in addition to other to the the other steps steps 0 to 05 to 5 listed listed
above. In above. In the the description description above, the probability above, the probability state statewas was sometimes denoted asas sometimes denoted pState_current[bin]. As pState_current[bin]. also described As also described above, the entropy above, the decoder409 entropy decoder 409may maybebe configured configured 2024201207
to binary to binary arithmetic arithmeticdecode decode a bin a bin currently currently to betoderived be derived by quantizing by quantizing a currenta current probabilityinterval probability interval bitbit value value (R) (R) representing representing a current a current probability probability interval interval to obtain ato obtain a
probability interval probability interval index index q_index andperforming q_index and performinganan intervalsubdivision interval subdivisionbyby indexing indexing a a
table entry table entry among among table table entries entries (Rtab) (Rtab) usingusing the probability the probability interval interval index index and a and a probability state probability state index p_state which index p_state whichdepends depends on on a current a current probability probability state state associated associated
withthe with thecontext context selected selected for for the the bin currently bin currently to be to be derived, derived, tothe to obtain obtain the subdivision subdivision of of the current the current probability probability interval interval into into two twopartial partialintervals. intervals.AsAsdescribed, described, thethe entropy entropy
decoder409 decoder 409may may useuse an 8anbit 8 bit representation representation for for the the current current probability probability interval interval width width
value R. value R. For Forquantizing quantizingthethecurrent currentprobability probability width width value, value, the the entropy entropy decoder decoder 409 409 may,for may, forexample, example, grab-out grab-out two two or or most three threesignificant most significant bits8 of bits of the bitthe 8 bit representation. representation.
Entropydecoder Entropy decoder409409 maymay then then perform perform the selection the selection among among the two the two intervals partial partial intervals based on an offset state value from an interior of the current probability interval, update based on an offset state value from an interior of the current probability interval, update
the probability the probabilityinterval interval width width value value and and an an offset offset state value, state value, anda value and infer infer of a value the binof the bin
currently to be derived, using the selected partial interval and perform a renormalization currently to be derived, using the selected partial interval and perform a renormalization
of the of the updated probability width updated probability width value valueandandthe theoffset offset state state value, value, namely namely VVininthe theabove above description, including description, including aacontinuation continuationof of reading reading bitsbits fromfrom the data the data streamstream 401. As401. As
described above, described above,the theselection selection among among thethe twotwo partial partial intervalsbased intervals basedon on thethe offset offset state state
value VVmay value mayinvolve involve a comparison a comparison between between R andRVand V while while the update the update of the of the probability probability
interval width interval valueand width value andthethe offsetstate offset statevalue value maymay dependdepend on theon the of value value of the bin the bin
currently to be derived. currently to be derived.
To proceed To proceedwith withdescribing describing Fig. Fig. 16,16, thethe decoder decoder further further describes describes a desymbolizer a desymbolizer 314 314 whichisis configured which configuredtotodebinarize debinarizethe thebinarizations binarizations of of the the syntax syntax elements elements327327totoobtain obtain integer values of the integer the syntax syntax elements. elements. The reconstructor 404, The reconstructor 404, which whichisis also also comprised comprisedbyby the decoder the decoderofofFig. Fig.16, 16,then thenreconstructs reconstructsthe thevideo video405 405 based based on the on the integer integer values values of of
syntax elements syntax elementsusing usinga aquantization quantizationparameter parameterQP.QP. ForFor example, example, the reconstructor the reconstructor 404 404
may,asasdescribed may, describedabove, above, operate operate inpredictive in a a predictive manner manner with using with using the quantization the quantization
parameter in order to set the accuracy for representing the prediction residual such as the parameter in order to set the accuracy for representing the prediction residual such as the
transformcoefficient transform coefficient levels levels representing representing a transformed a transformed version version of the prediction of the prediction residual. residual.
Theentropy The entropydecoder decoder 409 409 is,is, asas described described above, above, configured configured to distinguish to distinguish between between 126 126
86
probability states. probability states. That is, pState_current[bin] That is, pState_current[bin] in in combination combination with with the the indication indication of of valMPS,i..e valMPS, i..e the the indication indication of of the the MBS among MBS among 0 and0 and 1, i.e. 1, i.e. among among the possible the possible symbolsymbol states, isisable states, able to to assume 126different assume 126 differentstates. states. The Theentropy entropydecoder decoder 409 409 initializes initializes thethe
probability states probability states associated associated with withthethedifferent differentcontexts, contexts, i.e.pState_current i.e. pState_current for for the the different available different availablecontexts, contexts, according according to a linear to a linear equation equation of the quantization of the quantization parameter,parameter,
i.e. an i.e. an equation according equation according to ato. aQP⋅ + QPd. + Itd. It should should be recalled be recalled that pState_current that pState_current actually actually
merelyindicates merely indicatesthe theprobability probabilityofofthe theLSB. LSB. Thus, Thus, a . a QP ⋅ +QP + d reveals d reveals both, namely both, namely 2024201207
pState_current and pState_current andvalMPS, valMPS, i.e.the i.e. theindication indicationwhich whichof of thethe twotwo states states is is theMBSMBS the and and whichisisthe which theLBS. LBS. While While a . QPa +⋅ QP + d indicates d indicates the probability the probability of asymbol, of a certain certaini.e. symbol, 1 or i.e. 1 or 0, that 0, that fact fact as as to to whether whether a .a QP ⋅ QP + d+isdabove is above 63 or 63 not,ordirectly not, directly indicates indicates as to 0whether 0 as to whether
or 11 is or is the MSB.TheThe the MSB. entropy entropy decoder decoder 126 derives, 126 derives, for each for each of theofdifferent the different contexts, contexts,
slope a and offset b of the linear equation from first and second 4 bit parts of a respective slope a and offset b of the linear equation from first and second 4 bit parts of a respective
8 bit 8 bit initialization initialization value, value,namely the four namely the four MSBs MSBson on the the one one hand hand andlower and the the lower four four LSBs.InInthis LSBs. thisregard, regard,thethe entropy entropy decoder decoder 409bemay 409 may be configured configured to initialize to initialize the the probability states probability states associated with the associated with the different different contexts contexts asas beginnings beginningsofofslices slicesofofthethe video. The video. Theentropy entropydecoder decoder may, may, for for example, example, be configured be configured to individually to individually determine determine
the quantization the parameterfor quantization parameter for each eachslice slice of of the the video. video. That Thatis, is, the the entropy decoder409 entropy decoder 409 mayderive may derivefrom from thethe datadata stream stream 401 information 401 information as to as to how to how to quantization set the set the quantization parameter for each slice. Then, using slope and offset, the probability estimates are set at parameter for each slice. Then, using slope and offset, the probability estimates are set at
the beginning the beginning of of each eachslice slice using using the the respective respective quantization quantization parameter parameterofofthe therespective respective slice. “At slice. "At the the beginning beginning of of a a slice” slice"may, may, for for example, mean"in example, mean “inadvance advanceof of decoding decoding thethe
first bin first bin to to be entropy decoded be entropy decoded using using anyany of the of the context”. context". In particular, In particular, the the entropy entropy
decoder409 decoder 409maymay be configured be configured to initialize to initialize the probability the probability states states associated associated with with a a different context different context atat beginnings beginningsof of slices slices of the of the videovideo by reading by reading the quantization the quantization
parameter parameter QP QP for for a current a current sliceslice from from thestream the data data 401 stream 401 and initializing and initializing the probability the probability
states associated states associated with withthe thedifferent differentcontexts contexts according according to a to a linear linear equation equation of the of the
quantization parameter quantization parameterfor forthe thecurrent current slice, slice, wherein the entropy wherein the entropydecoder decodermay, may,forfor each each
of the of the slices, slices, derive derive the the slope and the slope and the offset offset of of the the linear linear equation equationfrom fromthethefirst firstand and second44bit second bitparts parts ofofthe thesame same respective respective 8 bit 8 bit initializationvalue. initialization value.That Thatis,is,while whilethethe quantization parameter quantization parameterQPQPvaries variesbetween between thethe slices slices of of thevideo, the video,thethepairs pairsofofslope slopeand and offset do not. offset do not.
The reconstructor The reconstructor 404 404 may, may,as as justdescribed, just described,operate operatein ina predictive a predictive manner. manner. Accordingly,the Accordingly, thereconstructor reconstructor404 404may, may, in reconstructing in reconstructing the the video video 405 405 basedbased on theon the integer values integer values ofofthethesyntax syntax elements elements 327, 327, dequantize dequantize transform transform coefficient coefficient levels levels comprised by comprised by the the syntax syntax elements elements using using the the quantization quantization parameter parameter QP, perform aa QP, perform retransformation onto retransformation ontothethe dequantized dequantized transform transform coefficient coefficient levels levels to obtaintotheobtain the prediction residual, prediction residual, perform perform aa spatial spatial and/or and/or temporal temporalprediction predictiontotoobtain obtaina aprediction prediction 87
signal, and signal, combinethe and combine theprediction predictionresidual residualand andthetheprediction predictionsignal signaltotoreconstruct reconstructthethe video 405. video 405.
To present To present aa specific specific example, the entropy example, the entropydecoder decoder409 409 may may be configured be configured to derive, to derive, forfor
each of the different contexts, the slope and offset from the first and second 4 bit parts each of the different contexts, the slope and offset from the first and second 4 bit parts
independentlyfrom independently fromeach eachother othersuch such as,for as, forexample exampleby by table table look-up look-up as as described described above above
or, alternatively, using separate arithmetic operations such as linear operations. That is, in or, alternatively, using separate arithmetic operations such as linear operations. That is, in 2024201207
ordertotocross order crossthethe gapgap between between the 4 the bits 4ofbits the of twothe two 4 bit 4 bit parts of parts of the the 8 bit 8 bit initialization initialization
values on values on the the one one hand, hand,and andthe the126 126different differentprobability probabilitystate state values values onon the the other other hand, hand, the entropy the entropydecoder decoder409 409 may individually may individually subject subject both both 4 bit 4 bit parts parts equations. to linear to linear equations. For For example,the example, theMSBs MSBs of 8the of the bit8initialization bit initialization value, value, p, isp,turned is turned intoslope into the the slope by by computing computing slope slope = m = mn,⋅ pand+ the p + n, and fourthe LSBsfour LSBs of the 8 bitofinitialization the 8 bit initialization value, q, isvalue, used q, is used
to compute to compute offset offset by offset by offset = S q=+s t. ⋅ qm,+n,t. tm,andn,S tare andappropriately s are appropriately selected constants. selected constants.
Merelyfor Merely forthe the sake sakeofofcompleteness, completeness,Fig. Fig.1717shows shows an an encoder encoder fitting fitting to to thethe decoder decoder of of Fig. 16, Fig. 16, wherein whereinthetheencoder encoderofofFig. Fig.1717 closely closely corresponds corresponds to the to the construction construction of for of for
examplethe example theencoder encoderof of Fig.2020 Fig. andand thethe other other embodiments embodiments for anfor an encoder encoder in a similar in a similar
mannerasasthe manner thedecoder decoder of of Fig. Fig. 16 16 corresponded corresponded to decoder to the the decoder of 11, of Fig. Fig.i.e. 11, besides i.e. besides leaving out leaving out the the mode switchingcapability mode switching capabilityand andimplementing implementing the the entropy entropy encoder encoder 513 513 in in moregeneric more genericterms termsasasincluding includingeither eitherthe thePIPE PIPEconcept conceptor or another another concept concept suchsuch as the as the
above-outlined CABAC above-outlined CABAC concept. concept. Besides Besides this,this, all all of of thethe description description provided provided above above withwith
respecttotoFig. respect Fig.1616isisequally equally transferrable transferrable ontoonto Fig. Fig. 17. 17.
Although some aspects have been described in the context of an apparatus, it is clear that Although some aspects have been described in the context of an apparatus, it is clear that
these aspects these aspects also also represent represent aa description description of of the thecorresponding corresponding method, wherea ablock method, where blockoror device corresponds device correspondstotoaamethod methodstep steporora afeature featureofofaamethod method step.Analogously, step. Analogously, aspects aspects
described in described in the the context context of of aa method step also method step also represent represent aa description description of of aa corresponding corresponding
block or block or item item oror feature feature of of aa corresponding correspondingapparatus. apparatus.Some Some or all or all of of thethe method method steps steps
maybebeexecuted may executedbyby(or(orusing) using)a ahardware hardware apparatus, apparatus, likefor like forexample, example,a a microprocessor, microprocessor,
a programmable a programmable computer computer orelectronic or an an electronic circuit. circuit. In In some some embodiments, embodiments, some some one or one or moreofof the more the most mostimportant importantmethod method stepsmaymay steps be be executed executed by such by such an apparatus. an apparatus.
Theinventive The inventiveencoded encoded signal signal can can be stored be stored on a digital on a digital storage storage medium medium or can beor can be transmitted on transmitted on aa transmission medium transmission medium such such as as a wirelesstransmission a wireless transmission medium medium or aor a wired wired
transmission medium transmission medium such such as as thethe Internet. Internet.
A basic A basic finding finding underlying underlying some someembodiments embodiments of the of the invention invention resultsfrom results from the the inventors’ discovery inventors' discovery that that the the accuracy accuracyatat which whichthe theabove above identifiedslope identified slopeandand offsetinin offset
context-adaptive binary context-adaptive binaryentropy entropycoding coding should should notnot be too be too highhigh sotoasavoid SO as to avoid that that any any 88
training phase training in which phase in whicha arepresentative representativeblend blendofofvideo videocontent contentisisinspected inspectedininorder ordertoto derive the pairs of slope and offset values for the individual context sticks at optimized derive the pairs of slope and offset values for the individual context sticks at optimized
values which, values which,ininfact, fact,more more closely closely represent represent the blend the blend of content of video video actually content actually inspected, than representative values of the statistical population of videos. Accordingly, inspected, than representative values of the statistical population of videos. Accordingly,
the inventors the inventors of of the the found foundout outthat that itit is is favorable to reduce favorable to the accuracy reduce the accuracyforforproviding providing slope and slope andoffset offset values valuesfor forinitializing initializing thethe probability probability estimation estimation ofof the the contexts. contexts. The The inventors realized, inventors realized, for for example, that this example, that this reduction reduction does not only does not only lead lead toto aa reduction reductioninin 2024201207
the memory the demands memory demands imposed imposed onto onto videovideo encoders encoders and decoders and decoders for storing for storing the of the pairs pairs of slopeand slope andoffset offsetforfor each each context, context, but to but also also to a slight a slight increase increase of efficiency of coding coding efficiency when when testing the testing thecoding codingefficiency efficiency in the in the field. field.
A specific A specific embodiment embodiment provides provides a decoder a decoder for for decoding decoding a video a video from from a data a data stream stream into into
whichsyntax which syntaxelements elementsare arecoded codedusing usingbinarizations binarizationsofofthe thesyntax syntaxelements, elements,comprising: comprising: an entropy an entropy decoder decoderconfigured configuredtotoderive derivea anumber numberof of binsofofthe bins thebinarizations binarizationsfrom from the data the data stream streamusing usingbinary binaryentropy entropy decoding decoding by selecting by selecting a context a context amongamong different different
contexts and updating probability states associated with the different contexts, dependent contexts and updating probability states associated with the different contexts, dependent
on previously on previously decoded decodedportions portionsofofthe the data data stream; stream; a desymbolizer a configuredtotodebinarize desymbolizer configured debinarizethe thebinarizations binarizationsof of the the syntax syntax elements elementstoto obtain integer values of the syntax elements; and obtain integer values of the syntax elements; and
a reconstructor a reconstructor configured configured toto reconstruct reconstruct the the video videobased basedononthetheinteger integervalues valuesofof the syntax the syntax elements using aa quantization elements using quantization parameter, parameter, whereinthe wherein theentropy entropydecoder decoderis is configured configured to to distinguish distinguish between between 126 126 probability probability
states and states toinitialize and to initialize the the probability probabilitystates statesassociated associatedwith with thethe different different contexts contexts
according to according to aa linear linear equation equation of of the thequantization quantizationparameter, parameter, wherein wherein the the entropy entropy decoder decoder
is configured is to, for configured to, for each of the each of the different different contexts, contexts, derive derive a slope and a slope and ananoffset offset of of the the linear equation linear fromfirst equation from first and andsecond secondfour fourbitbitparts partsofofa arespective respective8 bit 8 bitinitialization initialization value. value.
In an In an embodiment, theentropy embodiment, the entropydecoder decoder is is configured configured to to derive derive thenumber the number of bins of bins of of thethe
binarizations from binarizations fromthe thedata datastream stream using using binary binary arithmetic arithmetic decoding decoding or binary or binary PIPE PIPE decoding. decoding.
In an In an embodiment, theentropy embodiment, the entropydecoder decoder is is configured configured to to perform perform thethe context context selectionforfor selection
a bin a bin currently currently to tobe bederived deriveddepending depending on one or on one or more moreofof a bin position of the bin currently to be derived within the binarization to which the a bin position of the bin currently to be derived within the binarization to which the
bin currently bin currentlytotobebederived derived belongs, belongs,
a syntax a element type syntax element type of of aa syntax syntax element elementthetheinteger integer value value of of which whichisis obtained obtained by by debinarizingthethe debinarizing binarization binarization to which to which thecurrently the bin bin currently to be derived to be derived belongs, belongs, and and 89
one or one or more morebins binspreviously previouslyderived derivedfrom fromthethedata datastream, stream,ororthe theinteger integervalue valueofofaa syntax element syntax elementpreviously previouslydebinarized. debinarized.
In an In an embodiment, embodiment,thethe entropy entropy decoder decoder is configured is configured to perform to perform the probability the probability state state update by, update by,for fora abin bincurrently currentlyderived, derived, transitioning transitioning from from a current a current probability probability statestate
associated with associated with the the context context selected selected for for the the bin bin currently currently derived derived within withinthe theprobability probability states, totoaanew states, new probability probability state stateamong the 126 among the 126probability probabilitystates states depending dependingononthethebin bin 2024201207
currently derived. currently derived.
In an In embodiment, an embodiment, thethe entropy entropy decoder decoder is configured is configured to binary to binary arithmetic arithmetic decode decode a bina bin currently to currently to bebederived derived by quantizing by quantizing a current a current probability probability intervalinterval width width value value representing aa current representing currentprobability probabilityinterval intervaltotoobtain obtaina probability a probability intervalindex interval index and and
performingananinterval performing intervalsubdivision subdivisionbybyindexing indexing a table a table entry entry among among tabletable entries entries using using
the probability the probability interval interval index indexand anda probability a probability state state index index depending depending on a current on a current
probability state associated with the context selected for the bin currently to be derived, probability state associated with the context selected for the bin currently to be derived,
to obtain to obtainaasub-division sub-divisionof of thethe current current probability probability interval interval intopartial into two two partial intervals. intervals.
In an embodiment, the entropy decoder is configured to use an 8 bit representation for the In an embodiment, the entropy decoder is configured to use an 8 bit representation for the
currentprobability current probability interval interval width width valuevalue and and to to grab-out grab-out 2 orsignificant 2 or 3 most 3 most significant bits of thebits of the
8 bit 8 bit representation representation inin quantizing quantizing the the current current probability probability interval interval width value. width value.
In an In an embodiment, embodiment,thethe entropy entropy decoder decoder is configured is configured to select to select amongamong the twothe two partial partial
intervals based on an offset state value from an interior of the current probability interval, intervals based on an offset state value from an interior of the current probability interval,
updatethe update theprobability probability interval interval width width value value and an and an state offset offsetvalue, stateand value, inferand inferof a value of a value
the bin the bin currently currentlytotobe be derived, derived, using using the selected the selected partial partial interval interval and perform and perform a a renormalization renormalization of the of the updated updated probability probability intervalinterval width width value andvalue and the the offset stateoffset value state value
includinga acontinuation including continuation of reading of reading bits bits from from thestream. the data data stream.
In an In an embodiment, embodiment, thethe entropy entropy decoder decoder is configured is configured to initialize to initialize thethe probability probability states states
associated with the different contexts at beginnings of slices of the video. associated with the different contexts at beginnings of slices of the video.
In an In an embodiment, embodiment,the the entropy entropy decoder decoder is configured is configured to individually to individually determine determine the the quantization parameter for each slice of the video. quantization parameter for each slice of the video.
In an In an embodiment, embodiment, thethe entropy entropy decoder decoder is configured is configured to initialize to initialize thethe probability probability states states
associated with the different contexts at beginnings of slices of the video by reading the associated with the different contexts at beginnings of slices of the video by reading the
quantization parameter quantization parameterforfora current a current slice slice from from the the datadata stream, stream, and initializing and initializing the the
probabilitystates probability statesassociated associated withwith the different the different contexts contexts according according to equation to a linear a linear of equation of 90
the quantization the quantizationparameter parameter for for the the current current slice,slice, wherein wherein the entropy the entropy decoder decoder is is configured configured to,to, foreach for each of the of the slices, slices, derive derive the slope the slope and and the the offset offset of the equation of the linear linear equation fromthe from thefirst firstand andsecond second fourfour bit bit parts parts of the of the same same respective respective 8 bit initialization 8 bit initialization value. value.
In an In an embodiment, embodiment, thethe reconstructor reconstructor is is configured configured to,to, inin reconstructingthethevideo reconstructing video based based
on the on the integer integer values valuesofofthethesyntax syntax elements, elements, dequantize dequantize transform transform coefficient coefficient levels levels
comprisedbybythethesyntax comprised syntax elements elements using using the quantization the quantization parameter, parameter, performing performing a re- a re- 2024201207
transformation onto transformation ontothethedequantized dequantized transform transform coefficient coefficient levelslevels SO as so as to aobtain a to obtain
prediction residual, prediction residual, perform performa aspatial spatialand/or and/or temporal temporal prediction prediction SO asso to as to obtain obtain a a prediction signal, prediction signal, and and combine theprediction combine the predictionresidual residualand andthe theprediction predictionsignal signalSOsoasastoto reconstruct the video. reconstruct the video.
In an In embodiment,thetheentropy an embodiment, entropy decoder decoder is configured is configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation from the first and second four bit contexts, the slope and the offset of the linear equation from the first and second four bit
parts of parts of the therespective respective8 8bitbitinitialization initializationvalue value independently independently fromother. from each each other.
In an In embodiment,thetheentropy an embodiment, entropy decoder decoder is is configured configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation from the first and second four bit contexts, the slope and the offset of the linear equation from the first and second four bit
parts ofofthe parts therespective respective 8 bit 8 bit initialization initialization valuevalue by look-up by table table look-up or using or using an arithmetic an arithmetic
operation. operation.
In an In embodiment,thetheentropy an embodiment, entropy decoder decoder is is configured configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation by multiplying and offsetting the contexts, the slope and the offset of the linear equation by multiplying and offsetting the
first four first four bit bit part part by by aa first first pair pair of of parameters, and parameters, and thethe offset offset by multiplying by multiplying and offsetting and offsetting
the second the secondfour four bitbit part part by by a second a second pair pair of parameters. of parameters.
Anotherspecific Another specificembodimnet embodimnet provides provides an encoder an encoder for encoding for encoding a video a video into into a data a data stream by stream bycoding codingsyntax syntaxelements elements into into thethe data data stream stream using using binarizations binarizations of of thethe syntax syntax
elements, comprising: elements, comprising: a constructor a constructor configured configuredtotorepresent representthethevideo video by by setting setting integer integer values values of of the the syntax elements syntax elementsin in dependence dependenceonona aquantization quantizationparameter, parameter, a symbolizer a configuredtotobinarize symbolizer configured binarizethe the integer integer values values of of syntax syntax elements elementstotoobtain obtain binarizations of the syntax elements; and binarizations of the syntax elements; and
an entropy an entropy encoder encoderconfigured configuredtotoencode encode a number a number of bins of bins of of thethe binarizations binarizations into into
the data the data stream streamusing usingbinary binaryentropy entropy encoding encoding by selecting by selecting a context a context amongamong different different
contexts and updating probability states associated with the different contexts, dependent contexts and updating probability states associated with the different contexts, dependent
on previously on previously encoded encodedportions portionsofofthe the data data stream, stream,
91
whereinthe wherein theentropy entropyencoder encoderis is configured configured to to distinguish distinguish between between 126 126 probability probability
states and states and totoinitialize initialize the the probability probabilitystates statesassociated associatedwith with thethe different different contexts contexts
according to according to aa linear linear equation equation of of the thequantization quantizationparameter, parameter, wherein wherein the the entropy entropy encoder encoder
is configured is to, for each configured to, of the each of the different different contexts, derive aa slope slope and and ananoffset offset ofof the the linear equation linear fromfirst equation from first and andsecond secondfour fourbitbitparts partsofofa arespective respective8 bit 8 bitinitialization initialization value. value. 2024201207
In an embodiment, In theentropy embodiment, the entropyencoder encoder is is configured configured to to encode encode thethe number number of bins of bins of the of the
binarizations into binarizations into the the data datastream streamusing using binary binary arithmetic arithmetic encoding encoding or binary or binary PIPE PIPE encoding. encoding.
In an embodiment, In theentropy embodiment, the entropyencoder encoder is is configured configured to to perform perform thethe context context selectionforfor selection
a bin a bin currently currently to tobe beencoded encoded depending onone depending on oneorormore moreofof a bin a bin position position of of the the bin bin currently currently to to be be encoded withinthe encoded within thebinarization binarizationtotowhich which the bin currently to be encoded belongs, the bin currently to be encoded belongs,
a syntax a syntaxelement element typetype the integer the integer value value of iswhich of which is binarized binarized to the binarization to the binarization to to whichthe which the bin bin currently currently to to be be encoded belongs, and encoded belongs, and one or one or more morebins binspreviously previouslyencoded encoded intothethedata into datastream, stream,ororthe theinteger integervalue valueofofaa syntax element syntax elementthe the binarization binarization of of which has previously which has previouslybeen beenencoded. encoded.
In an In an embodiment, embodiment,thethe entropy entropy decoder decoder is configured is configured to perform to perform the probability the probability state state update by, update by,for fora abinbin currently currently encoded, encoded, transition transition from from a current a current probability probability state state associated with associated withthe thecontext context selected selected for for the the bin currently bin currently encoded encoded within within the 126 the 126
probability states, probability states,totoa anew new probability probability state stateamong the 126 among the probability states 126 probability states depending depending
onthe on thebin bincurrently currently derived. derived.
In an In an embodiment, embodiment, thethe entropy entropy encoder encoder is configured is configured to binary to binary arithmetic arithmetic encode encode a bina bin currently to currently to bebeencoded encoded by quantizing by quantizing a current a current probability probability intervalinterval width width value value representing aa current representing currentprobability probabilityinterval intervaltotoobtain obtaina probability a probability intervalindex interval index and and
performingaainterval performing interval subdivision subdivision by byindexing indexinga atable table entry entry among amongtable tableentries entriesusing usingthe the probability interval probability interval index index and anda aprobability probabilitystate stateindex index which which depends depends on a current on a current
probability state associated with the context selected for the bin currently to be encoded, probability state associated with the context selected for the bin currently to be encoded,
to obtain to obtainaasub-division sub-divisionof of thethe current current probability probability interval interval intopartial into two two partial intervals. intervals.
In an embodiment, the entropy encoder is configured to use an 8 bit representation for the In an embodiment, the entropy encoder is configured to use an 8 bit representation for the
currentprobability current probability interval interval width width valuevalue and and to to grab-out grab-out 2 orsignificant 2 or 3 most 3 most significant bits of the bits of the
8 bit 8 bit representation representation inin quantizing quantizing the the current current probability probability interval interval width value. width value.
92
In an In an embodiment, embodiment,thethe entropy entropy encoder encoder is configured is configured to select to select amongamong the twothe two partial partial
intervals based intervals onthe based on theinteger integervalue value of of thethe bin bin currently currently to encoded, to be be encoded, updateupdate the the probabilityinterval probability intervalwidth width value value and and a a probability probability interval interval offset offset using using the the selected selected partial partial
interval and interval performa arenormalization and perform renormalizationof of thethe probability probability intervalwidth interval width value value and and the the probability interval offset including a continuation of writing bits to the data stream. probability interval offset including a continuation of writing bits to the data stream.
In an In an embodiment, embodiment, thethe entropy entropy decoder decoder is configured is configured to initialize to initialize thethe probability probability states states 2024201207
associated with the different contexts at beginnings of slices of the video. associated with the different contexts at beginnings of slices of the video.
In an In an embodiment, embodiment, thethe entropy entropy encoder encoder is configured is configured to initialize to initialize thethe probability probability states states
associated with the different contexts at beginnings of slices of the video. associated with the different contexts at beginnings of slices of the video.
In an In an embodiment, embodiment, thethe entropy entropy encoder encoder is configured is configured to initialize to initialize thethe probability probability states states
associated with the different contexts at beginnings of slices of the video by individually associated with the different contexts at beginnings of slices of the video by individually
setting the setting the quantization quantization parameter parameter for afor a current current slice slice from from the thestream, data data stream, and initializing and initializing
the probability the probabilitystates statesassociated associated withwith the different the different contexts contexts according according to aequation to a linear linear equation of the of the quantization quantizationparameter parameter forfor thethe current current slice, slice, wherein wherein the entropy the entropy encoderencoder is is configured to, for each of the slices, derive the slope and the offset of the linear equation configured to, for each of the slices, derive the slope and the offset of the linear equation
fromthe from thefirst firstand andsecond second fourfour bit bit parts parts of the of the same same respective respective 8 bit initialization 8 bit initialization value. value.
In an In an embodiment, embodiment, thethe constructor constructor is is configured configured to,to, in in settingthe setting theinteger integervalues valuesofofthe the syntax elements, perform a spatial and/or temporal prediction so as to obtain a prediction syntax elements, perform a spatial and/or temporal prediction SO as to obtain a prediction
signal, derive signal, derive aa prediction prediction residual residual from the prediction from the prediction signal signal and and the the video, video, perform perform aa transformation onto transformation ontothe theprediction predictionresidual residualSOsoasastotoobtain obtaintransform transformcoefficient coefficientlevels, levels, and quantize and quantizethe thetransform transformcoefficient coefficientlevels levelsusing usingthe thequantization quantizationparameter parameter SO so as as to to
obtain quantized obtain transformcoefficient quantized transform coefficient levels levels comprised comprised by bythe the syntax syntax elements. elements.
In an In embodiment,thetheentropy an embodiment, entropy encoder encoder is is configured configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation from the first and second four bit contexts, the slope and the offset of the linear equation from the first and second four bit
parts of the respective 8 bit initialization value independently from each other. parts of the respective 8 bit initialization value independently from each other.
In an In embodiment,thetheentropy an embodiment, entropy encoder encoder is is configured configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation from the first and second four bit contexts, the slope and the offset of the linear equation from the first and second four bit
parts ofofthe parts therespective respective 8 bit 8 bit initialization initialization valuevalue by look-up by table table look-up or using or using an arithmetic an arithmetic
operation. operation.
In an In embodiment,thetheentropy an embodiment, entropy encoder encoder is configured is configured to derive, to derive, forfor each each of of thethe different different
contexts, the slope and the offset of the linear equation by multiplying and offsetting the contexts, the slope and the offset of the linear equation by multiplying and offsetting the
93
first four bit part by a first pair of parameters, and the offset by multiplying and offsetting first four bit part by a first pair of parameters, and the offset by multiplying and offsetting
the second the secondfour four bitbit part part by by a second a second pair pair of parameters. of parameters.
Anotherspecific Another specific embodiment embodiment provides provides a method a method for for decoding decoding a video a video fromfrom a data a data stream stream
into which into whichsyntax syntax elements elements are coded are coded using binarizations using binarizations of theelements, of the syntax syntax elements, comprising: comprising:
deriving aa number deriving numberofofbins binsofofthethebinarizations binarizationsfrom from thethe data data stream stream using using binary binary
entropy decoding entropy decoding bybyselecting selecting a acontext contextamong among differentcontexts different contextsandand updating updating 2024201207
probability states associated with the different contexts, dependent on previously decoded probability states associated with the different contexts, dependent on previously decoded
portionsofofthe portions thedata datastream; stream; debinarizingthethe debinarizing binarizations binarizations of syntax of the the syntax elements elements to integer to obtain obtain values integer of values the of the syntax elements; syntax elements; reconstructing the reconstructing the video based on video based onthe the integer integer values values of of the the syntax elementsusing syntax elements usingaa quantization parameter, quantization parameter, whereinthe wherein thederivation derivationofofthethenumber number of bins of bins of binarizations of the the binarizations distinguishes distinguishes
between126 between 126 probability probability states states andand the the method method comprises comprises initializing initializing the probability the probability
states associated states associated with withthe thedifferent differentcontexts contexts according according to a to a linear linear equation equation of the of the quantization parameter, quantization parameter,and, and,for for each eachofofthe thedifferent different contexts, contexts, deriving deriving aaslope slopeand andanan offset of the linear offset linear equation fromfirst equation from first and and second secondfour fourbitbitparts partsofofa arespective respective8 8bitbit initialization value. initialization value.
Anotherspecific Another specific embodiment embodiment provides provides a method a method for encoding for encoding a video a video into into a data a data stream stream
by coding by codingsyntax syntax elements elements into into the stream the data data stream using binarizations using binarizations of the of the syntax syntax elements, comprising: elements, comprising: representing the representing the video by setting video by setting integer integer values values of the syntax of the syntax elements elements inin dependenceonona aquantization dependence quantizationparameter, parameter, binarizing the binarizing the integer integer values valuesofofsyntax syntax elements elements to obtain to obtain binarizations binarizations of of the the syntax elements; syntax elements; encodinga anumber encoding numberof of bins bins of of thethe binarizations binarizations into into thethe data data stream stream using using binary binary
entropy encoding entropy encoding bybyselecting selecting a acontext contextamong among differentcontexts different contextsandand updating updating probability states associated with the different contexts, dependent on previously encoded probability states associated with the different contexts, dependent on previously encoded
portionsofofthe portions thedata datastream; stream; whereinthe wherein therepresentation representationof of thethe video video distinguishes distinguishes between between 126 probability 126 probability
states and states andthe themethod method further further comprises comprises initializing initializing the probability the probability states associated states associated with with the different the different contexts contexts according according toto aa linear linear equation of the equation of the quantization parameter, and, quantization parameter, and, for each for of the each of the different different contexts, contexts, deriving a slope deriving a slope and and ananoffset offset of of the the linear linear equation equation from first and second four bit parts of a respective 8 bit initialization value. from first and second four bit parts of a respective 8 bit initialization value.
94
Dependingononcertain Depending certainimplementation implementation requirements, requirements, embodiments embodiments ofinvention of the the invention can can be be implementedininhardware implemented hardware or or in in software. software. TheThe implementation implementation can can be be performed performed using ausing a
digital storage digital storage medium, for example medium, for examplea afloppy floppydisk, disk,aaDVD, DVD, a Blue-Ray, a Blue-Ray, a CD, a CD, a ROM, a ROM, a a PROM,ananEPROM, PROM, EPROM, an EEPROM an EEPROM or a FLASH or a FLASH memory, memory, having electronically having electronically readable readable control signals control signals stored stored thereon, thereon, which whichcooperate cooperate(or(orarearecapable capable of of cooperating) cooperating) withwith a a programmable programmable computer computer system system suchsuch that that the the respective respective method method is performed. is performed. Therefore, Therefore,
the digital the digitalstorage storagemedium maybebecomputer medium may computer readable. readable. 2024201207
Someembodiments Some embodiments according according to invention to the the invention comprise comprise a dataa carrier data carrier havinghaving electronically readable electronically readable control controlsignals, signals,which which are capable are capable of cooperating of cooperating with with aa programmablecomputer programmable computersystem, system,such suchthat thatone oneof ofthethemethods methods described described herein herein is is performed. performed.
Generally, embodiments Generally, embodiments of the of the present present invention invention canimplemented can be be implemented as a computer as a computer
programproduct program productwith witha aprogram program code, code, the the program program code code beingbeing operative operative for performing for performing
one of one of the the methods methods when whenthe thecomputer computer program program product product runs runs on on a computer. a computer. The The programcode program codemay mayforfor example example be stored be stored on on a machine a machine readable readable carrier. carrier.
Other embodiments Other embodiments comprise comprise the the computer computer program program for performing for performing one methods one of the of the methods described herein, stored on a machine readable carrier. described herein, stored on a machine readable carrier.
In other In other words, an embodiment words, an embodimentofofthe theinventive inventivemethod methodis,is,therefore, therefore, aa computer computer programhaving program having a program a program code code for performing for performing one ofone the of the methods methods describeddescribed herein, herein, whenthe when thecomputer computerprogram program runs runs on on a computer. a computer.
A further A further embodiment embodiment of of thethe inventive inventive methods methods is, is, therefore, therefore, a data a data carrier(or(ora adigital carrier digital storage medium, storage medium, or or a computer-readable a computer-readable medium) medium) comprising, comprising, recorded recorded thereon, thereon, the the computerprogram computer programforfor performing performing one one of the of the methods methods described described herein. herein. The data The data carrier, carrier,
the digital the digital storage storage medium medium oror therecorded the recorded medium medium are typically are typically tangible tangible and/or and/or non- non– transitionary. transitionary.
A further A further embodiment embodiment of of thethe inventive inventive method method is, is, therefore,a adata therefore, datastream streamorora asequence sequence of signals of signals representing representingthe thecomputer computer program for performing program for performing one one ofofthe themethods methods described herein. described herein.The The data data stream stream or or the the sequence sequence of of signals signals may for example may for example be be configured toto be configured betransferred transferred via via aa data data communication communication connection, connection, for for example example via via the the Internet. Internet.
95
A further A further embodiment comprises aaprocessing embodiment comprises processing means, means, for for example example aacomputer, computer,oror aa programmable programmable logic logic device, device, configured configured toadapted to or or adapted to perform to perform one of one of the methods the methods
described herein. described herein.
A further A further embodiment comprisesa acomputer embodiment comprises computerhaving havinginstalled installed thereon thereon the the computer computer programfor program forperforming performingone oneofofthe themethods methods described described herein. herein. 2024201207
A further A further embodiment embodiment according according to invention to the the invention comprises comprises an apparatus an apparatus or a or a system system configuredtoto transfer configured transfer (for (for example, electronically or example, electronically or optically) optically) aa computer programforfor computer program
performingone performing oneof ofthethe methods methods described described herein herein to a to a receiver. receiver. The receiver The receiver may, for may, for
example,bebeaacomputer, example, computer,a amobile mobile device, device, a memory a memory device device or the or the like. like. TheThe apparatus apparatus or or systemmay, system may,for forexample, example,comprise comprise a fileserver a file serverfor fortransferring transferring the the computer programtoto computer program
the receiver. the receiver.
In some In embodiments, some embodiments, a programmable a programmable logic logic device device (for example (for example a field a field programmable programmable
gate array) gate array) may maybebeused used to to perform perform somesome orofallthe or all of functionalities the functionalities of methods of the the methods described herein. described herein. In In some embodiments, some embodiments, a fieldprogrammable a field programmable gate gate array array may cooperate may cooperate
with aa microprocessor with microprocessor in in order order to to perform perform one oneofofthethemethods methods described described herein. herein. Generally, the Generally, the methods arepreferably methods are preferably performed performedbybyany any hardware hardware apparatus. apparatus.
Theabove The abovedescribed describedembodiments embodiments are are merely merely illustrative illustrative forfor theprinciples the principlesofofthe thepresent present invention. It invention. It is isunderstood understood that that modifications modifications and and variations variations of of the the arrangements andthe arrangements and the details described details herein will described herein will bebeapparent apparenttotoothers others skilledin inthethe skilled art.ItItisisthe art. theintent, intent, therefore, to therefore, to be be limited limited only only by by the the scope scope of of the the impending patentclaims impending patent claimsand andnot notbybythethe specific details specific details presented by way presented by wayof ofdescription description andand explanation explanation of embodiments of the the embodiments herein. herein.
In the In the claims claims which whichfollow follow andand in the in the preceding preceding description description of invention, of the the invention, exceptexcept
wherethe where thecontext contextrequires requiresotherwise otherwisedue due to to express express language language or necessary or necessary implication, implication,
the word the word"comprise" “comprise”or or variations variations such such as “comprises” as "comprises" or “comprising” or "comprising" is usedis in used an in an inclusive sense, i.e. to specify the presence of the stated features but not to preclude the inclusive sense, i.e. to specify the presence of the stated features but not to preclude the
presenceororaddition presence addition of of further further features features in various in various embodiments embodiments of the invention. of the invention.
96
Claims (31)
1. 1. A decoder A decoderfor fordecoding decoding a video a video from from a data a data stream stream into into which which syntax syntax elements elements
are coded are using binarizations coded using binarizations of of the the syntax syntax elements, elements, comprising: comprising:
an entropy an entropydecoder decoderconfigured configured to to derive derive a number a number of of of bins bins theofbinarizations the binarizations from the from the data data stream stream using using binary binary entropy entropy decoding decoding by by selecting selecting aa context context among among 2024201207
different contexts and updating probability states associated with the different contexts, different contexts and updating probability states associated with the different contexts,
dependentononpreviously dependent previouslydecoded decoded portions portions ofof thedata the datastream; stream;
a desymbolizer a configuredtotodebinarize desymbolizer configured debinarizethethebinarizations binarizationsofofthe thesyntax syntaxelements elements to obtain integer values of the syntax elements; and to obtain integer values of the syntax elements; and
a reconstructor a reconstructor configured to reconstruct configured to reconstruct the the video based on video based onthe the integer integer values values of of the syntax the syntax elements using aa quantization elements using quantization parameter, parameter,
whereinthe wherein theentropy entropy decoder decoder is configured is configured to initialize to initialize the probability the probability states states
associated with the different contexts at beginnings of slices of the video by reading the associated with the different contexts at beginnings of slices of the video by reading the
quantization parameter quantization parameterforfora current a current slice slice from from the the data data streamstream and initializing and initializing the the probabilitystates probability statesassociated associated withwith the different the different contexts contexts according according to equation to a linear a linear of equation of the quantization the quantizationparameter parameter for current for the the current slice,slice,
wherein the entropy decoder is configured to, for each of the different contexts for wherein the entropy decoder is configured to, for each of the different contexts for
eachofofthe each theslices, slices,derive derivea slope a slope andand an offset an offset of linear of the the linear equation equation fromandfirst from first and second second
halvesofofa arespective halves respective initialization initialization value, value, and and
whereinthe wherein theslope slopeandand thethe offset offset for for the the linear linear equations equations of quantization of the the quantization parameterdo parameter donot notvary varybetween betweenslices. slices.
2. 2. Thedecoder The decoderaccording according to to claim claim 1, 1, wherein wherein the the entropy entropy decoder decoder is configured is configured to to derive the derive the number number of bins of bins of binarizations of the the binarizations fromdata from the thestream data using streambinary using binary arithmetic decoding arithmetic or binary decoding or binary PIPE PIPEdecoding. decoding.
3. 3. Thedecoder The decoderaccording according to to claim claim 1, 1, wherein wherein the the entropy entropy decoder decoder is configured is configured to to performthe perform the context contextselection selection for for aa bin bin currently currently to tobe bederived derived depending on one depending on oneorormore more of: of:
97
a bin a bin position position of of the the bin bin currently currently to to be be derived derived within within the the binarization binarization to to which which
the bin currently to be derived belongs, the bin currently to be derived belongs,
a syntax a elementtype syntax element typeofofaasyntax syntaxelement elementthetheinteger integervalue valueofofwhich whichis is obtained obtained
by debinarizing the binarization to which the bin currently to be derived belongs, and by debinarizing the binarization to which the bin currently to be derived belongs, and
one or one or more morebins binspreviously previouslyderived derivedfrom from thedata the datastream, stream,ororthe theinteger integervalue valueofof 2024201207
a syntax a syntax element previouslydebinarized. element previously debinarized.
4. 4. Thedecoder The decoderaccording according to to claim claim 1, 1, wherein wherein the the entropy entropy decoder decoder is configured is configured to to perform the probability state update by, for a bin currently derived, transitioning from a perform the probability state update by, for a bin currently derived, transitioning from a
currentprobability current probability state state associated associated withwith the context the context selected selected for the for bin the bin currently currently derived derived
within the within the probability probability sates, sates, to to aa new probability state new probability state among among the the126 126probability probabilitysates sates dependingononthe depending thebin bincurrently currently derived. derived.
5. 5. Thedecoder The decoderaccording according to to claim claim 1, 1, wherein wherein the the entropy entropy decoder decoder is configured is configured to to binaryarithmetic binary arithmetic decode decode a bina currently bin currently to be to be derived derived by quantizing by quantizing a current probability a current probability
interval width interval value representing width value representinga acurrent currentprobability probabilityinterval intervaltotoobtain obtaina aprobability probability interval index interval and performing index and performingananinterval intervalsubdivision subdivisionby by indexing indexing a table a table entry entry among among
tables entries using the probability interval index and a probability state index depending tables entries using the probability interval index and a probability state index depending
on aacurrent on currentprobability probability state state associated associated with with the context the context selectedselected for currently for the bin the bin currently to to be derived, be derived, to to obtain obtain aa sub-division sub-divisionofofthe thecurrent currentprobability probabilityinterval interval into into two twopartial partial intervals. intervals.
6. 6. Thedecoder The decoderaccording according to to claim claim 5, 5, wherein wherein the the entropy entropy decoder decoder is configured is configured to to use anan8 8bit use bitrepresentation representationforfor thethe current current probability probability interval interval width width value value and and to grab-out to grab-out
2 oror 3 3most 2 most significant significant bitsbits of the of the 8 bit8 representation bit representation in quantizing in quantizing the current the current
probability interval width value. probability interval width value.
7. 7. Thedecoder The decoderaccording according to to claim claim 5, 5, wherein wherein the the entropy entropy decoder decoder is configured is configured to to select among select thetwo among the twopartial partialintervals intervals based basedononananoffset offsetstate state value value from fromananinterior interiorofof the current the currentprobability probability interval, interval, update update the probability the probability intervalinterval width width value andvalue and an offset an offset
state value, state value,and andinfer infera value a value of the of the bin bin currently currently to be to be derived, derived, using using the the selected selected partial partial
interval and interval performa arenormalization and perform renormalizationof of thethe updated updated probability probability interval interval width width value value
and the offset state value including a continuation of reading bits from the data stream. and the offset state value including a continuation of reading bits from the data stream.
98
8. 8. Thedecoder The decoderaccording according to to claim claim 1, 1, wherein wherein the the entropy entropy decoder decoder is configured is configured to to initialize the initialize the probability probability states statesassociated associated with with the the different different contexts contexts at at beginnings of beginnings of
slices of slices of the the video. video.
9. 9. Thedecoder The decoderaccording according to to claim claim 8, 8, wherein wherein the the entropy entropy decoder decoder is configured is configured to to individuallydetermine individually determine the the quantization quantization parameter parameter for eachfor each slice of slice of the video. the video. 2024201207
10. 10. Thedecoder The decoderaccording accordingto to claim claim 1, 1, wherein wherein the the entropy entropy decoder decoder is configured is configured to to initialize the initialize theprobability probability states statesassociated associated with with the the different different contexts contexts atat beginnings of beginnings of
slices of slices of the thevideo videobyby reading reading the the quantization quantization parameter parameter for a slice for a current current fromslice from the data the data
stream, and stream, andinitializing initializing the theprobability probabilitystates statesassociated associatedwith with the the different different contexts contexts
according to a linear equation of the quantization parameter for the current slice, wherein according to a linear equation of the quantization parameter for the current slice, wherein
the entropy the entropydecoder decoder is configured is configured to,each to, for for of each the of the slices, slices, derive derive theand the slope slope and the offset the offset
of the linear equation from the first and second four bit parts of the same respective 8 bit of the linear equation from the first and second four bit parts of the same respective 8 bit
initialization value. initialization value.
11. 11. Thedecoder The decoderaccording according to to claim claim 1, 1, wherein wherein the the reconstructor reconstructor is configured is configured to, to, in in reconstructing the reconstructing the video video based basedononthe theinteger integervalues valuesofofthe thesyntax syntaxelements, elements, dequantize dequantize
transform coefficient transform coefficient levels levels comprised comprisedby by thethe syntax syntax elements elements usingusing the quantization the quantization
parameter, performing parameter, performinga re-transformation a re-transformation ontoonto the the dequantized dequantized transform transform coefficient coefficient
levels so as to obtain a prediction residual, perform a spatial and/or temporal prediction levels SO as to obtain a prediction residual, perform a spatial and/or temporal prediction
so as to obtain a prediction signal, and combine the prediction residual and the prediction SO as to obtain a prediction signal, and combine the prediction residual and the prediction
signal SOsoasastotoreconstruct signal reconstructthethe video. video.
12. 12. Thedecoder The decoderaccording according to to claim claim 1, 1, wherein wherein the the entropy entropy decoder decoder is configured is configured to to derive,for derive, foreach eachof of thethe different different contexts, contexts, the slope the slope and theand theofoffset offset of the the linear linear equation equation
fromthe from thefirst first and andsecond secondfourfour bit bit parts parts of respective of the the respective8 bit8initialization bit initialization valuevalue
independentlyfrom independently fromeach eachother. other.
13. 13. Thedecoder The decoderaccording according to to claim claim 1, 1, wherein wherein the the entropy entropy decoder decoder is configured is configured to to derive,for derive, foreach eachof of thethe different different contexts, contexts, the slope the slope and theand theofoffset offset of the the linear linear equation equation
fromthe from thefirst firstand andsecond second fourfour bit parts bit parts of respective of the the respective 8 bit initialization 8 bit initialization value value by tableby table
look-upororusing look-up usingan an arithmetic arithmetic operation. operation.
14. 14. Thedecoder The decoderaccording according to to claim claim 1, 1, wherein wherein the the entropy entropy decoder decoder is configured is configured to to derive,for derive, foreach eachofofthethedifferent different contexts, contexts, the the slope slope andoffset and the the offset of theof the linear linear equation equation by by multiplying and multiplying andoffsetting offsettingthe thefirst first four four bit bit part part by by aa first first pair pair of of parameters, and the parameters, and the
99
offset by offset by multiplying multiplyingandand offsetting offsetting the the second second four four bit by bit part part by a pair a second second of pair of parameters. parameters.
15. 15. Anencoder An encoderforforencoding encoding a video a video intointo a data a data stream stream by coding by coding syntax syntax elements elements
into the into the data datastream stream using using binarizations binarizations ofsyntax of the the syntax elements, elements, comprising: comprising:
a constructor a constructor configured configuredtotorepresent representthe thevideo videobyby settinginteger setting integervalues values of of thethe 2024201207
syntax elements syntax elementsin in dependence dependenceonona aquantization quantizationparameter; parameter;
a symbolizer a symbolizerconfigured configured to to binarize binarize the the integer integer values values of syntax of syntax elements to elements to obtain binarizations of the syntax elements; and obtain binarizations of the syntax elements; and
an entropy an entropyencoder encoderconfigured configured to to encode encode a number a number of of of bins bins theofbinarizations the binarizations into the into the data data stream stream using using binary binary entropy entropy encoding byselecting encoding by selecting aa context among different among different
contexts and updating probability states associated with the different contexts, dependent contexts and updating probability states associated with the different contexts, dependent
on previously on previously encoded encodedportions portionsofofthe the data data stream, stream,
whereinthe wherein theentropy entropy encoder encoder is configured is configured to initialize to initialize the probability the probability states states
associated with associated with the the different different contexts contexts at at beginnings of slices beginnings of slices of of the thevideo video in independence dependence
on the on the quantization quantizationparameter parameterforfora acurrent currentslice sliceandand initializingthe initializing theprobability probabilitystates states associated with associated with the the different different contexts according toto aa linear contexts according linear equation equation of of the the quantization quantization parameter for the current slice, parameter for the current slice,
wherein the entropy encoder is configured to, for each of the different contexts for wherein the entropy encoder is configured to, for each of the different contexts for
eachofofthe each theslices, slices,derive derivea slope a slope andand an offset an offset of linear of the the linear equation equation fromandfirst from first and second second
halvesofofa arespective halves respective initialization initialization value, value, and and
whereinthe wherein theslope slopeandand thethe offset offset for for the the linear linear equations equations of quantization of the the quantization parameterdo parameter donot notvary varybetween betweenslices. slices.
16. 16. Theencoder The encoderaccording according toto claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to
encodethe encode thenumber number of bins of bins of theofbinarizations the binarizations intodata into the thestream data using stream using binary binary
arithmetic encoding arithmetic or binary encoding or binary PIPE PIPEencoding. encoding.
17. 17. Theencoder The encoderaccording accordingtoto claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to
performthe perform the context context selection selection for for aa bin bin currently currentlytotobe beencoded encoded depending onone depending on oneorormore more of: of:
100
a bin a bin position position of of the the bin bin currently currentlyto tobe beencoded encoded within the binarization within the binarization to to which which
the bin the bin currently currently to tobe beencoded encoded belongs, belongs,
a syntax element type the integer value of which is binarized to the binarization to a syntax element type the integer value of which is binarized to the binarization to
whichthe which the bin bin currently currently to to be be encoded belongs, and encoded belongs, and
one or more bins previously encoded into the data stream, or the integer value of a one or more bins previously encoded into the data stream, or the integer value of a 2024201207
syntax element syntax elementthe the binarization binarization of which has previously which has previouslybeen beenencoded. encoded.
18. 18. Theencoder The encoderaccording accordingtoto claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to performthe perform theprobability probabilitystate state update updateby, by,for fora abin bincurrently currentlyencoded, encoded, transitionfrom transition from a a current probability current probability state state associated associatedwith withthethe context context selected selected for bin for the the currently bin currently encodedwithin encoded withinthethe126126 probability probability sates, sates, to atonew a new probability probability state state amongamong the 126the 126
probability sates depending on the bin currently derived. probability sates depending on the bin currently derived.
19. 19. Theencoder The encoderaccording accordingtoto claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to
binary arithmetic binary arithmetic encode encode aa bin bin currently currently to to be be encoded encodedbybyquantizing quantizinga current a current probability interval probability interval width valuerepresenting width value representinga acurrent currentprobability probabilityinterval intervaltotoobtain obtaina a probabilityinterval probability intervalindex index andand performing performing a interval a interval subdivision subdivision byaindexing by indexing a table entry table entry
amongtables among tablesentries entriesusing usingthetheprobability probabilityinterval intervalindex indexandand a probability a probability stateindex state index whichdepends which dependsonon a currentprobability a current probabilitystate stateassociated associatedwith withthe thecontext contextselected selectedforforthe the bin currently bin currently to to be encoded,totoobtain be encoded, obtaina asub-division sub-divisionofofthe thecurrent currentprobability probabilityinterval interval into two partial intervals. into two partial intervals.
20. 20. Theencoder The encoderaccording accordingtoto claim claim 19,wherein 19, wherein thethe entropy entropy encoder encoder is configured is configured to to use anan8 8bit use bitrepresentation representationforfor thethe current current probability probability interval interval width width value value and and to grab-out to grab-out
2 oror 3 3most 2 most significant significant bitsbits of the of the 8 bit8 representation bit representation in quantizing in quantizing the current the current
probability interval width value. probability interval width value.
21. 21. Theencoder The encoderaccording accordingtoto claim claim 19,wherein 19, wherein thethe entropy entropy encoder encoder is configured is configured to to select among select among thethe twotwo partial partial intervals intervals basedbased on theon the integer integer value ofvalue of currently the bin the bin currently to be to be encoded,update encoded, updatethetheprobability probabilityinterval intervalwidth width value value and and a probability a probability interval interval offset offset
using the using the selected selectedpartial partialinterval interval and andperform perform a renormalization a renormalization of the ofprobability the probability interval width interval widthvalue valueandand the the probability probability interval interval offsetoffset including including a continuation a continuation of writingof writing
bits to the data stream. bits to the data stream.
101
22. 22. Theencoder The encoderaccording accordingtoto claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to initialize the initialize theprobability probability states statesassociated associated with with the the different different contexts contexts at at beginnings of beginnings of
slices of slices of the the video. video.
23. 23. Theencoder The encoderaccording accordingtoto claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to initialize the initialize theprobability probability states statesassociated associated with with the the different different contexts contexts at at beginnings of beginnings of
slices of the video. slices of the video. 2024201207
24. 24. Theencoder The encoderaccording accordingtoto claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to initialize the initialize theprobability probability states statesassociated associatedwith with the the different different contexts contexts at at beginnings of beginnings of
slices of the video by individually setting the quantization parameter for a current slice slices of the video by individually setting the quantization parameter for a current slice
fromthethedata from data stream, stream, and initializing and initializing the probability the probability states associated states associated with the different with the different
contextsaccording contexts accordingto atolinear a linear equation equation ofquantization of the the quantization parameter parameter for theslice, for the current current slice, wherein the entropy encoder is configured to, for each of the slices, derive the slope and wherein the entropy encoder is configured to, for each of the slices, derive the slope and
the offset the offset of the linear of the linear equation equation from fromthe thefirst first and andsecond second four four bitbit parts parts of of thethe same same
respective8 8bit respective bitinitialization initializationvalue. value.
25. 25. Theencoder The encoderaccording according to to claim claim 15,15, wherein wherein the the constructor constructor is configured is configured to, to, in in setting the setting integer values the integer values ofofthe thesyntax syntaxelements, elements, perform perform a spatial a spatial and/or and/or temporal temporal
prediction SO prediction so asastotoobtain obtaina aprediction prediction signal,derive signal, derive a prediction a prediction residual residual fromfrom the the
prediction signal prediction signal and the video, and the video, perform perform aa transformation transformationontoontothe theprediction predictionresidual residual SO so as to as to obtain obtain transform transformcoefficient coefficient levels, levels, and andquantize quantizethe thetransform transform coefficientlevels coefficient levels using the using the quantization quantization parameter parameterSOsoasastotoobtain obtainquantized quantized transform transform coefficient coefficient levels levels
comprisedbybythe comprised thesyntax syntaxelements. elements.
26. 26. Theencoder The encoderaccording accordingto to claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to derive, for derive, foreach eachof of thethe different different contexts, contexts, the slope the slope and theand theofoffset offset of the the linear linear equation equation
from the from thefirst first and andsecond second four four bit bit parts parts of respective of the the respective 8 bit8initialization bit initialization valuevalue
independentlyfrom independently fromeach eachother. other.
27. 27. Theencoder The encoderaccording accordingtoto claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to derive,for derive, foreach eachof of thethe different different contexts, contexts, the slope the slope and theand theofoffset offset of the the linear linear equation equation
fromthe from thefirst firstand andsecond second fourfour bit parts bit parts of respective of the the respective 8 bit initialization 8 bit initialization value value by tableby table
look-upororusing look-up usingan an arithmetic arithmetic operation. operation.
28. 28. Theencoder The encoderaccording accordingtoto claim claim 15,wherein 15, wherein thethe entropy entropy encoder encoder is configured is configured to to derive, for derive, foreach eachofofthethedifferent different contexts, contexts, the the slope slope andoffset and the the offset of theof the linear linear equation equation by by multiplying and multiplying andoffsetting offsettingthe thefirst first four four bit bit part by by aa first first pair pair of of parameters, and the parameters, and the 102
offset by offset by multiplying multiplyingandand offsetting offsetting the the second second four four bit by bit part part by a pair a second second of pair of parameters. parameters.
29. 29. A method A methodfor fordecoding decoding a video a video from from a data a data stream stream into into which which syntax syntax elements elements are are
codedusing coded usingbinarizations binarizations of of the the syntax syntax elements, elements, comprising: comprising:
deriving aa number deriving numberofofbins binsofofthe thebinarizations binarizationsfrom fromthe thedata datastream streamusing usingbinary binary 2024201207
entropy decoding entropy decoding bybyselecting selecting a acontext contextamong among differentcontexts different contextsandand updating updating probability states associated with the different contexts, dependent on previously decoded probability states associated with the different contexts, dependent on previously decoded
portionsofofthe portions thedata datastream; stream;
debinarizing the debinarizing the binarizations binarizations of of the the syntax syntax elements elementstotoobtain obtaininteger integervalues valuesofof the syntax the syntax elements; elements;
reconstructing the reconstructing the video basedon video based onthe theinteger integer values values of of the the syntax syntax elements elementsusing using a quantization a quantization parameter; and parameter; and
initializing the initializing probability states the probability states associated associatedwith with the the different different contexts contexts at at beginnings beginnings of of slices slices of of thethe video video by reading by reading the quantization the quantization parameterparameter for slice for a current a current slice fromthethedata from data stream stream and initializing and initializing the probability the probability states associated states associated with the different with the different
contextsaccording contexts according to atolinear a linear equation equation of theofquantization the quantization parameter parameter for theslice, for the current current slice, by, for each of the different contexts for each of the slices, deriving a slope and an offset by, for each of the different contexts for each of the slices, deriving a slope and an offset
of the of the linear linear equation equationfrom from first first andand second second halveshalves of a respective of a respective initialization initialization value, value,
whereinthe wherein theslope slopeandand thethe offset offset for for the the linear linear equations equations of quantization of the the quantization parameterdo parameter donot notvary varybetween betweenslices. slices.
30. 30. A method A methodforforencoding encoding a video a video intoa adata into datastream stream byby coding coding syntax syntax elements elements intointo
the data stream using binarizations of the syntax elements, comprising: the data stream using binarizations of the syntax elements, comprising:
representing the representing thevideo videoby by setting setting integer integer values values ofsyntax of the the syntax elementselements in in dependenceonona aquantization dependence quantizationparameter; parameter;
binarizing the binarizing the integer integer values valuesofofsyntax syntaxelements elements to to obtain obtain binarizations binarizations of the of the
syntax elements; syntax elements;
encodingaanumber encoding numberof of bins bins of of thethe binarizationsinto binarizations intothe thedata datastream streamusing using binary binary
entropy encoding entropy encoding bybyselecting selecting a acontext contextamong among differentcontexts different contextsandand updating updating
103
probability states associated with the different contexts, dependent on previously encoded probability states associated with the different contexts, dependent on previously encoded
portionsofofthe portions thedata datastream; stream; and and
initializing the initializing probability states the probability states associated associatedwith with the the different different contexts contexts at at beginningsofofslices beginnings slicesofofthe thevideo videoin independence dependence on quantization on the the quantization parameter parameter for a for a
currentslice current sliceand and initializing initializing thethe probability probability states states associated associated with with the the different different contexts contexts
according totoaalinear according linearequation equationofofthethequantization quantization parameter parameter for for the the current current slice, slice, by by 2024201207
deriving,for deriving, foreach each of of thethe different different contexts contexts for of for each each the of the slices, slices, a slopea and slope and anofoffset of an offset
the linear the linear equation equationfromfrom first first andand second second halves halves of a respective of a respective initialization initialization value, value,
whereinthe wherein theslope slopeandand thethe offset offset for for the the linear linear equations equations of quantization of the the quantization parameterdo parameter donot notvary varybetween betweenslices. slices.
31. A 31. non-transitory digital A non-transitory digital storage storagemedium havingstored medium having storedthereon thereonaacomputer computer programhaving program havinga aprogram program code code forfor performing, performing, when when running running on a on a computer, computer, a method a method
according to any of claims 29 to 30. according to any of claims 29 to 30.
104
30
encoder
FIGURE1
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2024201207A AU2024201207B2 (en) | 2011-06-16 | 2024-02-22 | Context initialization in entropy coding |
Applications Claiming Priority (12)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201161497794P | 2011-06-16 | 2011-06-16 | |
| US61/497,794 | 2011-06-16 | ||
| US201161508506P | 2011-07-15 | 2011-07-15 | |
| US61/508,506 | 2011-07-15 | ||
| PCT/EP2012/061614 WO2012172114A1 (en) | 2011-06-16 | 2012-06-18 | Context initialization in entropy coding |
| AU2012268951A AU2012268951B2 (en) | 2011-06-16 | 2012-06-18 | Context initialization in entropy coding |
| AU2015249167A AU2015249167B2 (en) | 2011-06-16 | 2015-10-30 | Context initialization in entropy coding |
| AU2017210534A AU2017210534B2 (en) | 2011-06-16 | 2017-08-02 | Context initialization in entropy coding |
| AU2019203279A AU2019203279B2 (en) | 2011-06-16 | 2019-05-10 | Context initialization in entropy coding |
| AU2021201291A AU2021201291B2 (en) | 2011-06-16 | 2021-02-26 | Context initialization in entropy coding |
| AU2022291506A AU2022291506B2 (en) | 2011-06-16 | 2022-12-21 | Context initialization in entropy coding |
| AU2024201207A AU2024201207B2 (en) | 2011-06-16 | 2024-02-22 | Context initialization in entropy coding |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| AU2022291506A Division AU2022291506B2 (en) | 2011-06-16 | 2022-12-21 | Context initialization in entropy coding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| AU2024201207A1 AU2024201207A1 (en) | 2024-03-14 |
| AU2024201207B2 true AU2024201207B2 (en) | 2025-10-30 |
Family
ID=54707326
Family Applications (6)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| AU2015249167A Active AU2015249167B2 (en) | 2011-06-16 | 2015-10-30 | Context initialization in entropy coding |
| AU2017210534A Active AU2017210534B2 (en) | 2011-06-16 | 2017-08-02 | Context initialization in entropy coding |
| AU2019203279A Active AU2019203279B2 (en) | 2011-06-16 | 2019-05-10 | Context initialization in entropy coding |
| AU2021201291A Active AU2021201291B2 (en) | 2011-06-16 | 2021-02-26 | Context initialization in entropy coding |
| AU2022291506A Active AU2022291506B2 (en) | 2011-06-16 | 2022-12-21 | Context initialization in entropy coding |
| AU2024201207A Active AU2024201207B2 (en) | 2011-06-16 | 2024-02-22 | Context initialization in entropy coding |
Family Applications Before (5)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| AU2015249167A Active AU2015249167B2 (en) | 2011-06-16 | 2015-10-30 | Context initialization in entropy coding |
| AU2017210534A Active AU2017210534B2 (en) | 2011-06-16 | 2017-08-02 | Context initialization in entropy coding |
| AU2019203279A Active AU2019203279B2 (en) | 2011-06-16 | 2019-05-10 | Context initialization in entropy coding |
| AU2021201291A Active AU2021201291B2 (en) | 2011-06-16 | 2021-02-26 | Context initialization in entropy coding |
| AU2022291506A Active AU2022291506B2 (en) | 2011-06-16 | 2022-12-21 | Context initialization in entropy coding |
Country Status (1)
| Country | Link |
|---|---|
| AU (6) | AU2015249167B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019186316A1 (en) * | 2018-03-27 | 2019-10-03 | nChain Holdings Limited | Computer-implemented methods and systems relating to arithmetic coding for serialised arithmetic circuits |
| EP4568247A3 (en) * | 2018-03-29 | 2025-07-23 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Concept for enhancing parallel coding capabilities |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050012648A1 (en) * | 2003-07-17 | 2005-01-20 | Detlev Marpe | Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables |
| US20100303147A1 (en) * | 2009-05-27 | 2010-12-02 | Sony Corporation | Encoding apparatus and encoding method, and decoding apparatus and decoding method |
-
2015
- 2015-10-30 AU AU2015249167A patent/AU2015249167B2/en active Active
-
2017
- 2017-08-02 AU AU2017210534A patent/AU2017210534B2/en active Active
-
2019
- 2019-05-10 AU AU2019203279A patent/AU2019203279B2/en active Active
-
2021
- 2021-02-26 AU AU2021201291A patent/AU2021201291B2/en active Active
-
2022
- 2022-12-21 AU AU2022291506A patent/AU2022291506B2/en active Active
-
2024
- 2024-02-22 AU AU2024201207A patent/AU2024201207B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050012648A1 (en) * | 2003-07-17 | 2005-01-20 | Detlev Marpe | Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables |
| US20100303147A1 (en) * | 2009-05-27 | 2010-12-02 | Sony Corporation | Encoding apparatus and encoding method, and decoding apparatus and decoding method |
Non-Patent Citations (2)
| Title |
|---|
| MARPE, D. et al. "Context-based adaptive binary arithmetic coding in the H. 264/AVC video compression standard." IEEE Transactions on Circuits and Systems for Video Technology, 2003, Vol. 13, no. 7, pages 620-636. * |
| WINKEN, M. et al. "Video Coding Technology Proposal by Fraunhofer HHI," Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, April 2010, JCTVC-A116, pages 1-44. * |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2017210534B2 (en) | 2019-02-14 |
| AU2015249167A1 (en) | 2015-12-03 |
| AU2021201291A1 (en) | 2021-03-18 |
| AU2022291506A1 (en) | 2023-02-02 |
| AU2017210534A1 (en) | 2017-08-17 |
| AU2022291506B2 (en) | 2023-11-23 |
| AU2019203279B2 (en) | 2020-11-26 |
| AU2015249167B2 (en) | 2017-05-04 |
| AU2024201207A1 (en) | 2024-03-14 |
| AU2019203279A1 (en) | 2019-05-30 |
| AU2021201291B2 (en) | 2022-09-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU2024266934B2 (en) | Entropy coding of motion vector differences | |
| CN113170138B (en) | Conventional Codec Bit Reduction Using Threshold and Rice Parameters for Coefficient Decoding | |
| US10021419B2 (en) | Rice parameter initialization for coefficient level coding in video coding process | |
| US11516474B2 (en) | Context initialization in entropy coding | |
| AU2024201207B2 (en) | Context initialization in entropy coding | |
| HK40077443A (en) | Context initialization in entropy coding | |
| HK1248949B (en) | Decoder and methods for decoding and encoding a video | |
| HK1246549B (en) | Decoder, encoder, method and storage media for decoding and encoding a video | |
| HK1248947B (en) | Decoder, encoder, method and storage media for decoding and encoding a video | |
| HK1246545B (en) | Decoder, encoder, method and storage media for decoding and encoding a video | |
| HK1248436B (en) | Decoder, encoder and method for decoding and encoding a video | |
| HK1246543B (en) | Decoder, encoder, method and storage media for decoding and encoding a video |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| HB | Alteration of name in register |
Owner name: DOLBY VIDEO COMPRESSION, LLC Free format text: FORMER NAME(S): GE VIDEO COMPRESSION, LLC |
|
| FGA | Letters patent sealed or granted (standard patent) |