KR20070011051A - Method for changing a probability state in entropy coding/decoding - Google Patents

Method for changing a probability state in entropy coding/decoding Download PDF

Info

Publication number
KR20070011051A
KR20070011051A KR1020050126790A KR20050126790A KR20070011051A KR 20070011051 A KR20070011051 A KR 20070011051A KR 1020050126790 A KR1020050126790 A KR 1020050126790A KR 20050126790 A KR20050126790 A KR 20050126790A KR 20070011051 A KR20070011051 A KR 20070011051A
Authority
KR
South Korea
Prior art keywords
probability state
state
probability
bit
lps
Prior art date
Application number
KR1020050126790A
Other languages
Korean (ko)
Inventor
윤도현
박지호
전병문
김동석
박승욱
엄성현
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Publication of KR20070011051A publication Critical patent/KR20070011051A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A method of changing a probability state in entropy coding/decoding is provided to change the current probability state into the next probability state on the basis of previously inputted bit information to enhance a data compression rate. A data compressing method determines the next probability state of an arbitrary bit of a binarized bit stream for arbitrary coding information on the basis of information including at least one bit prior to the arbitrary bit. A data decompressing method decides the next probability state transited from the current probability state for compressed coding information on the basis of the bit determined from the current probability state and at least one bit previously determined for the compressed coding information.

Description

엔트로피 코딩/디코딩에서의 확률 상태 변경 방법 {Method for changing a probability state in entropy coding/decoding}Method for changing a probability state in entropy coding / decoding}

도 1은 주어진 확률 함수상에서의 확률 상태 천이(transition)를 예시적으로 나타낸 것이고,1 illustratively illustrates a probability state transition on a given probability function,

도 2는 본 발명에 따른 확률 상태 변경방법을 수행하는, SVC 엔코더의 CABAC 수행부의 구성 블록을 도시한 것이고,2 is a block diagram of a CABAC execution unit of an SVC encoder for performing a method of changing a probability state according to the present invention;

도 3은, 입력되는 코딩정보에 대해서 이진화하는 예를 나타낸 것이고,3 illustrates an example of binarization of input coding information.

도 4는 임의의 코딩정보의 확률코딩을 위한 컨텍스트 모델링 방식을 도식적으로 나타낸 것이고,4 schematically illustrates a context modeling method for probabilistic coding of arbitrary coding information.

도 5는, 본 발명에 따라, 입력된 비트열을 임시저장하는 이력(history)버퍼상에서의 버퍼 갱신방법을 예시한 것이고,FIG. 5 illustrates a buffer updating method on a history buffer for temporarily storing an input bit string according to the present invention.

도 6a 및 6b는 본 발명에 따라, 이력버퍼의 값들이 다음 확률 상태를 결정하는 데 사용되는 예를 보여주는 것이고,6A and 6B show an example in which values of the history buffer are used to determine the next probability state, according to the present invention.

도 7은 본 발명에 따른 확률 상태 변경방법을 수행하는, SVC 디코더의 CABAC 수행부의 구성 블록을 도시한 것이고,7 is a block diagram of a CABAC execution unit of an SVC decoder for performing a probability state change method according to the present invention;

도 8은, 본 발명에 따라, 압축된 코드로부터 앞서 판단된 이력정보가 다음 확률 상태를 결정하는 데 사용되는 예를 보여주는 것이다.8 shows an example in which historical information previously determined from a compressed code is used to determine a next probability state, in accordance with the present invention.

<도면의 주요부분에 대한 부호의 설명> <Description of Symbols for Main Parts of Drawings>

101: 이진화부 102: 컨텍스트 모델러101: binarization unit 102: context modeler

103: 일반 코딩엔진 104: 우회 코딩엔진103: general coding engine 104: bypass coding engine

110: 산술코더 201: 역 이진화부110: Arithmetic coder 201: Inverse binarization unit

202: 컨텍스트 모델러 203: 일반 디코딩 엔진202: Context Modeler 203: Generic Decoding Engine

204: 우회 디코딩 엔진 210: 산술 디코더204: bypass decoding engine 210: arithmetic decoder

본 발명은, 엔트로피 코딩/디코딩, 예를 들어 적응적(adaptive) 이진 산술코딩/디코딩에서의 확률 상태를 변화시키는 방법에 관한 것이다. The present invention relates to a method of changing the probability state in entropy coding / decoding, for example adaptive binary arithmetic coding / decoding.

스케일러블 영상 코덱(SVC:Scalable Video Codec) 방식은 영상신호를 엔코딩함에 있어, 최고 화질로 엔코딩하되, 그 결과로 생성된 픽처 시퀀스의 부분 시퀀스( 시퀀스 전체에서 간헐적으로 선택된 프레임의 시퀀스 )를 디코딩해 사용해도 저화질의 영상 표현이 가능하도록 하는 방식이다. The scalable video codec (SVC) method encodes a video signal at the highest quality and decodes a partial sequence of the resulting picture sequence (a sequence of intermittently selected frames throughout the sequence). Even if it is used, it is a way to enable a low-quality video representation.

SVC는 AVC(Advanced Video Codec: 'H.264'라고도 한다. )로부터 확장된 코덱 으로서, AVC에서 코딩된 영상신호를 압축하기 위해 사용하도록 제안된 엔트로피(entropy) 코딩방식의 하나인 CABAC( Context-Adaptive Binary Arithmatic Coding )을 데이터 압축을 위해 사용할 수 있다. SVC is an extended codec from AVC (Advanced Video Codec: 'H.264'), and is one of the entropy coding schemes proposed for use in compressing video signals coded in AVC. Adaptive Binary Arithmatic Coding) can be used for data compression.

CABAC은, 특정 신택스 엘리먼트(syntax element)인 코딩정보에 대해, 동일 레이어상의 이웃 매크로 블록의 동일 코딩정보만을 사용하여 산술코딩을 위한 모델링을 한다. 모델링은 확률함수의 선택과 그 확률함수에서의 초기 확률 상태(probability state)의 인덱스와 MPS(Most Probable Symbol) (또는 LPS(Least Probable Symbol))의 값( 0 또는 1 )을 결정하는 것이다.CABAC models arithmetic coding using only the same coding information of neighboring macroblocks on the same layer with respect to coding information that is a specific syntax element. Modeling is to select the probability function and determine the index of the initial probability state (probability state) and the value of the Most Probable Symbol (MPS) (or Least Probable Symbol (LPS)) (0 or 1) in the probability function.

CABAC을 수행하는 산술코더는, 도 1에 예시된 바와 같이, 확률 함수가 결정되고 그 확률함수에서의 확률 상태의 인덱스( 이하, '상태 인덱스'로 약칭한다. )가 결정되면, 입력된 신택스 엘리먼트의 각 비트의 값이 MPS로 지정된 값이면 현재의 확률 상태(state σ)에서 LPS 확률이 낮아지는 전방향 상태(state σ+1)로 확률 상태가 천이되도록 상태 인덱스를 조정하고, 만약 MPS로 지정된 값이 아니면 현재 상태(state σ)에서 LPS 확률이 높아지는 후방향 상태(state σ-k, k>0)중 하나로 천이되도록 상태 인덱스를 조정하면서, 입력된 신택스 엘리먼트의 비트열에 대한 확률범위를 지정하는 이진값을 코딩함으로써 이진 데이터(binary data)를 압축하게 된다.The arithmetic coder that performs CABAC, as illustrated in FIG. 1, determines a probability function and determines an index of a probability state in the probability function (hereinafter, abbreviated as 'state index'). If the value of each bit of is specified as MPS, the state index is adjusted so that the probability state transitions from the current probability state (state σ) to the forward state (state σ + 1) where the LPS probability is lowered. If not, the state index is adjusted to transition to one of the backward states (state σ-k, k> 0) where the LPS probability increases in the current state (state σ), and specifies the probability range for the bit string of the input syntax element. By coding a binary value, binary data is compressed.

도 1의 예에서, MPS에 해당하는 값이 입력되었을 때 전방향 확률 상태로 천이되는 경로는 실선으로, LPS에 해당하는 값이 입력되었을 때 후방향 확률 상태로 천이되는 경로는 점선으로 표시하고 있다. 도 1에서 알 수 있는 바와 같이, 임의의 현재 확률상태에서 천이될 다음 상태는, MPS로 정해진 비트값, 현재 입력 비트 값, 그리고 현재의 확률 상태에 근거하여 결정된다.In the example of FIG. 1, the path transitioning to the forward probability state when the value corresponding to the MPS is input is indicated by the solid line, and the path transitioning to the backward probability state when the value corresponding to the LPS is input is indicated by the dotted line. . As can be seen in FIG. 1, the next state to transition from any current probability state is determined based on the bit value defined by MPS, the current input bit value, and the current probability state.

그런데, 주어진 확률함수상에서의 확률 상태의 변화는, 가능하면 확률적으로 틀릴 가능성이 적은 전제하에서는 LPS의 확률이 좀 더 낮아지는 확률상태로 천이되는 것이 CABAC의 압축률을 높이게 된다. 즉, 어떤 특정 비트 값이 될 확률이, 가능하다면 100% ( 또는 0% )로 치우치는 것이 CABAC의 압축률을 높이게 된다.However, a change in the probability state on a given probability function, if possible, is shifted to a probability state in which the probability of LPS becomes lower under the premise that the probability of probability is incorrectly increased, thereby increasing the compression ratio of CABAC. In other words, if the probability of being a certain bit value is skewed to 100% (or 0%) if possible, it will increase the compression rate of CABAC.

그런데, 도 1에서 보는 바와 같이, 확률 상태 변화는 임의의 현재 확률 상태(state σ)에서 MPS의 비트 값이 입력되었을 때, 전방향 확률 상태(state σ+1)로 천이되는 데, 이 때, 현재 확률 상태(state σ)가, 직전에 MPS의 값에 의해 전방향으로 천이된 상태인지 아니면 직전에 LPS값에 의해 후방향으로 천이된 상태인지는 구분하지 않는다. 하지만, 이 두가지 경우는, 현재 확률 상태(state σ)에서 MPS가 입력된 경우에 LPS의 확률이 작아지는 데 서로 다른 영향을 미칠 수 있다.However, as shown in FIG. 1, when the bit state of the MPS is input in an arbitrary current probability state (state σ), the state of the probability transitions to the forward probability state (state σ + 1). It is not discriminated whether the current state of probability (state sigma) is a state in which the state has been shifted forward by the value of MPS immediately before or the state in which the state has been shifted backward by the LPS value immediately before. However, in these two cases, when the MPS is input in the current probability state (state σ), it may have a different effect on decreasing the probability of the LPS.

이러한 차이점의 가능성을 반영하여 LPS의 확률을, 확률적으로 보다 더 정확하게 낮은 값으로 치우치게 한다면 CABAC의 압축율을 개선할 수가 있다.Reflecting the likelihood of this difference, we can improve the compression rate of CABAC by shifting the probability of LPS to a lower value that is stochastic more accurately.

따라서, 본 발명은, 이전에 입력되었던 비트 정보에 기반하여 현재 확률 상태를 다음 확률 상태로 변화시킴으로써 데이터 압축율을 향상시키는 방법을 제공하는 데 그 목적이 있다.Accordingly, an object of the present invention is to provide a method of improving a data compression ratio by changing a current probability state to a next probability state based on previously input bit information.

상기한 목적을 달성하기 위한 본 발명에 따른 데이터 압축 방법은, 임의 코딩정보에 대해 이진화된 비트열의 임의 비트에 따른 다음 확률 상태를 결정함에 있어서, 그 임의 비트보다 앞선 적어도 하나의 이전 비트를 포함하는 정보에 근거하여 다음 확률 상태를 결정하는 것에 그 특징이 있다.A data compression method according to the present invention for achieving the above object comprises at least one previous bit preceding the arbitrary bit in determining the next probability state according to any bit of the binarized bit stream for arbitrary coding information. It is characterized by determining the next probability state based on the information.

또한, 본 발명에 따른, 압축된 데이터를 해제하는 방법은, 압축된 코딩정보에 대해, 현재의 확률 상태로부터 판별된 비트와, 상기 압축된 코딩정보에 대해 앞서 판별된 적어도 하나의 비트에 근거하여 현재 확률 상태에서 천이될 다음 확률 상태를 결정하는 것에 특징이 있다.In addition, the method for decompressing compressed data according to the present invention is based on a bit determined from a current probability state with respect to compressed coding information and at least one bit previously determined with respect to the compressed coding information. It is characterized by determining the next probability state to transition from the current probability state.

본 발명에 따른 일 실시예에서는, 이전 비트에서의 LPS( 또는 MPS )의 수 그리고 그 순서( 또는 집중도 )에 따라, 동일한 현재의 비트에 대해서 천이할 다음 확률 상태를 다르게 한다.In one embodiment according to the present invention, depending on the number of LPSs (or MPSs) in the previous bit and their order (or concentration), the next probability state to transition to the same current bit is different.

본 발명에 따른 일 실시예에서는, 임의 비트가 LPS임에도 불구하고, 적어도 하나의 그 이전 비트의 조건에 따라서는, 현재 확률 상태에서의 LPS 확률보다 더 낮은 LPS 확률이 되는 상태를 다음 확률 상태로 결정한다.In one embodiment according to the present invention, even if an arbitrary bit is an LPS, depending on the condition of at least one previous bit, a state in which the LPS probability is lower than the LPS probability in the current probability state is determined as the next probability state. do.

이하, 본 발명의 바람직한 실시예에 대해 첨부도면을 참조하여 상세히 설명한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 바람직한 일 실시예에 따른, 인핸스드 레이어 상의 CABAC 수행부의 구성 블록을 도시한 것이다. 도 2의 구성은, 이진화되지 않은 코딩정보에 대해서, 입력된 해당 코딩정보에 따라 정해진 방식으로 이진화(binarizing)하는 이진화부(101)와, 이진화된 코딩정보의 각 비트에 대해, 그 코딩정보와 상관성이 있는 인접된 블록의 코딩정보에 따라 모델링하는 컨텍스트(context) 모델러(102)와, 설정된 모델에 근거하여 입력 비트를 산술코딩하는 산술코더(110)를 포함한다.2 illustrates a configuration block of a CABAC execution unit on an enhanced layer according to an exemplary embodiment of the present invention. The configuration shown in Fig. 2 includes a binarizing unit 101 which binarizes the non-binarized coding information in a manner determined according to the input coding information, and for each bit of the binarized coding information. A context modeler 102 for modeling according to coding information of a correlated adjacent block, and an arithmetic coder 110 for arithmetically coding input bits based on the set model.

상기 산술코더(110)는, 상기 컨텍스트 모델러(102)에 의해 모델링된 변수( 확률함수와 초기값 )에 근거하여 코딩정보의 각 비트를 산술코딩하는 일반(regular) 코딩엔진(103)과, 비트의 0과 1의 발생확률이 거의 균등하여 모델링의 잇점이 없는 코딩정보 자체에 대한 산술코딩을 수행하는 우회 코딩엔진(104)을 내부적으로 포함한다.The arithmetic coder 110 includes a regular coding engine 103 for performing arithmetic coding on each bit of coding information based on variables (probability function and initial value) modeled by the context modeler 102, and a bit. Since the probability of occurrence of 0 and 1 is almost equal, internally includes a bypass coding engine 104 that performs arithmetic coding on the coding information itself without the benefit of modeling.

도 2의 CABAC 수행부는, 입력되는 코딩정보가 이진화되지 않은 경우에는 상기 이진화부(101)에서 그 값을 이진화한다. 이진화하는 예는 도 3에 제시되어 있다. 도 3의 예에서 사용된 코딩정보는 매크로 블록 타입(mb_type)에 대한 것으로, 각 타입(Direct,Intra,P_16x16,P_16x8,P_8x16, 그리고 P_8x8)에 대해, 기 정해진 방식( 또는 변환 테이블 )에 의해 이진화 값이 할당된다. 다른 코딩정보는 도 3에서와 같은 방식으로서 그 엘리먼트에 대해 지정된 다른 방식( 다른 변환 테이블 )으로 이진화된다.The CABAC execution unit of FIG. 2 binarizes the value in the binarization unit 101 when the input coding information is not binarized. An example of binarization is shown in FIG. 3. Coding information used in the example of FIG. 3 is for a macroblock type (mb_type), and for each type (Direct, Intra, P_16x16, P_16x8, P_8x16, and P_8x8), binarization is performed by a predetermined method (or a conversion table). The value is assigned. The other coding information is binarized in the same manner as in FIG. 3 in another manner (another conversion table) specified for that element.

상기와 같이 이진화된 비트는 비트압축을 위해 후단의 산술코더(110)에 인가되는 데, 이 때, 비트의 값이 0과 1의 어느 한쪽으로 치우치지 않고 균등하게 분포할 확률을 갖는 비트는 상기 우회 산술코더(104)로 바로 인가되고, 0과 1의 어느 한쪽으로 치우치는 확률을 갖는 코딩정보의 비트는 상기 컨텍스트 모델러(102)에 인가되어 모델링의 과정을 거친다.The binarized bits as described above are applied to the arithmetic coder 110 at the rear end for bit compression. At this time, the bits having a probability that the value of the bits are evenly distributed without biasing to either one of 0 and 1 are described above. A bit of coding information that is directly applied to the bypass arithmetic coder 104 and has a probability of biasing either 0 or 1 is applied to the context modeler 102 to undergo modeling.

상기 컨텍스트 모델러(102)는 인가되는 코딩정보에 따라, 인접된 매크로 블록의 동일 코딩정보에 근거하여, 현재 코딩정보의 비트에 대한 모델링(modeling)을 수행한다. 즉, 도 4에 예시된 바와 같이, 코딩정보에 따라 offset값(..,k-1,k,k+1,..)을 결정하여 확률함수(..,fk-1,fk,fk+1,..)를 선정하고, 해당 코딩정보와 상관성이 있는 정보에 따라 그 offset값에서 인덱스 변수(ctxIdxInc)의 값을 결정한다. 인덱스 변수가 결정되면 확률함수에 대해 적용할 초기값(MPS의 값(valMPS),상태 인덱스(pStateIdx))을 결정( 도 4에 도시된 바와 같이, 상태 인덱스(pStateIdx)의 초기값이 정해지면, 그에 따라 LPS( 또는 MPS )의 초기 확률이 정해진다. )하여 후단의 일반 코딩엔진(103)에 전달한다.The context modeler 102 performs modeling on bits of current coding information based on the same coding information of adjacent macro blocks according to the applied coding information. That is, as illustrated in FIG. 4, an offset value (.., k-1, k, k + 1, ..) is determined according to coding information to determine a probability function (.., f k-1 , f k , f k + 1 , ..) is selected, and the value of the index variable (ctxIdxInc) is determined from the offset value according to the information correlated with the coding information. When the index variable is determined, the initial value (value of MPS (valMPS) and state index (pStateIdx)) to be applied to the probability function is determined (as shown in FIG. Accordingly, the initial probability of the LPS (or MPS) is determined) and transmitted to the general coding engine 103 at the next stage.

상기 일반 코딩엔진(103)은 상기 결정된 확률함수와 양 초기값(valMPS,pStateIdx)을 출발점으로 하여 입력 비트열에 대한 산술코딩을 시작하는 데, 이하에서는 이에 대해 상세히 설명한다. The general coding engine 103 starts arithmetic coding on the input bit stream using the determined probability function and both initial values (valMPS, pStateIdx) as starting points, which will be described in detail below.

상기 일반 코딩엔진(103)은, 먼저 임의 코딩정보의 비트열에 대한 산술코딩에 앞서 이력(history) 버퍼를 초기화시킨다. 이 이력버퍼(history_buf[N])는 하나의 비트값에 따라, 모델링된 확률함수상에서의 확률 상태를 변화시킬 때마다 도 5에서와 같은 방법으로 갱신시킨다. The general coding engine 103 first initializes a history buffer prior to arithmetic coding on a bit string of arbitrary coding information. This history buffer (history_buf [N]) is updated in the same manner as in FIG. 5 whenever the probability state on the modeled probability function is changed according to one bit value.

상기 갱신된 이력 버퍼의 값들은, 현재 확률 상태를 천이시킬 다음 확률 상태를 결정하는 데 그 근거로 사용된다.The values of the updated history buffer are used as the basis for determining the next probability state that will transition the current probability state.

도 6a 및 6b는 본 발명에 따라 이력버퍼의 값이 다음 확률 상태를 결정하는 데 사용되는 예를 보여주고 있는 데, 현재 확률 상태를 σ5로 가정하고, 이력버퍼의 크기는 4 비트로 가정한 것이다. 이하의 설명은 단순한 예일 뿐 확률 상태 변경방법의 절대적인 기준을 제시하는 것은 아니다. 따라서, 이하의 예에 제시된 확률상태 변경방법을 따르지 않는다 하더라도, 이력상태에 따라 동일 비트 값에 대해서도 확률 상태 변화가 다르게 이루어지는 모든 발명은 본 발명의 범주에 해당하는 것으로 보아야 한다.6A and 6B show an example in which the value of the history buffer is used to determine the next probability state in accordance with the present invention. It is assumed that the current probability state is sigma 5 and the size of the history buffer is 4 bits. The following description is merely an example and does not present an absolute criterion of how to change the probability state. Therefore, even if the probability state change method shown in the following example is not followed, all inventions in which the probability state change is different for the same bit value according to the history state should be regarded as falling within the scope of the present invention.

상기와 같은 가정하에서, 상기 일반 코딩엔진(103)은, 현재 입력된 비트 값( 이 값은 history_buf[0]에 저장된 값이다. )과 이전에 입력되었던 3 비트들의 값(history_buf[1,..,3])에 따라 다음 확률 상태를 결정하는 데, 도 6a에서와 같이, history_buf[0,..3]이 차례로, LPS 값( 이하, 'L'로 표기함. ), MPS 값( 이하, 'M'으로 표기함 ), M, M이면 후방향으로 한 상태를 변화시켜 σ4의 상태가 되도록 하여 LPS 확률을 조금 높인다. 상태 변화는, 독립변수인 상태 인덱스를 그 상태가 되는 값을 갖도록 함으로써 이루어진다. 만약, history_buf[0,..3]이 차례로 L,L,M,M이면 후방향으로 두 상태를 변화시켜 σ3의 상태가 되도록 하고, L,L,L,M이면 후방향으로 세 상태를 변화시켜 σ2의 상태가 되도록 하고, L,M,L,M이면 후방향으로 네 상태를 변화시켜 σ1의 상태가 되도록 한다. 즉, 입력되었던 LPS의 빈도수가 높을수록 LPS의 확률이 좀 더 크게 증가하도록 한다. 또한, LPS의 빈도수가 동일하다 하더라도 그 순서( 또는 집중도 )에 따라 천이할 상태의 폭을 다르게 한다. 예를 들어 LPS가 더 산포되어 있는 경우에 후방향으로의 확률 상태 변화폭을 더 크게 한 다.Under the above assumption, the general coding engine 103 has a currently input bit value (this value is stored in history_buf [0]) and a value of 3 bits previously input (history_buf [1, .. 3]), the next probability state is determined. As in FIG. 6A, history_buf [0, .. 3] is in turn, LPS value (hereinafter, denoted as 'L'), and MPS value (hereinafter, In the case of M, M, the LPS probability is slightly increased by changing the state in the backward direction to become σ4. A state change is made by having a state index which is an independent variable to have a value which becomes that state. If history_buf [0, .. 3] is L, L, M, M in order, the two states are changed in the backward direction to become σ3, and if L, L, L, M, three states are changed in the backward direction. In this case, the state of sigma 2 is set, and in the case of L, M, L, and M, the four states are changed in the rearward direction so as to be in the state of sigma 1. That is, the higher the frequency of the input LPS, the greater the probability of LPS. In addition, even if the frequency of the LPS is the same, the width of the state to be changed is changed according to the order (or concentration). For example, if the LPS is more dispersed, the probability state change in the backward direction is made larger.

하지만, 이력버퍼의 값이 모두 L,L,L,L이면 후방향인 아닌 전방향으로 일곱 상태를 변화시켜 σ12의 상태가 되도록 하여 LPS의 확률을 크게 낮춘다. 이는, 현재 상태가 LPS의 확률이 상당히 낮은 경우 유리한 상태변화 방법으로서, LPS의 확률이 상당히 낮은 상태에서는, 입력되었던 이력버퍼내의 비트 값들이 모두 L이면, 앞으로 L이 입력될 확률이 현재 보다 크게 낮을 것으로 추정할 수 있으므로 오히려 LPS의 확률을 크게 낮추게 된다. 물론, 이는, L이 입력된 경우에, 그 이력정보에 근거하여 LPS의 확률을 높이지 않고 더 낮출 수 있다는 하나의 예이며, 연속된 L의 수, 현재 확률상태의 LPS 확률 등에 따라 도 6a에 제시된 예와 다르게 확률상태를 변화시킬 수 있음은 물론이다.However, if the values of the history buffer are all L, L, L, and L, the probability of LPS is greatly lowered by changing the seven states in the forward direction rather than the backward direction so as to be sigma 12 state. This is an advantageous state change method when the current state is considerably lower than the probability of LPS. In the state where the probability of LPS is considerably low, if the bit values in the history buffer that have been input are all L, the probability that L is input in the future is significantly lower than the present state. It can be estimated that the probability of LPS is greatly reduced. Of course, this is an example in which L can be lowered without increasing the probability of LPS on the basis of the history information, and according to the number of consecutive L, the LPS probability of the current probability state, and the like in FIG. 6A. Of course, unlike the example presented, it is possible to change the probability state.

만약, history_buf[0,..3]가 위 제시된 5가지 경우가 아니면, 상기 일반 코딩엔진(103)은 후방향으로 한 상태만 변화시켜 σ4의 상태로 천이시킨다. 만약, 위 5가지 외에도 LPS의 확률의 변화진폭을 다르게 하는 것이 유리한, 이력버퍼 값의 순열이 존재한다면 이 들에 대해서 확률 상태 천이를 σ4가 아닌 다른 확률 상태로 천이시킬 수 있음은 물론이다.If history_buf [0, .. 3] is not the five cases described above, the general coding engine 103 changes only one state in the backward direction and transitions to the state of? 4. In addition to the above five, if there are permutations of the history buffer values, which advantageously change the probability of change in the probability of the LPS, it is possible to shift the probability state transitions to other probability states other than σ4.

한편, 상기 일반 코딩엔진(103)은, 현재 입력된 비트 값이 M인 경우에는, LPS의 확률을 보다 더 낮추는 쪽으로( 즉, 전방향으로 ) 확률 상태를 변화시키게 되는 데, 그 이전 입력된 비트값들을 포함하는 이력버퍼(history_buf[0,..3])가 차례로 M,M,M,M이면 한 상태를 변화시켜 σ6의 상태가 되도록 하고, M,L,M,M이면 두 상태를 변화시켜 σ7의 상태가 되도록 하고, M,M,L,M이면 세 상태를 변화시켜 σ8 의 상태가 되도록 하고, M,L,L,M이면 네 상태를 변화시켜 σ9의 상태가 되도록 하고, L,L,M,M이면 다섯 상태를 변화시켜 σ10의 상태가 되도록 하고, 그리고 위 5가지 경우가 아니면 전방향으로 한 상태만 변화시켜 σ6의 상태가 되도록 한다. 만약, 위 5가지 외에도 LPS의 확률의 변화진폭을 다르게 하는 것이 유리한, 이력버퍼 값의 순열이 존재한다면 이 들에 대해서 확률 상태 천이를 σ6가 아닌 다른 확률 상태로 천이시킬 수 있음은 물론이다.On the other hand, when the current input bit value is M, the general coding engine 103 changes the probability state to lower the probability of the LPS even further (that is, in all directions). If the history buffer (history_buf [0, .. 3]) containing values is M, M, M, M in order, the state is changed to σ6, and if M, L, M, M, two states are changed. The state of sigma 7, and if M, M, L, M, three states are changed to be the state of sigma 8, if M, L, L, M, four states are changed to the state of sigma 9, L, If L, M, and M, five states are changed to be sigma 10 state, and unless the above five cases, only one state is changed in all directions to become sigma 6 state. If there is a permutation of the history buffer values, which is advantageous to change the probability of change of the probability of LPS in addition to the above five, it is of course possible to shift the probability state transitions to other probability states other than σ6.

MPS의 값이 입력되었을 때, 도 6a에 예시된 이력버퍼의 값에 따라 확률 상태를 변화시키는 방법은, 현재 상태가 LPS의 확률이 상당히 낮은 것을 가정한 것이다. LPS의 확률이 상당히 낮은 상태에서는, 입력되었던 이력버퍼내의 비트 값중에서 L이 있으면 없는 경우보다, 앞으로 L이 입력될 확률이 더 낮을 것으로 추정할 수 있으므로 없는 경우에 비해서 LPS의 확률을 더 낮추게 된다. 하지만, 이는 단지 이력정보에 따라 확률 상태를 다르게 변화시킨다는 본 발명의 요지를 설명하기 위한 예시적인 것일 뿐, 이력에 따른 LPS의 확률 추정이 실험적으로 보다 더 정확하게 검증되는 이력정보의 순열에 대해서는 그에 따른 확률 상태 변화폭을 설정할 수 있다.When the value of the MPS is input, the method of changing the probability state according to the value of the history buffer illustrated in FIG. 6A assumes that the current state has a significantly low probability of LPS. In the state where the probability of LPS is considerably low, the probability of L being input in the future may be lower than in the case where there is no L among the bit values in the input history buffer, so the probability of LPS is lowered than in the case where there is no LPS. However, this is merely an example for explaining the gist of the present invention that changes the probability state differently according to the history information, and according to the permutation of the history information where the probability estimation of the LPS according to the history is experimentally verified more accurately. Probability state variation can be set.

지금까지의 설명은, 엔코더에서의 확률코딩을 전제로 한 것이나, 압축된 데이터를 해제하기 위한, 도 7의 CABAC 디코더에 대해서도 동일하게 적용된다.The foregoing description is based on probability coding in an encoder, but the same applies to the CABAC decoder of FIG. 7 for releasing compressed data.

도 7의 CABAC 디코더의 컨텍스트 모델러(202)도, 도 2의 CABAC 코더에서의 컨텍스트 모델러(102)가 임의 코딩정보에 대해 채택한 방식과 동일한 방식으로 모델링하여 후단의 일반(regular) 디코딩 엔진(203)에 그 초기값을 넘겨주게 된다. 그러면 상기 일반 디코딩 엔진(203)은 임의 코딩정보의 압축된 코드값( 확률 범위를 지정하는 값 )에 대해서, CABAC 엔코더의 일반 코딩 엔진(103)에서 출발한 초기값과 동일 값으로부터 출발하여, 도 6a 및 6b에 예시적으로 제시된 것과 동일한 방식으로 확률 상태를 변화시키면서 압축된 코드를 비압축 비트열로 변환하게 된다. The context modeler 202 of the CABAC decoder of FIG. 7 is also modeled in the same manner as the context modeler 102 in the CABAC coder of FIG. The initial value is passed to. Then, the general decoding engine 203 starts with the initial value starting from the general coding engine 103 of the CABAC encoder for the compressed code value (value specifying the probability range) of arbitrary coding information. The compressed code is transformed into an uncompressed bit string while varying the probability state in the same manner as is illustrated in 6a and 6b.

다만, 도 7의 CABAC 디코더의 일반 디코딩 엔진(203)은, 입력된 비트값의 이력에 따라 확률 상태를 변화시키는 것이 아니고, 입력된 정보( 압축된 코드값 )가 현재 설정된 확률 상태에서 MPS 확률 범위에 속하는 지 LPS 확률 범위에 속하는 지에 따라 판별한 M 또는 L에 따라 결정하게 되는 점이, 도 2의 CABAC 엔코더의 일반 코딩엔진(103)의 동작과 상이하며, 상기와 같이 판별된 값을 저장한 이력버퍼의 내용에 따라 확률 상태를 천이시키는 방법은 완전히 동일하다.However, the general decoding engine 203 of the CABAC decoder of FIG. 7 does not change the probability state according to the history of the input bit value, but the MPS probability range in the probability state in which the input information (compressed code value) is currently set. The point that is determined according to M or L determined according to whether it belongs to or belongs to the LPS probability range is different from the operation of the general coding engine 103 of the CABAC encoder of FIG. 2, and the history of storing the value determined as described above. The method of transitioning probability states according to the contents of the buffer is exactly the same.

예를 들어, 도 8에 도시된 바와 같이, 현재의 확률 상태가 σ5이고, 현재 입력된 압축된 코드(800)에 의해 판단된 확률 범위가 L이고, 그 이전에 판단된 확률 범위가 M,M,M 이면( 이 경우 이력버퍼(history[0,..3])에 저장되어 있는 값은 L,M,M,M이다. ) 상기 일반 디코딩 엔진(203)은 다음 확률 상태를 후방향으로 한 상태 천이시켜 σ4가 되도록(801) 하는 것이다. 다른 경우에도 모두 도 6a 및 6b에 제시된 방법과 같이 확률 상태를 천이시킨다.For example, as shown in FIG. 8, the current probability state is σ 5, the probability range determined by the currently input compressed code 800 is L, and the probability range previously determined is M, M. If, M (in this case, the values stored in the history buffer (history [0, .. 3] are L, M, M, M.) The general decoding engine 203 makes the next probability state backward. The state transition is made to be [sigma] 4 (801). In all other cases, the probability states are shifted as in the method shown in FIGS. 6A and 6B.

확률 상태를 천이시킨 후에는, 그 확률 상태의 LPS 확률을 기준으로, 입력된 압축 코드가 어느 쪽( MPS 확률 범위 또는 LPS 확률 범위 )에 속하는 지에 따라 또 MPS 또는 LPS로 결정하고, 도 5와 같이 이력버퍼를 갱신시키게 된다.After shifting the probability state, based on the LPS probability of the probability state, MPS or LPS is further determined according to which (MPS probability range or LPS probability range) the input compression code belongs to, as shown in FIG. 5. The history buffer will be updated.

압축된 코드에 대한 상기와 같은 판단이 종료되면 그 판단에 의해 결정된 L 과 M의 순열이 곧 비압축 비트열이 되고, 이 비트열은 후단의 역이진화부(201)에 인가되며, 상기 역이진화부(201)는 압축 해제된 비트열에 대해, 해당 코딩정보에 대해 지정되어 있는 이진화 변환방식에 의거하여 그 코딩정보의 값을 확인하게 된다.When the above judgment on the compressed code ends, the permutation of L and M determined by the judgment immediately becomes an uncompressed bit sequence, which is applied to the inverse binarization unit 201 at a later stage. The unit 201 checks the value of the decoded bit string based on the binarization transformation method specified for the corresponding coding information.

전술한 방법에 따라, 확률 상태를 이력정보에 근거하여 다르게 변화시키면서 압축된 코딩정보를 디코딩하는 디코더는, 이동통신 단말기 등에 실장되거나 또는 기록매체를 재생하는 장치에 실장될 수 있다.According to the above-described method, the decoder for decoding the compressed coding information while changing the probability state differently based on the history information may be mounted in a mobile communication terminal or the like or in an apparatus for reproducing a recording medium.

본 발명은 전술한 전형적인 바람직한 실시예에만 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위 내에서 여러 가지로 개량, 변경, 대체 또는 부가하여 실시할 수 있는 것임은 당해 기술분야에 통상의 지식을 가진 자라면 용이하게 이해할 수 있을 것이다. 이러한 개량, 변경, 대체 또는 부가에 의한 실시가 이하의 첨부된 특허청구범위의 범주에 속하는 것이라면 그 기술사상 역시 본 발명에 속하는 것으로 보아야 한다. It is to be understood that the present invention is not limited to the above-described exemplary preferred embodiments, but may be embodied in various ways without departing from the spirit and scope of the present invention. If you grow up, you can easily understand. If the implementation by such improvement, change, replacement or addition falls within the scope of the appended claims, the technical idea should also be regarded as belonging to the present invention.

제한된 실시예로써 상술한 바와 같이, 본 발명은, 비트열을 엔트로피 코딩방식을 통해 압축함에 있어서, 확률 상태 변화를 이력정보에 근거하여 동일 비트값에 대해서도 확률 상태 변화폭을 다르게 함으로써 확률적으로 보다 더 정확하게 특정 값( MPS 또는 LPS )이 될 확률범위를 축소시킬 수 있다. 이는, 동일 값에 대해서는 동일하게 확률 상태를 변화시키는 방법에 비해서 데이터 압축율을 향상시킨다.As described above in a limited embodiment, in the present invention, when compressing a bit string through an entropy coding scheme, the present invention is more probabilistically by varying the probability state change width even for the same bit value based on the history information. It is possible to reduce the probability range to be exactly a specific value (MPS or LPS). This improves the data compression rate compared to the method of changing the probability state equally for the same value.

Claims (13)

영상신호의 코딩정보를 압축하는 방법에 있어서,In the method for compressing coding information of a video signal, 상기 코딩정보를 이진화하는 1단계와,Step 1 of binarizing the coding information; 상기 이진화된 비트열의 임의 비트와, 그 임의 비트보다 앞선 적어도 하나의 이전 비트를 포함하는 정보에 근거하여 현재 확률 상태에서 천이될 다음 확률 상태를 결정하는 2단계를 포함하여 이루어지는 방법.And determining a next probability state to transition from a current probability state based on information including any bits of the binarized bit string and at least one previous bit preceding the bits. 제 1항에 있어서,The method of claim 1, 상기 정보는, 상기 임의 비트, 상기 적어도 하나의 이전 비트, MPS의 값, 그리고 현재 확률 상태에 대한 정보인 것을 특징으로 하는 방법.Wherein the information is information about the random bit, the at least one previous bit, the value of an MPS, and a current probability state. 제 2항에 있어서,The method of claim 2, 상기 MPS의 값은, 상기 2단계 전에 수행된 상기 코딩정보에 대한 모델링에 의해 결정된 0 또는 1중 하나의 값인 것을 특징으로 하는 방법.The value of the MPS, characterized in that the value of one of 0 or 1 determined by the modeling of the coding information performed before the second step. 제 1항에 있어서,The method of claim 1, 상기 확률 상태는, 독립변수인 상태 인덱스와, 상기 코딩정보에 대한 모델링에서 정해진 확률 함수상에서의 상기 상태 인덱스에 대응되는 LPS (또는 MPS) 확률의 세트(set)로 정의되는 것임을 특징으로 하는 방법. The probability state is defined as a set of independent state indexes and a set of LPS (or MPS) probabilities corresponding to the state indexes on the probability function determined in modeling the coding information. 제 4항에 있어서,The method of claim 4, wherein 상기 상태 인덱스를 변화시킴으로써 확률 상태를 상기 결정된 다음 확률 상태로 천이시키는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 방법. Transitioning a probability state to the determined next probability state by changing the state index. 제 1항에 있어서,The method of claim 1, 상기 2단계는, 상기 임의 비트가 LPS임에도 불구하고, 상기 적어도 하나의 이전 비트의 조건에 따라서는, 상기 현재 확률 상태에서의 LPS 확률보다 더 낮은 LPS 확률이 되는 상태를 상기 다음 확률 상태로 결정하는 것을 특징으로 하는 방법. The second step is to determine, as the next probability state, a state in which the LPS probability is lower than the LPS probability in the current probability state according to the condition of the at least one previous bit, even though the random bit is the LPS. Characterized in that the method. 압축된 영상신호의 코딩정보를 해제하는 방법에 있어서,A method of releasing coding information of a compressed video signal, 상기 압축된 코딩정보에 대해 현재의 확률 상태로부터 판별된 비트와, 상기 압축된 코딩정보에 대해 앞서 판별된 적어도 하나의 비트를 포함하는 정보에 근거하여 현재 확률 상태에서 천이될 다음 확률 상태를 결정하는 1단계를 포함하여 이루어지는 방법.Determining a next probability state to be transitioned from the current probability state based on information including the bit determined from the current probability state for the compressed coding information and at least one bit previously determined for the compressed coding information. A method comprising one step. 제 7항에 있어서,The method of claim 7, wherein 상기 정보는, 상기 현재의 확률 상태로부터 판별된 비트, 상기 앞서 판별된 적어도 하나의 비트, MPS의 값, 그리고 현재 확률 상태에 대한 정보인 것을 특징으 로 하는 방법.And the information is information about a bit determined from the current probability state, the at least one bit previously determined, a value of an MPS, and a current probability state. 제 8항에 있어서,The method of claim 8, 상기 MPS의 값은, 상기 1단계 전에 수행된 상기 코딩정보에 대한 모델링에 의해 결정된 0 또는 1중 하나의 값인 것을 특징으로 하는 방법.The value of the MPS, characterized in that the value of one of 0 or 1 determined by the modeling for the coding information performed before the first step. 제 7항에 있어서,The method of claim 7, wherein 상기 확률 상태는, 독립변수인 상태 인덱스와, 상기 코딩정보에 대한 모델링에서 정해진 확률 함수상에서의 상기 상태 인덱스에 대응되는 LPS (또는 MPS) 확률의 세트(set)로 정의되는 것임을 특징으로 하는 방법. The probability state is defined as a set of independent state indexes and a set of LPS (or MPS) probabilities corresponding to the state indexes on the probability function determined in modeling the coding information. 제 10항에 있어서,The method of claim 10, 상기 상태 인덱스를 변화시킴으로써 확률 상태를 상기 결정된 다음 확률 상태로 천이시키는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 방법. Transitioning a probability state to the determined next probability state by changing the state index. 제 7항에 있어서,The method of claim 7, wherein 상기 1단계는, 상기 현재의 확률 상태로부터 판별된 비트가 LPS임에도 불구하고, 상기 앞서 판별된 적어도 하나의 비트의 조건에 따라서는, 상기 현재 확률 상태에서의 LPS 확률보다 더 낮은 LPS 확률이 되는 상태를 상기 다음 확률 상태로 결정하는 것을 특징으로 하는 방법. In step 1, although the bit determined from the current probability state is an LPS, the LPS probability is lower than the LPS probability in the current probability state according to the condition of the at least one bit previously determined. Determining as the next probability state. 제 7항에 있어서,The method of claim 7, wherein 상기 압축된 코딩정보에 대해 판별된 비트열을 역이진화하여 상기 코딩정보의 값을 확인하는 2단계를 더 포함하여 이루어지는 것을 특징으로 하는 방법. And inversely binarizing the bit string determined with respect to the compressed coding information to confirm the value of the coding information.
KR1020050126790A 2005-07-18 2005-12-21 Method for changing a probability state in entropy coding/decoding KR20070011051A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69985805P 2005-07-18 2005-07-18
US60/699,858 2005-07-18

Publications (1)

Publication Number Publication Date
KR20070011051A true KR20070011051A (en) 2007-01-24

Family

ID=38012163

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020050126790A KR20070011051A (en) 2005-07-18 2005-12-21 Method for changing a probability state in entropy coding/decoding
KR1020050126784A KR20070011050A (en) 2005-07-18 2005-12-21 Method for modeling coding information of a video signal to compress/decompress the information

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020050126784A KR20070011050A (en) 2005-07-18 2005-12-21 Method for modeling coding information of a video signal to compress/decompress the information

Country Status (1)

Country Link
KR (2) KR20070011051A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102492318B1 (en) 2015-09-18 2023-01-26 삼성전자주식회사 Model training method and apparatus, and data recognizing method

Also Published As

Publication number Publication date
KR20070011050A (en) 2007-01-24

Similar Documents

Publication Publication Date Title
US20230078680A1 (en) Context Initialization in Entropy Coding
KR100878826B1 (en) Method for modeling coding information of video signal for compressing/decompressing coding information
US9930337B2 (en) Video decoder with enhanced CABAC decoding
KR100750165B1 (en) Cabac encoding method and apparatus using improved context model selection with better compression ratio, and cabac decoding method and apparatus
KR101158439B1 (en) Method for modeling coding information of video signal for compressing/decompressing coding information
US6894628B2 (en) Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
KR100856398B1 (en) Variable-length coding and decoding method and apparatus using plural mapping tables
US8378862B2 (en) Method and device for compression of binary sequences by grouping multiple symbols
US20080219578A1 (en) Method and apparatus for context adaptive binary arithmetic coding and decoding
KR100717055B1 (en) Method of decoding bin values using pipeline architecture, and decoding apparatus therefor
US8633837B2 (en) Encoding and decoding methods and devices employing dual codesets
US8638247B2 (en) Method and device for buffer-based interleaved encoding of an input sequence
EP2362658A1 (en) Encoding and decoding methods and devices employing dual codesets
WO2011101443A1 (en) Adaptive entropy encoding
JP4211780B2 (en) Digital signal encoding apparatus, digital signal decoding apparatus, digital signal arithmetic encoding method, and digital signal arithmetic decoding method
US8638246B2 (en) Encoding and decoding methods and devices using a secondary codeword indicator
WO2012159295A1 (en) Entropy decoding method and device
JP4211873B2 (en) Digital signal encoding apparatus, digital signal decoding apparatus, digital signal arithmetic encoding method, and digital signal arithmetic decoding method
KR20070011051A (en) Method for changing a probability state in entropy coding/decoding
EP2362547B1 (en) Encoding and decoding methods and devices using a secondary codeword indicator
RU2779898C1 (en) Context initialization in entropy coding
CA2728938C (en) Method and device for buffer-based interleaved encoding of an input sequence
US20190014321A1 (en) Decoder, encoder and methods for coding a sequence of portions of media from/into a data stream using an unary code

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination