본 발명은, 데이터 압축율을 향상시키기 위해 복수 레이어간에 상관성이 있는 코딩정보에 대한 모델링 방법을 제공하는 데 그 목적이 있다.
이하, 본 발명의 바람직한 실시예에 대해 첨부도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 바람직한 일 실시예에 따른, 인핸스드 레이어 상의 CABAC 수행부의 구성 블록을 도시한 것이다. 도 1의 구성은, 이진화되지 않은 코딩정보에 대해서, 입력된 해당 코딩정보에 따라 정해진 방식으로 이진화(binarizing)하는 이진화부(101)와, 이진화된 코딩정보의 각 비트에 대해 동일 레이어( 여기서는, 인핸스드 레이어라 할 수 있다. )의 인접된 블록의 코딩정보 외에 해당 코딩정보와 상관성이 있는 베이스 레이어의 코딩정보 또는 레이어간의 관련성(relationship)(10)에 따라 모델링하는 컨텍스트(context) 모델러(102)와, 설정된 모델에 근거하여 입력 비트를 산술코딩하는 산술코더(110)를 포함한다.
상기 산술코더(110)는, 상기 컨텍스트 모델러(102)에 의해 모델링된 변수( 확률함수와 초기값 )에 근거하여 코딩정보의 각 비트를 산술코딩하는 일반(regular) 코딩엔진(103)과, 비트의 0과 1의 발생확률이 거의 균등하여 모델링의 잇점이 없는 코딩정보 자체에 대한 산술코딩을 수행하는 우회 코딩엔진(104)을 내부적으로 포함한다.
본 발명은, 입력되는 코딩정보에 대한 모델링에 대한 것으로서, 모델링된 변수에 따른 산술코딩 과정은 본 발명과 직접적 관련성이 없다. 따라서, 이하의 설명에서 본 발명의 이해를 돕기 위해 필요한 내용이 아닌 상기 산술코더(110)에 관련된 비트 압축동작( 엔트로피 코딩 )에 대한 설명은 생략한다.
도 1의 CABAC 수행부는, 입력되는 코딩정보가 이진화되지 않은 경우에는 상기 이진화부(101)에서 그 값을 이진화한다. 이진화하는 예는 도 2에 제시되어 있다. 도 2의 예에서 사용된 코딩정보는 매크로 블록 타입(mb_type)에 대한 것으로, 각 타입(Direct,Intra,P_16x16,P_16x8,P_8x16, 그리고 P_8x8)에 대해, 기 정해진 방식( 또는 변환 테이블 )에 의해 이진화 값이 할당된다. 다른 코딩정보는 도 2에서와 같은 방식으로서 그 엘리먼트에 대해 지정된 다른 방식( 다른 변환 테이블 )으로 이진화된다.
상기와 같이 이진화된 비트는 비트압축을 위해 후단의 산술코더(110)에 인가되는 데, 이 때, 비트의 값이 0과 1의 어느 한쪽으로 치우치지 않고 균등하게 분포할 확률을 갖는 비트는 상기 우회 산술코더(104)로 바로 인가되고, 0과 1의 어느 한쪽으로 치우치는 확률을 갖는 코딩정보의 비트는 상기 컨텍스트 모델러(102)에 인가되어 모델링의 과정을 거친다.
상기 컨텍스트 모델러(102)는 인가되는 코딩정보에 따라, 인접된 매크로 블록의 동일 코딩정보의 비트값 및/또는 베이스 레이어의 엔코더( 미도시 )로부터 제공되는 동일 코딩정보의 값과 상관성을 갖는 코딩정보 또는 베이스 레이어와의 관련성 정보(10)에 근거하여, 상기 인핸스드 레이어상의 해당 코딩정보의 비트에 대한 모델링(modeling)을 수행한다. 모델링은 확률함수의 선택과 그 확률함수에서의 초기값을 결정하는 것으로서, 도 3에 예시된 바와 같이, 코딩정보에 따라 offset값(,k-1,k,k+1,)이 결정되어 확률함수(fk -1,fk,fk +1,)가 선정되고, 해당 코딩정보와 상관성이 있는 정보에 따라 그 offset값에서 인덱스 변수(ctxIdxInc)의 값을 결정한다. 인덱스 변수가 결정되면 확률함수에 대해 적용할 초기값(valMPS,pStateIdx)을 결정( 도 3에 도시된 바와 같이, pStateIdx의 초기값이 정해지면, 그에 따라 LPS( 또는 MPS )의 초기 확률값이 정해진다. )함으로써 후단의 일반 코딩엔진(103)이 결정된 확률함수와 양 초기값(valMPS,pStateIdx)을 출발점으로 하여 입력비트들을 코딩(압축)하게 된다.
이하에서는 상기 컨텍스트 모델러(102)가 수행하는 모델링에서, 본 발명에 따른 ctxIdxInc의 값을 결정하는 방법에 대한 구체적인 예를 제시한다. 하기에 제시되는 여러가지 예는, 인핸스드 레이어의 특정 코딩정보에 대한 모델링에 있어서 그 코딩정보의 값과 상관성을 갖는 코딩정보 또는 베이스 레이어와의 관련성에 근거하여 모델링하는 방법의 단순한 예시일 뿐이다. 따라서, 본 발명은 하기에서 제시된 예에 국한되지 않으며, 인핸스드 레이어의 코딩정보에 대해 그 엘리먼트의 값과 상관성을 갖는 코딩정보 또는 베이스 레이어와의 관련성에 근거하여 모델링하는 것을 요지로 하는 발명은 본 발명의 범주에 해당한다.
먼저, 임의 매크로 블록이 베이스 레이어상의 대응되는 블록의 코딩정보( 예를 들어, 모션벡터정보 또는 인트라 모드의 이미지 데이터 )를 이용할 것인지를 나타내는 플래그 (base_mode_flag)에 대해 인덱스 변수(ctxIdxInc)를 결정하는 여러가지 방법을 설명한다.
1-1). ctxIdxInc = condTermFlagA + condTermFlagB + condTermFlagBase
여기서, A와 B는 각각 현재 매크로 블록(X)의 상측과 좌측의 매크로 블록을 나타내며, condTermFlagN( N= A or B )은, 매크로 블록 N을 이용할 수 없거나 그 매크로 블록의 base_mode_flag가 0이면 0의 값을 가지고, 그렇지 않은 경우 1의 값을 갖는다. 마찬가지로 condTermFlagBase는 현재 매크로 블록(X)에 대응되는 베이스 레이어의 블록이 없거나 대응 블록의 base_mode_flag가 0이면 0의 값을 갖고 그렇지 않은 경우에는 1의 값을 갖는다. 즉, 베이스 레이어의 동일 코딩정보의 값을 ctxIdxInc의 값을 정하는 데 근거로 사용한다. 이는 곧 베이스 레이어의 동일 코딩정보의 값에 따라 확률코딩을 위한 초기값이 달라짐을 의미한다.
1-2). ctxIdxInc = condTermFlagA' + condTermFlagB' + condTermFlagBase'
여기서, conTermFlag'의 값은 해당 블록이 인터모드인지 인트라모드인지에 따라 0과 1이 부여되는 값이다. 예를 들어 condTermFlagBase'는 현재 매크로 블록(X)에 대응되는 베이스 레이어상의 블록이 인터모드이면 0( 또는 1 ) 인트라 모드이면 1( 또는 0 )의 값을 갖는다.
이 방법에서는, base_mode_flag의 비트를 코딩하기 위한 확률함수에 대한 초기값을 정함에 있어서, 인접된 양 블록(A,B)과 대응되는 베이스 레이어상의 블록의 모드( 인터 또는 인트라 )를 근거로 사용한다.
또는, ctxIdxInc를 condTermFlagBase', 즉, 대응되는 베이스 레이어상의 블록의 모드에만 근거하도록 해서 초기값이 달라지게 할수도 있다.
1-3). ctxIdxInc = (BaseBlkSize == EnhanceBlkSize)? 1:0 + condTermFlagA + condTermFlagB
본 방법에서는, 베이스 레이어의 블록의 파티션(partition)과 인핸스드 레이어의 블록의 파티션이 동일한 지 아닌지에 따른 값( 동일하면 1 아니면 0 ) 또는 인핸스드 레이어의 블록 크기와 대응하는 베이스 레이어의 블록의 크기가 동일한 지 아닌지에 따른 값( 동일하면 1 아니면 0 )이 확률함수에 대한 초기값을 결정하는 데 근거로 이용된다.
1-4). ctxIdxInc = condTermFlagA" + condTermFlagB" + condTermFlagBase"
conTermFlag"의 값은 해당 블록의 양자화 파라미터값이 기 정해진 문턱값(threshold) 이상이면 1, 그렇지 않으면 0이 부여되는 값이다. 이 방법에서는, base_mode_flag의 비트를 코딩하기 위한 확률함수에 대한 초기값을 정함에 있어서, 인접된 양 블록(A,B)과 대응되는 베이스 레이어상의 블록의 양자화 파리미터를 근거로 사용한다.
또한, condTermFlag"의 값을 양자화 파라미터 값이 아닌 다른 양자화 파라미터 값과의 차에 따라 그 값을 부여하여 그에 따라 ctxIdxInc의 값을 결정할 수도 있다. 예를 들어, condTermFlagN"에는 N블록의 양자화 파라미터 값과 그 N블록에 대응하는 베이스 레이어의 블록의 양자화 파라미터의 값과의 차가 기 정해진 문턱값이상이면 1, 그렇지 않으면 0의 값이 부여된다. 이 때, condTermFlagBase"는, 현재 블록(X)과 그 블록에 대응되는 베이스 레이어상의 블록과의 양자화 파라미터의 차가 문턱값보다 큰 지 작은 지를 나타내는 값을 의미한다.
또는, ctxIdxInc를 condTermFlagBase", 즉, 대응되는 베이스 레이어상의 블록의 양자화 파라미터 값( 또는 현재 블록(X)의 양자화 파라미터 값과의 차 )에만 근거하도록 해서 초기값이 달라지도록 할수도 있다.
1-5). ctxIdxInc = 0 ( if C ≥문턱값1 ),
1 ( if 문턱값1> C ≥ 문턱값2 )
2 ( if C <문턱값2 )
여기서, C는 베이스 레이어의 대응 블록의 모션벡터와, 어떤 인접된 매크로 블록의 모션벡터 또는 인접된 매크로 블록의 평균 모션벡터간의 모션벡터 차이값이거나 또는 대응 블록의 모션벡터일 수 있다.
즉, 확률함수의 대한 초기값을 정함에 있어서, 베이스 레이어의 모션벡터가 그 근거로 사용된다.
1-6). ctxIdxInc = (refIdxEnhanceL1 == refIdxBaseL1)? 1:0 + (refIdxEnhanceL0 == refIdxBaseL0)? 1:0
본 방법에서는, 현재 코딩하고자 하는 코딩정보의 매크로 블록의 L0 픽처그룹과 L1 픽처 그룹에서의 기준픽처 값(refIdxL0,refIdxL1)이 베이스 레이어의 대응 블록의 L0와 L1에서의 기준픽처 값이 같은지 아닌지에 따라( 예를 들어, L0와 L1에서 모두 같으면 2, 하나라도 같으면 1, 모두 상이하면 0 ) 확률함수에 대한 초기값을 다르게 결정하여 사용한다.
상기에서 설명한 방법( 1-1 부터 1-6 ) 중 하나를 사용하지 않고 복수개의 방법을 조합하여 base_mode_flag를 엔트로피 코딩하기 위한 확률함수에 대한 초기값을 결정하는 데 사용할 수도 있다.
다음으로, 임의 매크로 블록이 베이스 레이어상의 대응되는 블록의 모션벡터정보를 이용함에 있어서 미세 조정(refinement)이 필요한지를 나타내는 플래그(base_mode_refinement_flag)에 대해 인덱스 변수(ctxIdxInc)를 결정하는 여러가지 방법을 설명한다.
상기 플래그(base_mode_refinement_flag)는 대응되는 베이스 레이어상의 매크로 블록이 인트라모드로 코딩된 경우에는 사용되지 않는 정보이므로, 이 플래그의 비트를 위한 모델링에 있어서, 인트라 모드 코딩을 전제하는 방법, 예를 들어 1-2)와 같은 방법은 사용하지 않는다.
2-1). ctxIdxInc = condTermFlagA + condTermFlagB + condTermFlagBase
condTermFlagN( N= A or B )은, 매크로 블록 N을 이용할 수 없거나 그 매크로 블록의 base_mode_refinement_flag가 0이면 0의 값을 가지고, 그렇지 않은 경우 1의 값을 갖는다. 마찬가지로 condTermFlagBase는 현재 매크로 블록에 대응되는 베이스 레이어의 블록이 없거나 대응 블록의 base_mode_refinement_flag가 0이면 0의 값을 갖고 그렇지 않은 경우에는 1의 값을 갖는다. 즉, 베이스 레이어의 동일 코딩정보의 값을 ctxIdxInc의 값을 정하는 데 근거로 사용한다.
2-2). ctxIdxInc = (BaseBlkSize == EnhanceBlkSize)? 1:0 + condTermFlagA + condTermFlagB
이 방법은 앞서 설명한 1-3)과 동일하다.
2-3). ctxIdxInc = condTermFlagA" + condTermFlagB" + condTermFlagBase"
또는, ctxIdxInc = condTermFlagBase"
이 방법은 앞서 설명한 1-4)와 동일하다.
2-4). ctxIdxInc = (SpatialResEnhance == SpatialResBase)? 1:0
본 방법에서는, 베이스 레이어의 픽처에 대한 공간적 해상도가 인핸스드 레이어의 픽처에 대한 공간적 해상도가 동일한 지 아닌지에 따른 값( 동일하면 1 아니면 0 )이 확률함수에 대한 초기값을 결정하는 데 근거로 사용된다.
상기에서 설명한 방법( 2-1 부터 2-4 ) 중 하나를 사용하는 대신 복수개의 방법을 조합하여 base_mode_refinement_flag를 확률코딩하기 위한 확률함수에 대한 초기값을 결정하는 데 사용할 수도 있다.
다음으로, 임의 매크로 블록의 레지듀얼 데이터를, 베이스 레이어상의 대응되는 블록의 레지듀얼 데이터로부터 예측된 데이터로 코딩하였는 지를 나타내는 플래그(residual_prediction_flag)에 대해 인덱스 변수(ctxIdxInc)를 결정하는 여러가지 방법을 설명한다.
3-1). ctxIdxInc = condTermFlagA + condTermFlagB + condTermFlagBase
condTermFlagN( N= A or B )은, 매크로 블록 N을 이용할 수 없거나 그 매크로 블록의 residual_prediction_flag가 0이면 0의 값을 가지고, 그렇지 않은 경우 1의 값을 갖는다. 마찬가지로 condTermFlagBase는 현재 매크로 블록에 대응되는 베이스 레이어의 블록이 없거나 대응 블록의 residual_prediction_flag가 0이면 0의 값을 갖고 그렇지 않은 경우에는 1의 값을 갖는다. 즉, 베이스 레이어의 동일 코딩정보의 값을 ctxIdxInc의 값을 정하는 데 근거로 사용한다.
3-2). ctxIdxInc = (BaseBlkSize == EnhanceBlkSize)? 1:0 + condTermFlagA + condTermFlagB
이 방법은 앞서 설명한 1-3)과 동일하다.
3-3). ctxIdxInc = condTermFlagA" + condTermFlagB" + condTermFlagBase"
또는, ctxIdxInc = condTermFlagBase"
이 방법은 앞서 설명한 1-4)와 동일하다.
3-4). ctxIdxInc = (refIdxEnhanceL1 == refIdxBaseL1)? 1:0 + (refIdxEnhanceL0 == refIdxBaseL0)? 1:0
이 방법은 앞서 설명한 1-6)과 동일하다.
3-5). ctxIdxInc = 0 ( if C ≥문턱값1 ),
1 ( if 문턱값1> C ≥문턱값2 )
2 ( if C <문턱값2 )
이 방법은 앞서 설명한 1-5)와 동일하다.
3-6). ctxIdxInc = (SpatialResEnhance == SpatialResBase)? 1:0
이 방법은 앞서 설명한 2-4)와 동일하다.
3-7). ctxIdxInc = CBPBase? 1:0
본 방법에서는, 베이스 레이어의 대응 블록의 CBP( Coded Block Pattern )의 값에 따라 residual_prediction_flag를 코딩하기 위한 확률함수에 대한 초기값을 결정하여 사용한다. CBP는 베이스 레이어의 휘도(luminance) 블록 또는 컬러(chrominance) 블록에 대한 CBP를 사용할 수 있으며, 이 CBP의 값은 해당 블록에 0이 아닌 비트 값이 있으면 0이 아닌 값을, 그렇지 않으면 0의 값을 갖는다. 따라서, 본 방법에서는, 베이스 레이어의 대응 블록에 0이 아닌 값이 있는 지 없는 지( 있으면 1 없으면 0 )에 따라 확률함수의 초기값을 달리 설정하여 residual_prediction_flag를 코딩하게 된다.
상기 방법을 더 상세하게 설명하도록 한다. 현재 레이어와 베이스 레이어의 해상도 비율이 2:1일 경우, 16x16 현재 매크로블록에 대응되는 상기 베이스 레이어의 블록의 크기는 4x4 일 수 있다. 따라서, 상기 베이스 레이어의 4x4 블록을 포함하는 매크로블록의 블록 패턴 정보(Coded Block Pattern)에 있어서 상기 4x4 블록과 관련된 비트값은 확률 함수의 초기값을 결정하기 위한 인덱스 변수 "ctxIdxInc"에 설정될 수 있다. 왜냐하면, 블록 패턴 정보(CBP)에서 상기 비트값은 상기 4x4 블록이 0이 아닌 값을 갖는지 여부를 나타내기 때문이다.
또한, 상기 4x4 블록을 포함하는 베이스 레이어 상의 매크로블록 'BL1_MB'가 하위 레이어(제 2 베이스 레이어) 상의 대응 블록 'BL2_B'에 기초하여 레지듀얼 예측 방식으로 코딩된 경우, 즉, 베이스 레이어 상의 매크로블록 'BL1_MB'의 "residual_prediction_flag"가 1로 설정된 경우, 인덱스 변수 "ctxIdxInc" 값은 상기 제 2 베이스 레이어 상의 대응 블록 'BL2_B'의 관련 블록 패턴 정보(CBP) 비트에 따라 결정될 수 있다.
CBP를, 초기값을 결정하기 위한 조건으로 사용하는 방법으로서, 상기 (CBPBase? 1:0)의 조건에 더하여 인접된 블록(A,B)의 동일 코딩정보(residual_prediction_flag)의 값을 조건에 추가할 수도 있다. 이 경우에는
ctxIdxInc = CBPBase? 1:0 + condTermFlagA + condTermFlagB 에 의해 ctxIdxInc가 결정된다.
또 다르게는 인접된 양 블록(A,B)의 CBP의 값에 따라 다음과 같이 ctxIdxInc의 값을 결정할 수도 있다.
ctxIdxInc = CBPA? 1:0 + CBPB? 1:0
상기에서 설명한 방법( 3-1 부터 3-7 ) 중 하나를 사용하는 대신 복수개의 방법을 조합하여 residual_prediction_flag를 확률코딩하기 위한 확률함수에 대한 초기값을 결정하는 데 사용할 수도 있다.
지금까지 설명한 코딩정보외에 다른 코딩정보에 대해서도 베이스 레이어의 코딩정보 또는 레이어간 관련성에 따라 모델링( 초기값 설정 )을 달리할 수도 있다.
예를 들어, 베이스 레이어의 대응되는 인트라 모드 블록의 이미지 데이터에 기초하여 인핸스드 블록의 이미지 데이터가 차 데이터로 코딩되었는 지의 여부를 나타내는 플래그(intra_base_flag)의 경우, 1-1)과 같은 방식으로 레이어간 관련성을 이용( 베이스 레이어의 동일 코딩정보를 이용 )하거나, 2-4)와 같은 방식으로 레이어간 공간적 해상도의 관련성을 이용하거나 또는 1-4)와 같은 방식으로 베이스 레이어의 화질 레벨을 나타내는 양자화 파라미터를 이용하여, 확률코딩을 위한 모델링을 달리할 수도 있다.
또한, 임의 매크로 블록이 베이스 레이어상의 대응되는 블록의 모션벡터정보를 이용함에 있어서 필요한 미세 조정값을 지시하는 정보(mvd_ref_lX,X=0,1)의 경우, 1-1)과 같은 방식으로 레이어간 관련성을 이용( 베이스 레이어의 동일 코딩정보를 이용 )하거나, 2-4)와 같은 방식으로 레이어간 공간적 해상도의 관련성을 이용하여 확률코딩을 위한 모델링을 달리할 수도 있다.
또한, 임의 매크로 블록의 예측 모션벡터를 베이스 레이어의 대응 블록의 모션벡터를 사용할 것인지를 나타내는 플래그(motion_prediction_flag_lX,X=0,1)의 경우, 1-1)과 같은 방식으로 레이어간 관련성을 이용( 베이스 레이어의 동일 코딩정보를 이용 )하거나, 2-4)와 같은 방식으로 레이어간 공간적 해상도의 관련성을 이용하거나, 또는 1-3)과 같은 방식으로 블록 사이즈의 관련성을 이용하여 확률코딩을 위한 모델링을 달리할 수도 있다.
그리고, 지금까지 설명된 코딩정보외에도 레이어간 관련성이 그 값에 영향을 줄 수 있는 코딩정보가 있다면 이러한 코딩정보에 대해서도 전술한 다양한 방식의 모델링을 적용할 수도 있다.
한편, 지금까지의 설명에 있어서, ctxIdxInc가 확률함수에 대한 초기값(valMPS,pStateIdx)을 결정한다고 하였으나, 이 양 초기값은 도 4에 제시된 바와 같이 ctxIdxInc가 결정됨에 따라 정해지는 m,n의 값에 의해 2차적으로 정해지는 값이다.
도 4의 초기값 결정 루틴에서 중간값(preCtxState)은 Clip3 함수에 의해 결정된다. preCtxState 결정함수(Clip3())는 m과 n외에 휘도 양자화 파라미터 값(SliceQPY)을 독립변수(varX)로 가지는 데, 이 독립변수(varX)는 현재 코딩하고자 하는 코딩정보의 매크로 블록에 대한 것이다. 즉, m과 n외에 초기값 결정에 영향을 주는 상기 독립변수(varX)는 레이어간 관련성에 따른 값을 갖지 않는다.
따라서, 상기 독립변수(varX)에 레이어간 관련성이 반영되도록 하여 그에 따른 초기값이 얻어지도록 하게 되면 초기값이, 확률 코딩에 훨씬 더 유리하게 되는 값을 가질 가능성이 높다. 따라서, 본 발명에 따라 상기 독립변수(varX)에도 레이어간 관련성이 반영되도록 한다.
상기 독립변수(varX)에 레이어간 관련성을 반영하는 방법으로서는, 베이스 레이어의 휘도 양자화 파라미터(BaseSliceQPY)를 상기 독립변수(varX)로 사용하거나, 인핸스드 레이어와 베이스 레이어의 양자화 파라미터의 차를 사용하거나 또는 베이스 레이어와 현재 레이어의 공간적 해상도의 비율을 사용할 수도 있다.
인핸스드 레이어와 베이스 레이어의 양자화 파라미터의 차를 상기 독립변수(varX)로 사용하는 경우, 도 4의 preCtxState 결정함수(401)는 본 발명에 따라 다음과 같이 정의될 수 있다.
preCtxState=Clip3(1,126,((m*(SliceQPYBaseSliceQPY))>>4)+n)
지금까지의 설명은, 엔코더에서의 확률코딩을 전제로 한 것이나, 지금까지의 설명은, 압축된 데이터를 해제하기 위한, 도 5의 CABAC 디코더에 대해서도 동일하게 적용된다. 따라서 디코더에서의 컨텍스트 모델링에 대해서는 그 설명을 생략한다.
도 5의 CABAC 디코더의 컨텍스트 모델러(202)도, 도 1의 CABAC 코더에서의 컨텍스트 모델러(102)가 임의 코딩정보에 대해, 전술한 모델링에서 채택한 방식과 동일한 방식으로, 베이스 레이어의 코딩정보 정보와 레이어간 관련성(20)을 근거로 모델링하여 후단의 일반(regular) 디코딩 엔진(203)에 그 초기값을 넘겨주게 된다. 상기 일반 디코딩 엔진(203)은 임의 코딩정보의 비트에 대해서 엔코더의 일반 코딩 엔진(103)에서 출발한 초기값과 동일 값으로부터 출발하여 입력되는 압축된 비트들을 비압축 비트열로 변환하게 된다.
전술한 방법에 따라 코딩정보에 대해 모델링하는 컨텍스트 모델러를 포함하는 디코더는, 이동통신 단말기 등에 실장되거나 또는 기록매체를 재생하는 장치에 실장될 수 있다.
상술한 바와 같이, 본 발명은, 레이어간 관련성을 이용하여 코딩정보의 비트에 대해 컨텍스트 모델링을 함으로써 확률코딩에 있어서 유리한 초기값, 즉 LPS의 초기확률이 더 작아지게 되는 경우를 구분함으로써 확률코딩에 의한 데이터 압축율을 보다 향상시키게 된다.