KR20130122353A - 비트율 추정 장치 및 그것의 비트율 추정 방법 - Google Patents

비트율 추정 장치 및 그것의 비트율 추정 방법 Download PDF

Info

Publication number
KR20130122353A
KR20130122353A KR1020120045610A KR20120045610A KR20130122353A KR 20130122353 A KR20130122353 A KR 20130122353A KR 1020120045610 A KR1020120045610 A KR 1020120045610A KR 20120045610 A KR20120045610 A KR 20120045610A KR 20130122353 A KR20130122353 A KR 20130122353A
Authority
KR
South Korea
Prior art keywords
bits
context
bit rate
syntax element
context group
Prior art date
Application number
KR1020120045610A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020120045610A priority Critical patent/KR20130122353A/ko
Priority to US13/796,293 priority patent/US20130287120A1/en
Publication of KR20130122353A publication Critical patent/KR20130122353A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 동작 속도 및 정확도가 향상되고, 수행되는 연산을 단순화한 비트율 추정 장치 및 그것의 비트율 추정 방법을 제공한다. 본 발명에 따른 비트율 추정 방법은 구문 요소(syntax element)를 수신하는 단계, 구문 요소의 심볼 빈(bin) 수를 산출하는 단계 및 룩-업 테이블(Look-Up Table, LUT)을 사용하여, 심볼 빈 수에 대응되는 평균 비트량을 결정하는 단계를 포함한다.

Description

비트율 추정 장치 및 그것의 비트율 추정 방법{BITRATE ESTIMATION DEVICE AND BITRATE ESTIMATION METHOD THEREOF}
본 발명은 비트율 추정 장치 및 그것의 비트율 추정 방법에 관한 것으로서, 더욱 상세하게는 문맥-기반 적응적 이진 산술 부호화 장치를 위한 비트율 추정 장치 및 그것의 비트율 추정 방법에 관한 것이다.
H.264/AVC는 ISO/IEC의 MPEG(Moving Picture Experts Group)과 ITU-T의 VCEG(Video Coding Experts Group)이 공동으로 제정한 동영상 압축 표준이다. H.264/AVC는 종래의 동영상 압축 표준에 비해 환경 적응성 및 동영상의 압축 효율성 측면에서 이점을 갖는다. H.264/AVC 표준을 따르는 부호화 방법의 하나로서, 문맥 기반 적응적 이진 산술 부호화(Context-based Adaptive Binary Arithmetic Coding, 이하 CABAC이라 함)가 있다.
한편, H.264/AVC에서 최적의 부호화 모드를 결정하기 위한 기준으로서, 율-왜곡 비용 함수(rate-distortion cost function, J=D+λR)가 사용된다. 여기서, D는 원 영상과 복원된 영상 사이의 왜곡을 나타내고, R은 부호화된 비트스트림(bitstream)의 비트율(bitrate)을 나타내고, λ는 상대적 가중치 요소(relative weight factor)에 대한 라그랑쥬 승수(lagrange multiplier)를 나타낸다. 부호화 모드에 율-왜곡 비용 함수를 적용하기 위해서, 부호화 장치가 입력 신호에 대해 부호화를 수행하여 출력하는 비트스트림의 비트율을 검출하여야 한다. 그러나, 부호화 장치의 부호화 과정을 실제로 수행하여 비트율(R)을 구하는 것은 시스템에 과도한 오버헤드를 야기할 수 있다. 특히, CABAC은 복잡한 연산을 요구하는 엔트로피 부호화를 수행하므로, 비트율(R)을 구하는 과정에서 발생하는 오버헤드는 중요한 기술적 이슈가 된다.
따라서, CABAC의 부호화 과정 중 일부를 생략하여 연산의 복잡도(complexity)를 감소시키는 비트율 추정 방법들이 제안되어 왔다. 종래의 비트율 추정 방법들은 인용 문헌 "Efficient CABAC Rate Estimation for H.264/AVC Mode Decision", IEEE Trans. CSVT Feb.2010. 및 인용 문헌 "Efficient Bit-Rate Estimation Technique for CABAC", APCCAS 2008. 에 상세히 기재되어 있다. 그러나, 종래의 비트율 추정 방법들은 여전히 복잡한 연산을 필요로 하거나, 추정된 비트율(R)의 정확도가 현저히 떨어지는 문제점이 있다.
본 발명의 목적은 수행되는 연산을 단순화한 비트율 추정 장치 및 그것의 비트율 추정 방법을 제공하는 데 있다.
본 발명의 다른 목적은 동작 속도가 향상된 비트율 추정 장치 및 그것의 비트율 추정 방법을 제공하는 데 있다.
본 발명의 다른 목적은 추정 정확도가 개선된 비트율 추정 장치 및 그것의 비트율 추정 방법을 제공하는 데 있다.
본 발명에 따른 부호화 장치의 비트율을 추정하는 비트율 추정 방법은 구문 요소(syntax element)를 수신하는 단계; 상기 구문 요소의 심볼 빈(bin) 수를 산출하는 단계; 및 룩-업 테이블(Look-Up Table, LUT)을 사용하여, 상기 산출된 빈 수에 대응되는 평균 비트량을 결정하는 단계를 포함한다.
실시 예로서, 상기 심볼 빈 수를 산출하는 단계는 상기 구문 요소의 컨텍스트 그룹을 결정하는 단계; 및 상기 컨텍스트 그룹의 빈 수를 산출하는 단계를 포함하고, 상기 컨텍스트 그룹은 문맥-기반 적응적 이진 산술 부호화(Context-Based Adaptive Binary Arithmetic Coding, CABAC)의 적어도 하나 이상의 컨텍스트 모델을 포함한다.
실시 예로서, 상기 컨텍스트 그룹을 결정하는 단계는 상기 구문 요소에 대응되는 이진 부호를 결정하는 단계; 및 상기 이진 부호의 값 또는 상기 이진 부호의 위치에 따라 상기 구문 요소의 컨텍스트 그룹을 결정하는 단계를 포함한다.
실시 예로서, 상기 구문 요소는 잔차 계수(Residual Coefficient)이다.
실시 예로서, 상기 컨텍스트 그룹을 결정하는 단계는 상기 구문 요소의 절대 값에 따라 제 1 값을 결정하는 단계; 및 상기 제 1 값과 미리 결정된 제 2 값을 비교하여 상기 구문 요소의 컨텍스트 그룹을 결정하는 단계를 포함한다.
실시 예로서, 상기 구문 요소는 움직임 벡터 차(Motion Vector Difference, MVD)이다.
실시 예로서 상기 심볼 빈 수를 산출하는 단계는 상기 계산된 컨텍스트 그룹의 빈(bin) 수와 피드백 신호의 빈 수를 더하는 단계를 더 포함한다.
실시 예로서, 상기 피드백 신호의 빈 수는 정규화된 수이다.
실시 예로서, 상기 룩-업 테이블은 제 1 수학식('0'비트의 평균 비트량 = log('0'비트의 확률)/log0.5) 또는 제 2 수학식('1'비트의 평균 비트량 = log(1 - '0'비트의 확률)/log0.5)에 의해 정의된다.
실시 예로서, 상기 '0'비트의 확률은 제 3 수학식('0'비트의 확률 = '0'비트의 수/('0'비트의 수 + '1'비트의 수))에 의해 결정된다.
실시 예로서, 상기 부호화 장치는 문맥-기반 적응적 이진 산술 부호화(Context-Based Adaptive Binary Arithmetic, CABAC) 장치이다.
본 발명에 따른 문맥-기반 적응적 이진 산술 부호화(Context-Based Adaptive Binary Arithmetic, 이하 CABAC이라 함) 장치의 비트율을 추정하는 비트율 추정 방법은 구문 요소(syntax element)를 수신하는 단계; 상기 구문 요소의 컨텍스트 모델을 선택하는 단계; 상기 컨텍스트 모델을 참조하여 상기 컨텍스트 모델의 통계 파라미터를 산출하는 단계; 및 룩-업 테이블(Look-Up Table, LUT)을 사용하여, 상기 통계 파라미터와 대응되는 비트율을 제공하는 단계를 포함한다.
실시 예로서, 상기 통계 파라미터는 상기 컨텍스트 모델의 인터벌(interval), 비트 확률, 최대 확률 심볼(Most Probable Symbol) 또는 최소 확률 심볼(Least Probable Symbol)을 포함한다.
실시 예로서, 상기 룩-업 테이블은 수학식(
Figure pat00001
)을 참조하여 정의되고, 상기 i는 인터벌, 상기 m은 인터벌의 비트 크기, 상기 n은 심볼의 진수(antilogarithm)를 나타낸다.
실시 예로서, 상기 룩-업 테이블은 H.264/AVC 표준을 따르는 CABAC의 인터벌 테이블을 참조하여 정의된다.
본 발명에 따르면 수행되는 연산을 단순화한 비트율 추정 장치 및 그것의 비트율 추정 방법이 제공될 수 있다.
또한, 비트율 추정 속도가 향상될 수 있다.
또한, 추정 정확도가 개선된 비트율 추정 장치 및 그것의 비트율 추정 방법이 제공될 수 있다.
도 1은 일반적인 CABAC 장치를 나타내는 블록도이다.
도 2는 일반적인 CABAC의 비트율 추정 장치를 나타내는 블록도이다.
도 3은 본 발명에 따른 CABAC의 비트율 추정 장치를 나타내는 블록도이다.
도 4는 본 발명에 따른 CABAC의 비트율 추정 방법을 예시적으로 나타내는 순서도이다.
도 5는 본 발명의 제 1 실시 예에 따른 컨텍스트 그룹의 빈(bin) 수 산출 방법을 나타내는 순서도이다.
도 6은 본 발명의 제 1 실시 예에 대해 부가적으로 설명하는 도면이다.
도 7은 본 발명의 제 2 실시 예에 따른 컨텍스트 그룹의 빈(bin) 수 산출 방법을 나타내는 순서도이다.
도 8은 본 발명의 제 2 실시 예에 대해 부가적으로 설명하는 도면이다.
도 9는 본 발명의 제 3 실시 예에 따른 컨텍스트 그룹의 빈(bin) 수 산출 방법을 나타내는 순서도이다.
도 10은 본 발명의 제 4 실시 예에 따른 컨텍스트 그룹의 빈(bin) 수 산출 방법을 나타내는 순서도이다.
도 11은 본 발명의 제 3 또는 제 4 실시 예에 따른 절대 값(Abs) 또는 절대 값의 합(AbsSum)을 예시적으로 나타내는 도면이다.
도 12는 도 3에 도시된 비트율 산출부(120)를 구체적으로 나타내는 블록도이다.
도 13은 도 12에 도시된 제 1 룩-업 테이블(121)을 예시적으로 나타내는 도면이다.
도 14는 도 12에 도시된 제 2 룩-업 테이블(122)을 예시적으로 나타내는 도면이다.
도 15는 본 발명의 제 5 실시 예에 따른 CABAC 비트율 추정 장치를 나타내는 블록도이다.
도 16은 H.264/AVC 표준을 따르는 CABAC의 인터벌 테이블(241)을 예시적으로 나타내는 도면이다.
도 17은 본 발명의 제 5 실시 예에 따른 비트율 추정 방법을 위한 룩-업 테이블(242)을 예시적으로 나타내는 도면이다.
도 18은 본 발명의 제 6 실시 예에 따른 비트율 추정 방법을 위한 룩-업 테이블(243)을 예시적으로 나타내는 도면이다.
앞의 일반적인 설명 및 다음의 상세한 설명들은 모두 청구된 발명의 부가적인 설명을 제공하기 위한 예시적인 것이다. 그러므로 본 발명은 여기서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 여기서 소개되는 실시 예는 개시된 내용이 철저하고 완전해 질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서, 어떤 부분이 어떤 구성요소를 포함한다고 언급되는 경우에, 이는 그 외의 다른 구성요소를 더 포함할 수도 있다는 것을 의미한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일반적인 CABAC 장치를 나타내는 블록도이다. 도 1을 참조하면, CABAC 장치(10)는 이진화기(12), 컨텍스트 모델러(14), 부호화 엔진(15) 및 스위치들(11, 13)을 포함한다.
이진화기(12)는 이진 값이 아닌 구문 요소(syntax element)가 입력되는 경우, 상기 구문 요소를 이진 값을 갖는 시퀀스로 맵핑시켜 이진 심볼을 출력한다. 이진화기(12)를 통해 출력되는 이진 심볼의 일부는 부호화 과정의 처리속도를 증가시키기 위해 컨텍스트 모델러(14)를 거치지 않고, 바이패스 부호화 엔진(15b)에 의해 부호화되어 비트스트림으로 출력될 수 있다. 나머지 이진 심볼들은 컨텍스트 모델러(14)로 입력될 것이다.
그리고, 스위치부들(11, 13)은 구문 요소 및 이진화기(12)의 출력이 진행하는 경로를 결정한다. 제 1 스위치부(11)는 입력되는 구문 요소에 따라, 이진 심볼이 구문 요소로서 입력되면 아래 노드와 접촉되고, 그렇지 않으면 위쪽 노드와 접촉된다. 제 2 스위치부(13)는 구문 요소 또는 이진화기(12)의 출력을 정규 코딩 경로(Regular) 또는 바이패스 경로(Bypass) 중 어느 하나에 선택적으로 연결한다.
컨텍스트 모델러(14)는 입력되는 이진 심볼과 이전에 부호화된 구문 요소에 기초하여, 이진 심볼에 대한 컨텍스트 모델링을 수행한다. 그리고, 컨텍스트 모델러(14)는 현재 입력된 이진 심볼을 부호화하는 데 필요한 확률 정보를 생성한다.
컨텍스트 모델러(14)는 확률 스테이터스 값과 최대 확률 심볼(Most Probable Symbol, 이하 MPS라 한다) 또는 최소 확률 심볼(Least Probable Symbol, 이하 LPS라 한다) 정보를 생성할 수 있다. MPS는 '0'비트 또는 '1'비트 중에서 발생할 확률이 높은 심벌을 의미한다. LPS는 '0'비트 및 '1'비트 중에서 발생할 확률이 낮은 심벌을 의미한다. 컨텍스트 모델러(20)는 상기 확률 스테이터스 값을 기초로 확률 인덱스(Probability State Index) 정보를 생성할 수 있다. 컨텍스트 모델러(14) 및 컨텍스트 모델링에 대한 구체적인 내용은 당해 기술 분야에 널리 알려져 있으므로 자세한 설명은 생략한다.
이진 산술 부호화 엔진(15)는 컨텍스트 모델러(14)로부터 제공되는 이진 심볼 및 확률 정보를 입력받아 이진 산술 부호화를 수행하고, 최종적으로 비트스트림을 출력한다. 이진 산술 부호화부(15)에 대한 구체적인 내용은 당해 기술 분야에 널리 알려져 있으므로 자세한 설명은 생략한다.
도 2는 일반적인 CABAC 비트율 추정 장치를 예시적으로 나타내는 블록도이다. 도 2를 참조하면 비트율 추정 장치(20)는 이진화기(21), 컨텍스트 모델러(22) 및 정규 부호화 엔진(23)을 포함한다.
비트율 추정 장치(20)의 이진화기(21), 컨텍스트 모델러(22) 및 정규 부호화 엔진(23)은 도 1의 이진화기(12), 컨텍스트 모델러(14) 및 정규 부호화 엔진(15a)와 실질적으로 동일한 기능을 수행할 수 있다.
예를 들어, 구문 요소가 이진화기(21)에 입력되면, 이진화기(21)는 구문 요소를 이진화하여 이진 심볼(Bins)을 출력한다. 컨텍스트 모델러(22)는 이진 심볼(Bins)에 대해 컨텍스트 모델링을 수행하고, 컨텍스트 모델링된 심볼 및 그것의 비트 확률을 출력한다. 정규 부호화 엔진(23)은 출력된 심볼 및 비트 확률을 참조하여 심볼에 대한 부호화를 수행한다. 각 참조 박스(20a, 20b, 20c)는 구문 요소, 이진 심볼(Bins) 및 비트 확률을 예시적으로 나타낸다.
이처럼, 비트율 추정 장치(20)는 실제 CABAC 장치(10)와 거의 동일한 동작을 수행하도록 구성될 수 있다. 그러나, 이러한 경우 비트율 추정 장치(20)는 지나치게 복잡한 연산을 수행하게 된다. 비트율 추정 장치(20)는 목적은 CABAC의 비트율을 추정하는 것일 뿐, 실제 신호를 부호화하는 데 있지 않다. 따라서, 본 발명에서는 CABAC 장치(10)와 다른 동작 및 연산을 통해 비트율을 추정하는 비트율 추정 장치(20)를 제안한다.
도 3은 본 발명에 따른 CABAC의 비트율 추정 장치를 나타내는 블록도이다. 도 3을 참조하면, 비트율 추정 장치(100)는 빈 수 계산부(110) 및 비트율 산출부(120)를 포함한다.
빈 수 계산부(110)는 구문 요소(syntax element)를 수신하고, 피드백 신호(feedback)를 참조하여, 수신된 구문 요소에 대한 심볼 빈 수(bns)를 산출한다. 여기서, 심볼 빈 수(bns)는 구문 요소를 부호화한 신호의 빈(bin)의 수(즉, '0'비트의 수 또는 '1'비트의 수) 또는 그 추정 값을 의미한다. 예를 들어, 비트율 추정 장치(100)가 CABAC의 비트율을 추정하는 경우, 심볼 빈 수(bns)는 구문 요소의 컨텍스트 모델에 포함된 빈(bin) 수 또는 그 추정 값을 나타낸다.
그리고, 피드백 신호(feedback)는 이전 구문 요소에 대한 심볼 빈 수를 나타낸다. 여기서, 이전 구문 요소에 대한 심볼 빈 수는 가중치(weighting)을 위해 정규화되어 피드백 신호(feedback)로서 제공된다.
한편, 빈 수 계산부(110)는 연산의 단순화를 위해, CABAC의 부호화 동작 중 일부를 생략하거나 단순화하여 수행한다.
구체적으로, 빈 수 계산부(110)는 CABAC의 컨텍스트 모델들을 그룹화한 컨텍스트 그룹들을 설정한다. 그리고, 컨텍스트 그룹들을 이용하여 구문 요소를 컨텍스트 모델링함으로써, 구문 요소의 부호화 동작은 더욱 단순화될 수 있다. 여기서, 각각의 컨텍스트 그룹은 CABAC의 컨텍스트 모델들 중 적어도 하나 이상을 포함한다. 그리고, CABAC의 컨텍스트 모델들은 H.264/AVC에 따른 CABAC 표준에 의해 결정된다.
실시 예로서, 컨텍스트 모델들은 두 가지 기준을 참조하여 그룹화된다. 먼저, 하나의 컨텍스트 그룹은 어떤 하나의 구문 요소에 대하여 인접하는 컨텍스트 모델들을 그룹화한다. H.264/AVC 에 따른 CABAC의 컨텍스트 모델들은 서로 인접하여 위치할수록 비트 확률(즉, '0'비트의 확률 또는 '1'비트의 확률)이 유사하다. 따라서, 인접하는 컨텍스트 모델들을 그룹화하면, 그룹화에 따른 비트 확률의 오차가 감소될 수 있다.
다음으로, 어떤 하나의 구문 요소에 대한 컨텍스트 모델들은 컨텍스트 그룹에 포함된 빈(bin) 수의 편차가 최소화되도록 그룹화된다. H.264/AVC에 따른 CABAC의 컨텍스트 모델들은 인덱스 수(index number)가 작을수록 더 많은 수의 빈을 포함한다. 따라서, 인덱스 수가 작은 컨텍스트 모델을 포함하는 컨텍스트 그룹은 상대적으로 적은 수의 컨텍스트 모델을 그룹화한다.
예를 들어, 어떤 하나의 구문 요소에 대해 10개의 컨텍스트 모델들(ctx0, ctx1, ctx2, ... ,ctx9)이 있고, 각 컨텍스트 모델들은 그룹화되어 4개의 컨텍스트 그룹들(ctg0, ctg1, ctg2, ctg3)로 재구성된다고 가정한다. 이때, H.264/AVC에 따른 CABAC 표준에 의해, 컨텍스트 모델들은 인덱스 수가 작을수록 많은 수의 빈을 포함하고, 인덱스 수가 인접한 컨텍스트 모델들은 비트 확률이 유사하다. 즉, ctx0은 ctx1보다 더 많은 수의 비트를 포함하고, 비트 확률에 있어서 ctx0은 ctx2보다 ctx1과 더 유사하다.
따라서, 앞서 설명한 두 가지 기준을 참조할 때, 예시적으로 각 컨텍스트 모델들은 표 1과 같이 그룹화될 수 있다.
Figure pat00002
한편, 빈 수 계산기(110)는 컨텍스트 그룹화를 통해 각 구문 요소를 컨텍스트 그룹으로 컨텍스트 모델링한다. 즉, 원래의 CABAC에 있어서 컨텍스트 모델(ctx1, ctx2)로 모델링되는 구문 요소는 본 실시 예에서 제 1 컨텍스트 그룹(ctg1)으로 모델링된다. 그리고, 원래의 CABAC에 있어서 컨텍스트 모델들(ctx3, ctx4, ctx5)로 모델링되는 구문 요소는 본 실시 예에서 제 2 컨텍스트 그룹(ctg2)으로 모델링된다.
상기와 같은 컨텍스트 그룹화를 함으로써, 구문 요소의 컨텍스트 모델링이 단순화될 수 있다.
또한, 빈 수 계산부(110)는 CABAC과 달리 비트 확률을 계산하지 않는다. 빈 수 계산부(110)는 단지 구문 요소에 대한 심볼 빈 수(bns)만을 산출한다. 실시 예로서, 심볼 빈 수(bns)는 구문 요소를 컨텍스트 모델링하여 컨텍스트 그룹을 결정하고, 결정된 컨텍스트 그룹의 빈(bin) 수(즉, '0'비트의 수 또는 '1'비트의 수)와 피드백 신호를 합산으로써 산출된다.
빈 수 계산부(110)가 구문 요소로부터 심볼 빈 수(bns)를 산출하는 방법에 대한 구체적인 내용은 도 4 내지 도 11와 함께 후술될 것이다.
상기와 같은 구성에 따르면, 비트 계산부(110)는 단순화된 연산을 통해 구문 요소에 대한 심볼 빈 수를 산출할 수 있다.
비트율 산출부(120)는 룩-업 테이블(Look-Up Table, LUT)을 사용하여, 심볼 빈 수(bns)에 대응되는 평균 비트량(즉, '0'비트의 평균 비트량 또는 '1'비트의 평균 비트량)을 결정한다.
한편, 실시 예로서, 비트율 산출부(120)는 결정된 평균 비트량에 빈(bin) 수를 곱하여 CABAC의 추정 비트율을 구할 수 있다. 비트율 산출부(120)가 심볼 빈 수(bns) 및 평균 비트량으로부터 추정 비트율을 구하는 방법은 수학식 1로 표현될 수 있다.
Figure pat00003
한편, 비트율 산출부(120)의 룩-업 테이블 및 룩-업 테이블을 사용하여 평균 비트량을 결정하는 방법에 대한 구체적인 내용은 도 12 내지 도 14와 함께 후술될 것이다.
상기와 같은 구성에 따르면, 수행되는 연산을 단순화한 비트율 추정 장치 및 그것의 비트율 추정 방법이 제공된다. 또한, 비트율 추정 속도가 향상될 수 있다. 또한, 비트율 추정 장치 및 그것의 비트율 추정 방법의 정확도가 개선될 수 있다.
도 4는 본 발명에 따른 CABAC의 비트율 추정 방법을 예시적으로 나타내는 순서도이다. 도 4를 참조하면, 비트율 추정 방법은 S110 단계 내지 S150 단계를 포함한다. 이 중 S120 단계 내지 S140 단계는 구문 요소의 심볼 빈 수를 산출하는 단계에 해당한다.
S110 단계에서, 비트율 추정 장치(100, 도 3 참조)는 구문 요소를 수신한다. 실시 예로서, 구문 요소는 십진수 값일 수 있다. 실시 예로서, 구문 요소는 잔차 계수(Residual Coefficient) 또는 움직임 벡터 차(Motion Vector Difference, 이하 MVD라 한다)일 수 있다.
S120 단계에서, 비트율 추정 장치(100)는 구문 요소의 컨텍스트 그룹을 결정한다. 여기서, 컨텍스트 그룹은 H.264/AVC에 따른 CABAC의 컨텍스트 모델을 그룹화한 것으로서, 적어도 하나 이상의 컨텍스트 모델을 포함한다. 컨텍스트 그룹에 대한 구체적인 내용은 도 3에서 설명한 바와 동일하다.
실시 예로서, 구문 요소의 컨텍스트 그룹을 결정하는 방법은 구문 요소의 종류에 따라 달라질 수 있다. 예를 들어, 구문 요소가 잔차 계수 또는 MVD인 경우, 잔차 계수의 컨텍스트 그룹을 결정하는 방법(또는, 알고리즘)은 MVD의 컨텍스트 그룹을 결정하는 방법과 상이할 수 있다. 잔차 계수 또는 MVD의 컨텍스트 그룹을 결정하는 구체적인 실시 예는 도 5 내지 도 11과 함께 상세히 후술될 것이다.
S130 단계에서, 비트율 추정 장치(100)는 결정된 컨텍스트 그룹의 빈(bin) 수를 계산한다. 빈(bin) 수는 컨텍스트 그룹의 '0'비트의 수 또는 '1'비트의 수를 포함한다.
S140 단계에서, 비트율 추정 장치(100)는 S130 단계에서 계산된 컨텍스트 그룹의 빈(bin) 수와 동일한 컨텍스트 그룹의 정규화된 심볼 빈 수를 더한다. 더해진 결과는 심볼 빈 수(bns, 도 3 참조)로서 제공된다. 여기서, 정규화된 심볼 빈 수는 피드백 신호(feedback, 도 3 참조)로서 제공된 이전 구문 요소의 심볼 빈 수를 정규화한 값을 나타낸다.
CABAC의 비트율을 추정하기 위해서 비트율 추정 장치(100)는 이전 구문 요소의 정보를 피드백 신호로서 참조한다. 그런데, 본 발명은 실제 CABAC 장치와 달리 이전 구문 요소의 심볼 빈 수를 피드백 신호로 받는다. 따라서, 이전 구문 요소의 심볼 빈 수가 지나치게 크거나 작은 경우, 이전 구문 요소가 현재 구문 요소의 부호화에 미치는 영향이 과대 또는 과소하게 될 수 있다. 따라서, 이러한 단점을 최소화하기 위해서 가중치된(weighted) 신호가 피드백 신호로 제공되어야 한다. 본 발명에서는 가중화(weighting) 방법으로서, 이전 구문 요소의 심볼 빈 수를 정규화하여 심볼 빈 수가 가질 수 있는 최대 또는 최소 개수를 제한한다. 그리고 정규화된 심볼 빈 수를 피드백 신호로서 받는다.
여기서, 정규화의 실시 예로서는, '0'비트의 수가 0이 아니거나 '1'비트의 수가 0이 아니면, '0'비트의 수와 '1'비트의 수의 합이 미리 정해진 일정한 값이 되도록 정규화하는 방법을 포함한다.
여기서, 심볼 빈 수(bns)는 미리 설정된 컨텍스트 그룹들 각각에 대한 빈(bin) 수 정보를 포함한다. 예를 들어, 심볼 빈 수(bns)는 제 1 컨텍스트 그룹(ctg0)에 대한 심볼 빈 수(bns0), 제 2 컨텍스트 그룹(ctg1)에 대한 심볼 빈 수(bns1),제 3 컨텍스트 그룹(ctg2)에 대한 심볼 빈 수(bns2), 제 4 컨텍스트 그룹(ctg3)에 대한 심볼 빈 수(bns3)를 각각 포함한다. 각 심볼 빈 수들(bns0, bns1, bns2, bns3)은 대응되는 컨텍스트 그룹들(ctg0, ctg1, ctg2, ctg3)의 '0'비트의 수 또는 '1'비트의 수를 각각 포함할 수 있다.
마찬가지로, 피드백 신호(feedback)도 미리 설정된 컨텍스트 그룹들 각각에 대한 빈(bin) 수 정보를 포함한다.
실시 예로서, 비트율 추정 장치(100)는 컨텍스트 그룹의 '0'비트의 수와 피드백 신호(즉, 정규화된 심볼 빈 수)에 포함된 대응되는 컨텍스트 그룹의 '0'비트의 수를 더할 수 있다. 즉, 비트율 추정 장치(100)는 제 1 컨텍스트 그룹(ctg0)의 '0'비트 수와 피드백 신호의 제 1 컨텍스트 그룹(ctg0)의 '0'비트 수를 더한다. 그리고, 그 결과는 제 1 컨텍스트 그룹의 심볼 빈 수(bns0)의 '0'비트 수로서 출력된다.
마찬가지로, 비트율 추정 장치(100)는 컨텍스트 그룹의 '1'비트의 수와 피드백 신호(즉, 정규화된 심볼 빈 수)에 포함된 대응되는 컨텍스트 그룹의 '1'비트의 수를 더하고, 그 결과를 대응되는 컨텍스트 그룹의 심볼 빈 수의 '1'비트 수로서 출력한다.
S150 단계에서, 비트율 추정 장치(100)는 룩-업 테이블을 참조하여 심볼 빈 수(bns)에 대응되는 평균 비트량을 결정한다. 룩-업 테이블을 사용함으로써, 평균 비트량을 구하기 위한 로그(log) 연산 및 사칙 연산이 생략될 수 있다.
도 5는 본 발명의 제 1 실시 예에 따른 컨텍스트 그룹의 빈(bin) 수 산출 방법을 나타내는 순서도이다. 도 5를 참조하면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S210 단계 내지 S280 단계를 포함한다.
본 발명의 제 1 실시 예는 컨텍스트 모델링 방법 중 Significant_coefficient_flag에 대한 것이다. 본 실시 예에서, 구문 요소는 잔차 계수(Residual Coefficient)가 된다.
S210 단계에서, 비트율 추정 장치(100)는 구문 요소로서 잔차 계수를 수신한다. 실시 예로서, 잔차 계수는 4x4 블록 단위로 수신될 수 있다. 여기서, 잔차 계수는 H.264/AVC에 따른 CABAC에서 정의한 것과 동일하다.
S220 단계에서, 비트율 추정 장치(100)는 수신된 잔차 계수를 역순으로 읽는다. 예를 들어, 잔차 계수가 4x4 블록 단위로 수신되는 경우. 비트율 추정 장치(100)는 가장 나중에 수신된 계수를 먼저 읽고, 가장 먼저 수신된 계수를 나중에 읽는다. 실시 예로서, 비트율 추정 장치(100)는 잔차 계수들에 대한 이진화 동작을 수행할 수 있다. 이때, 0인 잔차 계수는 '0'으로, 0이 아닌 잔차 계수는 '1'로 이진화된다.
S230 단계에서, 비트율 추정 장치(100)는 읽은 잔차 계수가 제로 영역(Zero Region)에 위치하는지 판단한다. 제로 영역은 잔차 계수를 역순으로 읽었을 때, 마지막 계수로부터 0이 아닌 계수가 읽히기 직전까지의 영역을 의미한다. 잔차 계수가 제로 영역에 위치하면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S270 단계로 진행한다. 그렇지 않으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S240 단계로 진행한다.
S240 단계에서, 비트율 추정 장치(100)는 읽은 잔차 계수가 0이 아닌 수인지 판단한다. 잔차 계수가 0이 아닌 수라면 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S250 단계로 진행한다. 그렇지 않다면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S260 단계로 진행한다.
S250 단계에서, 비트율 추정 장치(100)는 읽은 잔차 계수의 위치에 따라 컨텍스트 그룹의 '1'비트(bnone)의 수를 계산한다. 예를 들어, 읽은 잔차 계수가 제 1 컨텍스트 그룹(ctg0)에 위치하면, 제 1 컨텍스트 그룹(ctg0)의 '1'비트의 수는 1만큼 가산된다. 또는, 읽은 잔차 계수가 제 2 컨텍스트 그룹(ctg1)에 위치하면, 제 2 컨텍스트 그룹(ctg1)의 '1'비트의 수는 1만큼 가산된다. 마찬가지로, 읽은 잔차 계수가 제 3 또는 제 4 컨텍스트 그룹(ctg2, ctg3)에 위치하면, 제 3 또는 제 4 컨텍스트 그룹(ctg2, ctg3)의 '1'비트의 수는 1만큼 가산된다.
읽은 잔차 계수의 위치에 따라 컨텍스트 그룹의 '1'비트의 수가 계산된 후, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S270 단계로 진행한다.
S260 단계에서, 비트율 추정 장치(100)는 읽은 잔차 계수의 위치에 따라 컨텍스트 그룹의 '0'비트(bnzero)의 수를 계산한다. 예를 들어, 읽은 잔차 계수가 제 1 컨텍스트 그룹(ctg0)에 위치하면, 제 1 컨텍스트 그룹(ctg0)의 '0'비트의 수는 1만큼 가산된다. 또는, 읽은 잔차 계수가 제 2 컨텍스트 그룹(ctg1)에 위치하면, 제 2 컨텍스트 그룹(ctg1)의 '0'비트의 수는 1만큼 가산된다. 마찬가지로, 읽은 잔차 계수가 제 3 또는 제 4 컨텍스트 그룹(ctg2, ctg3)에 위치하면, 제 3 또는 제 4 컨텍스트 그룹(ctg2, ctg3)의 '0'비트의 수는 1만큼 가산된다.
읽은 잔차 계수의 위치에 따라 컨텍스트 그룹의 '0'비트의 수가 계산된 후, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S270 단계로 진행한다.
S270 단계에서, 비트율 추정 장치(100)는 모든 잔차 계수들을 읽었는지 판단한다. 모든 잔차 계수들을 읽었으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S280 단계로 진행한다. 그렇지 않으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S220 단계로 돌아간다.
S280 단계에서, 비트율 추정 장치(100)는 최고 주파수 계수(Highest Frequency Coefficient, 또는 수신된 잔차 계수의 마지막 계수, 예를 들어 4x4 블록의 잔차 계수의 경우 16번째 계수가 최고 주파수 계수가 된다)에 따라, 컨텍스트 그룹의 빈(bin) 수를 조정한다. 구체적으로, 최고 주파수 계수가 0이 아닌 값이면, 마지막 컨텍스트 그룹(여기서는, 제 4 컨텍스트 그룹)의 '1'비트의 수를 1만큼 감산한다. 최고 주파수 계수가 0이면, 컨텍스트 그룹의 빈(bin) 수를 조정하지 않는다.
컨텍스트 그룹의 빈(bin) 수가 조정된 후, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 종료된다.
상기와 같은 구성에 따르면, Significant_coefficient_flag에 대해 컨텍스트 그룹을 결정하고, 컨텍스트 그룹의 빈(bin) 수를 산출하는 방법이 제공된다.
도 6은 본 발명의 제 1 실시 예에 대해 부가적으로 설명하는 도면이다. 도 6을 참조하면, 각 참조 박스들(110a, 110b)은 제 1 실시 예에 따른 구문 요소 및 이진화된 심볼들을 예시적으로 나타낸다.
구문 요소로서 잔차 계수가 제 1 참조 박스(110a)와 같이 입력된다. 이때, 뒤에서부터 6개의 계수는 제로 영역에 속한다. 그리고, 나머지 계수들은 0이 아닌 계수는 1로, 0인 계수는 0으로 이진화된다. 그리고, 이진화된 각 심볼들의 위치에 따라 컨텍스트 그룹의 '0'비트의 수 또는 '1'비트의 수가 계산된다. 예를 들어, 첫번 째 계수 '7'은 0이 아니므로 1로 이진화된다. 그리고, 그 이진화된 심볼은 제 1 컨텍스트 그룹(ctg0) 내에 위치하므로, 제 1 컨텍스트 그룹(ctg0)의 '1'비트의 수가 1만큼 가산된다. 나머지 계수들에 대해서도 동일한 과정의 이진화 및 빈(bin) 수 계산 동작이 수행된다.
도 7은 본 발명의 제 2 실시 예에 따른 컨텍스트 그룹의 빈(bin) 수 산출 방법을 나타내는 순서도이다. 도 7을 참조하면 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S310 단계 내지 S370 단계를 포함한다.
본 발명의 제 2 실시 예는 컨텍스트 모델링 방법 중 Last_Significant_coefficient_flag에 대한 것이다. 본 실시 예에서, 구문 요소는 잔차 계수(Residual Coefficient)가 된다.
S310 단계에서, 비트율 추정 장치(100)는 구문 요소로서 잔차 계수를 수신한다. 실시 예로서, 잔차 계수는 4x4 블록 단위로 수신될 수 있다. 여기서, 잔차 계수는 H.264/AVC에 따른 CABAC에서 정의한 것과 동일하다.
S320 단계에서, 비트율 추정 장치(100)는 수신된 잔차 계수를 역순으로 읽는다. 예를 들어, 잔차 계수가 4x4 블록 단위로 수신되는 경우. 비트율 추정 장치(100)는 가장 나중에 수신된 계수를 먼저 읽고, 가장 먼저 수신된 계수를 나중에 읽는다. 실시 예로서, 비트율 추정 장치(100)는 잔차 계수들에 대한 이진화 동작을 수행할 수 있다. 이때, 0이 아닌 잔차 계수 중 가장 먼저 읽히는 잔차 계수는 '1'로 나머지 잔차 계수는 '0'으로 이진화된다. 반면, 제로 영역에 속하는 잔차 계수에 대해는 이진화하지 않는다. Last_Significant_coefficient_flag의 부호화시 제로 영역의 잔차 계수는 부호화되지 않는다.
S330 단계에서, 비트율 추정 장치(100)는 읽은 잔차 계수가 0이 아닌 수인지 판단한다. 잔차 계수가 0이 아닌 수라면 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S340 단계로 진행한다. 그렇지 않다면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S350 단계로 진행한다.
S340 단계에서, 비트율 추정 장치(100)는 읽은 잔차 계수의 위치에 따라 참조 값을 결정한다. 여기서 참조 값은 각 컨텍스트 그룹의 빈(bin) 수를 계산하기 위해 참조되는 값으로서, 컨텍스트 그룹마다 하나의 참조 값이 할당된다. 여기서, 제 N 컨텍스트 그룹의 참조 값은 제 N 참조 값이라 한다.
한편, 비트율 추정 장치(100)는 0이 아닌 잔차 계수가 위치한 컨텍스트 그룹의 참조 값을 1만큼 증가시킨다. 그런데, 본 실시 예에서, 0이 아닌 수로 이진화되는(즉,'1'로 이진화되는) 잔차 계수는 하나이다. 따라서, 전체 컨텍스트 그룹 중 하나의 컨텍스트 그룹의 참조 값만이 1만큼 증가된다.
잔차 계수의 위치에 따라 참조 값이 결정되면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S350 단계로 진행한다.
S350 단계에서, 비트율 추정 장치(100)는 모든 잔차 계수들을 읽었는지 판단한다. 모든 잔차 계수들을 읽었으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S360 단계로 진행한다. 그렇지 않으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S320 단계로 돌아간다.
S360 단계에서, 비트율 추정 장치(100)는 컨텍스트 그룹의 참조 값에 따라 컨텍스트 그룹의 빈(bin) 수를 계산한다.
먼저, 모든 컨텍스트 그룹의 참조 값이 0이면, 각 컨텍스트 그룹의 '0'비트(bnzero) 수 및 '1'비트(bnone) 수는 모두 0으로 결정된다.
다음으로, 제 4 참조 값이 0이 아니면, 제 4 컨텍스트 그룹의 '1'비트 수는 1로 결정된다. 그리고, 제 4 컨텍스트 그룹의 '0'비트 수는 (제 4 참조 값 - 1)로 결정된다. 그리고, 나머지 컨텍스트 그룹은 '1'비트 수가 0으로 결정되고, '0'비트 수가 각 컨텍스트 그룹의 참조 값으로 결정된다(예를 들어, 제 2 컨텍스트 그룹의 '0'비트 수 = 제 2 참조 값).
다음으로, 제 3 참조 값이 0이 아니고, 제 4 참조 값이 0이면, 제 3 컨텍스트 그룹의 '1'비트 수는 1로 결정된다. 그리고, 제 3 컨텍스트 그룹의 '0'비트 수는 (제 3 참조 값 - 1)로 결정된다. 그리고, 제 4 컨텍스트 그룹의 '0'비트 수 및 '1'비트 수는 0으로 결정된다. 그리고, 제 1 및 제 2 컨텍스트 그룹은 '1'비트 수가 0으로 결정되고, '0'비트 수가 각 컨텍스트 그룹의 참조 값으로 결정된다.
다음으로, 제 2 참조 값이 0이 아니고, 제 3 및 제 4 참조 값이 0이면, 제 2 컨텍스트 그룹의 '1'비트 수는 1로 결정된다. 그리고, 제 2 컨텍스트 그룹의 '0'비트 수는 (제 2 참조 값 - 1)로 결정된다. 그리고, 제 3 및 제 4 컨텍스트 그룹의 '0'비트 수 및 '1'비트 수는 0으로 결정된다. 그리고, 제 1 컨텍스트 그룹은 '1'비트 수가 0으로 결정되고, '0'비트 수가 제 1 참조 값으로 결정된다.
마지막으로, 제 1 참조 값이 0이 아니고, 제 2, 제 3 및 제 4 참조 값이 0이면, 제 1 컨텍스트 그룹의 '1'비트 수는 1로 결정된다. 그리고, 제 1 컨텍스트 그룹의 '0'비트 수는 (제 1 참조 값 - 1)로 결정된다. 그리고, 제 2, 제 3 및 제 4 컨텍스트 그룹의 '0'비트 수 및 '1'비트 수는 0으로 결정된다.
위와 같은 방법에 의해 각 컨텍스트 그룹의 빈(bin) 수가 결정되면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S370 단계로 진행한다.
S370 단계에서, 비트율 추정 장치(100)는 최고 주파수 계수(Highest Frequency Coefficient)에 따라, 컨텍스트 그룹의 빈(bin) 수를 조정한다. 구체적으로, 최고 주파수 계수가 0이 아닌 값이면, 마지막 컨텍스트 그룹(여기서는, 제 4 컨텍스트 그룹)의 '1'비트의 수를 0으로 조정한다. 최고 주파수 계수가 0이면, 컨텍스트 그룹의 빈(bin) 수를 조정하지 않는다.
컨텍스트 그룹의 빈(bin) 수가 조정된 후, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 종료된다.
상기와 같은 구성에 따르면, Last_Significant_coefficient_flag에 대한 컨텍스트 그룹 결정 방법 및 컨텍스트 그룹의 빈(bin) 수 산출 방법이 제공된다.
도 8은 본 발명의 제 2 실시 예에 대해 부가적으로 설명하는 도면이다. 도 8을 참조하면, 각 참조 박스들(110c, 110d)은 제 2 실시 예에 따른 구문 요소 및 이진화된 심볼들을 예시적으로 나타낸다.
구문 요소로서 잔차 계수가 제 1 참조 박스(110c)와 같이 입력된다. 이때, 뒤에서부터 6개의 계수는 제로 영역에 속한다. Last_Significant_coefficient_flag의 부호화시 제로 영역의 잔차 계수들은 이진화되지 않는다. 그리고, 나머지 계수들 중 역순으로 읽었을 때, 가장 먼저 읽히는 잔차 계수는 '1'로, 나머지 계수는 '0'으로 이진화된다. 이진화된 결과는 제 2 참조 박스(110d)에 나타나있다.
그리고, '1' 이진화된 심볼의 위치에 따라 각 컨텍스트 그룹의 참조 값이 계산된다. 도 8에서, '1'로 이진화된 심볼은 제 4 컨텍스트 그룹(ctg3)에 위치한다. 따라서, 제 4 참조 값이 1만큼 증가될 것이다.
도 9는 본 발명의 제 3 실시 예에 따른 컨텍스트 그룹의 빈(bin) 수 산출 방법을 나타내는 순서도이다. 도 9를 참조하면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S410 단계 내지 S470 단계를 포함한다.
본 발명의 제 3 실시 예는 컨텍스트 모델링 방법 중 Significant_MVD_flag에 대한 것이다. 본 실시 예에서, 구문 요소는 MVD(Motion Vector Difference)가 된다.
S410 단계에서, 비트율 추정 장치(100)는 구문 요소로서 MVD를 수신한다. 실시 예로서, MVD는 4x4 블록 단위로 수신될 수 있다. 여기서, MVD는 H.264/AVC에 따른 CABAC에서 정의한 것과 동일하다.
S420 단계에서, 비트율 추정 장치(100)는 수신된 MVD 요소를 순차적으로 읽는다. MVD는 벡터에 대한 정보이므로, 각각 X좌표 및 Y좌표를 나타내는 한 쌍의 MVD 요소들이 하나의 벡터 정보를 나타낸다. 여기서는, 하나의 벡터 정보를 나타내는 한쌍의 MVD 요소들을 벡터 요소 쌍이라고 한다.
S430 단계에서, 비트율 추정 장치(100)는 벡터 요소 쌍을 이루는 MVD 요소들의 절대 값들을 구하고, 구해진 절대 값들을 합산한다. 합산된 값은 벡터 요소 쌍의 참조 값(AbsSum)으로 결정된다.
S440 단계에서, 비트율 추정 장치(100)는 MVD 요소가 0이 아닌 값인지 판단한다. MVD 요소가 0이 아닌 값이면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S450 단계로 진행한다. 그렇지 않으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S460 단계로 진행한다.
S450 단계에서, 비트율 추정 장치(100)는 MVD 요소가 포함되는 벡터 요소 쌍의 참조 값(AbsSum)에 따라 컨텍스트 그룹의 '1'비트 수를 계산한다. 본 실시 예에서, 컨텍스트 그룹의 수는 3개인 것으로 가정한다.
실시 예로서, 비트율 추정 장치(100)는 벡터 요소 쌍의 참조 값(AbsSum)과 제 1 또는 제 2 비교 값을 비교하여, 컨텍스트 그룹의 '1'비트의 수를 계산한다. 여기서, 제 1 및 제 2 비교 값은 미리 결정된 값이다. 구체적으로, 벡터 요소 쌍의 참조 값(AbsSum)이 제 1 비교 값보다 작거나 같으면(AbsSum ≤ 제 1 비교 값), 비트율 추정 장치(100)는 제 1 컨텍스트 그룹의 '1'비트 수를 1만큼 가산한다. 그리고, 벡터 요소 쌍의 참조 값(AbsSum)이 제 1 비교 값보다 크고 제 2 비교 값보다 작거나 같으면(제 1 비교 값 + 1 ≤AbsSum ≤ 제 2 비교 값), 비트율 추정 장치(100)는 제 2 컨텍스트 그룹의 '1'비트 수를 1만큼 가산한다. 그리고, 벡터 요소 쌍의 참조 값(AbsSum)이 제 2 비교 값보다 크면(제 2 비교 값 + 1 ≤ AbsSum), 비트율 추정 장치(100)는 제 3 컨텍스트 그룹의 '1'비트 수를 1만큼 가산한다.
컨텍스트 그룹의 '1'비트의 수를 계산하는 동작이 완료되면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S470 단계로 진행한다.
S460 단계에서, 비트율 추정 장치(100)는 MVD 요소가 포함되는 벡터 요소 쌍의 참조 값(AbsSum)에 따라 컨텍스트 그룹의 '0'비트 수를 계산한다.
실시 예로서, 비트율 추정 장치(100)는 벡터 요소 쌍의 참조 값(AbsSum)과 제 1 또는 제 2 비교 값을 비교하여, 컨텍스트 그룹의 '0'비트의 수를 계산한다. 여기서, 제 1 및 제 2 비교 값은 미리 결정된 값이다.
구체적으로, 벡터 요소 쌍의 참조 값(AbsSum)이 제 1 비교 값보다 작거나 같으면(AbsSum ≤ 제 1 비교 값), 비트율 추정 장치(100)는 제 1 컨텍스트 그룹의 '0'비트 수를 1만큼 가산한다.
다음으로, 벡터 요소 쌍의 참조 값(AbsSum)이 제 1 비교 값보다 크고 제 2 비교 값보다 작거나 같으면(제 1 비교 값 + 1 ≤ AbsSum ≤ 제 2 비교 값), 비트율 추정 장치(100)는 제 2 컨텍스트 그룹의 '0'비트 수를 1만큼 가산한다.
마지막으로, 벡터 요소 쌍의 참조 값(AbsSum)이 제 2 비교 값보다 크면(제 2 비교 값 + 1 ≤ AbsSum), 비트율 추정 장치(100)는 제 3 컨텍스트 그룹의 '0'비트 수를 1만큼 가산한다.
컨텍스트 그룹의 '0'비트의 수를 계산하는 동작이 완료되면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S470 단계로 진행한다.
S470 단계에서, 비트율 추정 장치(100)는 모든 MVD 요소를 읽었는지 판단한다. 읽지 않은 MVD 요소가 있으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S420 단계로 진행한다. 그렇지 않으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 종료한다.
상기와 같은 구성에 따르면, Significant_MVD_flag에 대한 컨텍스트 그룹 결정 방법 및 컨텍스트 그룹의 빈(bin) 수 산출 방법이 제공된다.
도 10은 본 발명의 제 4 실시 예에 따른 심볼 빈(bin) 수 산출 방법을 나타내는 순서도이다. 도 10을 참조하면 심볼 빈(bin) 수 산출 방법은 S510 단계 내지 S560 단계를 포함한다.
본 발명의 제 4 실시 예는 컨텍스트 모델링 방법 중 MVD_absolute_level에 대한 것이다. 본 실시 예에서, 구문 요소는 MVD(Motion Vector Difference)가 된다.
S510 단계에서, 비트율 추정 장치(100)는 구문 요소로서 MVD를 수신한다. 실시 예로서, MVD는 4x4 블록 단위로 수신될 수 있다. 여기서, MVD는 H.264/AVC에 따른 CABAC에서 정의한 것과 동일하다.
S520 단계에서, 비트율 추정 장치(100)는 수신된 MVD 요소를 순차적으로 읽는다.
S530 단계에서, 비트율 추정 장치(100)는 MVD 요소의 절대 값들을 구한다. 구해진 절대 값은 MVD 요소의 참조 값(Abs)으로 결정된다.
S540 및 S550 단계에서, 비트율 추정 장치(100)는 참조 값(Abs)에 따라 컨텍스트 그룹의 '1'비트의 수 또는 '0'비트의 수를 계산한다. 본 실시 예에서, 컨텍스트 그룹의 수는 3개인 것으로 가정한다. 한편, 여기서 참조 값(Abs)은 1이상의 자연수로서, 참조 값(Abs)이 0인 경우는 컨텍스트 그룹의 빈(bin) 수 산출 방법에서 배제된다.
구체적으로 S540 단계에서, 비트율 추정 장치(100)는 참조 값(Abs)과 제 1 ,제 2 또는 제 3 비교 값을 비교한다. 여기서, 제 1 , 제 2 및 제 3 비교 값은 미리 결정된 값이다. 그리고, S550 단계에서, 비트율 추정 장치(100)는 비교 결과에 따라 컨텍스트 그룹의 '1'비트의 수 또는 '0'비트의 수를 계산한다.
실시 예로서, 참조 값(Abs)이 제 1 비교 값보다 작거나 같으면(1 ≤ Abs ≤ 제 1 비교 값), 비트율 추정 장치(100)는 제 1 컨텍스트 그룹의 '0'비트 수를 1만큼 가산하고, '1'비트 수를 (Abs - 1)만큼 가산한다.
다음으로, 참조 값(Abs)이 제 1 비교 값보다 크고 제 2 비교 값보다 작거나 같으면(제 1 비교 값 + 1 ≤ Abs ≤ 제 2 비교 값), 비트율 추정 장치(100)는 제 1 컨텍스트 그룹의 '1'비트 수를 제 1 비교 값만큼 가산한다. 그리고, 비트율 추정 장치(100)는 제 2 컨텍스트 그룹의 '0'비트 수를 1만큼 가산하고, '1'비트 수를 (Abs - 제 1 비교 값 - 1)만큼 가산한다.
다음으로, 참조 값(Abs)이 제 2 비교 값보다 크고 제 3 비교 값보다 작거나 같으면(제 2 비교 값 + 1 ≤ Abs ≤ 제 3 비교 값), 비트율 추정 장치(100)는 제 1 컨텍스트 그룹의 '1'비트 수를 제 1 비교 값만큼 가산한다. 그리고, 비트율 추정 장치(100)는 제 2 컨텍스트 그룹의 '1'비트 수를 (제 2 비교 값 - 제 1 비교 값)만큼 가산한다. 그리고, 비트율 추정 장치(100)는 제 3 컨텍스트 그룹의 '0'비트 수를 1만큼 가산하고, '1'비트 수를 (Abs - 제 2 비교 값 - 1)만큼 가산한다.
마지막으로, 참조 값(Abs)이 제 3 비교 값보다 크면(제 3 비교 값 + 1 ≤ Abs), 비트율 추정 장치(100)는 제 1 컨텍스트 그룹의 '1'비트 수를 제 1 비교 값만큼 가산한다. 그리고, 비트율 추정 장치(100)는 제 2 컨텍스트 그룹의 '1'비트 수를 (제 2 비교 값 - 제 1 비교 값)만큼 가산한다. 그리고, 비트율 추정 장치(100)는 제 3 컨텍스트 그룹의 '1'비트 수를 (제 3 비교 값 - 제 2 비교 값)만큼 가산한다.
컨텍스트 그룹의 비트의 수를 계산하는 동작이 완료되면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S560 단계로 진행한다.
S560 단계에서, 비트율 추정 장치(100)는 모든 MVD 요소를 읽었는지 판단한다. 읽지 않은 MVD 요소가 있으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 S520 단계로 진행한다. 그렇지 않으면, 컨텍스트 그룹의 빈(bin) 수 산출 방법은 종료한다.
상기와 같은 구성에 따르면, MVD_absolute_level에 대한 컨텍스트 그룹 결정 방법 및 컨텍스트 그룹의 빈(bin) 수 산출 방법이 제공된다.
도 11은 본 발명의 제 3 또는 제 4 실시 예에 따른 절대 값(Abs) 또는 절대 값의 합(AbsSum)을 예시적으로 나타내는 도면이다. 도 11을 참조하면, 각 참조 박스들(110e, 110f, 110g)은 제 3 및 제 4 실시 예에 따른 구문 요소 및 참조 값들(Abs, AbsSum)을 예시적으로 나타낸다.
제 1 참조 박스(110e)는 구문 요소로서 MVD 요소들을 예시적으로 나타낸다. 이때, 하나의 벡터 정보를 나타내는 두 개의 MVD 요소들이 하나의 쌍으로 간주될 수 있다. 예를 들어, 가장 앞에 위치한 두 MVD 요소들(7, -6)은 하나의 벡터 정보에 대한 X축 값 및 Y축 값으로서 하나의 벡터 요소 쌍으로 간주될 수 있다.
제 2 참조 박스(110f)는 MVD 요소들의 절대 값을 예시적으로 나타낸다. 절대 값(Abs)은 제 4 실시 예의 참조 값으로서 사용된다.
제 3 참조 박스(110g)는 하나의 벡터 요소 쌍에 대한 절대 값의 합을 예시적으로 나타낸다. 예를 들어, 첫번 째 벡터 요소 쌍(7,-6)에 대한 절대 값의 합(AbsSum)은 각각의 절대 값 7, 6을 합한 13이 된다. 절대 값의 합(AbsSum)은 제 3 실시 예의 참조 값으로서 사용된다.
참조 값들(Abs, AbsSum)에 대한 다른 구체적인 내용은 앞에서 설명한 바와 동일하다.
도 12는 도 3에 도시된 비트율 산출부(120)를 구체적으로 나타내는 블록도이다. 도 12를 참조하면, 비트율 산출부(120)는 제 1 룩-업 테이블(121) 및 제 2 룩-업 테이블(122)을 포함한다.
제 1 룩-업 테이블(121)은 심볼 빈 수(bns)를 정규화하기 위한 테이블이다. 제 2 룩-업 테이블(121)은 심볼 빈 수(bns)로부터 CABAC의 평균 비트량을 결정하기 위한 테이블이다.
비트율 산출부(120)는 제 1 룩-업 테이블(121)을 이용하여 입력되는 심볼 빈 수(bns)를 정규화하고, 그 결과를 피드백 신호로서 빈 수 계산부(110)에 제공한다. 심볼 빈 수(bns)를 정규화하는 이유는 도 3에서 설명한 바와 동일하다. 한편, 제공되는 피드백 신호는 다음 구문 요소에 대한 심볼 빈 수를 계산하기 위해 사용된다.
그리고, 비트율 산출부(120)는 제 2 룩-업 테이블(121)을 이용하여 심볼 빈 수(bns)의 '0'비트의 수 및 '1'비트의 수로부터 CABAC의 '0'비트의 평균 비트량 및 '1'비트의 평균 비트량을 결정한다.
제 1 및 제 2 룩-업 테이블에 대한 구체적인 내용은 도 13 및 도 14와 함께 후술될 것이다.
그리고, 비트율 산출부(120)는 결정된 평균 비트량에 빈(bin) 수를 곱하여 CABAC의 추정 비트율을 구할 수 있다. 비트율 산출부(120)가 심볼 빈 수(bns) 및 평균 비트량으로부터 추정 비트율을 구하는 방법은 수학식 1에서 설명한 바와 동일하다.
위와 같은 구성에 따르면, 비트율 산출부(120)는 룩-업 테이블을 이용하여 평균 비트량을 결정한다. 따라서, 로그 연산 및 사칙 연산의 사용 빈도를 최소화할 수 있다. 그 결과, 비트율 추정 장치 및 방법의 복잡도가 감소하고,동작 속도가 향상될 수 있다.
도 13은 도 12에 도시된 제 1 룩-업 테이블(121)을 예시적으로 나타내는 도면이다. 도 13을 참조하면, 제 1 룩-업 테이블(121)은 '0'비트 필드(121a), '1'비트 필드(121b) 및 정규화 필드(121c)를 포함한다.
'0'비트 필드(121a)는 심볼 빈 수(bns)의 '0'비트의 수를 나타낸다.
'1'비트 필드(121b)는 심볼 빈 수(bns)의 '1'비트의 수를 나타낸다.
정규화 필드(121c)는 심볼 빈 수(bns)의 '0' 비트 수 및 '1'비트 수에 따라 결정되는 정규화된 '0'비트 수 및 '1'비트 수를 나타낸다.
비트율 산출부(120)는 심볼 빈 수(bns)의 '0'비트 수 및 '1'비트 수에 따라 대응되는 정규화 빈(bin) 수를 결정한다. 예를 들면, 심볼 빈 수(bns)의 '0'비트 수가 1이고 '1'비트 수가 2이면, 제 1 룩-업 테이블(121)에 의해 정규화 필드(121c)의 3행 2열 값인 (13,7)이 도출된다. 이것은 정규화된 '1'비트 수가 13이고, 정규화된 '0'비트 수가 7임을 의미한다.
도 13에서 정규화 필드(121c)는 심볼 빈 수(bns)의 '0'비트 및 '1'비트 수와 정규화된 '0' 또는 '1' 비트 수가 비례하되, 정규화된 '1'비트 수 및 '0'비트 수의 합이 20이 되도록 정의된다. 예를 들어, 심볼 빈 수(bns)의 '0'비트 및 '1'비트의 수가 동일하면, 대응되는 정규화 필드 값은 (10,10)으로 정의된다. 그리고, 심볼 빈 수(bns)의 '0'비트의 수가 0이면, 대응되는 정규화 필드 값은 (20,0)으로 정의된다. 반대로, 심볼 빈 수(bns)의 '1'비트의 수가 0이면, 대응되는 정규화 필드 값은 (0,20)으로 정의된다. 단, 심볼 비트 수(bns)의 '0'비트 및 '1'비트의 수가 모두 0인 경우에는 (0,0)으로 정규화된다.
실시 예로서, 도 13에서는 '0'비트(bnzero) 또는 '1'비트(bnone)의 수가 40까지로 제한되어 있다. 이 경우, 만약 '0'비트 또는 '1'비트의 수가 40을 초과하면, 초과한 수는 40으로 간주된다. 즉, '0'비트의 수(또는 '1'비트의 수)의 최대 값은 40이다. 또한, 여기서 40이라는 값은 룩-업 테이블(121) 생성의 편의를 위해 미리 설정된 수이다. 한편, 여기서 40이라는 값은 예시적인 것으로서, 가변될 수 있는 수이다.
상기와 같은 구성에 따르면, 심볼 빈 수(bns)를 정규화하는 룩-업 테이블이 제공된다.
도 14는 도 12에 도시된 제 2 룩-업 테이블(122)을 예시적으로 나타내는 도면이다. 도 14를 참조하면, 도 14를 참조하면, 제 2 룩-업 테이블(122)은 '0'비트 필드(122a), '1'비트 필드(122b) 및 평균 비트량 필드(122c)를 포함한다.
'0'비트 필드(122a)는 심볼 빈 수(bns)의 '0'비트의 수를 나타낸다.
'1'비트 필드(122b)는 심볼 빈 수(bns)의 '1'비트의 수를 나타낸다.
평균 비트량 필드(122c)는 심볼 빈 수(bns)의 '0' 비트 수 및 '1'비트 수에 따라 결정되는 '0'비트 수 및 '1'비트 수의 평균 비트량을 나타낸다.
비트율 산출부(120)는 제 2 룩-업 테이블(122)을 참조하여, 심볼 빈 수(bns)의 '0'비트 수 및 '1'비트 수에 따라 대응되는 평균 비트량을 결정한다. 예를 들면, 심볼 빈 수(bns)의 '0'비트 수가 1이고 '1'비트 수가 2이면, 제 2 룩-업 테이블(122)에 의해 평균 비트량 필드(122c)의 3행 2열 값인 (1.515,0.6217)이 도출된다. 이것은 '1'비트의 평균 비트량이 1.515이고, '0'비트의 평균 비트량이 0.6217임을 의미한다.
한편, 평균 비트량 필드(122c)는 수학식 2에 의해 정의된다.
Figure pat00004
여기서, log는 진수가 10인 상용로그이다.
한편, 수학식 2에 사용된 '0'비트의 확률은 수학식 3에 의해 '0'비트의 수 및 '1'비트의 수로부터 계산될 수 있다.
Figure pat00005
이하에서는, 수학식 2 및 3을 참조하여, 예시적으로 '0'비트 수 = 2이고 '1'비트 수 = 1인 경우에 대응되는 평균 비트량을 구해본다.
수학식 3에 따르면, '0'비트의 확률 = 2/(2+1) = 0.667이 된다. 그리고, '0'비트 수, '1'비트 수 및 '0'비트의 확률을 수학식 2에 대입하면, 수학식 4와 같은 결과를 얻는다.
Figure pat00006
따라서, 대응되는 평균 비트량 필드(122c)의 값인 3행 2열 값은 (1.515,0.6217)로 정의된다. 설정된 모든 '0'비트 수 및 '1'비트 수에 대해 동일한 방법으로 대응되는 평균 비트량 값을 구하면 도 14의 평균 비트량 필드(122c)가 정의될 수 있다.
실시 예로서, 도 14에서는 '0'비트(bnzero) 또는 '1'비트(bnone)의 수가 20까지로 제한되어 있다. 이 경우, 만약 '0'비트 또는 '1'비트의 수가 20을 초과하면, 초과한 수는 20으로 간주된다. 즉, '0'비트의 수(또는 '1'비트의 수)의 최대 값은 20이다. 또한, 여기서 20이라는 값은 룩-업 테이블(122) 생성의 편의를 위해 미리 설정된 수이다. 한편, 여기서 20이라는 값은 예시적인 것으로서, 가변될 수 있는 수이다.
상기와 같은 구성에 따르면, 심볼 빈 수(bns)로부터 '0'비트 및 '1'비트의 평균 비트량을 결정하는 룩-업 테이블이 제공된다.
이상에서 설명한 바에 따르면, 수행되는 연산을 단순화한 비트율 추정 장치 및 그것의 비트율 추정 방법이 제공된다. 또한, 비트율 추정 속도가 향상될 수 있다. 또한, 비트율 추정 장치 및 그것의 비트율 추정 방법의 정확도가 개선될 수 있다.
도 15는 본 발명의 제 5 실시 예에 따른 CABAC 비트율 추정 장치를 나타내는 블록도이다. 도 15를 참조하면, CABAC 비트율 추정 장치는 이진화기(210), 컨텍스트 모델러(220), 확률 계산기(230) 및 비트율 계산기(240)를 포함한다.
이진화기(210) 및 컨텍스트 모델러(220)의 구체적인 구성 및 동작은 도 2에서 설명한 이진화기(21) 및 컨텍스트 모델러(22)와 동일하다.
확률 계산기(230)는 컨텍스트 모델러(22)로부터 컨텍스트 모델링된 빈(bin) 및 빈(bin)의 비트 확률을 수신하고, 통계 파라미터(PM)를 계산한다. 이때, 통계 파라미터(PM)는 컨텍스트 모델의 인터벌(interval), 비트 확률('0'비트의 확률 또는 '1'비트의 확률), 최대 확률 심볼(Most Probable Symbol) 또는 최소 확률 심볼(Least Probable Symbol)을 포함할 수 있다. 계산된 통계 파라미터(PM)는 비트율 계산기(240)에 제공된다.
비트율 계산기(240)는 통계 파라미터(PM)로부터 컨텍스트 모델링된 빈(bin)이 LPS일 경우 LPS 룩-업 테이블을 사용하여 비트율을 추정한다. 반면에, 비트율 계산기(240)는 통계 파라미터(PM)로부터 컨텍스트 모델링된 빈(bin)이 MPS일 경우 MPS 룩-업 테이블을 사용하여 비트율을 추정한다. 구체적으로, 수신된 통계 파라미터(PM)와 대응되는 매핑 값을 룩-업 테이블에서 찾고, 찾아진 매핑 값을 비트율로 추정한다.
한편, 룩-업 테이블은 수학식 5에 의해 정의된다.
Figure pat00007
여기서, m은 인터벌의 비트 크기이고, n은 심볼의 진수(antilogarithm)이고, i는 인터벌이다. 한편, └ A ┘는 A보다 크지 않은 최대 정수를 나타낸다.
한편, 인터벌(i)는 H.264/AVC에 따른 CABAC의 표준에 정의된 LPS의 인터벌 테이블을 참조하여 얻어질 수 있다.
LPS 룩-업 테이블, MPS 룩-업 테이블 및 인터벌 테이블에 대한 구체적인 내용은 도 16 내지 도 18에서 후술될 것이다.
상기와 같은 구성에 따르면, 본 실시 예에 따른 비트율 계산기(240)는 룩-업 테이블을 이용하여 CABAC의 비트율을 추정한다. 따라서, 로그 연산 및 사칙 연산의 사용 빈도를 최소화할 수 있다. 그 결과, 비트율 추정 장치 및 방법의 복잡도가 감소하고,동작 속도가 향상될 수 있다.
또한, 본 실시 예에 따른 비트율 계산기(240)는 LPS 룩-업 테이블 및 MPS 룩업 테이블을 정의하기 위해 H.264/AVC에 따른 CABAC의 표준에 정의된 LPS 인터벌 테이블을 참조한다. 따라서, 룩-업 테이블에 CABAC의 특성이 반영되고, 비트율 계산기(240)가 추정한 비트율도 CABAC의 특성을 따르는 장점을 갖는다.
도 16은 H.264/AVC 표준을 따르는 CABAC의 인터벌 테이블(241)을 예시적으로 나타내는 도면이다. 도 16을 참조하면, 인터벌 테이블(241)은 인터벌 레인지 필드(241a), 확률 상태 인덱스 필드(241b) 및 인터벌 필드(241c)를 포함한다.
도 16에서는 CABAC의 인터벌 테이블 중 LPS의 인터벌 테이블에 대해서 설명한다.
인터벌 레인지 필드(241a)는 이전 심볼의 인터벌을 복수의 범위로 분류한 인터벌 레인지를 나타내는 필드이다.
확률 상태 인덱스 필드(241b)는 LPS의 비트 확률에 대응되는 확률 상태 인덱스를 나타내는 필드이다. 이때, 비트 확률이 클수록 대응되는 확률 상태 인덱스 값도 크다.
인터벌 필드(241c)는 인터벌 레인지 값 및 확률 상태 인덱스 값에 대응되는 인터벌 값을 나타내는 필드이다. 예를 들어, 인터벌 레인지가 1이고 확률 상태 인덱스가 3이면, 인터벌 필드(241c)의 4행 2열 값인 150이 대응되는 인터벌 값이 된다.
인터벌 테이블(241), 인터벌 레인지 필드(241a), 확률 상태 인덱스 필드(241b) 및 인터벌 필드(241c)은 H.264/AVC 표준을 따르는 CABAC이 표준에 정의된 것으로서, 그에 대한 구체적인 설명은 생략한다.
도 17은 본 발명의 제 5 실시 예에 따른 비트율 추정 방법을 위한 룩-업 테이블(242)을 예시적으로 나타내는 도면이다. 도 17을 참조하면, 룩-업 테이블(242)은 인터벌 레인지 필드(242a), 확률 상태 인덱스 필드(242b) 및 비트율 필드(242c)를 포함한다.
인터벌 레인지 필드(242a) 및 확률 상태 인덱스 필드(242b)는 도 16에서 설명한 인터벌 레인지 필드(241a) 및 확률 상태 인덱스 필드(241b)와 동일하다.
비트율 필드(242c)는 도 16의 인터벌 필드(241c) 및 수학식 5에 의해 정의된다. 구체적으로, 수학식 5에서, m에 인터벌 비트 크기를 대입하고, n에 심볼의 진수(antilogarithm)를 대입하고, i에 인터벌 필드(241c) 값을 대입하여 구해진 비트율에 의해 비트율 필드(242c)가 정의된다.
이하에서는 비트율 필드(242c) 값을 구하는 방법에 대해 예를 들어 설명한다.
룩-업 테이블에서 인터벌 레인지 값이 1이고 확률 상태 인덱스 필드 값이 3인 경우의 비트율 필드 값을 구한다고 가정하자. 이때, 인터벌 레인지 값은 이전 심볼의 인터벌 값으로부터 구해질 수 있고, 확률 상태 인덱스 필드 값 및 LPS 값은 통계 파라미터(PM, 도 15 참조)로부터 구해질 수 있다.
H.264/AVC에 따른 CABAC의 표준에서, 인터벌은 9비트로 표현되는 값이고, 심볼은 이진화된 값으로 정의된다. 따라서, 수학식 5에서 m = 9이고, n = 2가 된다. 그리고, 인터벌은 도 16의 인터벌 필드(241c)로부터 얻어진다. 도 16을 참조하면, (인터벌 레인지 값 = 1) 및 (확률 상태 인덱스 필드 값 = 3)에 대응되는 인터벌 값은 150이다. 따라서, 수학식 5에서 i = 150이 된다.
위 값들을 수학식 5에 대입하여 구하면,
비트율 = 9 - 1 - └ log2(150) ┘ = 9 - 1 - 7 = 1이 된다. 따라서, 비트율 필드(242c)의 대응되는 값(4행 2열의 값)은 1로 정의된다.
동일한 방법으로 인터벌 레인지 필드(242a) 및 확률 상태 인덱스 필드(242b)에 대해 대응되는 값을 구하면, 도 17의 룩-업 테이블(242)가 정의된다.
상기 설명된 방법으로 구해진 도 17의 룩-업 테이블(242)의 전체적인 구성은 표2와 같다.
Figure pat00008
상기와 같은 표는 컨텍스트 모델링된 빈(bin)이 LPS일 경우의 비트율을 구하기 위한 룩-업 테이블이다.
다음으로, 빈(bin)이 MPS일 경우의 룩-업 테이블에 대해서 설명한다. H.264/AVC의 CABAC은 MPS의 인터벌 테이블을 포함하지 않는다. 따라서, MPS 룩-업 테이블은 MPS의 인터벌 테이블을 이용하여 얻어진다.
구체적으로, MPS의 인터벌은 이전(previous) LPS의 인터벌에서 현재 LPS의 인터벌을 뺀 것이다. 그렇게 구해진 MPS의 인터벌을 수학식 5의 i에 대입하면, MPS의 비트율이 산출된다.
예를 들어, LPS의 이전 양자화된 인터벌(previous quantized interval)이 2이고, 확률 상태 인덱스(Probability state index)가 2라고 가정하자. LPS의 이전 양자화된 인터벌이 0이면 원래 범위는 256~319이고, LPS의 이전 양자화된 인터벌이 1이면, 원래 범위는 320~383이고, LPS의 이전 양자화된 인터벌이 2이면, 원래 범위는 384~447이고, LPS의 이전 양자화된 인터벌이 3이면, 원래 범위는 448~511이다. 여기서는, LPS의 이전 양자화된 인터벌이 2이므로, 원래 LPS의 인터벌은 384~447 범위의 값이 된다. 또한, 도 16을 참조하면, 확률 상태 인덱스가 2이고, LPS의 이전 양자화된 인터벌이 2일 때, 현재 LPS 인터벌은 187이 된다. 따라서, MPS의 인터벌 범위는 197~260이 된다. 이때, 그 중간 값인 228.5를 수학식 5에 대입하면 MPS의 비트율은 1로 산출된다.
상기와 같은 방법으로 생성된 MPS 룩-업 테이블은 표 3과 같이 나타낼 수 있다.
Figure pat00009
상기와 같은 구성에 따르면, 제 5 실시 예에서 비트율을 구하기 위해 사용되는 룩-업 테이블에 제공된다.
도 18은 본 발명의 제 6 실시 예에 따른 비트율 추정 방법을 위한 LPS 룩-업 테이블(243)을 예시적으로 나타내는 도면이다. 도 18을 참조하면, 룩-업 테이블(243)은 인터벌 레인지 필드(243a), 확률 상태 필드(243b) 및 비트율 필드(243c)를 포함한다.
본 실시 예에서, 룩-업 테이블(243)은 이전 심볼의 인터벌 레인지 값을 고려하지 않고, 정의된다. 따라서, 인터벌 레인지 필드(243a)는 생략될 수 있다.
확률 상태 필드(243b)는 도 17의 확률 상태 필드(242b)와 동일하다.
비트율 필드(243c)는 도 17의 비트율 필드(242c)보다 단순화된다. 구체적으로, 도 17의 비트율 필드(242c)의 동일한 행에 위치한 비트율 값들의 평균을 취하여, 그 결과를 그 행의 비트율 값으로 정의한다. 예를 들면, 도 17의 비트율 필드(242c)의 4행에 위치한 비트율 값들은 차례로 2, 1, 1, 1이 된다. 본 실시 예에서는 이 값들의 평균([2+1+1+1]/4=1.25)을 구하고, 그 값을 비트율 필드(243c)의 4행 값으로 정의한다. 그리고, 도 17의 비트율 필드(242c)의 모든 행에 대해 동일한 과정을 수행하면, 본 실시 예에 따른 비트율 필드(243c)가 정의될 수 있다.
MPS 룩-업 테이블도 상기 실시 예와 동일한 방법으로 얻어질 수 있다.
본 실시 예에 따른 룩-업 테이블(243)은 확률 상태 인덱스 값만을 참조하여 비트율을 추정한다. 따라서, 비트율을 추정하는 연산이 보다 간단해질 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예를 들어 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한 각 실시 예는 여러 가지 형태로 변형될 수 있다. 또한, 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구범위뿐만 아니라 이 발명의 특허 청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (15)

  1. 부호화 장치의 비트율을 추정하는 비트율 추정 방법에 있어서,
    구문 요소(syntax element)를 수신하는 단계;
    상기 구문 요소의 심볼 빈(bin) 수를 산출하는 단계; 및
    룩-업 테이블(Look-Up Table)을 사용하여, 상기 심볼 빈 수에 대응되는 비트량을 결정하는 단계를 포함하는 비트율 추정 방법.
  2. 제 1 항에 있어서,
    상기 심볼 빈 수를 산출하는 단계는
    상기 구문 요소의 컨텍스트 그룹을 결정하는 단계; 및
    상기 컨텍스트 그룹의 빈 수를 산출하는 단계를 포함하고,
    상기 컨텍스트 그룹은 문맥-기반 적응적 이진 산술 부호화(Context-Based Adaptive Binary Arithmetic Coding)의 적어도 하나 이상의 컨텍스트 모델을 포함하는 비트율 추정 방법.
  3. 제 2 항에 있어서,
    상기 심볼 빈 수를 산출하는 단계는,
    상기 계산된 컨텍스트 그룹의 빈 수와 피드백 신호의 빈 수를 더하는 단계를 더 포함하는 비트율 추정 방법.
  4. 제 3 항에 있어서,
    상기 피드백 신호의 빈 수는 정규화된 수인 비트율 추정 방법.
  5. 제 2 항에 있어서,
    상기 컨텍스트 그룹을 결정하는 단계는,
    상기 구문 요소에 대응되는 이진 부호를 결정하는 단계; 및
    상기 이진 부호의 값 또는 상기 이진 부호의 위치에 따라 상기 구문 요소의 컨텍스트 그룹을 결정하는 단계를 포함하는 비트율 추정 방법.
  6. 제 5 항에 있어서,
    상기 구문 요소는 잔차 계수(Residual Coefficient)인 비트율 추정 방법.
  7. 제 2 항에 있어서,
    상기 컨텍스트 그룹을 결정하는 단계는,
    상기 구문 요소의 절대 값에 따라 제 1 값을 결정하는 단계; 및
    상기 제 1 값과 미리 결정된 제 2 값을 비교하여 상기 구문 요소의 컨텍스트 그룹을 결정하는 단계를 포함하는 비트율 추정 방법.
  8. 제 7 항에 있어서,
    상기 구문 요소는 움직임 벡터 차(Motion Vector Difference)인 비트율 추정 방법.
  9. 제 1 항에 있어서,
    상기 룩-업 테이블은 제 1 수학식('0'비트의 평균 비트량 = log('0'비트의 확률)/log0.5) 또는 제 2 수학식('1'비트의 평균 비트량 = log(1 - '0'비트의 확률)/log0.5)에 의해 정의되는 비트율 추정 방법.
  10. 제 9 항에 있어서,
    상기 '0'비트의 확률은 제 3 수학식('0'비트의 확률 = '0'비트의 수/('0'비트의 수 + '1'비트의 수))에 의해 결정되는 비트율 추정 방법.
  11. 제 1 항에 있어서,
    상기 부호화 장치는 문맥-기반 적응적 이진 산술 부호화(Context-Based Adaptive Binary Arithmetic) 장치인 비트율 추정 방법.
  12. 문맥-기반 적응적 이진 산술 부호화(Context-Based Adaptive Binary Arithmetic, 이하 CABAC이라 함) 장치의 비트율을 추정하는 비트율 추정 방법에 있어서,
    구문 요소(syntax element)를 수신하는 단계;
    상기 구문 요소의 컨텍스트 모델을 선택하는 단계;
    상기 컨텍스트 모델을 참조하여 상기 컨텍스트 모델의 통계 파라미터를 산출하는 단계; 및
    룩-업 테이블(Look-Up Table, LUT)을 사용하여, 상기 통계 파라미터와 대응되는 비트율을 제공하는 단계를 포함하는 비트율 추정 방법.
  13. 제 12 항에 있어서,
    상기 통계 파라미터는 상기 컨텍스트 모델의 인터벌(interval), 비트 확률, 최대 확률 심볼(Most Probable Symbol) 또는 최소 확률 심볼(Least Probable Symbol)을 포함하는 비트율 추정 방법.
  14. 제 13 항에 있어서,
    상기 룩-업 테이블은 수학식(
    Figure pat00010
    )을 참조하여 정의되고,
    상기 i는 인터벌, 상기 m은 인터벌의 비트 크기, 상기 n은 심볼의 진수(antilogarithm)를 나타내는 비트율 추정 방법.
  15. 제 14 항에 있어서,
    상기 룩-업 테이블은 H.264/AVC 표준을 따르는 CABAC의 인터벌 테이블을 참조하여 정의되는 비트율 추정 방법.
KR1020120045610A 2012-04-30 2012-04-30 비트율 추정 장치 및 그것의 비트율 추정 방법 KR20130122353A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120045610A KR20130122353A (ko) 2012-04-30 2012-04-30 비트율 추정 장치 및 그것의 비트율 추정 방법
US13/796,293 US20130287120A1 (en) 2012-04-30 2013-03-12 Bitrate estimation devices and bitrate estimation methods thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120045610A KR20130122353A (ko) 2012-04-30 2012-04-30 비트율 추정 장치 및 그것의 비트율 추정 방법

Publications (1)

Publication Number Publication Date
KR20130122353A true KR20130122353A (ko) 2013-11-07

Family

ID=49477267

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120045610A KR20130122353A (ko) 2012-04-30 2012-04-30 비트율 추정 장치 및 그것의 비트율 추정 방법

Country Status (2)

Country Link
US (1) US20130287120A1 (ko)
KR (1) KR20130122353A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016072744A1 (ko) * 2014-11-04 2016-05-12 삼성전자 주식회사 이진 산술 부호화/복호화를 위한 확률 갱신 방법 및 이를 이용한 엔트로피 부호화/복호화 장치
CN108063945A (zh) * 2017-12-21 2018-05-22 西北工业大学 一种基于元素类别的线性码率估计方法
WO2020141856A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6271756B2 (ja) 2013-12-02 2018-01-31 ドルビー・インターナショナル・アーベー ビットレート信号伝達の方法および該方法を可能にするビットストリーム・フォーマット
PL411574A1 (pl) * 2015-03-16 2016-09-26 Politechnika Poznańska System i sposób określania kosztu zastosowania określonego typu kodowania w koderze wizyjnym
US10757412B2 (en) * 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system
WO2019027074A1 (ko) * 2017-08-04 2019-02-07 엘지전자(주) 멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치
US10887593B2 (en) 2018-04-20 2021-01-05 Board Of Trustees Of Southern Illinois University Parallel table-based bit rate estimator
US11412225B2 (en) * 2018-09-27 2022-08-09 Electronics And Telecommunications Research Institute Method and apparatus for image processing using context-adaptive entropy model

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539331B1 (en) * 2000-09-08 2003-03-25 Peter J. Fiekowsky Microscopic feature dimension measurement system
US20090234621A1 (en) * 2004-12-03 2009-09-17 Forensic Science Service Limited Method of optimizing parameters in the entire process of analysing a dna containing sample and method of modeling said process
KR100867995B1 (ko) * 2006-01-07 2008-11-10 한국전자통신연구원 동영상 데이터 인코딩/디코딩 방법 및 그 장치
US20070290899A1 (en) * 2006-06-19 2007-12-20 Donald Martin Monro Data coding
US8542727B2 (en) * 2007-12-31 2013-09-24 Intel Corporation Systems and apparatuses for performing CABAC parallel encoding and decoding
TWI428023B (zh) * 2008-11-18 2014-02-21 Ind Tech Res Inst 解碼方法及裝置
JP5736032B2 (ja) * 2010-04-09 2015-06-17 株式会社Nttドコモ 算術符号化のための適応型2値化
WO2011128268A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
WO2012048053A2 (en) * 2010-10-05 2012-04-12 Massachusetts Institute Of Technology System and method for optimizing context-adaptive binary arithmetic coding

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016072744A1 (ko) * 2014-11-04 2016-05-12 삼성전자 주식회사 이진 산술 부호화/복호화를 위한 확률 갱신 방법 및 이를 이용한 엔트로피 부호화/복호화 장치
US10432945B2 (en) 2014-11-04 2019-10-01 Samsung Electronics Co., Ltd. Probability update method for binary arithmetic coding/decoding, and entropy coder/decoder using the same
CN108063945A (zh) * 2017-12-21 2018-05-22 西北工业大学 一种基于元素类别的线性码率估计方法
CN108063945B (zh) * 2017-12-21 2021-07-09 西北工业大学 一种基于元素类别的线性码率估计方法
WO2020141856A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
US11671598B2 (en) 2019-01-02 2023-06-06 Lg Electronics Inc. Image decoding method and device using residual information in image coding system

Also Published As

Publication number Publication date
US20130287120A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
KR20130122353A (ko) 비트율 추정 장치 및 그것의 비트율 추정 방법
US11276203B2 (en) Point cloud compression using fixed-point numbers
US10911787B2 (en) Hierarchical point cloud compression
US11409998B2 (en) Trimming search space for nearest neighbor determinations in point cloud compression
US11727603B2 (en) Adaptive distance based point cloud compression
KR102317576B1 (ko) 포인트 클라우드 압축
US20190311501A1 (en) Hierarchical point cloud compression with smoothing
WO2020146539A1 (en) Point cloud compression using a space filling curve for level of detail generation
US10432945B2 (en) Probability update method for binary arithmetic coding/decoding, and entropy coder/decoder using the same
KR101497845B1 (ko) 가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법 및 장치
TWI694712B (zh) 編解碼符號之熵編解碼方法與裝置
US20050012648A1 (en) Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
TWI827010B (zh) 算術編碼器、算術解碼器、視訊編碼器、視訊解碼器、編碼方法、解碼方法及電腦程式
EP2503783A1 (en) Video encoding method, decoding method, encoding and decoding device
CN103797803A (zh) 用于熵编码/解码的方法和设备
CN102282770B (zh) 一种参数选择方法、参数选择装置
CN114900691B (zh) 编码方法、编码器及计算机可读存储介质
Grellert et al. Learning-based complexity reduction and scaling for HEVC encoders
CN110139098B (zh) 基于决策树的高效率视频编码器帧内快速算法选择方法
Slyz et al. A nonlinear VQ-based predictive lossless image coder
KR101009740B1 (ko) 율-왜곡 최적화된 모드 결정 알고리즘의 효율적인 구현을 위한 비트율 추정 장치 및 방법
JP5338560B2 (ja) 画像処理装置および画像処理方法
Li et al. High-speed rate estimation based on parallel processing for H. 264/AVC CABAC encoder
EP4322527A1 (en) Coding and decoding methods, related devices and storage medium
Sharma et al. Parameter optimization for HEVC/H. 265 encoder using multi-objective optimization technique

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid