KR20180031944A - 비디오 디코더 및 이를 포함하는 전자 시스템 - Google Patents

비디오 디코더 및 이를 포함하는 전자 시스템 Download PDF

Info

Publication number
KR20180031944A
KR20180031944A KR1020160120445A KR20160120445A KR20180031944A KR 20180031944 A KR20180031944 A KR 20180031944A KR 1020160120445 A KR1020160120445 A KR 1020160120445A KR 20160120445 A KR20160120445 A KR 20160120445A KR 20180031944 A KR20180031944 A KR 20180031944A
Authority
KR
South Korea
Prior art keywords
decoding
value
binary
context
binary value
Prior art date
Application number
KR1020160120445A
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 KR1020160120445A priority Critical patent/KR20180031944A/ko
Priority to US15/492,695 priority patent/US10602171B2/en
Publication of KR20180031944A publication Critical patent/KR20180031944A/ko

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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/21Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE]

Landscapes

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

Abstract

비디오 디코더는 멀티-이진 디코딩 블록 및 디코딩 모드 제어 블록을 포함한다. 멀티-이진 디코딩 블록은 제1 컨텍스트 값에 기초하여 제1 이진 값을 복원하는 제1 디코딩 동작, 업데이트된 제1 컨텍스트 값 및 제2 컨텍스트 값 중 하나에 기초하여 제2 이진 값을 복원하는 제2 디코딩 동작, 업데이트된 제1 컨텍스트 값 및 제3 컨텍스트 값 중 하나에 기초하여 제3 이진 값을 복원하는 제3 디코딩 동작, 및 바이패스 이진 값을 복원하는 제4 디코딩 동작 중 적어도 하나를 동작 모드에 기초하여 수행한다. 디코딩 모드 제어 블록은 동작 모드에 기초하여, 제1 이진 값만을 출력하거나, 바이패스 이진 값만을 출력하거나, 제1 이진 값과 바이패스 이진 값을 출력하거나, 제1 이진 값과 제2 및 제3 이진 값들 중 하나를 항상 출력하거나, 제1 이진 값에 따라 제1 내지 제3 이진 값들 중 적어도 하나를 출력한다.

Description

비디오 디코더 및 이를 포함하는 전자 시스템{VIDEO DECODER AND ELECTRONIC SYSTEM INCLUDING THE SAME}
본 발명은 영상 처리에 관한 것으로서, 더욱 상세하게는 컨텍스트 기반 적응적 이진 산술 코딩(Context-based Adaptive Binary Arithmetic Coding: CABAC)을 이용하는 비디오 디코더 및 상기 비디오 디코더를 포함하는 전자 시스템에 관한 것이다.
HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 증가하고 있으며, 고해상도, 고품질의 영상을 처리하기 위해 고성능의 영상 압축 및 복원 기술들이 활용되고 있다. 엔트로피 코딩(entropy coding)의 일종인 CABAC은 알고리즘이 상대적으로 복잡하여 처리 시간이 길다. 최근에는 CABAC을 이용하여 압축된 고해상도, 고품질의 영상을 효율적으로 복원할 수 있는 다양한 방안에 대한 연구가 진행되고 있다.
본 발명의 일 목적은 멀티-이진 디코딩(multi-bin decoding)을 상대적으로 빠르고 효율적으로 수행할 수 있는 비디오 디코더를 제공하는 것이다.
본 발명의 다른 목적은 상기 비디오 디코더를 포함하는 전자 시스템을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 비디오 디코더는 멀티-이진(multi-bin) 디코딩 블록 및 디코딩 모드 제어 블록을 포함한다. 상기 멀티-이진 디코딩 블록은 제1 컨텍스트 값(context)에 기초하여 제1 이진 값(bin)을 복원하는 제1 디코딩 동작, 상기 제1 디코딩 동작 후에 업데이트된 상기 제1 컨텍스트 값 및 제2 컨텍스트 값 중 하나에 기초하여 제2 이진 값을 복원하는 제2 디코딩 동작, 업데이트된 상기 제1 컨텍스트 값 및 제3 컨텍스트 값 중 하나에 기초하여 제3 이진 값을 복원하는 제3 디코딩 동작, 및 컨텍스트 값 없이 적어도 하나의 바이패스 이진 값을 복원하는 제4 디코딩 동작 중 적어도 하나를 동작 모드에 기초하여 수행한다. 상기 디코딩 모드 제어 블록은 상기 동작 모드에 기초하여, 상기 제1 이진 값만을 출력하거나, 상기 적어도 하나의 바이패스 이진 값만을 출력하거나, 상기 제1 이진 값과 상기 적어도 하나의 바이패스 이진 값을 출력하거나, 상기 제1 이진 값과 상기 제2 및 제3 이진 값들 중 하나를 항상 출력하거나, 상기 제1 이진 값에 따라 상기 제1, 제2 및 제3 이진 값들 중 적어도 하나를 출력한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 전자 시스템은 비디오 소스 및 비디오 디코더를 포함한다. 상기 비디오 소스는 부호화된 비트 스트림을 제공한다. 상기 비디오 디코더는 상기 부호화된 비트 스트림에 대한 복호화 동작을 수행하여 복원 영상을 발생한다. 상기 비디오 디코더는 멀티-이진(multi-bin) 디코딩 블록 및 디코딩 모드 제어 블록을 포함한다. 상기 멀티-이진 디코딩 블록은 제1 컨텍스트 값(context)에 기초하여 제1 이진 값(bin)을 복원하는 제1 디코딩 동작, 상기 제1 디코딩 동작 후에 업데이트된 상기 제1 컨텍스트 값 및 제2 컨텍스트 값 중 하나에 기초하여 제2 이진 값을 복원하는 제2 디코딩 동작, 업데이트된 상기 제1 컨텍스트 값 및 제3 컨텍스트 값 중 하나에 기초하여 제3 이진 값을 복원하는 제3 디코딩 동작, 및 컨텍스트 값 없이 적어도 하나의 바이패스 이진 값을 복원하는 제4 디코딩 동작 중 적어도 하나를 동작 모드에 기초하여 수행한다. 상기 디코딩 모드 제어 블록은 상기 동작 모드에 기초하여, 상기 제1 이진 값만을 출력하거나, 상기 적어도 하나의 바이패스 이진 값만을 출력하거나, 상기 제1 이진 값과 상기 적어도 하나의 바이패스 이진 값을 출력하거나, 상기 제1 이진 값과 상기 제2 및 제3 이진 값들 중 하나를 항상 출력하거나, 상기 제1 이진 값에 따라 상기 제1, 제2 및 제3 이진 값들 중 적어도 하나를 출력한다.
상기와 같은 본 발명의 실시예들에 따른 비디오 디코더는, 두 개 이상의 복수의 이진 값들을 연속적으로 처리하는 멀티-이진 디코딩 방식을 채용할 수 있고, 멀티-이진 디코딩 방식에서 가능한 모든 시나리오들에 대한 결과를 선택적으로 출력할 수 있도록 다양한 동작 모드들을 지원할 수 있다. 따라서, 비디오 디코더 및 이를 포함하는 전자 시스템의 디코딩 속도 및 성능이 향상될 수 있으며, 고해상도, 고품질의 압축 영상을 효율적으로 복원할 수 있다.
도 1은 본 발명의 실시예들에 따른 비디오 디코더를 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 비디오 디코더에 포함되는 멀티-이진 디코딩 블록 및 디코딩 모드 제어 블록의 일 예를 나타내는 블록도이다.
도 3 내지 8은 본 발명의 실시예들에 따른 비디오 디코더의 동작 모드에 따른 구체적인 동작을 설명하기 위한 도면들이다.
도 9는 본 발명의 실시예들에 따른 비디오 디코더에 포함되는 멀티-이진 디코딩 블록 및 디코딩 모드 제어 블록의 다른 예를 나타내는 블록도이다.
도 10은 본 발명의 실시예들에 따른 비디오 디코더의 구동 방법을 나타내는 순서도이다.
도 11은 본 발명의 실시예들에 따른 비디오 디코더를 포함하는 전자 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 비디오 디코더를 나타내는 블록도이다.
도 1을 참조하면, 비디오 디코더(10)는 멀티-이진(multi-bin) 디코딩 블록(300) 및 디코딩 모드 제어 블록(400)을 포함한다. 비디오 디코더(10)는 컨텍스트 인덱스 제어 블록(100), 컨텍스트 버퍼(200) 및 범위/오프셋 버퍼(500)를 더 포함할 수 있다.
본 발명의 실시예들에 따른 비디오 디코더(10)는 컨텍스트 기반 적응적 이진 산술 코딩(Context-based Adaptive Binary Arithmetic Coding: CABAC)에 기초하여 동작할 수 있다. 또한, 본 발명의 실시예들에 따른 비디오 디코더(10)는 복수의 이진 값들을 연속적으로 디코딩할 수 있고, 상기 디코딩된 복수의 이진 값들을 동작 모드에 따라 실질적으로 동시에 출력할 수 있다. 이하에서는 CABAC을 이용하여 두 개의 이진 값들을 연속적으로 디코딩하는 경우에 기초하여 본 발명의 실시예들을 상세하게 설명하도록 한다.
멀티-이진 디코딩 블록(300)은 동작 모드에 따라 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나를 수행한다. 상기 제1 디코딩 동작은 제1 컨텍스트 값(context)(CTX1)에 기초하여 제1 이진 값(bin)을 복원하는 동작을 나타낸다. 상기 제1 디코딩 동작 후에 제1 컨텍스트 값(CTX1)이 업데이트된다. 상기 제2 디코딩 동작은 업데이트된 상기 제1 컨텍스트 값(예를 들어, 도 2의 UCTX1) 및 제2 컨텍스트 값(CTX2) 중 하나에 기초하여 제2 이진 값을 복원하는 동작을 나타낸다. 상기 제3 디코딩 동작은 업데이트된 상기 제1 컨텍스트 값 및 제3 컨텍스트 값(CTX3) 중 하나에 기초하여 제3 이진 값을 복원하는 동작을 나타낸다. 제1 컨텍스트 값(CTX1)과 유사하게, 상기 제2 및 제3 디코딩 동작들 후에 제2 및 제3 컨텍스트 값들(CTX2, CTX3)이 업데이트될 수 있다. 상기 제4 디코딩 동작은 컨텍스트 값 없이 적어도 하나의 바이패스 이진 값을 복원하는 동작을 나타낸다.
상술한 것처럼, 멀티-이진 디코딩 블록(300)은 두 개의 이진 값들을 연속적으로 디코딩할 수 있다. 이 때, 상기 제1 디코딩 동작은 상기 두 개의 이진 값들 중 첫 번째 이진 값을 디코딩하는 동작일 수 있고, 상기 제2 및 제3 디코딩 동작들 각각은 상기 두 개의 이진 값들 중 두 번째 이진 값을 디코딩하는 동작일 수 있다. 한편, 상기 제4 디코딩 동작은 바이패스(bypass) 디코딩 동작이라 부를 수 있다. 상기 제1, 제2, 제3 및 제4 디코딩 동작들에 의해 발생된 상기 제1, 제2 및 제3 이진 값들과 상기 적어도 하나의 바이패스 이진 값 각각은 0 또는 1의 값을 가질 수 있다.
디코딩 모드 제어 블록(400)은 상기 동작 모드에 기초하여 상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나의 수행 결과를 출력할 수 있다. 구체적으로, 디코딩 모드 제어 블록(400)은 상기 동작 모드에 기초하여, 상기 제1 이진 값만을 출력하거나, 상기 적어도 하나의 바이패스 이진 값만을 출력하거나, 상기 제1 이진 값과 상기 적어도 하나의 바이패스 이진 값을 출력하거나, 상기 제1 이진 값과 상기 제2 및 제3 이진 값들 중 하나를 항상 출력하거나, 상기 제1 이진 값에 따라 상기 제1, 제2 및 제3 이진 값들 중 적어도 하나를 출력한다. 다시 말하면, 디코딩 모드 제어 블록(400)에서 출력된 이진 값(BOUT)은 상기 동작 모드에 따라 하나의 이진 값일 수도 있고 복수의 이진 값들일 수도 있다.
상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나의 수행 결과로서 업데이트된 컨텍스트 값(UCTX)이 추가적으로 출력될 수 있다. 예를 들어, 업데이트된 컨텍스트 값(UCTX)은 업데이트된 상기 제1 컨텍스트 값, 업데이트된 상기 제2 컨텍스트 값 및 업데이트된 상기 제3 컨텍스트 값 중 적어도 하나를 포함할 수 있다. 실시예에 따라서, 업데이트된 컨텍스트 값(UCTX)은 출력되지 않을 수도 있다.
상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나를 수행하는데 있어서, 입력 범위(range)(RNGI) 및 입력 오프셋(offset)(OFSI)이 추가적으로 이용될 수 있다. 입력 범위(RNGI) 및 입력 오프셋(OFSI)은 매 디코딩 동작마다 업데이트될 수 있으며, 따라서 상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나의 수행 결과로서 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)이 추가적으로 출력될 수 있다.
일 실시예에서, 멀티-이진 디코딩 블록(300) 및 디코딩 모드 제어 블록(400)에 입력되는 디코딩 모드 제어 신호(DS)가 상기 동작 모드를 나타낼 수 있다. 상기 동작 모드의 다양한 예에 대해서는 도 3 내지 8을 참조하여 후술하도록 한다.
컨텍스트 인덱스 제어 블록(100)은 제1, 제2 및 제3 컨텍스트 인덱스(index)들(CTXIDX1, CTXIDX2, CTXIDX3)을 기초로 복수의 컨텍스트 값들 중에서 제1, 제2 및 제3 컨텍스트 값들(CTX1, CTX2, CTX3)을 선택하여 멀티-이진 디코딩 블록(300)에 제공할 수 있다. 예를 들어, 동작 초기에 컨텍스트 인덱스들(CTXIDX1, CTXIDX2, CTXIDX3)은 부호화된 비트 스트림에 기초하여 획득될 수 있으며, 이 경우 도시하지는 않았지만 컨텍스트 인덱스 제어 블록(100)은 상기 부호화된 비트 스트림을 더 수신할 수 있다.
컨텍스트 버퍼(200)는 상기 복수의 컨텍스트 값들을 저장할 수 있고, 상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나가 수행된 이후에 업데이트된 컨텍스트 값(UCTX)을 저장할 수 있다.
범위/오프셋 버퍼(500)는 입력 범위(RNGI) 및 입력 오프셋(OFSI)을 멀티-이진 디코딩 블록(300)에 제공할 수 있고, 상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나가 수행된 이후에 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)을 저장할 수 있다. 예를 들어, 동작 초기에 입력 범위(RNGI) 및 입력 오프셋(OFSI)은 상기 부호화된 비트 스트림으로부터 획득될 수 있으며, 이 경우 도시하지는 않았지만 범위/오프셋 버퍼(500)는 상기 부호화된 비트 스트림을 더 수신할 수 있다.
CABAC은 엔트로피 코딩(entropy coding)의 일종이며, H.264의 메인 프로파일(main profile)에서 사용되고 있다. CABAC에서는 각 심볼(symbol)의 인코딩 과정마다 동적으로 통계적 특성을 적용하고 그 결과에 따라 심볼의 상대적 확률을 업데이트하므로, CABAC에 의해 부호화된 비트 스트림의 압축 효율이 크게 향상될 수 있다.
다른 압축 표준과 유사하게, CABAC에 의해 부호화된 비트 스트림은 구문 요소(syntax element)들의 집합으로 이루어진다. 도시하지는 않았지만, 상기 비트 스트림은 복수의 슬라이스(slice)들을 포함한다. 각 슬라이스는 슬라이스 헤더 및 슬라이스 데이터를 포함한다. 각 슬라이스 데이터는 복수의 매크로 블록(macro block)들 및 복수의 이웃 식별자(neighbor identification)를 포함한다. 각 매크로 블록은 복수의 구문 요소들을 포함한다. 각 구문 요소는 복수의 이진 값들을 포함하는 이진 스트링으로 이루어진다.
CABAC에 의해 부호화된 비트 스트림을 복호화하는 과정은 상기 비트 스트림에 포함되는 구문 요소로부터 순차적으로 0 또는 1의 값을 가지는 이진 값, 즉 빈(bin)이라는 양을 복호화하는 과정을 나타낸다. 하나의 이진 값을 복호화하기 위해서는 컨텍스트 선택(context selection), 컨텍스트 모델 로딩(context model loading), 이진 산술 디코딩(binary arithmetic decoding), 이진 매칭(binarization matching) 및 컨텍스트 모델 업데이트(context model update) 등의 여러 개의 단위 동작을 필요로 한다.
컨텍스트 선택은 하나의 이진 값을 복호화하기 위해 필요한 컨텍스트 모델을 선택하는 동작을 나타내며, 컨텍스트 모델 로딩은 상기 선택된 컨텍스트 모델을 읽어오는 동작을 나타낸다. 상기 컨텍스트 선택 및 상기 컨텍스트 모델 로딩은 컨텍스트 인덱스 제어 블록(100) 및 컨텍스트 버퍼(200)에 의해 수행될 수 있다. 이진 산술 디코딩은 하나의 이진 값을 발생하는 동작을 나타내고, 이진 매칭은 발생된 이진 값이 유효한지를 확인하는 동작을 나타내며, 컨텍스트 모델 업데이트는 이진 산술 디코딩에서 컨텍스트 모델에 상응하는 컨텍스트 값이 변경된 경우 이를 갱신하는 동작을 나타낸다. 이 때, 하나의 이진 값을 복호화하기 위해 수행되는 상기와 같은 단위 동작들은, 연속적으로 배열된 이진 값들 중 이전 이진 값을 복호화하지 않으면 현재 이진 값을 복호화할 수 없는 데이터 의존 관계(data dependency)를 가지고 있어, 고속의 처리가 어려울 수 있다.
본 발명의 실시예들에 따른 비디오 디코더(10)는, 디코딩 속도 및 성능을 향상시키기 위해 두 개 이상의 복수의 이진 값들을 연속적으로 처리하는 멀티-이진 디코딩 방식을 채용할 수 있으며, 상기와 같은 멀티-이진 디코딩 방식에 의해 상기 디코딩된 이진 값들을 동작 모드에 따라 다양한 형식으로 출력할 수 있다.
도 2는 본 발명의 실시예들에 따른 비디오 디코더에 포함되는 멀티-이진 디코딩 블록 및 디코딩 모드 제어 블록의 일 예를 나타내는 블록도이다.
도 2를 참조하면, 멀티-이진 디코딩 블록(300a)은 제1 디코딩 회로(310), 제2 디코딩 회로(320), 제3 디코딩 회로(330) 및 제4 디코딩 회로(340)를 포함할 수 있다. 멀티-이진 디코딩 블록(300a)은 제1 멀티플렉서(325), 제2 멀티플렉서(335) 및 제3 멀티플렉서(345)를 더 포함할 수 있다.
제1 디코딩 회로(310)는 상기 제1 디코딩 동작을 수행할 수 있다. 구체적으로, 제1 디코딩 회로(310)는 제1 컨텍스트 값(CTX1), 입력 범위(RNGI) 및 입력 오프셋(OFSI)에 기초하여 제1 이진 값(BOUT1)을 발생할 수 있다. CABAC에 의해 부호화된 비트 스트림 내의 구문 요소가 복호화되면 그 결과는 이진 스트링이 되고, 이진 스트링 내의 각각의 이진 값은 0 또는 1의 값을 가진다. 이 때, 구문 요소 내에서 더 많이 나타나는 값을 MPS(most probable symbol)이라 하고, 더 적게 나타나는 값을 LPS(least probable symbol)이라 한다. 제1 디코딩 회로(310)는 제1 컨텍스트 값(CTX1), 입력 범위(RNGI) 및 입력 오프셋(OFSI)을 이용하여 제1 이진 값(BOUT1)을 MPS 또는 LPS로 결정할 수 있다.
예를 들어, 전체 구문 요소 내에서 MPS가 나타나는 확률을 심볼 확률(symbol probability)이라 하고, 상기 심볼 확률은 유한하게 양자화(quantization)되어 확률 상태 인덱스(probability state index)로 나타난다. 컨텍스트 값(CTX1)에 대응하는 컨텍스트 모델에는 상기 확률 상태 인덱스가 포함될 수 있으며, 상기 확률 상태 인덱스에 대응하는 상기 심볼 확률을 이용하여 입력된 범위(RNG1)를 업데이트하고 범위(RNG1)와 입력된 오프셋(OFS1)을 비교하여 이진 값(BOUT1)을 결정할 수 있다. 예를 들어, 오프셋(OFS1)이 범위(RNG1)보다 작으면 이진 값(BOUT1)은 MPS가 될 수 있고, 오프셋(OFS1)이 범위(RNG1)보다 크거나 같으면 이진 값(BOUT1)은 LPS가 될 수 있다.
또한, 제1 이진 값(BOUT1)을 발생함과 동시에, 제1 디코딩 회로(310)는 제1 컨텍스트 값(CTX1)을 업데이트하여(즉, 변경하여) 업데이트된 제1 컨텍스트 값(UCTX1)을 발생할 수 있으며, 입력 범위(RNGI) 및 입력 오프셋(OFSI)을 업데이트하여(즉, 변경하여) 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 발생할 수 있다. 인코딩 과정과 유사하게, CABAC에서는 각 심볼의 디코딩 과정마다 동적으로 통계적 특성을 적용하고 그 결과에 따라 심볼의 상대적 확률을 업데이트하므로, 제1 이진 값(BOUT1)을 발생함과 동시에 제1 이진 값(BOUT1)을 발생하는데 사용하였던 제1 컨텍스트 값(CTX1), 입력 범위(RNGI) 및 입력 오프셋(OFSI)이 업데이트될 수 있다.
제2 디코딩 회로(320)는 상기 제2 디코딩 동작을 수행할 수 있다. 구체적으로, 제2 디코딩 회로(320)는 업데이트된 제1 컨텍스트 값(UCTX1) 및 제2 컨텍스트 값(CTX2) 중 하나, 제1 범위(RNG1) 및 제1 오프셋(OFS1)에 기초하여 제2 이진 값(BOUT2)을 발생할 수 있다. 또한, 제2 이진 값(BOUT2)을 발생함과 동시에, 제2 디코딩 회로(320)는 제2 컨텍스트 값(CTX2)을 업데이트하여 업데이트된 제2 컨텍스트 값(UCTX2)을 발생할 수 있으며, 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 업데이트하여 제2 범위(RNG2) 및 제2 오프셋(OFS2)을 발생할 수 있다.
제3 디코딩 회로(330)는 상기 제3 디코딩 동작을 수행할 수 있다. 구체적으로, 제3 디코딩 회로(330)는 업데이트된 제1 컨텍스트 값(UCTX1) 및 제3 컨텍스트 값(CTX3) 중 하나, 제1 범위(RNG1) 및 제1 오프셋(OFS1)에 기초하여 제3 이진 값(BOUT3)을 발생할 수 있다. 또한, 제3 이진 값(BOUT3)을 발생함과 동시에, 제3 디코딩 회로(330)는 제3 컨텍스트 값(CTX3)을 업데이트하여 업데이트된 제3 컨텍스트 값(UCTX3)을 발생할 수 있으며, 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 업데이트하여 제3 범위(RNG3) 및 제3 오프셋(OFS3)을 발생할 수 있다. 상기 제2 및 제3 디코딩 동작들을 실질적으로 동시에 수행될 수 있다.
제2 및 제3 디코딩 회로들(320, 330)이 이진 값들(BOUT2, BOUT3)을 결정하는 동작은 제1 디코딩 회로(310)가 이진 값(BOUT1)을 결정하는 동작과 유사할 수 있다.
도 1을 참조하여 상술한 것처럼, 멀티-이진 디코딩 블록(300a)은 두 개의 이진 값들을 연속적으로 디코딩할 수 있다. 이 때, 상기 제1 디코딩 동작에 의해 발생된 이진 값(BOUT1)은 상기 두 개의 이진 값들 중 첫 번째 이진 값에 대응할 수 있고, 상기 제2 및 제3 디코딩 동작들에 의해 발생된 이진 값들(BOUT2, BOUT3) 각각은 상기 두 개의 이진 값들 중 두 번째 이진 값에 대응할 수 있다. 예를 들어, 상기 제2 디코딩 동작은 상기 첫 번째 이진 값이 MPS인 경우에 상기 두 번째 이진 값을 복원하기 위한 동작일 수 있으며, 상기 제3 디코딩 동작은 상기 첫 번째 이진 값이 LPS인 경우에 상기 두 번째 이진 값을 복원하기 위한 동작일 수 있다. 상기 첫 번째 이진 값이 MPS인 경우 및 LPS인 경우 각각에 대하여 상기 두 번째 이진 값을 미리 연산함으로써, 두 개의 이진 값들을 연속적으로 디코딩하는 시간이 단축될 수 있다.
제4 디코딩 회로(340)는 상기 제4 디코딩 동작을 수행할 수 있다. 구체적으로, 제4 디코딩 회로(330)는 입력 범위(RNGI) 및 입력 오프셋(OFSI)에 기초하여, 또는 제1 범위(RNG1) 및 제1 오프셋(OFS1)에 기초하여, 적어도 하나의 바이패스 이진 값(BOUTBP)을 발생할 수 있다. 또한, 적어도 하나의 바이패스 이진 값(BOUTBP)을 발생함과 동시에, 제4 디코딩 회로(330)는 입력 범위(RNGI) 및 입력 오프셋(OFSI)에 기초하여(예를 들어, 업데이트하여), 또는 제1 범위(RNG1) 및 제1 오프셋(OFS1)에 기초하여(예를 들어, 업데이트하여) 범위(RNGA) 및 오프셋(OFSA)을 발생할 수 있다.
디코딩 모드 제어 블록(400)은 디코딩 모드 제어 신호(DS)에 기초하여 이진 값(BOUT), 업데이트된 컨텍스트 값(UCTX), 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)을 발생할 수 있다.
디코딩 모드 제어 블록(400)의 출력은 디코딩 모드 제어 신호(DS)에 의해 제어되는 상기 동작 모드에 따라 변경될 수 있다. 예를 들어, 이진 값(BOUT)은 이진 값들(BOUT1, BOUT2, BOUT3, BOUTBP) 중 적어도 하나를 포함할 수 있고, 업데이트된 컨텍스트 값(UCTX)은 업데이트된 컨텍스트 값들(UCTX1, UCTX2, UCTX3) 중 적어도 하나를 포함할 수 있고, 업데이트된 범위(URNG)는 범위들(RNG1, RNG2, RNG3, RNGA) 중 적어도 하나를 포함할 수 있으며, 업데이트된 오프셋(UOFS)은 오프셋들(OFS1, OFS2, OFS3, OFSA) 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 동작 모드는, 제1 이진 값(BOUT1)만을 출력하는 제1 동작 모드, 하나의 바이패스 이진 값(예를 들어, 도 4의 BOUTBP1)만을 출력하는 제2 동작 모드, 복수의 바이패스 이진 값들(예를 들어, 도 5의 BOUTBP1 및 BOUTBP2)을 출력하는 제3 동작 모드, 제1 이진 값(BOUT1) 및 적어도 하나의 바이패스 이진 값(예를 들어, 도 6의 BOUTBP2)을 출력하는 제4 동작 모드, 및 제1 이진 값(BOUT1)과 제2 및 제3 이진 값들(BOUT2, BOUT3) 중 하나를 항상 출력하는 제5 동작 모드를 포함할 수 있다.
일 실시예에서, 상기 동작 모드는, 제1 이진 값(BOUT1)이 0인 경우에 제1 및 제2 이진 값들(BOUT1, BOUT2)을 출력하는 제6 동작 모드, 제1 이진 값(BOUT1)이 0인 경우에 제1 및 제3 이진 값들(BOUT1, BOUT3)을 출력하는 제7 동작 모드, 제1 이진 값(BOUT1)이 0인 경우에 제1 이진 값(BOUT1)만을 출력하는 제8 동작 모드, 제1 이진 값(BOUT1)이 1인 경우에 제1 및 제2 이진 값들(BOUT1, BOUT2)을 출력하는 제9 동작 모드, 제1 이진 값(BOUT1)이 1인 경우에 제1 및 제3 이진 값들(BOUT1, BOUT3)을 출력하는 제10 동작 모드, 및 제1 이진 값(BOUT1)이 1인 경우에 제1 이진 값(BOUT1)만을 출력하는 제11 동작 모드를 더 포함할 수 있다.
제1 멀티플렉서(325)는 제1 선택 신호(S1)에 기초하여 업데이트된 제1 컨텍스트 값(UCTX1) 및 제2 컨텍스트 값(CTX2) 중 하나를 제2 디코딩 회로(320)에 제공할 수 있다. 예를 들어, 제1 멀티플렉서(325)는 제1 컨텍스트 값(CTX1)과 제2 컨텍스트 값(CTX2)이 동일한 경우에 업데이트된 제1 컨텍스트 값(UCTX1)을 제2 디코딩 회로(320)에 제공할 수 있고, 제1 컨텍스트 값(CTX1)과 제2 컨텍스트 값(CTX2)이 서로 다른 경우에 제2 컨텍스트 값(CTX2)을 제2 디코딩 회로(320)에 제공할 수 있다.
제2 멀티플렉서(335)는 제2 선택 신호(S2)에 기초하여 업데이트된 제1 컨텍스트 값(UCTX1) 및 제3 컨텍스트 값(CTX3) 중 하나를 제3 디코딩 회로(330)에 제공할 수 있다. 제2 멀티플렉서(335)의 동작은 제1 멀티플렉서(325)의 동작과 유사할 수 있다. 예를 들어, 제2 멀티플렉서(335)는 제1 컨텍스트 값(CTX1)과 제3 컨텍스트 값(CTX3)이 동일한 경우에 업데이트된 제1 컨텍스트 값(UCTX1)을 제3 디코딩 회로(330)에 제공할 수 있고, 제1 컨텍스트 값(CTX1)과 제3 컨텍스트 값(CTX3)이 서로 다른 경우에 제3 컨텍스트 값(CTX3)을 제3 디코딩 회로(330)에 제공할 수 있다.
제3 멀티플렉서(345)는 디코딩 모드 제어 신호(DS)에 기초하여 입력 범위(RNGI) 및 입력 오프셋(OFSI)을 제4 디코딩 회로(340)에 제공하거나 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 제4 디코딩 회로(340)에 제공할 수 있다. 예를 들어, 제3 멀티플렉서(345)는 디코딩 모드 제어 블록(400)이 적어도 하나의 바이패스 이진 값(BOUTBP)만을 출력하는 상기 제2 및 제3 동작 모드들에서 입력 범위(RNGI) 및 입력 오프셋(OFSI)을 제4 디코딩 회로(340)에 제공할 수 있고, 디코딩 모드 제어 블록(400)이 제1 이진 값(BOUT1)과 적어도 하나의 바이패스 이진 값(BOUTBP)을 함께 출력하는 상기 제4 동작 모드에서 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 제4 디코딩 회로(340)에 제공할 수 있다.
일 실시예에서, 디코딩 모드 제어 신호(DS), 제1 선택 신호(S1) 및 제2 선택 신호(S2)는 하나의 신호로 통합하여 구현될 수 있다.
일 실시예에서, 멀티-이진 디코딩 블록(300a)의 일부 또는 전부는 하드웨어의 형태로 구현될 수 있다.
도 3 내지 8은 본 발명의 실시예들에 따른 비디오 디코더의 동작 모드에 따른 구체적인 동작을 설명하기 위한 도면들이다.
도 3을 참조하면, 멀티-이진 디코딩 블록(300a)은 상기 제1 동작 모드에서 상기 제1 디코딩 동작을 수행할 수 있다. 예를 들어, 제1 디코딩 회로(310)는 제1 컨텍스트 값(CTX1), 입력 범위(RNGI) 및 입력 오프셋(OFSI)에 기초하여 제1 이진 값(BOUT1)을 발생할 수 있고, 제1 컨텍스트 값(CTX1), 입력 범위(RNGI) 및 입력 오프셋(OFSI)을 업데이트하여 업데이트된 제1 컨텍스트 값(UCTX1), 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 발생할 수 있다.
디코딩 모드 제어 블록(400)은 상기 제1 동작 모드에서 디코딩 모드 제어 신호(DS)에 기초하여 상기 제1 디코딩 동작의 결과인 제1 이진 값(BOUT1), 업데이트된 제1 컨텍스트 값(UCTX1), 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 출력할 수 있다. 업데이트된 제1 컨텍스트 값(UCTX1)이 컨텍스트 버퍼(도 1의 200)에 저장될 수 있고, 제1 범위(RNG1) 및 제1 오프셋(OFS1)에 기초하여 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)이 범위/오프셋 버퍼(도 1의 500)에 저장될 수 있다. 상기 제1 동작 모드는 싱글 이진(single bin) 디코딩 모드라 부를 수 있다.
일 실시예에서, 도 3에 도시된 것처럼, 상기 제1 동작 모드에서 상기 제2 및 제3 디코딩 동작들이 추가적으로 수행될 수 있다. 다른 실시예에서, 도시하지는 않았지만, 상기 제1 동작 모드에서 상기 제2 및 제3 디코딩 동작들은 수행되지 않을 수 있다. 한편, 상기 제1 동작 모드에서 상기 제4 디코딩 동작은 항상 수행되지 않을 수 있다.
도 4를 참조하면, 멀티-이진 디코딩 블록(300a)은 상기 제2 동작 모드에서 상기 제4 디코딩 동작을 수행할 수 있다. 예를 들어, 제3 멀티플렉서(335)는 디코딩 모드 제어 신호(DS)에 기초하여 입력 범위(RNGI) 및 입력 오프셋(OFSI)을 제4 디코딩 회로(340)에 제공할 수 있다. 제4 디코딩 회로(340)는 입력 범위(RNGI) 및 입력 오프셋(OFSI)에 기초하여 제1 및 제2 바이패스 이진 값들(BOUTBP1, BOUTBP2)을 발생할 수 있고, 입력 범위(RNGI) 및 입력 오프셋(OFSI)을 업데이트하여 범위(RNGA) 및 오프셋(OFSA)을 발생할 수 있다.
디코딩 모드 제어 블록(400)은 상기 제2 동작 모드에서 디코딩 모드 제어 신호(DS)에 기초하여 상기 제4 디코딩 동작의 결과의 일부인 제1 바이패스 이진 값(BOUTBP1), 범위(RNGA) 및 오프셋(OFSA)을 출력할 수 있다. 범위(RNGA) 및 오프셋(OFSA)에 기초하여 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)이 범위/오프셋 버퍼(도 1의 500)에 저장될 수 있다. 상기 제2 동작 모드는 싱글 바이패스(single bypass) 디코딩 모드라 부를 수 있다.
도 5를 참조하면, 멀티-이진 디코딩 블록(300a)은 상기 제3 동작 모드에서 상기 제4 디코딩 동작을 수행할 수 있다. 도 5의 상기 제4 디코딩 동작은 도 4의 상기 제4 디코딩 동작과 실질적으로 동일할 수 있다.
디코딩 모드 제어 블록(400)은 상기 제3 동작 모드에서 디코딩 모드 제어 신호(DS)에 기초하여 상기 제4 디코딩 동작의 결과의 전부인 제1 및 제2 바이패스 이진 값들(BOUTBP1, BOUTBP2), 범위(RNGA) 및 오프셋(OFSA)을 출력할 수 있다. 범위(RNGA) 및 오프셋(OFSA)에 기초하여 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)이 범위/오프셋 버퍼(도 1의 500)에 저장될 수 있다. 상기 제3 동작 모드는 멀티 바이패스(multi bypass) 디코딩 모드라 부를 수 있다.
도 4 및 5에서는 상기 제4 디코딩 동작의 결과로서 두 개의 바이패스 이진 값들(BOUTBP1, BOUTBP2)이 발생하는 것으로 도시하였으나, 실시예에 따라서 상기 제4 디코딩 동작의 결과로서 세 개 이상의 바이패스 이진 값들이 발생될 수 있으며, 이 경우 상기 제3 동작 모드에서 세 개 이상의 바이패스 이진 값들이 출력될 수 있다. 한편, 상기 제2 및 제3 동작 모드들에서 상기 제1, 제2 및 제3 디코딩 동작들은 항상 수행되지 않을 수 있으며, 따라서 업데이트된 컨텍스트 값이 발생되지 않을 수 있다.
도 6을 참조하면, 멀티-이진 디코딩 블록(300a)은 상기 제4 동작 모드에서 상기 제1 및 제4 디코딩 동작들을 수행할 수 있다. 예를 들어, 도 6의 상기 제1 디코딩 동작은 도 3의 상기 제1 디코딩 동작과 실질적으로 동일할 수 있다. 제3 멀티플렉서(335)는 디코딩 모드 제어 신호(DS)에 기초하여 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 제4 디코딩 회로(340)에 제공할 수 있다. 제4 디코딩 회로(340)는 제1 범위(RNG1) 및 제1 오프셋(OFS1)에 기초하여 제2 바이패스 이진 값(BOUTBP2)을 발생할 수 있고, 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 업데이트하여 범위(RNGA) 및 오프셋(OFSA)을 발생할 수 있다.
디코딩 모드 제어 블록(400)은 상기 제4 동작 모드에서 디코딩 모드 제어 신호(DS)에 기초하여 상기 제1 및 제4 디코딩 동작들의 결과인 제1 이진 값(BOUT1), 제2 바이패스 이진 값(BOUTBP2), 업데이트된 제1 컨텍스트 값(UCTX1), 제1 범위(RNG1), 범위(RNGA), 제1 오프셋(OFS1) 및 오프셋(OFSA)을 출력할 수 있다. 업데이트된 제1 컨텍스트 값(UCTX1)이 컨텍스트 버퍼(도 1의 200)에 저장될 수 있고, 범위들(RNG1, RNGA) 및 오프셋들(OFS1, OFSA)에 기초하여 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)이 범위/오프셋 버퍼(도 1의 500)에 저장될 수 있다. 상기 제4 동작 모드는 이진-바이패스(bin-bypass) 디코딩 모드라 부를 수 있다.
한편, 상기 제4 동작 모드에서 상기 제2 및 제3 디코딩 동작들은 수행되지 않을 수 있다.
도 7 및 8을 참조하면, 멀티-이진 디코딩 블록(300a)은 상기 제5 동작 모드에서 상기 제1, 제2 및 제3 디코딩 동작들을 수행할 수 있다. 예를 들어, 도 7 및 8의 상기 제1 디코딩 동작은 도 3의 상기 제1 디코딩 동작과 실질적으로 동일할 수 있다. 제2 디코딩 회로(320)는 업데이트된 제1 컨텍스트 값(UCTX1) 및 제2 컨텍스트 값(CTX2) 중 하나, 제1 범위(RNG1) 및 제1 오프셋(OFS1)에 기초하여 제2 이진 값(BOUT2)을 발생할 수 있고, 제2 컨텍스트 값(CTX2), 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 업데이트하여 업데이트된 제2 컨텍스트 값(UCTX2), 제2 범위(RNG2) 및 제2 오프셋(OFS2)을 발생할 수 있다. 제3 디코딩 회로(330)는 업데이트된 제1 컨텍스트 값(UCTX1) 및 제3 컨텍스트 값(CTX3) 중 하나, 제1 범위(RNG1) 및 제1 오프셋(OFS1)에 기초하여 제3 이진 값(BOUT3)을 발생할 수 있고, 제3 컨텍스트 값(CTX3), 제1 범위(RNG1) 및 제1 오프셋(OFS1)을 업데이트하여 업데이트된 제3 컨텍스트 값(UCTX3), 제3 범위(RNG3) 및 제3 오프셋(OFS3)을 발생할 수 있다.
일 실시예에서, 디코딩 모드 제어 블록(400)은 도 7에 도시된 것처럼, 상기 제5 동작 모드에서 디코딩 모드 제어 신호(DS)에 기초하여 상기 제1 및 제2 디코딩 동작들의 결과인 제1 및 제2 이진 값들(BOUT1, BOUT2), 업데이트된 제1 및 제2 컨텍스트 값들(UCTX1, UCTX2), 제1 및 제2 범위들(RNG1, RNG2) 및 제1 및 제2 오프셋들(OFS1, OFS2)을 출력할 수 있다. 업데이트된 제1 및 제2 컨텍스트 값들(UCTX1, UCTX2)이 컨텍스트 버퍼(도 1의 200)에 저장될 수 있고, 범위들(RNG1, RNG2) 및 오프셋들(OFS1, OFS2)에 기초하여 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)이 범위/오프셋 버퍼(도 1의 500)에 저장될 수 있다. 상기 제5 동작 모드는 이진-이진(bin-bin) 디코딩 모드라 부를 수 있다.
다른 실시예에서, 디코딩 모드 제어 블록(400)은 도 8에 도시된 것처럼, 상기 제5 동작 모드에서 디코딩 모드 제어 신호(DS)에 기초하여 상기 제1 및 제3 디코딩 동작들의 결과인 제1 및 제3 이진 값들(BOUT1, BOUT3), 업데이트된 제1 및 제3 컨텍스트 값들(UCTX1, UCTX3), 제1 및 제3 범위들(RNG1, RNG3) 및 제1 및 제3 오프셋들(OFS1, OFS3)을 출력할 수 있다. 업데이트된 제1 및 제3 컨텍스트 값들(UCTX1, UCTX3)이 컨텍스트 버퍼(도 1의 200)에 저장될 수 있고, 범위들(RNG1, RNG3) 및 오프셋들(OFS1, OFS3)에 기초하여 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)이 범위/오프셋 버퍼(도 1의 500)에 저장될 수 있다.
한편, 상기 제5 동작 모드에서 상기 제4 디코딩 동작은 항상 수행되지 않을 수 있다.
도시하지는 않았지만, 상기 제6 및 제9 동작 모드들에서 멀티-이진 디코딩 블록(300a)의 동작은 도 7에 도시된 것과 유사할 수 있고, 상기 제7 및 제10 동작 모드들에서 멀티-이진 디코딩 블록(300a)의 동작은 도 8에 도시된 것과 유사할 수 있으며, 상기 제8 및 제11 동작 모드들에서 멀티-이진 디코딩 블록(300a)의 동작은 도 3에 도시된 것과 유사할 수 있다. 다시 말하면, 멀티-이진 디코딩 블록(300a)은 상기 제6, 제7, 제9 및 제10 동작 모드들에서 상기 제1, 제2 및 제3 디코딩 동작들을 수행할 수 있고, 상기 제8 및 제11 동작 모드들에서 상기 제1 디코딩 동작을 수행할 수 있다. 상기 제6, 제7, 제8, 제9, 제10 및 제11 동작 모드들은 조건부 디코딩 모드라 부를 수 있다.
도 1 내지 8을 참조하여 하나의 구문 요소의 두 개의 이진 값들을 연속적으로 디코딩하는 구조 및 동작을 설명하였으나, 비디오 디코더(10)는 하나의 구문 요소의 복수의 이진 값들을 두 개씩 순차적으로 디코딩할 수 있다. 예를 들어, 비디오 디코더(10)는 제1 구문 요소의 첫 번째 및 두 번째 이진 값들을 디코딩할 수 있고, 상기 첫 번째 및 두 번째 이진 값들의 디코딩 결과에 기초하여 상기 제1 구문 요소의 세 번째 및 네 번째 이진 값들을 디코딩할 수 있으며, 상기 세 번째 및 네 번째 이진 값들의 디코딩 결과에 기초하여 상기 제1 구문 요소의 다섯 번째 및 여섯 번째 이진 값들을 디코딩할 수 있다.
본 발명의 실시예들에 따른 비디오 디코더(10)는 멀티-이진 디코딩 방식을 채용할 수 있으며, 멀티-이진 디코딩 방식에서 발생할 수 있는 가능한 모든 시나리오들에 대한 결과를 동작 모드에 따라(즉, 디코딩 모드 제어 신호(DS)에 기초하여) 선택적으로 출력할 수 있다. 따라서, 비디오 디코더(10)의 디코딩 속도 및 성능이 향상될 수 있으며, 고해상도, 고품질의 압축 영상(즉, high bit rate의 영상)을 효율적으로 복원할 수 있다.
도 9는 본 발명의 실시예들에 따른 비디오 디코더에 포함되는 멀티-이진 디코딩 블록 및 디코딩 모드 제어 블록의 다른 예를 나타내는 블록도이다.
도 9를 참조하면, 멀티-이진 디코딩 블록(300b)은 제1 디코딩 회로(310), 제2 디코딩 회로(320), 제3 디코딩 회로(330) 및 제4 디코딩 회로(340)를 포함할 수 있다. 멀티-이진 디코딩 블록(300b)은 제1 멀티플렉서(315), 제2 멀티플렉서(325b), 제3 멀티플렉서(335b), 제4 멀티플렉서(345) 및 컨텍스트 키퍼(keeper)(350)를 더 포함할 수 있다.
컨텍스트 키퍼(350) 및 멀티플렉서(315)를 더 포함하고 그에 따라 멀티플렉서들(325b, 335b)의 동작 및 디코딩 회로들(310, 320, 330)의 동작이 달라지는 것을 제외하면, 도 9의 멀티-이진 디코딩 블록(300b)은 도 2의 멀티-이진 디코딩 블록(300a)과 실질적으로 동일할 수 있다.
컨텍스트 키퍼(350)는 멀티-이진 디코딩 블록(300b)의 현재 동작의 결과인 업데이트된 제1, 제2 및 제3 컨텍스트 값들(UCTX1, UCTX2, UCTX3)을 임시로 저장할 수 있고, 멀티-이진 디코딩 블록(300b)의 이전 동작의 결과인 제1, 제2 및 제3 이전 컨텍스트 값들(PCTX1, PCTX2, PCTX3)을 출력할 수 있다.
제1 멀티플렉서(315)는 선택 신호(S0)에 기초하여 제1 컨텍스트 값(CTX1) 및 제1 이전 컨텍스트 값(PCTX1) 중 하나를 제1 디코딩 회로(310)에 제공할 수 있다. 예를 들어, 제1 멀티플렉서(315)는 제1 컨텍스트 값(CTX1)과 제1 이전 컨텍스트 값(PCTX1)이 동일한 경우에 제1 이전 컨텍스트 값(PCTX1)을 제1 디코딩 회로(310)에 제공할 수 있으며, 이 경우 제1 컨텍스트 값(CTX1)을 획득하기 위한 컨텍스트 선택 및 컨텍스트 모델 로딩이 생략될 수 있다. 제1 멀티플렉서(315)는 제1 컨텍스트 값(CTX1)과 제1 이전 컨텍스트 값(PCTX1)이 서로 다른 경우에 제1 컨텍스트 값(CTX1)을 제1 디코딩 회로(310)에 제공할 수 있다.
제1 디코딩 회로(310)는 제1 컨텍스트 값(CTX1) 및 제1 이전 컨텍스트 값(PCTX1) 중 하나에 기초하여 상기 제1 디코딩 동작을 수행할 수 있다. 또한, 상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나를 수행한 이후에, 제1 디코딩 회로(310)는 컨텍스트 키퍼(350)에 임시 저장된 업데이트된 제1 컨텍스트 값(UCTX1) 및 제4 컨텍스트 값 중 하나에 기초하여 제4 이진 값을 복원할 수 있고, 상기 제4 컨텍스트 값을 업데이트할 수 있다.
제2 멀티플렉서(325b)는 선택 신호(S1)에 기초하여 제2 컨텍스트 값(CTX2), 제2 이전 컨텍스트 값(PCTX2) 및 업데이트된 제1 컨텍스트 값(UCTX1) 중 하나를 제2 디코딩 회로(320)에 제공할 수 있다. 예를 들어, 제2 멀티플렉서(325b)는 제2 컨텍스트 값(CTX2)과 제2 이전 컨텍스트 값(PCTX2)이 동일한 경우에 제2 이전 컨텍스트 값(PCTX2)을 제2 디코딩 회로(320)에 제공할 수 있으며, 이 경우 제2 컨텍스트 값(CTX2)을 획득하기 위한 컨텍스트 선택 및 컨텍스트 모델 로딩이 생략될 수 있다. 제2 멀티플렉서(325b)는 제1 컨텍스트 값(CTX1)과 제2 컨텍스트 값(CTX2)이 동일한 경우에 업데이트된 제1 컨텍스트 값(UCTX1)을 제2 디코딩 회로(320)에 제공할 수 있고, 제2 컨텍스트 값(CTX2)이 제2 이전 컨텍스트 값(PCTX2) 및 업데이트된 제1 컨텍스트 값(UCTX1) 모두와 서로 다른 경우에 제2 컨텍스트 값(CTX2)을 제2 디코딩 회로(320)에 제공할 수 있다.
제2 디코딩 회로(320)는 제2 컨텍스트 값(CTX2), 제2 이전 컨텍스트 값(PCTX2) 및 업데이트된 제1 컨텍스트 값(UCTX1) 중 하나에 기초하여 상기 제2 디코딩 동작을 수행할 수 있다. 또한, 상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나를 수행한 이후에, 제2 디코딩 회로(320)는 컨텍스트 키퍼(350)에 임시 저장된 업데이트된 제2 컨텍스트 값(UCTX2), 업데이트된 상기 제4 컨텍스트 값 및 제5 컨텍스트 값 중 하나에 기초하여 제5 이진 값을 복원할 수 있다.
제3 멀티플렉서(335b)는 선택 신호(S2)에 기초하여 제3 컨텍스트 값(CTX3), 제3 이전 컨텍스트 값(PCTX3) 및 업데이트된 제1 컨텍스트 값(UCTX1) 중 하나를 제3 디코딩 회로(330)에 제공할 수 있다. 제3 멀티플렉서(335b)의 동작은 제2 멀티플렉서(325b)의 동작과 유사할 수 있다.
제3 디코딩 회로(330)는 제3 컨텍스트 값(CTX3), 제3 이전 컨텍스트 값(PCTX3) 및 업데이트된 제1 컨텍스트 값(UCTX1) 중 하나에 기초하여 상기 제3 디코딩 동작을 수행할 수 있다. 또한, 상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나를 수행한 이후에, 제3 디코딩 회로(330)는 컨텍스트 키퍼(350)에 임시 저장된 업데이트된 제3 컨텍스트 값(UCTX3), 업데이트된 상기 제4 컨텍스트 값 및 제6 컨텍스트 값 중 하나에 기초하여 제6 이진 값을 복원할 수 있다.
일 실시예에서, 디코딩 모드 제어 신호(DS) 및 선택 신호들(S0, S1, S2)은 하나의 신호로 통합하여 구현될 수 있다.
이상, 도 1 내지 9를 참조하여 두 개의 이진 값들을 연속적으로 디코딩하는 멀티-이진 디코딩 방식의 구조 및 동작을 설명하였으나, 세 개 이상의 이진 값들을 연속적으로 디코딩하는 경우에도 멀티-이진 디코딩 방식이 채용될 수 있다. 예를 들어, 세 개의 이진 값들을 연속적으로 디코딩하는 멀티-이진 디코딩 방식에서, 멀티-이진 디코딩 블록은 첫 번째 이진 값을 복원하는 하나의 디코딩 회로, 두 번째 이진 값을 복원하는 두 개의 디코딩 회로들, 세 번째 이진 값을 복원하는 네 개의 디코딩 회로들 및 하나의 바이패스 디코딩 회로를 포함하여 구현될 수 있으며, 세 개의 이진 값들을 출력하는 동작 모드들이 추가될 수 있다.
도 10은 본 발명의 실시예들에 따른 비디오 디코더의 구동 방법을 나타내는 순서도이다.
도 1, 2 및 10을 참조하면, 본 발명의 실시예들에 따른 비디오 디코더(10)의 구동 방법에서, 비디오 디코더(10)의 동작 모드 및 컨텍스트 값들을 선택한다(단계 S100). 예를 들어, CABAC을 이용하여 두 개의 이진 값들을 연속적으로 디코딩하는 비디오 디코더(10)에서, 디코딩 모드 제어 신호(DS)에 기초하여 상술한 제1 내지 제11 동작 모드들 중 하나가 선택될 수 있고, 컨텍스트 인덱스 제어 블록(100) 및 컨텍스트 버퍼(200)는 컨텍스트 선택 및 컨텍스트 모델 로딩을 수행하여 제1, 제2 및 제3 컨텍스트 값들(CTX1, CTX2, CTX3)을 선택할 수 있다.
선택된 상기 동작 모드 및 상기 컨텍스트 값들에 기초하여, 멀티-이진 디코딩을 수행하고(단계 S200), 상기 동작 모드에 따라 디코딩된 이진 값들 중 적어도 하나를 출력한다(단계 S300). 예를 들어, CABAC을 이용하여 두 개의 이진 값들을 연속적으로 디코딩하는 비디오 디코더(10)에서, 멀티-이진 디코딩 블록(300a)은 상기 제1, 제2, 제3 및 제4 디코딩 동작들 중 적어도 하나를 수행할 수 있다. 디코딩 모드 제어 블록(400)은 디코딩 모드 제어 신호(DS)에 기초하여, 제1 이진 값(BOUT1)만을 출력하거나, 적어도 하나의 바이패스 이진 값(BOUTBP)만을 출력하거나, 제1 이진 값(BOUT1)과 적어도 하나의 바이패스 이진 값(BOUTBP)을 출력하거나, 제1 이진 값(BOUT1)과 제2 및 제3 이진 값들(BOUT2, BOUT3) 중 하나를 항상 출력하거나, 제1 이진 값(BOUT1)에 따라 제1, 제2 및 제3 이진 값들(BOUT1, BOUT2, BOUT3) 중 적어도 하나를 출력할 수 있다.
이진 값을 출력한 이후에, 컨텍스트, 범위, 오프셋 등을 업데이트한다(단계 S400). 예를 들어, 업데이트된 컨텍스트 값(UCTX)을 컨텍스트 버퍼(200)에 저장할 수 있고, 범위들(RNG1, RNG2, RNG3, RNGA) 중 적어도 하나 및 오프셋들(OFS1, OFS2, OFS3, OFSA) 중 적어도 하나에 기초하여 업데이트된 범위(URNG) 및 업데이트된 오프셋(UOFS)을 범위/오프셋 버퍼(500)에 저장할 수 있다.
또한, 단계 S200 및 S300에 의해 수행된 디코딩 결과가 유효한지 판단한다(단계 S500). 이진 매칭을 수행한 결과, 현재까지 이루어진 이진 스트링이 유효하다고 판단되면(단계 S500: 예), 현재의 두 개의 이진 값들에 대한 디코딩을 완료하고 다음의 두 개의 이진 값들에 대한 디코딩을 수행할 수 있다. 현재까지 이루어진 상기 이진 스트링이 유효하지 않다고 판단되면(단계 S500: 아니오), 단계 S100, S200, S300 및 S400을 다시 수행할 수 있다.
본 발명의 실시예들에 따른 구동 방법은, 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수 있다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다.
한편, 본 발명의 실시예들에 따른 비디오 디코더(10)는 비디오 인코더와 통합되어 하나의 구성요소로 구현될 수 있다. 상기와 같이 비디오 인코더 및 비디오 디코더가 통합되어 구현된 구성요소를 비디오 코덱(codec)이라 부를 수 있다.
도 11은 본 발명의 실시예들에 따른 비디오 디코더를 포함하는 전자 시스템을 나타내는 블록도이다.
도 11을 참조하면, 전자 시스템(1000)은 비디오 소스(1010) 및 비디오 코덱(1020)을 포함한다. 전자 시스템(1000)은 프로세서(1030), 통신부(1040), 입출력 장치(1050) 및 전원 공급 장치(1060)를 더 포함할 수 있다.
비디오 소스(1010)는 부호화된 비트 스트림을 제공한다. 예를 들어, 비디오 소스(1010)는 상기 부호화된 비트 스트림을 미리 저장하거나 상기 부호화된 비트 스트림을 (컨텐츠 공급 시스템 또는 클라우드 컴퓨팅 시스템 등으로부터) 다운로드하여 저장하는 저장 장치를 포함할 수 있다.
비디오 코덱(1020)은 본 발명의 실시예들에 따른 비디오 디코더를 포함할 수 있다. 상기 비디오 디코더는 상기 부호화된 비트 스트림에 대한 복호화 동작을 수행하여 복원 영상을 발생할 수 있다. 상기 비디오 디코더는 도 1의 비디오 디코더일 수 있고, 멀티-이진 디코딩 블록을 포함하여 구현될 수 있으며, 다양한 동작 모드들을 지원함으로써, 디코딩 속도 및 성능이 향상되고 고해상도, 고품질의 압축 영상을 효율적으로 복원할 수 있다.
프로세서(1030)는 전자 시스템(1000)의 전반적인 동작을 제어할 수 있다. 통신부(1040)는 외부 장치와 통신을 수행할 수 있다. 입출력 장치(1050)는 키보드, 터치 스크린 등과 같은 입력 장치 및 디스플레이 등과 같은 출력 장치를 포함할 수 있다. 전원 공급 장치(1060)는 구동 전압을 제공할 수 있다.
본 발명은 비디오 디코더 및 이를 포함하는 다양한 장치 및 시스템에 적용될 수 있다. 예를 들어, 본 발명은 휴대폰(mobile phone), 스마트 폰(smart phone), PC(personal computer), 노트북(laptop computer), 디지털 TV(digital television), 셋-탑 박스(set-top box), PDA(personal digital assistant), PMP(portable multimedia player), 디지털 카메라(digital camera), 휴대용 게임 콘솔(portable game console), 웨어러블(wearable) 시스템, IoT(internet of things) 시스템, VR(virtual reality) 시스템, AR(augmented reality) 시스템 등에 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 제1 컨텍스트 값(context)에 기초하여 제1 이진 값(bin)을 복원하는 제1 디코딩 동작, 상기 제1 디코딩 동작 후에 업데이트된 상기 제1 컨텍스트 값 및 제2 컨텍스트 값 중 하나에 기초하여 제2 이진 값을 복원하는 제2 디코딩 동작, 업데이트된 상기 제1 컨텍스트 값 및 제3 컨텍스트 값 중 하나에 기초하여 제3 이진 값을 복원하는 제3 디코딩 동작, 및 컨텍스트 값 없이 적어도 하나의 바이패스 이진 값을 복원하는 제4 디코딩 동작 중 적어도 하나를 동작 모드에 기초하여 수행하는 멀티-이진(multi-bin) 디코딩 블록; 및
    상기 동작 모드에 기초하여, 상기 제1 이진 값만을 출력하거나, 상기 적어도 하나의 바이패스 이진 값만을 출력하거나, 상기 제1 이진 값과 상기 적어도 하나의 바이패스 이진 값을 출력하거나, 상기 제1 이진 값과 상기 제2 및 제3 이진 값들 중 하나를 항상 출력하거나, 상기 제1 이진 값에 따라 상기 제1, 제2 및 제3 이진 값들 중 적어도 하나를 출력하는 디코딩 모드 제어 블록을 포함하는 비디오 디코더.
  2. 제 1 항에 있어서, 상기 멀티-이진 디코딩 블록은,
    상기 제1 컨텍스트 값, 입력 범위(range) 및 입력 오프셋(offset)에 기초하여 상기 제1 이진 값을 발생하고, 상기 제1 컨텍스트 값을 업데이트하며, 상기 입력 범위 및 상기 입력 오프셋을 업데이트하여 제1 범위 및 제1 오프셋을 발생하는 제1 디코딩 회로;
    업데이트된 상기 제1 컨텍스트 값 및 상기 제2 컨텍스트 값 중 하나, 상기 제1 범위 및 상기 제1 오프셋에 기초하여 상기 제2 이진 값을 발생하고, 상기 제2 컨텍스트 값을 업데이트하며, 상기 제1 범위 및 상기 제1 오프셋을 업데이트하여 제2 범위 및 제2 오프셋을 발생하는 제2 디코딩 회로;
    업데이트된 상기 제1 컨텍스트 값 및 상기 제3 컨텍스트 값 중 하나, 상기 제1 범위 및 상기 제1 오프셋에 기초하여 상기 제3 이진 값을 발생하고, 상기 제3 컨텍스트 값을 업데이트하며, 상기 제1 범위 및 상기 제1 오프셋을 업데이트하여 제3 범위 및 제3 오프셋을 발생하는 제3 디코딩 회로; 및
    상기 입력 범위 및 상기 입력 오프셋에 기초하여, 또는 상기 제1 범위 및 상기 제1 오프셋에 기초하여, 상기 적어도 하나의 바이패스 이진 값을 발생하고 제4 범위 및 제4 오프셋을 발생하는 제4 디코딩 회로를 포함하는 것을 특징으로 하는 비디오 디코더.
  3. 제 2 항에 있어서, 상기 멀티-이진 디코딩 블록은,
    제1 선택 신호에 기초하여 업데이트된 상기 제1 컨텍스트 값 및 상기 제2 컨텍스트 값 중 하나를 상기 제2 디코딩 회로에 제공하는 제1 멀티플렉서;
    제2 선택 신호에 기초하여 업데이트된 상기 제1 컨텍스트 값 및 상기 제3 컨텍스트 값 중 하나를 상기 제3 디코딩 회로에 제공하는 제2 멀티플렉서; 및
    디코딩 모드 제어 신호에 기초하여, 상기 입력 범위 및 상기 입력 오프셋을 상기 제4 디코딩 회로에 제공하거나, 상기 제1 범위 및 상기 제1 오프셋을 상기 제4 디코딩 회로에 제공하는 제3 멀티플렉서를 더 포함하는 것을 특징으로 하는 비디오 디코더.
  4. 제 2 항에 있어서, 상기 멀티-이진 디코딩 블록은,
    업데이트된 상기 제1 컨텍스트 값, 업데이트된 상기 제2 컨텍스트 값 및 업데이트된 상기 제3 컨텍스트 값을 임시로 저장하는 컨텍스트 키퍼(keeper)를 더 포함하는 것을 특징으로 하는 비디오 디코더.
  5. 제 1 항에 있어서,
    상기 적어도 하나의 바이패스 이진 값은 제1 바이패스 이진 값 및 제2 바이패스 이진 값을 포함하고,
    상기 동작 모드는, 상기 제1 이진 값만을 출력하는 제1 동작 모드, 제1 바이패스 이진 값만을 출력하는 제2 동작 모드, 상기 제1 및 제2 바이패스 이진 값들을 출력하는 제3 동작 모드, 상기 제1 이진 값 및 상기 제2 바이패스 이진 값을 출력하는 제4 동작 모드, 및 상기 제1 이진 값과 상기 제2 및 제3 이진 값들 중 하나를 항상 출력하는 제5 동작 모드를 포함하는 것을 특징으로 하는 비디오 디코더.
  6. 제 5 항에 있어서, 상기 멀티-이진 디코딩 블록은,
    상기 제1 동작 모드에서 상기 제1 디코딩 동작을 수행하고, 상기 제2 및 제3 동작 모드들에서 상기 제4 디코딩 동작을 수행하고, 상기 제4 동작 모드에서 상기 제1 및 제4 디코딩 동작들을 수행하며, 상기 제5 동작 모드에서 상기 제1, 제2 및 제3 디코딩 동작들을 수행하는 것을 특징으로 하는 비디오 디코더.
  7. 제 5 항에 있어서,
    상기 동작 모드는, 상기 제1 이진 값이 0인 경우에 상기 제1 및 제2 이진 값들을 출력하는 제6 동작 모드, 상기 제1 이진 값이 0인 경우에 상기 제1 및 제3 이진 값들을 출력하는 제7 동작 모드, 상기 제1 이진 값이 0인 경우에 상기 제1 이진 값만을 출력하는 제8 동작 모드, 상기 제1 이진 값이 1인 경우에 상기 제1 및 제2 이진 값들을 출력하는 제9 동작 모드, 상기 제1 이진 값이 1인 경우에 상기 제1 및 제3 이진 값들을 출력하는 제10 동작 모드, 및 상기 제1 이진 값이 1인 경우에 상기 제1 이진 값만을 출력하는 제11 동작 모드를 더 포함하는 것을 특징으로 하는 비디오 디코더.
  8. 제 7 항에 있어서, 상기 멀티-이진 디코딩 블록은,
    상기 제6, 제7, 제9 및 제10 동작 모드들에서 상기 제1, 제2 및 제3 디코딩 동작들을 수행하고, 상기 제8 및 제11 동작 모드들에서 상기 제1 디코딩 동작을 수행하는 것을 특징으로 하는 비디오 디코더.
  9. 제 1 항에 있어서,
    제1, 제2 및 제3 컨텍스트 인덱스(index)들을 기초로 복수의 컨텍스트 값들 중에서 상기 제1, 제2 및 제3 컨텍스트 값들을 선택하여 상기 멀티-이진 디코딩 블록에 제공하는 컨텍스트 인덱스 제어 블록을 더 포함하는 것을 특징으로 하는 비디오 디코더.
  10. 부호화된 비트 스트림을 제공하는 비디오 소스; 및
    상기 부호화된 비트 스트림에 대한 복호화 동작을 수행하여 복원 영상을 발생하는 비디오 디코더를 포함하고,
    상기 비디오 디코더는,
    제1 컨텍스트 값(context)에 기초하여 제1 이진 값(bin)을 복원하는 제1 디코딩 동작, 상기 제1 디코딩 동작 후에 업데이트된 상기 제1 컨텍스트 값 및 제2 컨텍스트 값 중 하나에 기초하여 제2 이진 값을 복원하는 제2 디코딩 동작, 업데이트된 상기 제1 컨텍스트 값 및 제3 컨텍스트 값 중 하나에 기초하여 제3 이진 값을 복원하는 제3 디코딩 동작, 및 컨텍스트 값 없이 적어도 하나의 바이패스 이진 값을 복원하는 제4 디코딩 동작 중 적어도 하나를 동작 모드에 기초하여 수행하는 멀티-이진(multi-bin) 디코딩 블록; 및
    상기 동작 모드에 기초하여, 상기 제1 이진 값만을 출력하거나, 상기 적어도 하나의 바이패스 이진 값만을 출력하거나, 상기 제1 이진 값과 상기 적어도 하나의 바이패스 이진 값을 출력하거나, 상기 제1 이진 값과 상기 제2 및 제3 이진 값들 중 하나를 항상 출력하거나, 상기 제1 이진 값에 따라 상기 제1, 제2 및 제3 이진 값들 중 적어도 하나를 출력하는 디코딩 모드 제어 블록을 포함하는 전자 시스템.
KR1020160120445A 2016-09-21 2016-09-21 비디오 디코더 및 이를 포함하는 전자 시스템 KR20180031944A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160120445A KR20180031944A (ko) 2016-09-21 2016-09-21 비디오 디코더 및 이를 포함하는 전자 시스템
US15/492,695 US10602171B2 (en) 2016-09-21 2017-04-20 Video decoders and electronic systems including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160120445A KR20180031944A (ko) 2016-09-21 2016-09-21 비디오 디코더 및 이를 포함하는 전자 시스템

Publications (1)

Publication Number Publication Date
KR20180031944A true KR20180031944A (ko) 2018-03-29

Family

ID=61621462

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160120445A KR20180031944A (ko) 2016-09-21 2016-09-21 비디오 디코더 및 이를 포함하는 전자 시스템

Country Status (2)

Country Link
US (1) US10602171B2 (ko)
KR (1) KR20180031944A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230059794A1 (en) * 2021-08-23 2023-02-23 Mediatek Inc. Context-based adaptive binary arithmetic coding decoder capable of decoding multiple bins in one cycle and associated decoding method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100648258B1 (ko) * 2004-08-02 2006-11-23 삼성전자주식회사 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더
US7804903B2 (en) 2005-06-27 2010-09-28 Intel Corporation Hardware-based CABAC decoder
KR100644713B1 (ko) 2005-10-31 2006-11-10 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 코딩 복호기에서 원소구문을 복호화하는 방법 및 이를 위한 복호화 장치
KR100717052B1 (ko) 2005-11-08 2007-05-10 삼성전자주식회사 Cabac 복호기에서 이진 산술 복호화와 이진 매칭을병렬 처리하는 원소 구문의 복호화 방법 및 이를 위한복호화 장치
KR100717055B1 (ko) 2005-11-18 2007-05-10 삼성전자주식회사 Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치
US7656326B2 (en) 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
JP4779977B2 (ja) 2007-01-12 2011-09-28 株式会社日立製作所 画像符号化・復号化装置
US7839311B2 (en) 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
US7592937B1 (en) 2008-06-02 2009-09-22 Mediatek Inc. CABAC decoding unit and method
JP4962476B2 (ja) 2008-11-28 2012-06-27 ソニー株式会社 算術復号装置
KR101108674B1 (ko) 2009-12-30 2012-01-25 숭실대학교산학협력단 엔트로피 코딩의 성능 향상 방법 및 상기 방법을 이용한 비디오 코딩 방법 및 장치
US7978102B1 (en) 2010-03-09 2011-07-12 Himax Media Solutions, Inc. Multi-bin CABAC decision bin decoder
US8319672B2 (en) 2010-04-09 2012-11-27 Korea Electronics Technology Institute Decoding device for context-based adaptive binary arithmetic coding (CABAC) technique
TWI403170B (zh) 2010-05-21 2013-07-21 Univ Nat Chiao Tung 背景調適性二進制算術解碼裝置及其解碼方法
TWI487295B (zh) 2011-05-17 2015-06-01 Univ Nat Cheng Kung 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法
US9264706B2 (en) 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
US9351003B2 (en) 2013-09-27 2016-05-24 Apple Inc. Context re-mapping in CABAC encoder

Also Published As

Publication number Publication date
US10602171B2 (en) 2020-03-24
US20180084265A1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
US7129862B1 (en) Decoding bit streams encoded according to variable length codes
US7119723B1 (en) Decoding variable length codes while using optimal resources
US8018996B2 (en) Arithmetic decoding apparatus and method
TW201830972A (zh) 用於視訊寫碼之低複雜度符號預測
US7286066B1 (en) Acceleration of bitstream decoding
JP2006054877A (ja) 適応算術復号化方法及び適応算術復号化装置
TWI397268B (zh) 解碼用的熵處理器
KR20060051157A (ko) 정수 데이터의 무손실 적응 인코딩 및 디코딩을 위한시스템 및 방법
US20200186583A1 (en) Integer Multiple Description Coding System
CN101180886A (zh) 利用预估值的修正进行压缩和解压缩
Nikara et al. Multiple-symbol parallel decoding for variable length codes
US8456334B2 (en) Variable-length code decoding apparatus, decoding system, and variable-length code decoding method
KR20180031944A (ko) 비디오 디코더 및 이를 포함하는 전자 시스템
CN112449191A (zh) 压缩多个图像的方法、解压缩图像的方法和装置
US7439886B2 (en) Variable-length decoder, video decoder and image display system having the same, and variable-length decoding method
US9088296B2 (en) Variable length coding and decoding using counters
JP3491001B1 (ja) 信号符号化方法、信号復号方法、信号符号化装置、信号復号装置、信号符号化プログラム、及び、信号復号プログラム
KR20050010918A (ko) 가변길이 복호화를 위한 방법 및 시스템, 및 코드워드들의지역화를 위한 장치
EP3991303A1 (en) Features of range asymmetric number system encoding and decoding
JP2007336056A (ja) 符号化装置、符号化方法及びプログラム
WO2013046504A1 (ja) 算術復号装置、画像復号装置、および算術復号方法
US9549193B2 (en) Video encoding method and video encoding device
JP5307520B2 (ja) 画像圧縮装置
JP2934603B2 (ja) 可変長さコードの復号化方法及びその装置
JP2008131526A (ja) 動画像符号化装置及び動画像符号化プログラム

Legal Events

Date Code Title Description
A201 Request for examination