KR101321012B1 - Cabac 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처 - Google Patents

Cabac 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처 Download PDF

Info

Publication number
KR101321012B1
KR101321012B1 KR1020107007048A KR20107007048A KR101321012B1 KR 101321012 B1 KR101321012 B1 KR 101321012B1 KR 1020107007048 A KR1020107007048 A KR 1020107007048A KR 20107007048 A KR20107007048 A KR 20107007048A KR 101321012 B1 KR101321012 B1 KR 101321012B1
Authority
KR
South Korea
Prior art keywords
intermediate signal
decoding
cabac
bypass mode
decoder
Prior art date
Application number
KR1020107007048A
Other languages
English (en)
Other versions
KR20100058618A (ko
Inventor
이리앙 바오
토시아키 요시노
카이 왕
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20100058618A publication Critical patent/KR20100058618A/ko
Application granted granted Critical
Publication of KR101321012B1 publication Critical patent/KR101321012B1/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
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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

Abstract

콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림 디코딩을 최적화하기 위한 기술들이 개시된다. 일 구성에서, 장치는 콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림을 CABAC 디코딩된 표준 포맷 및 디코딩된 순서를 가진 중간 신호로 디코딩하도록 동작하는 제 1 처리 회로를 포함한다. 제 2 처리 회로는 비(non)-CABAC 디코딩 표준을 사용하여 중간 신호를 디코딩한다. 버퍼는 처리 속도들을 개선하기 위하여 제 1 및 제 2 처리 회로들사이에 제공된다.

Description

CABAC 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처{ARCHITECTURE FOR MULTI-STAGE DECODING OF A CABAC BITSTREAM}
본 출원은 2007년 8월 31일에 출원된 공동 양도된 가출원번호 제60/969,565호 및 2008년 5월 29일에 출원된 가출원번호 제61/057,009호의 우선권을 주장한다. 이 가특허출원은 여기에 참조로 통합된다.
본 발명은 일반적으로 비디오 디코딩 분야, 특히 콘텍스트-기반 적응적 2진 산술 코딩(CABAC: Context-based Adaptive Binary Arithmetic Coding) 비트스트림 디코딩을 최적화하기 위한 기술들에 관한 것이다.
H.264/AVC는 비트스트림을 생성하기 위하여 2개의 상이한 엔트로피 코딩 모드들을 가진다. AVC는 적응적 비디오 코딩을 나타낸다. 하나의 코딩 모드는 콘텍스트-기반 적응적 가변 길이 코딩(CAVLC: Context-based Adaptive Variable Length Coding)이며, 다른 코딩 모드는 콘텍스트-기반 적응적 2진 산술 코딩(CABAC)이다. CAVLC는 다른 가변 길이 코딩(VLC) 방식들과 유사하다. 각각의 신택스 엘리먼트는 하나 이상의 정수개의 비트들로부터 디코딩된다.
CABAC은 신택스 엘리먼트들을 매우 상이하게 디코딩한다. 각각의 신택스 엘리먼트는 2개의 단계로 개념적으로(conceptually) 디코딩될 수 있다. 제 1 단계에서, CABAC은 적응적 2진 산술 디코더를 사용하여 하나 이상의 2진 신볼들을 디코딩한다. 제 2 단계에서, 역2진화 프로세스(debinarization process)는 신택스 엘리먼트의 값을 재구성하도록 수행되며, 이러한 값은 비디오 디코더의 나머지 디코딩 단계들에서 사용된다. 바이패스 플래그(bypass flag) 및 콘텍스트 인덱스(context index)에 따르면, 2진 심볼은 적응적 2진 산술 코더에서 정의된 3개의 상이한 디코딩 프로세스들, 즉 디코드결정(DecodeDecision), 디코드바이패스(DecodeBypass) 및 디코드종결(DecodeTerminate)중 하나를 사용하여 디코딩된다.
디코드결정에서, 2진 심볼은 비트스트림으로부터 사전에 디코딩된 정보의 콘텍스트(context)로 디코딩된다. 또한, 동일한 카테고리(category)의 다음 2진 심볼을 디코딩하기 위한 확률 모델(probability model)은 방금 디코딩된 2진 심볼의 값에 기초하여 업데이트된다. 디코드바이패스에서, 심볼은 사전에 디코딩된 다른 정보를 참조하지 않고 디코딩된다. 또한, 심볼이 디코딩된후에 콘텍스트 모델을 유지할 필요가 없다. 디코드종결은, 한 값의 심볼을 디코딩하는 것이 단지 비트들의 일부 양만을 소비하는 반면에 다른 값의 심볼을 디코딩하는 것이 상당히 더 많은 비트들을 소비하는 프로세스가 정의되는 것을 제외하고, 디코드바이패스와 유사하다.
특히 프로세스 디코드결정을 사용하여 심볼을 디코딩하는 것이 일련의 동작들(serial operation)의 여러 단계들을 필요로 하기 때문에, 전체 CABAC 디코딩 프로세스의 속도를 향상시키는 것이 매우 곤란하다. 이는 고화질(HD:high-definition) 비디오 디코더를 구현할 때 문제가 되었다. 일부 압축된 프레임들은 너무 크다. CABAC 디코더는 다른 디코딩 스테이지들보다 완료하는데 상당한 더 많은 시간을 소비할 수 있다. 따라서, 디코더의 전체 성능에 영향을 미친다.
인코딩 프로세스는 디코딩 프로세스의 역(inverse)이다. CABAC 인코더는 각각의 신택스 엘리먼트를 하나 또는 다수의 2진 심볼들로 변환하기 위하여 2진화(binarization)을 수행하며, 각각의 2진 심볼은 3개의 2진 산술 코딩 프로세스들, 즉 디코드결정, 디코드바이패스 및 디코드종결에 각각 대응하는 인코드결정(EncodeDecision), 인코드바이패스(EncodeBypass) 및 인코드종결(EncodeTerminate)중 하나를 사용하여 인코딩된다.
앞서 언급된 문제점에 대한 하나의 해결방법은 제 1 스테이지에서 CABAC 비트스트림을 CABAC 없는 비트스트림으로 트랜스코딩(transcode)하고, 제 2 스테이지에서 이러한 비(non)-CABAC 비트스트림의 디코딩 및 다른 처리 단계들을 수행하는 것이다. 일반적으로 이들 2개의 스테이지들사이에서는 버퍼링이 필요하다. 제 1 스테이지에서, 동작들은 보통 CABAC 비트스트림으로부터 신택스 엘리먼트들의 값들을 디코딩하는 동작 및 H.264 CAVLC 또는 MPEG-2 형 VLC 인코더와 같은 다른 엔트로피 코딩 방식을 사용하여 신택스 엘리먼트들을 재-인코딩하는 동작을 포함한다. 이러한 트랜스코딩 해결방법과 관련한 한 문제점은 트랜스코딩 동작들 연관된 복잡성(complexity)이다. 완전한 CABAC 디코더는 본질적으로 다른 VLC 인코더 및 VLC 디코더의 오버헤드(overhead)로 구현될 필요가 있다. 또한, VLC 인코더의 압축 효율성은 부가 트래픽을 최소화시키는데 있어서 만족스럽지 않을 수 있다.
따라서, 콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림 디코딩을 최적화하기 위한 기술들에 대한 필요성이 요구된다.
콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림 디코딩을 최적화하기 위한 기술들이 제공된다. 일 구성에서, 콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림을 CABAC 디코딩된 표준 포맷 및 디코딩된 순서를 가진 중간 신호로 디코딩하도록 동작 가능한 제 1 디코더 스테이지를 포함하는 장치가 제공된다. 이 장치는 중간 신호를 디코딩된 순서로 버퍼링하도록 동작가능한 버퍼; 및 비(non)-CABAC 디코딩 표준을 사용하여 중간 신호를 비디오 출력 신호로 디코딩하도록 동작가능한 제 2 디코더 스테이지를 포함한다.
다른 양상에서, 콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림을 CABAC 디코딩된 표준 포맷 및 디코딩된 순서를 가진 중간 신호로 디코딩하도록 동작가능한 제 1 디코더 회로를 포함하는 집적회로가 제공된다. 이 집적회로는 또한 중간 신호를 디코딩된 순서로 버퍼링하도록 동작가능한 버퍼를 포함한다. 제 2 디코더 회로는 비-CABAC 디코딩 표준을 사용하여 중간 신호를 비디오 출력 신호로 디코딩하도록 동작가능하다.
또 다른 양상에서, 컴퓨터 프로그램 물건이 제공된다. 컴퓨터 프로그램 물건은 명령들을 가진 컴퓨터 판독가능 매체를 포함하며, 상기 명령들은 컴퓨터로 하여금 콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림을 CABAC 디코딩된 표준 포맷 및 디코딩된 순서를 가진 중간 신호로 디코딩하도록 하기 위한 명령을 포함한다. 컴퓨터 프로그램 물건은 또한 컴퓨터로 하여금 중간 신호를 디코딩된 순서로 버퍼링하고 비-CABAC 디코딩 표준을 사용하여 중간 신호를 비디오 출력 신호로 디코딩하도록 하기 위한 명령들을 포함한다.
추가 양상들은 첨부된 도면들과 함께 이하의 상세한 설명을 참조할때 더욱더 명백해 질 것이다.
본 발명의 양상들 및 구성들은 전반에 걸쳐 동일한 도면부호들이 대응하는 엘리먼트들을 나타내는 도면들과 관련하여 이하에 기술된 상세한 설명을 참조할때 더욱더 명백해 질 것이다.
도 1은 무선 장치의 일반적인 블록도를 도시한다.
도 2a는 예시적인 H.264 표준 범위 레지스터를 도시한다.
도 2b는 예시적인 H.264 표준 오프셋 레지스터를 도시한다.
도 2c는 예시적인 H.264 표준 MPS 경우를 도시한다.
도 2d는 예시적인 H.264 LPS 경우를 도시한다.
도 3은 하나의 빈(bin)에 대하여 H.264 표준 산술 디코딩 프로세스의 샘플(의사코드) 명령 세트를 도시한다.
도 4는 H.264 표준 재규정(Renormalization) 프로세스의 흐름도를 도시한다.
도 5는 H.264 표준 정규 디코딩 모드 프로세스(디코드결정)의 흐름도를 도시한다.
도 6은 H.264 표준 바이패스 디코딩 모드 프로세스(디코드바이패스)의 흐름도를 도시한다.
도 7은 H.264 표준 종결 디코딩 모드 프로세스(디코드종결)의 흐름도를 도시한다.
도 8은 CABAC 비트스트림의 멀티-스테이지 디코딩을 수행하는 프로세서의 일반적인 블록도를 도시한다.
도 9는 CABAC 비트스트림 멀티-스테이지 디코딩 프로세스의 흐름도를 도시한다.
도 10은 바이패스 모드를 가진 멀티-스테이지 CABAC 디코더의 일반적인 블록도를 도시한다.
도 11은 바이패스 모드를 가진 CABAC 비트스트림 멀티-스테이지 디코딩 프로세스의 흐름도를 도시한다.
도면들의 이미지들은 예시적인 목적으로 단순화되며 실제 크기로 도시되지 않는다. 이해를 용이하게 하기 위하여, 동일한 도면부호들은 접미사들이 적절한 경우에 동일한 엘리먼트들을 구별하기 위하여 추가될 수 있는 것을 제외하고 가능한 경우에 도면들에 공통인 동일한 엘리먼트들을 지정하기 위하여 사용되었다.
첨부된 도면들은 본 발명의 예시적인 구성들을 예시하며, 따라서 다른 균등한 효과적인 구성들을 포함할 수 있는 본 발명의 범위를 제한하는 것으로 고려되지 않아야 한다. 일 구성의 특징들 또는 단계들이 추가 인용없이 다른 구성들에 유리하게 통합될 수 있다는 것이 인식되어야 한다.
용어 “예시적인”은 여기서 “예, 보기, 또는 예시로서 기능하는” 것을 의미하는 것으로 이용된다. “예시적인” 것으로서 여기 기재되는 임의의 구성 또는 설계가 반드시 다른 구성들 또는 설계들에 비해 바람직하거나 유리한 것으로 해석되는 것은 아니며, 용어들 "코어", "엔진", "머신", "프로세서" 및 "처리 유닛"은 상호 교환하여 사용된다.
비디오 신호들은 일련의 화상들, 프레임들, 및/또는 필드들에 의하여 특징지워질 수 있으며, 이들의 일부는 하나 이상의 슬라이스들(slice)을 추가로 포함할 수 있다. 여기에서 사용된 바와같이, 용어 "프레임"은 프레임들, 필드들, 화상들 및/또는 슬라이스들중 하나 이상을 포함할 수 있는 광의어(broad term)이다.
실시예들은 멀티미디어 전송 시스템에서 채널 스위칭을 용이하게 하는 시스템들 및 방법들을 포함한다. 멀티미디어 데이터는 동영상, 오디오, 정지화상들, 텍스트 또는 임의의 다른 적절한 타입의 오디오-시각 데이터 중 하나 이상을 포함할 수 있다.
비디오 인코더들과 같은 멀티미디어 처리 시스템들은 동영상 전문가 그룹(MPEG)-1, -2 및 -4 표준들, 국제 전기통신 연합(ITU)-T H.263 표준, 및 ITU-T H.264 표준 및 이의 대응 표준, ISO/IEC MPEG-4, Part 10, 즉 AVC(Advanced Video Coding)와 같은 국제 표준들에 기초하는 인코딩 방법들을 사용하여 멀티미디어 데이터를 인코딩할 수 있으며, 이들 표준 각각은 모든 목적을 위하여 여기에 참조로 전체적으로 통합된다. 이러한 인코딩 및 더 나아가 디코딩 방법들은 일반적으로 전송 및/또는 저장을 위하여 멀티미디어 데이터를 압축하는 것과 관련된다. 압축은 멀티미디어 데이터로부터 리던던시(redundancy)를 제거하는 프로세스로서 넓게 생각될 수 있다.
비디오 신호는 프레임들(전체 화상) 또는 필드들(예컨대, 인터레이스된 비디오 스트림은 화상의 홀수 또는 짝수 라인들을 교번하는 필드들을 포함한다)를 포함하는 화상들의 시퀀스에 의하여 기술될 수 있다. 게다가, 각각의 프레임 또는 필드는 2개 이상의 슬라이스들, 또는 프레임 또는 필드의 부-부분들(sub-portion)을 추가로 포함할 수 있다.
비디오 인코더들과 같은 멀티미디어 프로세서들은 프레임을 화소들의 서브세트로 분할함으로써 프레임을 인코딩할 수 있다. 화소들의 이들 서브세트들은 블록들 또는 매크로블록들로서 지칭될 수 있으며, 예컨대 16×16 화소들을 포함할 수 있다. 인코더는 각각의 16×16 매크로블록을 서브블록들로 추가로 분할할 수 있다. 각각의 서브블록은 추가 서브블록들을 추가로 포함할 수 있다. 예컨대, 16×16 매크로블록의 서브블록들은 16×8 및 8×16 서브블록들을 포함할 수 있다. 16×8 및 8×16 서브블록들의 각각은 예컨대 8×8 서브블록들을 포함할 수 있으며, 8×8 서브블록들은 그 자체적으로 예컨대 4×4, 4×2 및 2×4 서브블록들 등을 포함할 수 있다. 여기에서 사용된 바와같이, 용어 "블록"은 매크로블록 또는 임의의 크기의 서브블록 중 하나를 지칭할 수 있다.
여기에서 제시된 기술들은 무선 통신들, 컴퓨팅, 개인 전자장치들 등을 위하여 사용될 수 있다. 무선 통신을 위한 기술들의 예시적인 사용이 이하에 기술된다. 통신 시스템 또는 네트워크는 이더넷, 전화(예컨대, POTS), 케이블, 전력선 및 광섬유 시스템들중 하나 이상, 및/또는 코드분할 다중접속(CDMA 또는 CDMA2000) 통신 시스템, 주파수 분할 다중접속(FDMA) 시스템, 직교 주파수 분할 다중(OFDM) 접속 시스템, GSM/GPRS(General Packet Radio Service)/EDGE(enhanced data GSM environment)와 같은 시분할 다중접속(TDMA) 시스템, TETRA(Terrestrial Trunked Radio) 이동 전화 시스템, 광대역 코드 분할 다중 접속(WCDMA) 시스템, 높은 데이터 레이트(1xEV-DO 또는 1xEV-DO Gold Multicast) 시스템, IEEE 802.11 시스템, MediaFLO 시스템, DMB 시스템, DVB-H 시스템 등 중 하나 이상을 포함하는 무선 시스템을 포함하는, 유선 또는 무선 통신 시스템 중 하나 이상을 포함할 수 있다.
도 1은 무선 통신 시스템 또는 네트워크에서 무선 장치(10)의 구성의 블록도를 도시한다. 무선 장치(10)는 셀룰라 또는 카메라 폰, 단말, 핸드셋, 개인휴대단말(PDA), 또는 임의의 다른 장치일 수 있다. 무선 통신 시스템은 코드 분할 다중접속(CDMA) 시스템, GSM(Global System for Mobile Communications) 시스템, 또는 임의의 다른 시스템일 수 있다. 핸드셋은 셀룰라 전화, 무선 장치, 무선 통신 장치, 비디오 게임 콘솔, 무선-장착(wireless-equipped) 개인휴대단말(PDA), 랩탑 컴퓨터 또는 비디오-인에이블 장치(video-enabled device)일 수 있다.
무선 장치(10)는 수신 경로 및 전송 경로를 통해 양방향 통신들을 제공할 수 있다. 수신 경로상에서, 기지국들에 의하여 전송되는 신호들은 안테나(12)에 의하여 수신되고 수신기(RCVR)(14)에 제공된다. 수신기(14)는 수신된 신호를 컨디셔닝 및 디지털화하고, 추가 처리를 위하여 디지털 섹션(20)에 샘플들을 제공한다. 전송 경로상에서, 송신기(TMTR)(16)는 디지털 섹션(20)로부터 전송될 데이터를 수신하고, 데이터를 처리 및 컨디셔닝하며, 변조된 신호를 생성하며, 변조된 신호는 안테나(12)를 통해 기지국들에 전송된다.
디지털 섹션(20)은 예컨대 모뎀 프로세서(22), 비디오 프로세서(24), 제어기/프로세서(26), 디스플레이 프로세서(28), ARM/DSP(32), 그래픽 처리 유닛(GPU)(34), 내부 메모리(36) 및 외부 버스 인터페이스(EBI)(38)와 같은 다양한 처리, 인터페이스 및 메모리 유닛들을 포함한다. 모뎀 프로세서(22)는 데이터 전송 및 수신을 위한 처리(예컨대, 인코딩, 변조, 복조 및 디코딩)를 수행한다. 비디오 프로세서(24)는 캠코더, 비디오 재생 및 화상회의와 같은 비디오 애플리케이션들을 위한 비디오 콘텐츠(예컨대, 정지화상들, 동영상들, 및 동 텍스트들(moving text))에 대한 처리를 수행한다. 제어기/프로세서(26)는 디지털 섹션(20)내의 다양한 처리 및 인터페이스 유닛들의 동작을 제어할 수 있다. 디스플레이 프로세서(28)는 디스플레이 유닛(30)상에 비디오들, 그래픽들 및 텍스트들의 디스플레이를 용이하게 하기 위한 처리를 수행한다. ARM/DSP(32)는 무선장치(10)에 대한 다양한 타입들의 처리를 수행할 수 있다. 그래픽 처리 유닛(34)은 그래픽 처리를 수행한다.
여기에서 제시된 기술들은 디지털 섹션(20)내의 프로세서들중 임의의 프로세서, 예컨대 비디오 프로세서(24)에 대하여 사용될 수 있다. 내부 메모리(36)는 디지털 섹션(20)내의 다양한 유닛들의 데이터 및/또는 명령들을 저장한다. EBI(38)는 버스 또는 데이터 라인 DL을 통해 디지털 섹션(20)(예컨대, 내부 메모리(36)) 및 주 메모리(40)간의 데이터 전송을 용이하게 한다.
디지털 섹션(20)은 하나 이상의 DSP들, 마이크로-프로세서들, RISC들 등으로 구현될 수 있다. 디지털 섹션(20)은 또한 하나 이상의 주문형 집적회로들(ASIC) 또는 임의의 다른 타입의 집적회로들(IC)상에 제조될 수 있다.
여기에서 제시된 기술들은 다양한 하드웨어 유닛들로 구현될 수 있다. 예컨대, 여기에서 제시된 예들과 관련하여 기술된 다양한 예시적인 논리 블록들, 컴포넌트들, 모듈들, 및 회로들이 범용 프로세서; 디지털 신호 프로세서, DSP; 주문형 집적회로, ASIC; 필드 프로그램가능 게이트 어레이, FPGA; 또는 다른 프로그램가능 논리 장치; 이산 게이트 또는 트랜지스터 로직; 이산 하드웨어 컴포넌트들; 또는 여기에 제시된 기능들을 수행하도록 설계된 것들의 조합을 통해 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서 일 수 있지만; 대안적으로, 프로세서는 임의의 기존 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 프로세서는 또한 예컨대, DSP 및 마이크로프로세서, 다수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서, 또는 임의의 다른 이러한 구성들의 조합과 같이 계산 장치들의 조합으로서 구현될 수 있다. 프로세서는 또한 RISC들, ARM들, 디지털 신호 처리 장치들(DSPD), 프로그램가능 논리 장치들(PLD)을 포함할 수 있다.
여기에서 제시된 예들과 관련하여 기술된 알고리즘 또는 프로세스의 블록들은 하드웨어에서, 하나 이상의 처리 엘리먼트들에 의해 실행되는 하나 이상의 소프트웨어 모듈들에서, 또는 이들의 조합에 의해 직접 구현될 수 있다. 소프트웨어 모듈들은 RAM 메모리; 플래시 메모리; ROM 메모리; EPROM 메모리; EEPROM 메모리; 레지스터들; 하드디스크; 휴대용 디스크; CD-ROM; 또는 공지된 저장 매체의 임의의 다른 형태 또는 조합에 상주할 수 있다. 예시적인 저장매체는 프로세서와 결합되어, 프로세서는 저장매체로부터 정보를 판독하고 저장매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서의 구성요소일 수 있다. 프로세서 및 저장매체는 주문형 집적회로(ASIC) 에 위치할 수 있다. ASIC 는 무선 모뎀에 위치할 수 있다. 대안적으로, 프로세서 및 저장 매체는 무선 모뎀에서 이산 컴포넌트로서 존재할 수 있다.
도 2a-2d 및 도 3-7은 예컨대 CABAC 비트스트림을 디코딩하기 위한 H.264 표준과 관련된다. 도 2a-2d 및 도 3-7은 도 8-11의 구성들에 적용될 수 있는 H.264 표준에 의하여 정의된 일반적인 원리들을 개시한다.
도 2a는 예시적인 H.264 표준 범위(range) 레지스터(50)를 도시하며, 도 2b는 예시적인 H.264 표준 오프셋(offset) 레지스터(60)를 도시한다. 2진 산술 코딩 프로세스의 기본적인 사상은 순환적 간격 분할(recursive interval division)이다. 산술 디코딩 엔진 코어는 2개의 레지스터들을 유지한다. 제 1 레지스터는 9-비트를 가진 범위 레지스터(50)이다. 제 2 레지스터는 정규 모드(regular mode)에서 9-비트이며 바이패스 모드(bypass mode)에서 10-비트인 오프셋 레지스터(60)이다.
도 2c는 예시적인 H.264 표준 최대 확률 심볼(MPS: most probability symbol) 경우를 도시하며, 도 2d는 예시적인 H.264 표준 최소 확률 심볼(LPS: least probability symbol) 경우를 도시한다. 범위 레지스터(50)는 현재의 간격의 부간격 rLPS(52) 및 부간격 rMPS(54)의 전체 거리에 의하여 표시된 폭을 기록한다. 오프셋은 비트스트림 및 한 포인트(point)로부터 범위내의 현재 위치까지이다. 이하에 기술된 수식들 및 표현들중 많은 것이 C 또는 C++ 컴퓨터 프로그래밍 언어와 유사한 신택스(syntax)를 사용한다는 것에 유의해야 한다. 표현들은 예시적으로 사용되며, 상이한 신택스를 가진 다른 컴퓨터 프로그래밍 언어들로 표현될 수 있다.
빈(bin)을 디코딩할때, 범위는 특정 빈을 디코딩하기 위한 콘텍스트(context)에 따라 2개의 부간격들 rLPS(52) 및 rMPS(54)로 분할된다. 빈은 CABAC 디코딩된 표준 포맷이다. 이하의 설명으로부터 인식되는 바와같이, 빈은 디코딩되었을때 2진 심볼이다. 부간격들 rLPS(52) 및 rMPS(54)은 수식 (1) 및 (2)로 정의된다.
rLPS = 범위 * pLPS, 및 수식(1)
rMPS = 범위 * pMPS = 범위 * (1-pLPS) = 범위 - rLPS 수식(2)
여기서 pLPS는 최소 확률 심볼의 확률이며, pMPS는 최대 확률 심볼의 확률이다. 오프셋이 감소하는 부간격 rLPS(52) 및 rMPS(54)는 빈이 MPS 빈인지 또는 LPS 빈인지를 결정한다. 만일 오프셋이 >= rMPS이면, 빈은 LPS 빈이다. 그렇치 않으면, 빈은 MPS 빈이다. 빈이 결정된후에, 범위 및 오프셋은 업데이트된다. 용어 pMPS는 확률이다. 확률은 0 내지 1내에 있어야 한다. 용어 rMPS는 범위*pMPS이다. MPS 및 LPS의 확률들의 합은 1이어야 한다.
이하의 다양한 구성들에서, 흐름도 블록들은 도시된 순서로 수행되거나 또는 이들 블록들 또는 이의 부분들은 동시에, 병렬로 또는 상이한 순서로 수행될 수 있다.
도 3은 하나의 빈에 대하여 H.264 표준 산술 디코딩 프로세스(100)의 샘플(의사코드) 명령 세트를 도시한다. 명령 세트는 범위 레지스터(50) 및 오프셋 레지스터(60) 둘다가 9비트인 것을 표시한다. 범위 레지스터(50) 구성이 또한 표시된다. 명령 세트는 범위가 28<=범위< 29 내에 있는 것(28<=range< 29)을 표시한다. 산술 디코딩 프로세스(100)는 요약되며, 범위가 >오프셋>=0인지(range>offset>=0)에 대한 결정이 이루어지는 명령에서 시작한다. 만일 결정이 "아니오(No)"이면, 프로세스(100)는 종료한다. 그러나, 만일 결정이 "예(Yes)"이면, 명령들의 다음 세트는 if-else 세트이다. if 문은 오프셋이 >=rMPS인지(offset>=rMPS)를 알기 위하여 검사한다. 만일 결정이 "예"이면, 빈은 LPS 경우이다. 이때, 범위는 부간격 rLPS(도 2d)와 동일하게 세팅된 새로운 범위(range_new)로 업데이트되며, 새로운 오프셋(offset_new)은 오프셋-rMPS(offset-rMPS)와 동일하게 세팅된다.
만일 if 조건이 "아니오"이면, 빈은 MPS 경우이다. 이때, 범위는 부간격 rMPS와 동일하게 세팅된 새로운 범위(range_new)로 업데이트되며, 새로운 오프셋(offset_new)은 오프셋과 동일하게 세팅된다.
도 4는 H.264 표준 재규정 프로세스(150)의 흐름도를 도시한다. 하나의 빈을 디코딩한후에, 범위 및 오프셋은 다음 빈을 디코딩하기 위하여 정밀성(precision)을 유지하도록 재규정될 것이다. 도 2a에 표현된 바와같이, 표준 재규정 프로세스(150)는 9-비트 범위 레지스터(50)의 최상위 비트(MSB)가 항상 1이도록 한다. 표준 재규정 프로세스(150)는 범위가 <0X100인지(range<0X100)에 대한 결정이 이루어지는 블록(152)에서 시작된다. 블록(152)에서, 범위의 값은 256(또는 0x100)과 비교된다. 만일 결정이 "아니오"이면, 프로세스(150)는 종료된다. 그러나, 만일 블록(152)에서의 결정이 "예"이면, 블록(152)은 블록(154) 전에 수행된다. 블록(154)에서, 범위는 범위=범위<<1(range=range<<1)에 의하여 표시된 1비트만큼 좌측으로 시프트된다. 오프셋은 오프셋=오프셋<<1(offset=offset<<1)에 의하여 표시된 바와같이 1비트 만큼 좌측으로 시프트된다. 오프셋은 또한 오프셋(비트 단위 OR) 판독_비트들(1)(offset│read_bits(1))로 세팅된다. 표현 오프셋(비트 단위 OR) 판독_비트들(1)은 1 비트 만큼 좌측으로 시프트된 범위/오프셋 레지스터들의 값을 나타낸다. 시프트 후에, 최하위(최우측) 비트는 0이다. 표현 판독_비트들(1)은 비트스트림으로부터 1비트를 판독하며, 이러한 1 비트는 오프셋 레지스터(60)의 최하위(최우측) 비트에 더해진다.
블록(154)은 앞서 기술된 블록(152)으로 루프백(loop back)된다. 블록들(152, 154)의 루프는 블록(152)에서의 결정이 "아니오"일때까지 반복되며, 이는 재규정 프로세스(150)를 완료한다.
도 5는 H.264 표준 정규 디코딩 모드 프로세스(200)의 흐름도를 도시한다. 표준 디코딩 프로세스(200)에서, 곱셈(multiplication)을 방지하기 위하여, 64×4 룩업 테이블(LUT)은 앞의 수식(1)에 기술된 rLPS를 근사화(approximate)하기 위하여 사용된다. 범위는 9-비트 범위 레지스터(50)의 동일한-파티션들(partition)에 의하여 4개의 셀들로 근사화된다. pLPS는 6-비트 콘텍스트 상태에 의하여 인덱스되는 64개의 양자화된 값들에 의하여 근사화된다. 따라서, 블록(202)에서, rLPS는 수식(3)에 따라 계산된다.
rLPS = lutLPS[ctxIdx -> state] [(range>>6)&3] 수식(3)
여기서, ctxIdx는 프로세스(200)에 대한 입력이며, 콘텍스트 상태에 대한 인덱스를 나타내며, 상태 정보를 제공하며; range>>6은 6 비트만큼의 우측 시프트 또는 26에 의한 나눗셈을 나타내며, (range>>6)&3의 결과는 LUT를 어드레싱하기 위하여 사용되는 범위 레지스터(50)에서 비트들 7-6(MSB 후 2비트)을 추출한다. 표현 ctxIdx->state는 rLPS를 획득하기 위하여 64×4 LUT에서 사용되는 0 내지 63의 값을 취할 수 있다. 예컨대, 만일 범위가 0b1 xx yy yyyy이면, 범위는 0x100 내지 0x1FE내에 있을 것이며, (range>>6)&3은 범위의 "xx"를 획득하기 위하여 사용된다. 표현 &는 비트단위 AND 함수이다.
블록(202)에서, rMPS는 또한 수식(4)에 따라 계산된다.
rMPS = range-rLPS 수식(4)
여기서, rLPS는 수식(3)에서 계산된다.
블록(202)은 오프셋>=rMPS인지에 대한 결정이 이루어지는 블록(204) 전에 수행된다. 만일 결정이 "예" 이면, 블록(204)은 빈, 범위 및 오프셋이 수식(5), (6) 및 (7)에 따라 계산되는 블록(206) 전에 수행된다.
bin = !ctxIdx->valMPS 수식(5)
range=rLPS 수식(6)
offset = offset - rMPS 수식(7)
여기서 !ctxIdx->valMPS는 ctxIdx->valMPS가 값 0 또는 1을 취할 수 있으며, "!"가 비트 플립(bit flip)을 의미하는 표현을 나타낸다. 용어 ctxIdx는 함수에 대한 입력 파라미터이며, 상태 및 valMPS 정보를 제공한다. 용어 valMPS는 MPS 경우의 빈 출력을 나타낸다.
블록(206)은 ctxIdx->state가 0인지에 관한 결정이 이루어지는 블록(208) 전에 수행된다. 만일 블록(208)에서의 결정이 "예"이면, 블록(208)은 ctxIdx->valMPS가 동일한 !ctxIdx->valMPS에 할당되는 블록(210) 전에 수행된다. 블록(210)은 블록(212) 전에 수행된다. 부가적으로, 만일 블록(208)에서의 결정이 "아니오"이면, 블록(208)은 블록(212) 전에 수행된다. 블록(212)에서, ctxIdx->state는 동일한 TransIndexLPS(ctxIDx->state)에 할당된다. 각각의 빈이 디코딩된후에, 각각의 ctxIdx와 연관된 state/valMPS는 업데이트될 필요가 있다. 용어 TransIndexLPS/TransIndexMPS는 상태 전이(state transition)를 계산하기 위하여 H.264 표준에서 정의된 단지 2개의 LUT들이다.
블록(204)을 다시 참조하면, 만일 블록(204)에서의 결정이 "아니오"이면, 블록(204)은 빈 및 범위가 수식 (8) 및 (9)에 따라 계산되는 블록(214) 전에 수행된다.
bin = ctxIdx -> valMPS; 수식(8)
range = rMPS. 수식(9)
블록(214)은 ctxIdx -> state가 동일한 TransIndexLPS(ctxIDx -> state)에 할당되는 블록(216) 전에 수행된다. 블록들(212, 216) 둘다는 재규정 프로세스(150)가 수행되는 블록(218)으로 진행한다. 블록(218)은 프로세스(200)를 종료한다.
도 6은 H.264 표준 바이패스 디코딩 모드 프로세스(250)의 일반적인 흐름도를 도시한다. H.264 표준 바이패스 디코딩 모드 프로세스(250)에서, 오프셋은 1비트만큼 좌측으로 시프트되며, 1 비트는 비트스트림으로부터 판독된다. 새로운 오프셋은 빈이 1인지 또는 0인지를 결정하기 위하여 범위와 비교된다.
표준 바이패스 디코딩 모드 프로세스(250)는 오프셋이 오프셋<<1과 동일하게 세팅되는 블록(252)(offset=offset<<1)에서 시작하며, 여기서 <<1은 2에 의한 곱셈 또는 1만큼의 좌측 시프트를 나타낸다. 추가 오프셋은 오프셋(비트방식 OR) 판독_비트들(1)과 동일하게 세팅된다(offset=offset│read_bits(1)). 블록(252)은 오프셋이 >=범위인지(offset>=range)에 관한 결정이 이루어지는 블록(254) 전에 수행된다. 만일 결정이 "예"이면, 블록(254)은 빈 및 오프셋이 수식(10) 및 (11)에 따라 계산되는 블록(256) 전에 수행된다.
bin = 1, 수식(10)
offset = offset - range 수식(11)
만일 결정이 "아니오"이면, 블록(254)은 빈이 제로(0)와 동일하게 세팅되는 블록(258) 전에 수행된다. 블록들(256, 258)은 프로세스(250)를 종료한다. 용어 빈은 또한 비트와 동일하다는 것에 유의해야 한다.
도 7은 H.264 표준 종결 디코딩 프로세스(300)의 흐름도를 도시한다. 슬라이스_플래그_종료(end_of_slice_flag) 및 I-펄스 코드 변조(I_PCM) 모드를 표시하는 빈을 디코딩할때, 표준 종결 디코딩 프로세스(300)의 특별한 디코딩 루틴이 호출된다. 표준 종결 디코딩 프로세스(300)는 범위가 2만큼 감소되는 블록(302)(range=range-2)에서 시작한다. 블록(302)은 오프셋이 >=범위인(offset>=range) 결정이 이루어지는 블록(304) 전에 수행된다. 만일 블록(304)에서의 결정이 "예"이면, 빈은 블록(306)에서 1과 동일하게 세팅된다(bin=1). 그러나, 만일 블록(304)에서의 결정이 "아니오"이면, 블록(304)은 빈이 0과 동일하게 세팅되는 블록(308)(bin=0) 전에 수행된다. 블록(308)은 재규정 프로세스(150)(도 4)가 수행되는 블록(310) 전에 수행된다. 블록들(306, 310) 둘다는 H.264 표준 종결 디코딩 프로세스(300)를 종료한다.
CABAC 초기 스테이지동안, 범위 레지스터(50)(도 2a)는 0x1FE로 세팅되며, 9비트는 초기 오프셋 레지스터(60)를 세팅하기 위하여 비트스트림으로부터 판독된다.
앞에서 용이하게 인식될 수 있는 바와같이, 9비트는 범위 및 오프셋 둘다를 표현하기 위하여 사용된다. 따라서, CABAC 코어 프로세스들에서 많은 수의 비트 단위 동작들이 존재한다.
H.264 표준 정규 디코딩 모드 프로세스(200)(도 5)에서, LPS 경우 때마다, LPS 확률이 <0.5이기 때문에, 새로운 범위는 <0x100일 것이다. 따라서, 재규정은 range>=0x100가 되는 것이 필요하다. 새로운 예시적인 구성에서, 카운트_선행_제로(count_leading_zero)(CLZ) 명령은 루프를 사용하는 대신에 필요한 좌측 시프트의 양(amount)을 계산하기 위하여 사용된다. MPS 경우 때마다, MPS 확률이 >=0.5이기 때문에, 새로운 범위는 0x080로부터 0x1FE까지 일 것이다. 따라서, 최상위 비트(MSB)를 1로 되게 하기 위하여 재규정을 위하여 최대 1 좌측 시프트가 필요하다. 동시에, 오프셋은 동일한 양만큼 좌측으로 시프트되며, 새로운 비트들은 그것을 채우기 위하여 비트스트림으로부터 판독된다.
더욱이, H.264 표준 바이패스 디코딩 모드 프로세스(250)에서, 오프셋은 항상 1만큼 좌측으로 시프트되며, 1 비트는 비트스트림으로부터 판독된다. 이는 비트-스트림으로부터 비트들의 매우 빈번한 재규정 및 판독을 필요로 하며, 이들 둘다는 계산적으로 비용이 많이 든다.
도 8은 수신된 CABAC 비트스트림(BS)의 멀티-스테이지 디코딩을 수행하는 프로세서(401)의 일반적인 블록도를 도시한다. 프로세서(401)는 처리 회로(401) 및 멀티-스테이지 CABAC 디코더 엔진(402)을 포함한다. 일 양상에서, 멀티-스테이지 CABAC 디코더 엔진(402)은 2개의 스테이지들로 구현된다. 제 1스테이지(스테이지 1)에서, CABAC 비트스트림은 CABAC 디코딩 서브-모듈(404)에 의하여 단지 빈들 또는 2진 심볼들로 디코딩된다. 빈들 또는 2진 심볼들은 그들이 CABAC 비트스트림으로부터 판독될때 정확한 순서(이후 "디코딩된 순서"로서 지칭된다)로 빈 버퍼(406)에 버퍼링될 수 있다. 게다가, 제 1 스테이지에서의 처리는 일반적으로 버퍼링후에 수행되지 않는다. 빈 버퍼(406)는 빈들 또는 2진 심볼들을 저장하기 위한 메모리가 프로세서(400) 외부에 있다는 것을 표시하기 위하여 점선으로 도시된다.
CABAC 디코딩 서브-모듈(40)의 출력은 중간 신호이며, CABAC 디코딩된 표준 포맷이다. 일반적으로, CABAC 디코딩 서브-모듈(404)의 동작들은 적어도 프레임의 크기에 따라 저속일 수 있다.
멀티-스테이지 CABAC 디코더 엔진(402)의 제 2 스테이지(스테이지 2)에서, 비디오 디코딩 서브-모듈(410)은 빈 버퍼(406)로부터 중간 신호를 디코딩하며, 가변 길이 코딩(VLC) 디코더를 포함할 수 있다. 비디오 디코딩 서브-모듈(410)은 중간 신호로부터 신택스 엘리먼트들의 값들을 재구성하도록 동작가능한 역2진화 서브-모듈(412)을 포함한다. 이때, 신택스 엘리먼트들은 비디오 출력을 생성하기 위하여 최종 디코딩 서브-모듈(414)에서 비디오 디코딩 서브-모듈(410)의 임의의 나머지 디코딩 동작들을 위하여 사용된다.
도 9는 도 8에 도시된 양상에 따른 CABAC 비트스트림 멀티-스테이지 디코딩 프로세스(500)의 흐름도를 도시한다. 프로세스(500)는 CABAC 비트스트림이 CABAC 디코딩된 표준 포맷을 가진 빈들 또는 2진 심볼들만을 가진 중간 신호로 디코딩되는 블록(502)에서 시작한다. 블록(602)은 빈들이 디코딩되는 정확한 순서인 디코딩된 순서로 2진 심볼들이 버퍼링되는 블록(604) 전에 수행된다. 블록(604)은 블록(606) 전에 수행된다. 블록(606)에서, 신택스 엘리먼트들 재구성이 수행된다. 블록(606)은 임의의 최종 비디오 디코딩 동작들이 비디오 출력 신호를 생성하기 위하여 수행되는 블록(608)전에 수행된다.
도 10은 바이패스 모드를 가진 멀티-스테이지 CABAC 디코더 엔진(600)의 일반적인 블록도를 도시한다. 멀티-스테이지 CABAC 디코더 엔진(600)은 제 1 및 제 2 처리 스테이지들(610, 620), 외부 메모리(630) 및 스위치(640)를 포함한다. 동작시에, 제 1 처리 스테이지(610)의 출력은 라인(614)을 통해 메모리(630)에 전송된다. 제 2 처리 스테이지(620)가 메모리(630)의 버퍼링된 중간 신호의 데이터를 판독하려할때, 데이터는 라인(634)을 통해 제 2 처리 스테이지(620)에 전송된다.
제 1 처리 스테이지(610) 및 제 2 처리 스테이지(620)는 그들 자신의 독립적인 처리 속도 및 처리 성능을 각각 가진 개별 처리 회로들일 수 있다. 제 1 처리 스테이지(610)는 제 1 처리 속도 및 제 1 성능을 가진다. 제 2 처리 스테이지(620)는 제 2 처리 속도 및 제 2 처리 성능을 가진다. 제 1 및 제 2 처리 속도들은 동일하거나 또는 상이할 수 있다. 예컨대, 제 1 처리 스테이지(610)의 제 1 처리 속도 및 성능은 제 2 처리 스테이지(620)의 제 2 처리 속도 또는 성능보다 더 느릴 수 있다. 그럼에도 불구하고, 제 1 처리 스테이지(610)의 결과적인 처리 성능은 CABAC 디코딩 프로세스의 구현 및/또는 프레임 크기의 결과로서 감소할 수 있다.
스위치(640)는 비(non)-바이패스 모드에 있을때 메모리(630)에 저장된 버퍼링된 중간 신호를 패스(pass)하도록 동작가능하다. 비-바이패스 모드는 제 1 스테이지(610)의 처리 속도 또는 성능이 미리 결정된 임계치 초과일 때 필요하다. 대안적으로, 스위치(640)는 처리 속도 또는 성능이 미리 결정된 임계치 미만일 때 제 1 처리 스테이지(610)로부터 제 2 처리 스테이지(620)로 직접 중간 신호를 패스하도록 동작가능하다. 따라서, 엔진(600)은 바이패스 모드로 스위칭된다.
일 양상에서, 제 1 처리 스테이지(610) 및 제 2 처리 스테이지(620)는 제 1 처리 스테이지(610)가 제 1 명령 세트(예컨대, 소프트웨어 또는 소스 코드)를 사용하여 구현되고 제 2 처리 스테이지(620)가 제 2 명령 세트(예컨대, 소프트웨어 또는 소스 코드)를 사용하여 구현되는 소프트웨어로 구현된다. 제 1 명령 세트는 제 2 명령 세트와 별개이고 구별된다.
다른 양상에서, 제 1 처리 스테이지(610)는 하드웨어로 구현되며, 제 2 처리 스테이지(620)는 소프트웨어로 구현된다. 또 다른 양상에서, 제 1 처리 스테이지(610)는 소프트웨어로 구현되며, 제 2 처리 스테이지(620)는 하드웨어로 구현된다.
일 양상에서, 제 2 처리 스테이지(620)는 메모리(630) 또는 제 1 처리 스테이지(610)로부터 디코딩된 순서로 중간 신호를 수신하여 디코딩한다.
도 11은 바이패스 모드를 가진 CABAC 비트스트림 멀티-스테이지 디코딩 프로세스(700)의 흐름도를 도시한다. 프로세스(700)는 수신된 비트스트림의 블록(702)에서 CABAC 디코딩에서 시작한다. CABAC 디코딩은 CABAC 디코딩 표준에 따라 단지 비트스트림만을 디코딩하도록 배열된 제 1 처리 스테이지(610)에서 수행된다. 블록(702)은 제 1 처리 스테이지(610)의 처리 속도 및/또는 프로세서 성능(PP)이 계산되는 블록(704) 전에 수행된다. 블록(704)은 PP가 미리 결정된 임계치보다 큰지에 관한 결정이 이루어지는 블록(706) 전에 수행된다. 만일 블록(706)에서의 결정이 "예"이면, 블록(706)은 빈 버퍼링이 수행되는 블록(708) 전에 수행된다. 중간 신호는 정확한 디코딩된 순서로 버퍼링된다.
블록(708)은 스위치(640)가 바이패스 모드 및 비-바이패스 모드들사이에서 스위칭하도록 제어되는 블록(710) 전에 수행된다. 블록(710)은 비-CABAC 디코딩 표준을 사용하여 비디오 출력 신호를 생성하기 위하여 비디오 디코딩이 수행되는 블록(712) 전에 수행된다. 블록(706)으로 다시 돌아가면, 만일 블록(706)에서의 결정이 "아니오"이면, 블록(706)은 스위치가 바이패스 모드로 변경되는 블록(710) 바로 전에 수행된다. 바이패스 모드에서, CABAC 디코딩된 표준 포맷을 가진 중간 신호는 버퍼링에 대한 필요성없이 비-CABAC 디코딩 표준에 기초하여 제 2 디코딩 프로세스에 따라 제 2 처리 스테이지(620)에 의하여 즉시 디코딩된다.
본 목적은 코딩 효율성 및 계산 복잡성간의 트레이드-오프(trade-off)를 찾는데 있다. 도 11의 구성에서, 처리 속도 또는 성능이 동적으로 결정된다. 검사는 주기적으로 또는 다른 지정된 간격들에서 수행될 수 있다.
도면부호 402 또는 600은 고화질(HD) 디코더 또는 다른 집적회로들의 부분으로써 비디오 비트스트림 파서(parser)로 구현될 수 있다.
하나 이상의 예시적인 구성들에서, 제시된 기능들 및/또는 블록들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 통해 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나, 또는 이들을 통해 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 일 장소에서 다른 장소로 컴퓨터 프로그램의 이전을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능 매체일 수 있다. 예컨대, 이러한 컴퓨터 판독가능 매체는 RAM,ROM,EEPROM,CD-ROM 또는 다른 광학 디스크 저장 매체, 자기 디스크 저장 매체 또는 다른 자기 저장 장치들, 또는 명령들 또는 데이터 구조들의 형태로 요구되는 프로그램 코드를 반송(carry) 또는 저장하는데 사용될 수 있고, 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 임의의 연결 수단이 컴퓨터 판독가능한 매체로 간주될 수 있다. 예컨대, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 라인(DSL), 또는 적외선 라디오, 및 마이크로웨이브와 같은 무선 기술들을 통해 전송되는 경우, 이러한 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선 라디오, 및 마이크로웨이브와 같은 무선 기술들이 이러한 매체의 정의 내에 포함될 수 있다. 여기서 사용되는 disk 및 disc은 컴팩트 disc(CD), 레이저 disc , 광 disc, DVD, 플로피 disk, 및 블루-레이 disc를 포함하며, 여기서 disk는 데이터를 자기적으로 재생하지만, disc은 레이저를 통해 광학적으로 데이터를 재생한다. 상기 조합들 역시 컴퓨터 판독가능 매체의 범위 내에 포함될 수 있다.
제시된 구성들에 대한 이전 설명은 당업자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 구성들에 대한 다양한 변형들은 당업자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어남이 없이 다른 구성들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 구성들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.

Claims (33)

  1. 콘텍스트-기반 적응적 2진 산술 코딩(CABAC: Context-based Adaptive Binary Arithmetic Coding) 비트스트림 디코딩을 최적화하기 위한 장치로서,
    CABAC 비트스트림을 CABAC 디코딩된 표준 포맷 및 디코딩된 순서를 가진 중간 신호로 디코딩하도록 동작가능한 제 1 디코더 스테이지;
    상기 중간 신호를 상기 디코딩된 순서로 버퍼링하도록 동작가능한 버퍼;
    비(non)-CABAC 디코딩 표준을 사용하여 상기 중간 신호를 비디오 출력 신호로 디코딩하도록 동작가능한 제 2 디코더 스테이지; 및
    상기 제 1 디코더 스테이지 및 상기 제 2 디코더 스테이지 사이에 연결되고, 바이패스 모드(bypass mode)에서 상기 제 1 디코더 스테이지로부터 상기 제 2 디코더 스테이지로 상기 중간 신호를 직접 패스(pass)하고 그리고 비-바이패스 모드(non-bypass mode)에서 상기 버퍼로부터 상기 제 2 디코더 스테이지로 상기 중간 신호를 패스하도록 동작가능한 스위치를 포함하는,
    장치.
  2. 제 1항에 있어서, 상기 제 2 디코더 스테이지는 상기 중간 신호로부터 신택스(syntax) 엘리먼트들을 재구성(reconstruct)하고, 상기 신택스 엘리먼트들을 디코딩하도록 동작가능한, 장치.
  3. 제 2항에 있어서, 상기 제 2 디코더 스테이지는 상기 신택스 엘리먼트들의 값들을 재구성하기 위한 역2진화 서브-모듈(debinarization sub-module)을 포함하는, 장치.
  4. 제 3항에 있어서, 상기 제 2 디코더 스테이지는 가변 길이 코딩 디코더를 포함하는, 장치.
  5. 제 1항에 있어서, 상기 중간 신호는 빈(bin)들을 포함하는, 장치.
  6. 제 1항에 있어서, 상기 제 1 디코더 스테이지의 프로세서 성능(performance)을 계산하도록 동작가능한 프로세서 성능 계산기; 및
    상기 계산된 프로세서 성능에 응답하여 상기 스위치의 동작을 제어하기 위한 모드 제어부를 더 포함하는, 장치.
  7. 제 1항에 있어서, 상기 장치는 셀룰라 전화, 무선 장치, 무선 통신 장치, 비디오 게임 콘솔, 무선-장착(wirelessly-equipped) 개인휴대단말(PDA), 랩탑 컴퓨터, 또는 비디오 인에이블 장치(video-enabled device)인, 장치.
  8. 콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림 디코딩을 최적화하기 위한 집적회로로서,
    CABAC 비트스트림을 CABAC 디코딩된 표준 포맷 및 디코딩된 순서를 가진 중간 신호로 디코딩하도록 동작가능한 제 1 디코더 회로;
    상기 중간 신호를 상기 디코딩된 순서로 버퍼링하도록 동작가능한 버퍼;
    비-CABAC 디코딩 표준을 사용하여 상기 중간 신호를 비디오 출력 신호로 디코딩하도록 동작가능한 제 2 디코더 회로; 및
    상기 제 1 디코더 회로 및 상기 제 2 디코더 회로사이에 연결되고, 바이패스 모드에서 상기 제 1 디코더 회로로부터 상기 제 2 디코더 회로로 상기 중간 신호를 직접 패스(pass)하고 그리고 비-바이패스 모드에서 상기 버퍼로부터 상기 제 2 디코더 회로로 상기 중간 신호를 패스하도록 동작가능한 스위치를 포함하는,
    집적회로.
  9. 제 8항에 있어서, 상기 제 2 디코더 회로는 상기 중간 신호로부터 신택스 엘리먼트들을 재구성하고, 상기 신택스 엘리먼트들을 디코딩하도록 동작가능한, 집적회로.
  10. 제 9항에 있어서, 상기 제 2 디코더 회로는 상기 신택스 엘리먼트들의 값들을 재구성하기 위한 역2진화(debinarization) 서브-모듈을 포함하는, 집적회로.
  11. 제 10항에 있어서, 상기 제 2 디코더 회로는 가변 길이 코딩 디코더를 포함하는, 집적회로.
  12. 제 8항에 있어서, 상기 중간 신호는 빈들을 포함하는, 집적회로.
  13. 제 8항에 있어서, 상기 제 1 디코더 회로의 프로세서 성능을 계산하도록 동작가능한 프로세서 성능 계산기; 및
    상기 계산된 프로세서 성능에 응답하여 상기 스위치의 동작을 제어하기 위한 모드 제어부를 더 포함하는, 집적회로.
  14. 제 8항에 있어서, 상기 집적회로는 셀룰라 전화, 무선 장치, 무선 통신 장치, 비디오 게임 콘솔, 무선-장착(wirelessly-equipped) 개인휴대단말(PDA), 랩탑 컴퓨터, 또는 비디오 인에이블 장치(video-enabled device)의 부분인, 집적회로.
  15. 콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림 디코딩을 최적화하기 위한 집적회로로서,
    CABAC 비트스트림을 CABAC 디코딩된 표준 포맷 및 디코딩된 순서를 가진 중간 신호로 디코딩하기 위한 수단;
    상기 중간 신호를 디코딩된 순서로 버퍼링하기 위한 수단;
    비-CABAC 디코딩 표준을 사용하여 상기 중간 신호를 비디오 출력 신호로 디코딩하기 위한 수단; 및
    바이패스 모드에서 상기 CABAC 비트스트림을 디코딩하기 위한 수단으로부터 상기 중간 신호를 디코딩하기 위한 수단으로 직접 상기 중간 신호를 패스(pass)하고 그리고 비-바이패스 모드에서 상기 버퍼링하기 위한 수단으로부터 상기 중간 신호를 디코딩하기 위한 수단으로 상기 중간 신호를 패스하도록 스위칭하기 위한 수단을 포함하는,
    집적회로.
  16. 제 15항에 있어서, 상기 중간 신호를 디코딩하기 위한 수단은 상기 중간 신호로부터 신택스 엘리먼트들을 재구성하고 상기 신택스 엘리먼트들을 디코딩하기 위한 수단을 포함하는, 집적회로.
  17. 제 16항에 있어서, 상기 중간 신호를 디코딩하기 위한 수단은 가변 길이 코딩 디코더를 포함하는, 집적회로.
  18. 제 15항에 있어서, 상기 중간 신호는 빈들을 포함하는, 집적회로.
  19. 제 15항에 있어서, 상기 CABAC 비트스트림을 디코딩하기 위한 수단의 프로세서 성능을 계산하기 위한 수단; 및
    상기 계산된 프로세서 성능에 응답하여 상기 스위치의 동작을 제어하기 위한 수단을 더 포함하는, 집적회로.
  20. 콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림 디코딩을 최적화하기 위한 컴퓨터 판독가능 매체로서, 상기 컴퓨터 판독가능 매체는 컴퓨터로 하여금,
    CABAC 비트스트림을 CABAC 디코딩된 표준 포맷 및 디코딩된 순서를 가진 중간 신호로 디코딩하도록 하고,
    상기 중간 신호를 상기 디코딩된 순서로 버퍼링하도록 하며,
    비-CABAC 디코딩 표준을 사용하여 상기 중간 신호를 비디오 출력 신호로 디코딩하도록 하며, 그리고
    비-바이패스 모드 및 바이패스 모드 사이에서 스위칭하도록 하기 위한 명령들을 포함하며,
    상기 컴퓨터로 하여금 상기 중간 신호를 디코딩하도록 하기 위한 명령들은 상기 컴퓨터로 하여금 상기 버퍼링된 중간 신호를 상기 비-바이패스 모드에서 디코딩하도록 하기 위한 명령들, 그리고 상기 컴퓨터로 하여금 상기 중간 신호를 상기 바이패스 모드에서 직접 디코딩하도록 하기 위한 명령들을 포함하는,
    컴퓨터 판독가능 매체.
  21. 제 20항에 있어서, 상기 컴퓨터로 하여금 상기 중간 신호를 디코딩하도록 하기 위한 명령들은 상기 컴퓨터로 하여금 상기 중간 신호로부터 신택스 엘리먼트들을 재구성하고 상기 신택스 엘리먼트들을 디코딩하도록 하기 위한 명령들을 포함하는, 컴퓨터 판독가능 매체.
  22. 제 21항에 있어서, 상기 컴퓨터로 하여금 상기 중간 신호를 디코딩하도록 하기 위한 명령들은 상기 컴퓨터로 하여금 가변 길이 코딩 방식에 따라 상기 중간 신호를 디코딩하도록 하기 위한 명령들을 포함하는, 컴퓨터 판독가능 매체.
  23. 제 20항에 있어서, 상기 중간 신호는 빈들을 포함하는, 컴퓨터 판독가능 매체.
  24. 제 20항에 있어서, 상기 컴퓨터로 하여금 상기 CABAC 비트스트림을 디코딩하는 프로세서의 프로세서 성능을 계산하도록 하기 위한 명령들을 더 포함하며,
    상기 컴퓨터로 하여금 비-바이패스 모드 및 바이패스 모드사이에서 스위칭하도록 하기 위한 명령들은 계산된 프로세서 성능에 응답하여 상기 컴퓨터로 하여금 비-바이패스 모드 및 바이패스 모드사이에서 스위칭하도록 하기 위한 명령들을 포함하는,
    컴퓨터 판독가능 매체.
  25. 콘텍스트-기반 적응적 2진 산술 코딩(CABAC) 비트스트림 디코딩을 최적화하기 위한 방법으로서,
    제 1 처리 스테이지에 의하여 CABAC 비트스트림을 CABAC 디코딩된 표준 포맷 및 디코딩된 순서를 가진 중간 신호로 디코딩하는 단계;
    상기 중간 신호를 상기 디코딩된 순서로 버퍼링하는 단계;
    제 2 처리 스테이지에 의하여 비-CABAC 디코딩 표준을 사용하여 상기 중간 신호를 비디오 출력 신호로 디코딩하는 단계;
    바이패스 모드에서 상기 버퍼링을 선택적으로 바이패스하는 단계; 및
    상기 바이패스 모드에서 상기 제 1 처리 스테이지로부터 상기 제 2 처리 스테이지로 상기 중간 신호를 직접 패스하는 단계를 포함하는,
    방법.
  26. 제 25항에 있어서, 상기 중간 신호를 디코딩하는 단계는 상기 중간 신호로부터 신택스 엘리먼트들을 재구성하는 단계 및 상기 신택스 엘리먼트들을 디코딩하는 단계를 포함하는, 방법.
  27. 제 26항에 있어서, 상기 중간 신호를 디코딩하는 단계는 가변 길이 코딩 디코딩 단계를 포함하는, 방법.
  28. 제 25항에 있어서, 상기 제 1 처리 회로의 프로세서 성능을 계산하는 단계; 및
    상기 계산된 프로세서 성능에 응답하여 선택적으로 바이패스하는 것을 제어하는 단계를 더 포함하는, 방법.
  29. 제 1항에 있어서, 상기 스위치는 상기 바이패스 모드에서 상기 제 1 디코더 스테이지로부터 상기 제 2 디코더 스테이지로 상기 중간 신호를 직접 패스하도록 구성되고 그리고 상기 제 1 디코딩 스테이지의 계산된 처리 성능에 기초하여 상기 비-바이패스 모드에서 상기 버퍼로부터 상기 제 2 디코더 스테이지로 상기 중간 신호를 패스하도록 구성되는, 장치.
  30. 제 8항에 있어서, 상기 스위치는 상기 바이패스 모드에서 상기 제 1 디코더 회로로부터 상기 제 2 디코더 회로로 상기 중간 신호를 직접 패스하도록 구성되고 그리고 상기 제 1 디코딩 회로의 계산된 처리 성능에 기초하여 상기 비-바이패스 모드에서 상기 버퍼로부터 상기 제 2 디코더 회로로 상기 중간 신호를 패스하도록 구성되는, 집적회로.
  31. 제 15항에 있어서, 상기 스위치하기 위한 수단은 상기 바이패스 모드에서 상기 CABAC 비트스트림을 디코딩하기 위한 수단으로부터 상기 중간 신호를 디코딩하기 위한 수단으로 상기 중간 신호를 직접 패스하도록 구성되고 그리고 상기 CABAC 비트스트림을 디코딩하기 위한 수단의 계산된 처리 성능에 기초하여 상기 비-바이패스 모드에서 상기 버퍼링하기 위한 수단으로부터 상기 중간 신호를 디코딩하기 위한 수단으로 상기 중간 신호를 패스하도록 구성되는, 집적회로.
  32. 제 20항에 있어서, 상기 컴퓨터로 하여금 상기 비-바이패스 모드 및 상기 바이패스 모드 사이를 스위치하도록 하기 위한 명령들은 상기 컴퓨터로 하여금 상기 CABAC 비트스트림을 디코딩하는 프로세서의 계산된 처리 성능에 기초하여 상기 비-바이패스 모드 및 상기 바이패스 모드 사이를 스위치하도록 하기 위한 명령들을 포함하는, 컴퓨터 판독 가능 매체.
  33. 제 25항에 있어서, 상기 바이패스 모드에서 상기 버퍼링을 선택적으로 바이패스하는 단계는 상기 제 1 처리 회로의 프로세서 성능에 기초하여 상기 바이패스 모드에서 상기 버퍼링을 선택적으로 바이패스하는 단계를 포함하는, 방법.
KR1020107007048A 2007-08-31 2008-08-29 Cabac 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처 KR101321012B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US96956507P 2007-08-31 2007-08-31
US60/969,565 2007-08-31
US5700908P 2008-05-29 2008-05-29
US61/057,009 2008-05-29
US12/197,133 2008-08-22
US12/197,133 US7839311B2 (en) 2007-08-31 2008-08-22 Architecture for multi-stage decoding of a CABAC bitstream
PCT/US2008/074796 WO2009029797A1 (en) 2007-08-31 2008-08-29 Architecture for multi-stage decoding of a cabac bitstream

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020127013225A Division KR20120058631A (ko) 2007-08-31 2008-08-29 Cabac 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처

Publications (2)

Publication Number Publication Date
KR20100058618A KR20100058618A (ko) 2010-06-03
KR101321012B1 true KR101321012B1 (ko) 2013-10-23

Family

ID=40279207

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020127013225A KR20120058631A (ko) 2007-08-31 2008-08-29 Cabac 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처
KR1020107007048A KR101321012B1 (ko) 2007-08-31 2008-08-29 Cabac 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020127013225A KR20120058631A (ko) 2007-08-31 2008-08-29 Cabac 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처

Country Status (7)

Country Link
US (1) US7839311B2 (ko)
EP (1) EP2191650B1 (ko)
JP (1) JP4976553B2 (ko)
KR (2) KR20120058631A (ko)
CN (1) CN101790889B (ko)
TW (1) TW200926827A (ko)
WO (1) WO2009029797A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9083976B2 (en) * 2008-09-05 2015-07-14 Freescale Semiconductor, Inc. Processing a video stream in real time based on binary information of the video stream
KR101419151B1 (ko) 2009-10-20 2014-07-11 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 영역-의존 산술 코딩 매핑 규칙을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램
US20110125987A1 (en) * 2009-11-20 2011-05-26 Qualcomm Incorporated Dedicated Arithmetic Decoding Instruction
PL2524371T3 (pl) 2010-01-12 2017-06-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder audio, dekoder audio, sposób kodowania informacji audio, sposób dekodowania informacji audio i program komputerowy wykorzystujący tabelę skrótów zarówno opisującą znaczące wartości stanów i granice przedziałów
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
EP2721819B1 (en) 2011-06-16 2023-08-16 GE Video Compression, LLC Entropy coding supporting mode switching
US8805099B2 (en) * 2011-06-22 2014-08-12 Panasonic Intellectual Property Corporation Of America Image decoding method and image coding method
TR201901502T4 (tr) * 2011-06-28 2019-02-21 Nec Corp Bir Video Nicemleme Parametre Kodunun Çözülmesi.
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
US9088796B2 (en) 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
CN108471535A (zh) 2011-11-08 2018-08-31 三星电子株式会社 用于对视频进行解码的方法
US9503717B2 (en) 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
AU2012200319B2 (en) 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
AU2012200345B2 (en) * 2012-01-20 2014-05-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit
US9538172B2 (en) 2012-04-11 2017-01-03 Qualcomm Incorporated Grouping bypass coded syntax elements in video coding
US9445132B2 (en) * 2013-09-09 2016-09-13 Qualcomm Incorporated Two level last significant coefficient (LSC) position coding
CN104980749B (zh) * 2014-04-11 2018-04-24 扬智科技股份有限公司 算术编码的解码装置及方法
US9455743B2 (en) * 2014-05-27 2016-09-27 Qualcomm Incorporated Dedicated arithmetic encoding instruction
JP7199221B2 (ja) * 2016-05-20 2023-01-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
KR20180031944A (ko) 2016-09-21 2018-03-29 삼성전자주식회사 비디오 디코더 및 이를 포함하는 전자 시스템
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
US10757412B2 (en) * 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system
KR102414164B1 (ko) 2017-03-31 2022-06-29 한국전자통신연구원 향상된 산술부호화를 제공하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
CN110995285B (zh) * 2019-12-27 2023-05-05 成都达安众科技有限公司 一种uhf rfid分步式指令解码方法及芯片

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040085233A1 (en) 2002-10-30 2004-05-06 Lsi Logic Corporation Context based adaptive binary arithmetic codec architecture for high quality video compression and decompression
US20040263361A1 (en) * 2003-06-25 2004-12-30 Lsi Logic Corporation Video decoder and encoder transcoder to and from re-orderable format
KR20060064008A (ko) * 2003-10-29 2006-06-12 닛본 덴끼 가부시끼가이샤 산술부호의 복호기 또는 부호화기와 역2치화 변환기 또는2치화 변환기의 사이에 중간 버퍼가 삽입된 복호장치 또는부호화 장치
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05176187A (ja) * 1991-12-20 1993-07-13 Fujitsu Ltd データ圧縮・復元装置
WO1997004598A1 (en) * 1995-07-21 1997-02-06 Hitachi, Ltd. Device for decoding encoded video signal and storing and decoding device using it
US7472151B2 (en) * 2003-06-20 2008-12-30 Broadcom Corporation System and method for accelerating arithmetic decoding of video data
WO2006051796A1 (en) * 2004-11-09 2006-05-18 Matsushita Electric Industrial Co., Ltd. Two step arithmetic decoding with conversion into an intermediate format

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040085233A1 (en) 2002-10-30 2004-05-06 Lsi Logic Corporation Context based adaptive binary arithmetic codec architecture for high quality video compression and decompression
US20040263361A1 (en) * 2003-06-25 2004-12-30 Lsi Logic Corporation Video decoder and encoder transcoder to and from re-orderable format
KR20060064008A (ko) * 2003-10-29 2006-06-12 닛본 덴끼 가부시끼가이샤 산술부호의 복호기 또는 부호화기와 역2치화 변환기 또는2치화 변환기의 사이에 중간 버퍼가 삽입된 복호장치 또는부호화 장치
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process

Also Published As

Publication number Publication date
JP2010538547A (ja) 2010-12-09
CN101790889A (zh) 2010-07-28
JP4976553B2 (ja) 2012-07-18
US20090058695A1 (en) 2009-03-05
EP2191650A1 (en) 2010-06-02
KR20100058618A (ko) 2010-06-03
KR20120058631A (ko) 2012-06-07
US7839311B2 (en) 2010-11-23
WO2009029797A1 (en) 2009-03-05
CN101790889B (zh) 2012-07-04
EP2191650B1 (en) 2018-08-15
TW200926827A (en) 2009-06-16

Similar Documents

Publication Publication Date Title
KR101321012B1 (ko) Cabac 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처
US20230078680A1 (en) Context Initialization in Entropy Coding
US8782379B2 (en) H.264 video decoder CABAC core optimization techniques
US10489426B2 (en) Category-prefixed data batching of coded media data in multiple categories
KR101187243B1 (ko) 가변-대-고정 길이 코드들의 빠른 분석
US10368072B2 (en) Advanced arithmetic coder
TWI657692B (zh) 於視訊寫碼程序中用於係數層級寫碼之萊斯(rice)參數初始化
JP6527877B2 (ja) ビデオコーディングプロセスにおける係数レベルコーディング
US8294603B2 (en) System and method for providing high throughput entropy coding using syntax element partitioning
US11012695B2 (en) Context initialization in entropy coding
KR20130119488A (ko) 비디오 코딩에서의 서브 슬라이스들
US20140010277A1 (en) Supplemental enhancement information (sei) messages having a fixed-length coded video parameter set (vps) id
CN113170138A (zh) 使用阈值和莱斯参数进行系数解码的常规编译码二进制位缩减
JP2022516132A (ja) 係数レベルのためのエスケープコーディング
Albanese et al. High speed CAVLC encoder suitable for field programmable platforms
Ahangar et al. Real time low complexity VLSI decoder for prefix coded images
TW202349966A (zh) 濾波方法、濾波模型訓練方法及相關裝置
Chang et al. A high-performance entropy decoding system for H. 264/AVC
Wang et al. A CAVLC Decoding Architecture Based on FSM for Real-Time HD Application

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120521

Effective date: 20130926

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 7