KR20070011051A - Method for changing a probability state in entropy coding/decoding - Google Patents
Method for changing a probability state in entropy coding/decoding Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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
Description
도 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
상기 산술코더(110)는, 상기 컨텍스트 모델러(102)에 의해 모델링된 변수( 확률함수와 초기값 )에 근거하여 코딩정보의 각 비트를 산술코딩하는 일반(regular) 코딩엔진(103)과, 비트의 0과 1의 발생확률이 거의 균등하여 모델링의 잇점이 없는 코딩정보 자체에 대한 산술코딩을 수행하는 우회 코딩엔진(104)을 내부적으로 포함한다.The
도 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
상기와 같이 이진화된 비트는 비트압축을 위해 후단의 산술코더(110)에 인가되는 데, 이 때, 비트의 값이 0과 1의 어느 한쪽으로 치우치지 않고 균등하게 분포할 확률을 갖는 비트는 상기 우회 산술코더(104)로 바로 인가되고, 0과 1의 어느 한쪽으로 치우치는 확률을 갖는 코딩정보의 비트는 상기 컨텍스트 모델러(102)에 인가되어 모델링의 과정을 거친다.The binarized bits as described above are applied to the
상기 컨텍스트 모델러(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
상기 일반 코딩엔진(103)은 상기 결정된 확률함수와 양 초기값(valMPS,pStateIdx)을 출발점으로 하여 입력 비트열에 대한 산술코딩을 시작하는 데, 이하에서는 이에 대해 상세히 설명한다. The
상기 일반 코딩엔진(103)은, 먼저 임의 코딩정보의 비트열에 대한 산술코딩에 앞서 이력(history) 버퍼를 초기화시킨다. 이 이력버퍼(history_buf[N])는 하나의 비트값에 따라, 모델링된 확률함수상에서의 확률 상태를 변화시킬 때마다 도 5에서와 같은 방법으로 갱신시킨다. The
상기 갱신된 이력 버퍼의 값들은, 현재 확률 상태를 천이시킬 다음 확률 상태를 결정하는 데 그 근거로 사용된다.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
상기와 같은 가정하에서, 상기 일반 코딩엔진(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
하지만, 이력버퍼의 값이 모두 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
한편, 상기 일반 코딩엔진(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
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
다만, 도 7의 CABAC 디코더의 일반 디코딩 엔진(203)은, 입력된 비트값의 이력에 따라 확률 상태를 변화시키는 것이 아니고, 입력된 정보( 압축된 코드값 )가 현재 설정된 확률 상태에서 MPS 확률 범위에 속하는 지 LPS 확률 범위에 속하는 지에 따라 판별한 M 또는 L에 따라 결정하게 되는 점이, 도 2의 CABAC 엔코더의 일반 코딩엔진(103)의 동작과 상이하며, 상기와 같이 판별된 값을 저장한 이력버퍼의 내용에 따라 확률 상태를 천이시키는 방법은 완전히 동일하다.However, the
예를 들어, 도 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
확률 상태를 천이시킨 후에는, 그 확률 상태의 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
전술한 방법에 따라, 확률 상태를 이력정보에 근거하여 다르게 변화시키면서 압축된 코딩정보를 디코딩하는 디코더는, 이동통신 단말기 등에 실장되거나 또는 기록매체를 재생하는 장치에 실장될 수 있다.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)
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)
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 |
-
2005
- 2005-12-21 KR KR1020050126790A patent/KR20070011051A/en not_active Application Discontinuation
- 2005-12-21 KR KR1020050126784A patent/KR20070011050A/en not_active Application Discontinuation
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 |