KR20140022957A - 움직임 벡터 차분값의 엔트로피 코딩 - Google Patents

움직임 벡터 차분값의 엔트로피 코딩 Download PDF

Info

Publication number
KR20140022957A
KR20140022957A KR1020147001047A KR20147001047A KR20140022957A KR 20140022957 A KR20140022957 A KR 20140022957A KR 1020147001047 A KR1020147001047 A KR 1020147001047A KR 20147001047 A KR20147001047 A KR 20147001047A KR 20140022957 A KR20140022957 A KR 20140022957A
Authority
KR
South Korea
Prior art keywords
horizontal
vertical components
motion vector
value
bin
Prior art date
Application number
KR1020147001047A
Other languages
English (en)
Other versions
KR101662136B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46319135&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20140022957(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. filed Critical 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베.
Publication of KR20140022957A publication Critical patent/KR20140022957A/ko
Application granted granted Critical
Publication of KR101662136B1 publication Critical patent/KR101662136B1/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/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes
    • H03M7/4075Golomb codes
    • 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
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • 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/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/124Quantisation
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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

수평과 수직 컴포넌트들의 이진화들을 사용하여 움직임 벡터 차분값들의 수평과 수직 컴포넌트들이 코딩되는 데이터스트림으로부터 비디오를 디코딩하기 위한 디코더가 설명되는데, 이진화들은 절단 값 아래의 수평과 수직 컴포넌트들의 도메인의 첫 번째 간격 내에서, 각각 수평과 수직 컴포넌트들의 절단된 단항 코드와, 절단 값을 포함하고 절단 값 위의 수평과 수직 컴포넌트들의 도메인의 두 번째 간격 내에서, 각각 절단 값을 위한 절단된 단항 코드 형태의 접두부호와 수평과 수직 컴포넌트들의 지수-골롬 형태의 접미부호의 조합을 동일시한다. 엔트로피 인코더는 움직임 벡터 차분값들의 수평과 수직 컴포넌트들을 위하여, 움직임 벡터 차분값들의 수평과 수직 컴포넌트들에 통상적인, 절단된 단항 코드의 위치 당 정확하게 하나의 콘텍스트를 갖는 콘텍스트-적응적 이진 엔트로피 디코딩을 사용하는 데이터 스트림으로부터의 절단된 단항 코드 및, 움직임 벡터 차분값들의 이진화를 획득하기 위하여 일정한 등-확률 바이패스 방식을 사용하는 지수-골롬 코드를 유래하도록 구성된다. 디심벌라이저는 움직임 벡터 차분값들의 수평과 수직 컴포넌트들의 정수 값을 획득하기 위하여 움직임 벡터 차분값 구문 요소들의 이진화들을 탈이진화하도록 구성된다. 재구성자는 움직임 벡터 차분값들의 수평과 수직 컴포넌트들의 정수 값을 기초로 하여 비디오를 재구성하도록 구성된다.

Description

움직임 벡터 차분값의 엔트로피 코딩{ENTROPY CODING OF MOTION VECTOR DIFFERENCES}
본 발명은 비디오 데이터를 코딩하기 위한 엔트로피 코딩 개념에 관한 것이다.
종래에 많은 비디오 코덱들이 알려져 있다. 일반적으로, 이러한 코덱들은 비디오 콘텐츠를 표현하기 위하여 필요한 데이터의 양을 감소시키는데, 즉, 그것들은 데이터를 압축한다. 비디오 코딩의 맥락에서, 비디오 데이터의 압축은 바람직하게는 서로 다른 코딩 기법들을 연속하여 적용함으로써 달성된다: 픽쳐 콘텐츠(picture content)를 예측하기 위하여 움직임-보상 예측이 사용된다. 움직임 보상 예측뿐만 아니라 예측 잔류(residuum)로 결정되는 움직임 벡터들은 손실 없는 엔트로피 코딩의 대상이다. 데이터의 양을 더 감소시키기 위하여, 움직임 벡터들 자체는 예측의 대상이 되며 따라서 움직임 벡터 예측 잔류를 표현하는 움직임 벡터 차분값들만이 엔트로피 인코딩되어야만 한다. 예를 들면, H.264에서, 정보를 움직임 벡터 차분값들 상에 전송하기 위하여 방금 설명된 과정이 적용된다. 특히, 움직임 벡터 차분값들은 절단된(truncated) 단항 코드의 조합과 상응하는 빈 스트링 내로, 그리고 지수 골롬(Golomb) 코드 상의 특정 절단 값으로부터, 이진화된다. 지수 골롬 코드의 빈들은 0.5의 고정된 확률을 갖는 등-확률(equi-probability) 바이패스 방식을 사용하여 쉽게 코딩되나, 첫 번째 빈들을 위하여 일부 콘텍스트들이 제공된다. 절단 값(cutoff value)은 9가 되도록 선택된다. 따라서, 움직임 벡터 차분값값들을 코딩하기 위하여 높은 양의 콘텍스트가 제공된다.
그러나, 높은 수의 콘텍스트의 제공은 코딩 복잡도를 증가시킬 뿐만 아니라 코딩 효율에 부정적으로 영향을 미친다: 만일 콘텍스트가 너무 적게 방문되면, 확률 적용, 즉, 엔트로피 코딩의 원인 동안에 각각의 콘텍스트와 관련된 확률 추정의 적용은 효율적으로 실행하는데 실패한다. 따라서, 부적절하게 적용된 확률 적용은 실제 심벌(symbol) 통계를 추정한다. 게다가, 만일 이진화의 특정 빈을 위하여, 일부 콘텍스트들이 제공되면, 그것들 사이의 선택은 그러한 필요성이 디코딩 과정의 실행을 방해할 수 있는 이웃하는 빈들/구문 요소 값들의 검사를 필요하게 만들 수 있다. 다른 한편으로, 만일 콘텍스트의 수가 너무 낮게 제공되면, 매우 다양한 실제 심벌 통계들이 하나의 콘텍스트 내에 그룹화되며 따라서, 그러한 콘텍스트와 관련된 확률 추정은 그것과 관련된 빈들을 효율적으로 인코딩하는데 실패한다.
따라서, 그러한 코딩 개념을 제공하는 것이 본 발명의 목적이다.
본 발명의 목적은 첨부된 독립항들의 주제에 의해 달성된다.
본 발명의 기본 발견은 움직임 벡터 차분값들을 이진화하기 위하여 절단된 단항 코드가 사용되는 것까지, 절단된 단항 코드의 단지 두 개의 빈 위치가 존재하도록 하기 위하여 2에 이르기까지 절단 값을 감소시킴으로써, 그리고 만일 절단 값으로부터 움직임 벡터 차분값들의 이진화를 위하여 지수 골롬 코드를 위한 하나의 순차가 사용되면, 그리고 만일 부가적으로, 각각 절단된 단항 코드의 두 개의 빈 위치를 위하여 정확하게 하나의 콘텍스트가 제공되면, 따라서 이웃하는 이미지 블록들의 빈들 또는 구문 요소들을 기초로 하는 콘텍스트 선택은 필요하지 않으며 이러한 빈 위치들에서 빈들의 블록들 내로의 너무 미세한 분류는 확률 적용이 적절하게 작용하도록 방지되면, 그리고 만일 수평 및 수직 컴포넌트들을 위하여 동일한 콘텍스트가 사용되고 그렇게 함으로써 너무 미세한 콘텍스트 세분화의 부정적인 효과들을 감소시키면, 움직임 벡터 차분값들의 엔트로피 코딩의 코딩 효율이 더 증가될 수 있다는 것이다.
또한, 움직임 벡터 차분값들의 엔트로피 코딩과 관련하여 방금 설명된 설정들은 이를 움직임 벡터들을 실행하고 전송되는 움직임 벡터 차분값들의 필요한 양을 감소시키는 개선된 방법과 결합할 때 특히 가치가 있다는 것이 알려졌다. 예를 들면, 움직임 벡터 예측변수(predictor)의 순차 리스트를 획득하기 위하여 다중 움직임 벡터 예측변수들이 제공될 수 있으며, 문제의 움직임 벡터 차분값에 의해 예측 잔여(residual)가 표현되는 실제 움직임 벡터 차분값을 결정하기 위하여 움직임 벡터의 이러한 리스트 내의 지수가 사용될 수 있다. 비록 사용되는 리스트 지수 상의 정보가 디코딩 면에서의 데이터 스트림으로부터 유도되어야만 하나, 움직임 벡터들의 전체 예측 양은 증가하며 따라서, 움직임 벡터 차분값들의 크기는 감소하며 따라서 코딩 효율은 더 증가하고 절단 값의 감소 및 움직임 벡터 차분값들의 수평과 수직 컴포넌트들을 위한 콘텍스트의 공용은 그러한 개선된 움직임 벡터 예측에 적합하다. 다른 한편으로, 데이터 스트림 내에 전송되는 움직임 벡터 차분값들의 수를 감소시키기 위하여 머징(merging)이 사용될 수 있다: 이를 위하여, 머징 정보가 블록들의 그룹으로 그룹화된 블록들의 세분화(subdivision)의 디코더 블록들에 신호를 전달하는 데이터 스트림 내에 전달될 수 있다. 움직임 벡터 차분값들은 그리고 나서 개별 블록들 대신에 이러한 병합된 그룹들의 유닛으로 데이터 스트림 내에 전송될 수 있으며, 그렇게 함으로써 전송되어야만 하는 움직임 벡터 차분값들의 수를 감소시킬 수 있다. 블록들의 이러한 클러스터링(clustering)이 이웃하는 움직임 벡터 차분값들 사이의 상호 상관을 감소시키기 때문에, 방금 언급된 하나의 빈 위치를 위한 일부 콘텍스트들의 제공의 생략은 이웃하는 움직임 벡터 차분값들에 따라 너무 미세한 분류로부터 콘텍스트들 내로의 엔트로피 코딩 전략을 방지한다. 오히려, 머징 개념은 이웃하는 블록들의 움직임 벡터 차분값들 사이의 상호 상관을 사용하며 따라서, 하나의 빈 위치를 위하여 하나의 콘텍스트면(수평 및 수직 컴포넌트들을 위하여 동일하게) 충분하다.
본 발명의 바람직한 실시 예들이 도면들과 관련하여 아래에 설명될 것이다.
도 1은 일 실시 예에 따른 인코더의 블록 다이어그램을 도시한다.
도 2a-2c는 블록들 내의 픽쳐와 같은 샘플 어레이의 서로 다른 세분들을 개략적으로 도시한다.
도 3은 일 실시 예에 따른 디코더의 블록 다이어그램을 도시한다.
도 4는 일 실시 예에 따른 인코더의 블록 다이어그램을 더 상세히 도시한다.
도 5는 일 실시 예에 따른 디코더의 블록 다이어그램을 더 상세히 도시한다.
도 6은 공간 도메인으로부터 스펙트럼 도메인 내로의 블록의 변환, 결과로서 생기는 변환 블록, 및 그것의 재변환을 개략적으로 도시한다.
도 7은 일 실시 예에 따른 인코더의 블록 다이어그램을 도시한다.
도 8은 일 실시 예에 따른, 도 8의 인코더에 의해 발생되는 디코딩 비트스트림에 적합한 디코더의 블록 다이어그램을 도시한다.
도 9는 일 실시 예에 따른 일 실시 예에 따른 다중화 부분 비트스트림들을 갖는 데이터 패킷을 나타내는 개략적인 다이어그램을 도시한다.
도 10은 또 다른 실시 예에 따라 고정된-크기 세그먼트들을 사용하는 대안의 세그멘테이션을 갖는 데이터 패킷을 나타내는 개략적인 다이어그램을 도시한다.
도 11은 일 실시 예에 따른 모드 스위칭을 제공하는 디코더를 도시한다.
도 12는 또 다른 실시 예에 따른 모드 스위칭을 제공하는 디코더를 도시한다.
도 13은 일 실시 예에 따라 도 11의 디코더에 꼭 맞는 인코더를 도시한다.
도 14는 일 실시 예에 따라 도 12의 디코더에 꼭 맞는 인코더를 도시한다.
도 15는 pStateCtx 및 fullCtxState/256**E**의 매핑을 도시한다.
도 16은 본 발명의 일 실시 예에 따른 디코더를 도시한다.
도 17은 본 발명의 일 실시 예에 따른 인코더를 도시한다.
도 18은 본 발명의 일 실시 예에 따른 움직임 벡터 차분값 이진화를 개략적으로 도시한다.
도 19는 일 실시 예에 따른 병합 개념을 개략적으로 도시한다.
도 20은 움직임 벡터 예측 전략을 개략적으로 도시한다.
도면들의 설명 동안에, 일부 이러한 도면들에서 발생하는 구성요소들은 이러한 도면들의 각각에서 동일한 참조 부호로 표시되며 불필요한 반복을 방지하기 위하여 이러한 구성요소들의 반복적인 설명은 기능성에 관한 한 방지된다. 그럼에도 불구하고, 하나의 도면에 대하여 제공되는 기능성과 설명들은 분명히 반대로 표시되지 않는 한 또한 다른 도면들에 적용되어야 한다.
다음에서, 우선, 도 1 내지 10을 참조하여, 일반적인 비디오 코딩 개념의 실시 예들이 설명된다. 도 1 내지 6은 구문 레벨 상의 비디오 코덱 작동의 일부분에 관한 것이다. 다음의 도면들 8 내지 10은 구문 요소 스트림의 데이터 스트림으로의 변환과 그 반대의 경우에 관한 코드의 일부분을 위한 실시 예에 관한 것이다. 그리고 나서, 본 발명의 특정 양상들과 실시 예들이 도 1 내지 10과 관련하여 대표적으로 나타내는 일반적인 개념의 가능한 구현 형태로 설명된다.
도 1은 본 발명의 양상들이 구현될 수 있는 인코더(10)를 위한 일 실시 예를 도시한다.
인코더는 정보 샘플들의 어레이(20)를 데이터 스트림 내로 인코딩한다. 정보 샘플들의 어레이는 예를 들면, 명도(brightness) 값들, 색 값들, 광도 값들, 채도(chroma) 값들 등과 상응하는 정보 샘플들을 표현할 수 있다. 그러나, 정보 샘플들은 또한 예를 들면, 광센서의 시간 등에 의해 발생되는 깊이 맵(depth map)인 샘플 어레이(20)의 경우에 깊이 값들일 수 있다.
인코더는 블록 기반 인코더이다. 즉, 인코더(10)는 샘플 어레이를 블록들(40)의 유닛들 내의 데이터 스트림(30) 내로 인코딩한다. 블록들(40)의 유닛들 내의 인코딩은 인코더(10)가 서로 완전히 독립적으로 이러한 블록들(40)을 인코딩하는 것을 반드시 의미하지는 않는다. 오히려, 인코더(10)는 나머지 블록들을 추정하거나 인트라(intra)-예측하기 위하여 이전에 인코딩된 블록들의 재구성을 할 수 있으며, 코딩 파라미터들의 설정을 위하여, 즉, 각각의 블록과 상응하는 각각의 샘플 어레이 영역이 코딩되는 방법을 설정하기 위하여 블록들의 입도(granularity)를 사용할 수 있다.
또한, 인코더(10)는 변환 코더이다. 즉, 인코더(10)는 공간 도메인으로부터 스펙트럼 도메인으로 각각의 블록(40) 내의 정보 샘플들을 전달하기 위하여 변환을 사용함으로써 블록들(40)을 인코딩한다. 고속 푸리에 변환(FFT)의 이산 코사인 변환(DCT) 등과 같은 이차원 변환 등이 사용될 수 있다. 바람직하게는, 블록들(40)은 정사각형 형태 또는 직사각형 형태이다.
샘플 어레이(20)의 도 1에 도시된 블록들(40) 내로의 세분화는 단지 설명 목적을 제공한다. 도 1은 비-오버래핑 방식으로 서로 인접해 있는 정사각형 도는 직사각형 블록들(40)의 정규 2차원 배치로 세분화되는 것으로서의 샘플 어레이(20)를 도시한다. 블록들(40)의 크기는 미리 결정될 수 있다. 즉, 인코더(10)는 데이터 스트림(30) 내의 블록들(40)의 블록 크기에 대한 정보를 디코딩 면으로 전달하지 않을 수 있다. 예를 들면, 디코더는 미리 결정된 블록 크기를 기대할 수 있다.
그러나, 일부 대안들이 가능하다. 예를 들면, 블록들은 서로 오버랩할 수 있다. 그러나, 오버래핑은 각각의 블록이 어떠한 이웃한 블록에 의해 오버래핑되지 않는 부를 가질 정도로 또는 블록들의 각각의 샘플이 최대로, 미리 결정된 방향을 따라 현재 블록에 병렬(juxtaposition)로 배치되는 이웃한 블록들 중에서 하나의 블록에 의해 오버래핑되는 것과 같이 제한될 수 있다. 후자는 현재 블록을 완전히 포함하기 위하여 왼쪽과 오른편 이웃 블록들이 현재 블록을 오버랩할 수 있으나 서로 오버레이하지(overlay) 않을 수 있다는 것을 의미하며, 수직 및 대각선 방향의 이웃자리들 위하여도 동일하게 적용된다.
또 다른 대안으로서, 샘플 어레이(20)의 블록들(40)로의 세분화는 비트스트림(30)을 거쳐 디코더 면으로 전달되도록 사용되는 세분화 상의 세분화 정보를 갖는 인코더(10)에 의해 샘플 어레이(20)의 콘텐츠에 적용될 수 있다.
도 2a 내지 2c는 샘플 어레이(20)의 블록들(40)로의 세분화를 위한 서로 다른 실시 예를 도시한다. 도 2a는 샘플 어레이(20)의, 증가하는 크기로 40a, 40b, 40c 및 40d에서 표시되는 대표 블록들을 갖는, 서로 다른 크기들의 블록들로의 쿼드트리(quadtree) 기반 세분화를 도시한다. 도 2a의 세분화에 따르면, 샘플 어레이(20)는 우선 트리 블록들(40d)의 정규 2차원 배치로 나눠지며, 이는 차례로, 특정 트리 블록(40d)이 쿼드트리 구조에 따라 더 세분화될 수 있는지에 따라 그것들과 관련된 개별 세분화 정보를 갖는다. 블록(40)의 왼쪽에 대한 트리 블록은 바람직하게는 쿼드트리 구조에 따라 더 작은 블록들로 세분화된다. 인코더(20)는 도 2a의 실선과 쇄선으로 도시된 각각의 블록을 위한 하나의 2차원 변환을 실행할 수 있다. 바꾸어 말하면, 인코더(20)는 블록 세분화의 유닛들로 어레이(20)를 변환할 수 있다.
쿼드트리 기반 세분화 대신에 더 일반적인 다중 트리 기반 세분화가 사용될 수 있으며 계층 레벨당 자식 노드(child node)들의 수는 서로 다른 계층 레벨들에서 다를 수 있다.
도 2b는 세분화의 또 다른 실시 예를 도시한다. 도 2b에 따르면, 샘플 어레이(20)는 우선 서로 인접한 비-오버래핑 방식으로 정규 2차원 배치로 배치되는 마크로블록(40b, macroblock)들로 세분화되는데 각각의 마크로블록(40b)은 서로 다른 마크로블록들을 위하여 서로 다른 세분화 입도들을 달성하기 위하여 마크로블록이 세분화되지 않거나, 또는 만일 세분화되면, 정규 2차원 방식으로 동등한 크기의 서브-블록들로 세분화되는가에 따라 그것들과 관련된 세분화 정보를 갖는다. 그 결과는 40a, 40b 및 40a'에서 표시되는 서로 다른 크기의 대표들을 갖는 서로 다른 크기의 블록들(40)로의 샘플 어레이(20)의 세분화이다. 도 2a에서와 같이, 인코더(10)는 실선과 쇄선으로 도 2b에 도시된 각각의 블록들 상에 2차원 변환을 실행한다. 도 2c는 뒤에 설명될 것이다.
도 3은 샘플 어레이(20)의 재구성된 버전(60)을 재구성하기 위하여 인코더(10)에 의해 발생되는 데이터 스트림(30)을 디코딩할 수 있는 디코더(50)를 도시한다. 디코더(50)는 데이터 스트림(30)으로부터 각각의 블록들(40)을 위한 변환 계수 블록을 추출하고 각각의 변환 계수 블록들 상에 역 변환을 실행함으로써 재구성된 버전(60)을 재구성한다.
인코더(10)와 디코더(50)는 각각 변환 계수 블록들 상의 정보를 삽입하고, 데이터 스트림으로부터 이러한 정보를 추출하기 위하여 엔트로피 인코딩/디코딩을 실행하도록 구성될 수 있다. 서로 실시 예들에 따른 이와 관련된 상세한 설명이 뒤에 설명된다. 데이터 스트림(30)은 샘플 어레이(20)의 모든 블록(40)을 위하여 변환 계수 블록들 상의 정보를 반드시 포함하지는 않는다는 것을 이해하여야 한다. 오히려, 블록들(40)의 서브셋으로서 또 다른 방법으로 비트스트림(30) 내로 코딩될 수 있다. 예를 들면, 인코더(10)는 비트스트림(30) 내로의 삽입을 갖는 블록들(40)의 특정 블록을 위한 변환 계수 블록의 삽입을 삼가도록 결정할 수 있으며 대신에 대안의 코딩 파라미터들이 디코더(50)가 예측하거나 또는 그렇지 않으면 각각의 블록을 재구성된 버전(60) 내에 채우는 것을 가능하게 한다. 예를 들면, 인코더(10)는 텍스처(texture) 합성을 통하여 디코더에 의해 디코더 면에서 채워질 수 있는 샘플 어레이(20) 내의 블록들을 위치시키고 이를 비트스트림 내에 그에 알맞게 표시하기 위하여 텍스처 분석을 실행할 수 있다.
다음의 도면들과 관련하여 설명되는 것과 같이, 변환 계수 블록들은 샘플 어레이(20)의 각각의 블록(40)의 오리지널 정보 샘플들이 스펙트럼 도메인 표현을 반드시 표현할 필요는 없다. 오히려, 그러한 변환 계수 블록은 각각의 블록(40)의 예측 잔류의 스펙트럼 도메인 표현을 표현한다. 도 4는 그러한 인코더를 위한 일 실시 예를 도시한다. 도 4의 인코더는 변환 스테이지(100), 엔트로피 코더(102), 역 변환 스테이지(104), 예측변수(110) 및 감산기(108, subtractor)뿐만 아니라 가산기(110)를 포함한다. 감산기(108), 변환 스테이지(100) 및 엔트로피 코더(102)는 도 4의 인코더의 입력(112)과 출력(114) 사이에 언급된 순서로 직렬로 연결된다. 역 변환 스테이지(104), 가산기(110) 및 예측변수(106)는 변환 스테이지 및 감산기(108)의 역 입력 사이에 언급된 순서로 연결되며, 예측변수(106)의 출력은 또한 가산기(110)의 또 다른 입력에 연결된다.
도 4의 코더는 예측 변환 기반 코더이다. 즉, 입력(112)으로 들러가는 샘플 어레이(20)의 블록들이 표현 시간에서 현재 샘플 어레이(20)를 선행하거나 따라갈 수 있는 이전에 인코딩되고 재구성된 동일한 샘플 어레이(20)의 부들 또는 이전에 코딩되고 재구성된 다른 샘플 어레이들로부터 예측된다. 예측은 예측변수(106)에 의해 예측된다. 감산기(108)는 그러한 오리지널 블록으로부터 예측을 감산하고 변환 스테이지(100)는 예측 잔류들 상에 2차원 변환을 실행한다. 2차원 변환 자체 또는 변환 스테이지(100) 내부의 그 뒤의 측정은 변환 계수 블록들 내의 변환 계수들의 양자화에 이르게 할 수 있다. 양자화된 변환 계수 블록들은 예를 들면, 출력(114)에서 출력되는 결과로서 생기는 데이터 스트림을 갖는 엔트로피 인코더(102) 내의 엔트로피 인코딩에 의해, 손실 없이 코딩된다. 역 변환 스테이지(104)는 양자화된 잔류를 재구성하며, 가산기(110)는 차례로, 예측변수(106)가 앞서 언급된 현재 인코딩되는 예측 블록들을 예측할 수 있는가를 기초로 하여 재구성된 정보 샘플들을 획득하기 위하여 재구성된 잔류를 상응하는 예측과 결합한다. 예측변수(106)는 블록들을 예측하기 위하여 화면 내 예측 방식들 및 화면간 예측 방식들과 같은 서로 다른 예측 방식들을 사용할 수 있으며 데이터 스트림 내로의 삽입을 위하여 예측 파라미터들이 엔트로피 인코더(102)로 전송된다. 각각의 화면내 예측 블록의 움직임 데이터를 위하여, 각각의 움직임 데이터는 디코딩 면의 예측을 다시 행하는 것을 가능하게 하기 위하여 엔트로피 인코더(114)를 거쳐 비트스트림 내로 삽입된다. 픽쳐의 예측 블록을 위한 움직임 데이터는 예를 들면, 이웃하는 이미 인코딩된 예측 블록들의 움직임 벡터로부터 규정된 방법에 의해 유래하는 움직임 벡터 예측변수에 대하여 현재 예측 블록을 위한 움직임 벡터를 다르게 코딩하는 움직임 벡터 차분값를 표현하는 구문 요소를 포함하는 구문 부를 포함할 수 있다.
즉, 도 4에 따르면, 변환 계수 블록들은 그것의 실제 정보 샘플들보다는 오히려 샘플 어레이의 잔류의 스펙트럼 표현을 표현한다. 즉, 도 4에 따르면, 구문 요소들의 시퀀스는 데이터 스트림(114) 내로 엔트로피 인코딩되기 위하여 엔트로피 인코더(102)로 들어갈 수 있다. 구문 요소들의 시퀀스는 화면간 예측 블록들을 위한 움직임 벡터 차분값 구문 요소들 및 중요한 변환 계수 레벨들의 위치들을 표시하는 유의계수 맵(significance map)에 관한 구문 요소들뿐만 아니라 변환 블록들을 위하여, 자체로 중요한 변환 계수 레벨들을 정의하는 구문 요소들을 포함할 수 있다.
도 4의 실시 예를 위하여 일부 대안들이 존재한다는 것을 이해하여야 하며 이들 중 일부는 첨부된 도 4의 설명과 통합되는 본 명세서의 도입 부분에서 설명되었다.
도 5는 도 4의 인코더에 의해 발생되는 데이터 스트림을 디코딩할 수 있는 디코더를 도시한다. 도 5의 디코더는 엔트로피 디코더(150), 역 변환 스테이지(152), 가산기(154) 및 예측변수(156)를 포함한다. 엔트로피 디코더(150), 역 변환 스테이지(152), 및 가산기(154)는 언급된 순서로 도 5의 디코더의 입력(158)과 출력(160) 사이에 직렬로 연결된다. 엔트로피 디코더(150)의 또 다른 출력은 차례로, 가산기(154)의 출력과 그것의 또 다른 입력 사이에 연결되는 예측변수(156)에 연결된다. 엔트로피 디코더(150)는 입력(158)에서 도 5의 디코더로 들어가는 데이터 스트림으로부터 변환 계수 블록들을 추출하며 역 변환은 잔류 신호를 획득하기 위하여 스테이지(152)에서 변한 계수 블록들에 적용된다. 잔류 신호는 출력(160)에서 샘플 어레이의 재구성되는 버전의 재구성되는 블록을 획득하기 위하여 가산기(154)에서 예측변수(156)로부터의 예측과 결합된다. 재구성된 버전들을 기초로 하여, 예측변수(156)는 예측들을 발생시키며 그렇게 함으로써 인코더 면에서 예측변수(156)에 의해 실행된 예측들을 재구성한다. 인코더 면에서 사용된 것과 동일한 예측들을 획득하기 위하여, 예측변수(156)는 엔트로피 디코더(150)가 또한 입력(158)에서 데이터 스트림으로부터 획득하는 예측 파라미터들을 사용한다.
위에서 설명된 실시 예들에서, 잔류의 예측과 변환이 실행되는 공간 입도는 서로 동일할 필요가 없다는 것을 이해하여야 한다. 이는 도 2c에 도시된다. 이러한 도면은 실선을 갖는 예측 입도와 쇄선을 갖는 잔류 입도의 예측 블록들을 위한 세분화를 도시한다. 알 수 있는 것과 같이, 세분화들은 서로 독립적인 인코더에 의해 선택될 수 있다. 더 정확히 설명하면, 데이터 스트림 구문은 예측 세분화와 관계없이 잔류 세분화의 정의를 허용할 수 있다. 대안으로서, 잔류 세분화는 각각의 잔류 블록이 예측 블록의 적절한 서브셋과 동일하도록 예측 세분화의 확장일 수 있다. 이는 예를 들면, 다시 예측 입도가 실선으로 도시되고 잔류 입도가 쇄선으로 도시된, 도 2a와 도 2b 상에 도시된다. 즉, 도 2a-2c에서, 그것들과 관련된 동일한 참조 부호를 갖는 모든 블록은 하나의 2차원 변환이 실행될 수 있는 잔류 블록들일 수 있으며 예를 들면, 쇄선 블록들(40a)을 포함하는 더 큰 실선 블록들은 예측 파라미터 설정이 개별적으로 실행되는 예측 블록들일 수 있다.
위의 실시 예들은 공통으로 (전류 또는 오리지널) 샘플들의 블록이 디코더 면에서 변환 계수 블록 내로 변환되고 이는 차례로, 디코더 면에서 재구성된 샘플들의 블록 내로 역변환되는 사실을 갖는다. 이는 도 6에 도시된다. 도 6은 샘플들(202)의 블록을 도시한다. 도 6의 경우에 있어서, 이러한 블록(200)은 바람직하게는 정사각형 및 크기가 4×4 샘플들(202)이다. 샘플들(202)은 수평 방향(x)과 수직 방향(y)을 따라 규칙적으로 배치된다. 위에서 설명된 2차원 변환(T)에 의해, 블록(200)은 스펙트럼 도메인 내로, 주로 변환 계수들(206)의 블록(204) 내로 변환되며, 변환 블록(20$)은 블록과 동일한 크기이다. 즉, 변환 블록(204)은 두 수직 방향과 수직 방향으로, 블록(200)이 샘플들을 갖는 것만큼 많은 변환 계수들(206)을 갖는다. 그러나, 변환(T)이 스펙트럼 변환이기 때문에, 변환 블록(20$) 내의 변환 계수들(206)의 위치들은 공간 위치들과 상응하지 않고 오히려 블록(200)의 콘텍스트의 스펙트럼 컴포넌트들과 상응한다. 특히, 변환 블록(204)의 수평 축은 이를 따라 수평 방향에서의 스펙트럼 주파수가 단조적으로(monotonically) 증가하는 축과 상응하며 수직 층은 이를 따라 수직 방향에서의 공간 주파수가 단조적으로 증가하는 축과 상응하는데 이산 코사인 컴포넌트 변환 계수는 블록(204)의 구석-여기서 바람직하게는 상부 왼쪽 구석- 내에 위치되며 따라서, 하부 오른쪽 구석에서, 두 수평과 수직 방향에서 가장 높은 주파수와 상응하는 변환 계수(206)가 위치된다. 공간 방향, 특정 변환 계수(206)가 속하는 공간 주파수의 무시는 일반적으로 상부 왼쪽 구석으로부터 하부 오른쪽 구석으로 증가한다. 역 변환(T-1)에 의해, 변환 블록(204)은 블록(200)의 카피(208)를 다시 획득하기 위하여, 스펙트럼 도메인으로부터 공간 도메인으로 재전달된다. 변환 동안에 양자화/손실이 도입되지 않는 경우에서, 재구성은 완벽할 수 있다.
위에서 이미 설명된 것과 같이, 도 6으로부터 블록(200)의 더 큰 블록 크기들이 결과로서 생기는 스펙트럼 표현(204)의 스펙트럼 해상도를 증가시킨다는 것을 알 수 있다. 다른 한편으로는, 양자화 잡음이 전체 블록(204)에 걸쳐 확산하는 경향이 있고 따라서 블록들(200) 내의 분리되고 매우 국한적인 대상은 양자화 잡음에 기인하여 오리지널 블록(200)에 대하여 재변환된 블록의 편차들에 이르게 하는 경향이 있다. 그러나, 더 큰 블록들을 사용하는 주 장점은 한편으로는 중요한, 즉, 비-제로 (양자화된) 변환 계수들, 즉, 레벨들 사이의 비율 및 다른 한편으로는 무의(insignificant) 계수들의 수가 작은 블록들과 비교하여 큰 블록들 내에서 감소될 수 있으며 그렇게 함으로써 더 나은 코딩 효율을 가능하게 할 수 있다는 것이다. 바꾸어 말하면, 흔히, 중요한 변환 계수 레벨들, 즉, 제로로 양자화되지 않는 계수들은 변환 블록(204)에 걸쳐 드물게 분포한다. 이 때문에, 아래에 더 상세히 설명될 실시 예들에 따르면, 중요한 변환 계수 레벨들의 위치들은 유의계수 맵에 의해 데이터 스트림 내에 신호가 보내진다. 이와는 별도로, 중요한 변환 계수의 값들, 즉, 양자화된 변환 계수들의 경우의 변환 계수 레벨들은 데이터 스트림 내에 전송된다.
위에서 설명된 모든 인코더와 디코더는 따라서 구문 요소들의 특정 구문을 처리하도록 구성된다. 즉, 변환 계수 레벨들과 같은 앞서 언급된 구문 요소들, 변환 블록들의 유의계수 맵에 관한 구문 요소들, 화면간-예측 블록들에 관한 구문 요소들 등은 규정된 방법으로 데이터 스트림 내에 연속적으로 배치되는 것으로 가정된다. 그러한 규정된 방법은 예를 들면, H.264 표준 또는 다른 비디오 코덱들에서, 그것이 행해지는 한 슈도(pseudo) 코드의 형태로 표현될 수 있다.
또한 바꾸어 말하면, 위의 설명은 주로 미디어 데이터, 여기서는 바람직하게는 비디오 데이터의, 그것들 중에서 특정 구문 형태들, 그것의 의미와 순차를 규정하는 미리 정의된 구문 구조에 따른 구문 요소들의 시퀀스로의 전환을 처리하였다. 도 4와 5의 엔트로피 인코더와 엔트로피 디코더는 아래에 설명되는 것과 같이 작동하고 구성될 수 있다. 이들은 구문 요소 시퀀스와 데이터 스트림, 즉, 심벌 또는 비트스트림 사이의 전환에도 책임이 있다.
일 실시 예에 따른 엔트로피 인코더가 도 7에 도시된다. 인코더는 구문 요소들(301)의 스트림을 손실 없이 두 개 또는 그 이상의 부분 비트스트림(312)으로 전환한다.
본 발명의 바람직한 실시 예에서, 각각의 구문 요소(301)는 하나 또는 그 이상의 카테고리의 세트의 카테고리, 즉, 구문 요소 형태와 관련된다. 일례로서, 카테고리들은 구문 요소의 형태를 지정할 수 있다. 하이브리드 비디오 코딩의 맥락에서, 개별 카테고리는 마크로블록 코딩 방식들, 블록 코딩 방식들, 레퍼런스 픽쳐 지수들, 움직임 벡터 차분값들, 세분화 플래그들, 코딩된 블록 플래그들, 양자화 파라미터들, 변환 계수 레벨들 등과 관련될 수 있다. 오디오, 음성, 텍스트, 문서, 또는 일반적인 데이터 코딩과 같은 다른 적용 영역들에서, 구문 요소들의 서로 다른 범주화가 가능하다.
일반적으로, 각각의 구문 요소는 값의 유한 또는 계수가능 무한 세트의 값을 취할 수 있는데, 가능한 구문 요소 값들의 세트는 서로 다른 구문 요소 카테고리들을 위하여 다를 수 있다. 예를 들면, 이진 구문 요소들뿐만 아니라 정수 값 구문 요소가 존재한다.
인코딩과 디코딩의 복잡도의 감소 및 서로 다른 구문 요소들과 구문 요소 카테고리들을 위한 일반적인 인코딩과 디코딩 디자인의 허용을 위하여 구문 요소들(301)은 이진 결정들의 순차 세트로 전환되고 이러한 이진 결정들은 그리고 나서 단순한 이진 코딩 알고리즘들에 의해 처리된다. 따라서, 이진화기(302, binarizer)는 각각의 구문 요소(301)의 값을 빈들(303)의 시퀀스(또는 스트링 또는 워드) 상으로 전단사 방식으로(bijectively) 매핑한다. 빈들(303)의 시퀀스는 순차 이진 결정들의 세트를 표현한다. 각각의 빈(303) 또는 이진 결정은 두 값들의 세트 중 하나의 값, 예를 들면, 값들 0과 1 중 하나를 취할 수 있다. 특정 구문 요소 카테고리를 위한 이진화 전략은 가능한 구문 요소 값들의 세트 및/또는 특정 카테고리를 위한 구문 요소의 다른 특성들에 의존할 수 있다.
테이블 1은 계수가능 무한 세트들을 위한 3가지 바람직한 이진화 전략을 도시한다. 계수가능 무한 세트들을 위한 이진화 전략은 또한 구문 요소 값들의 유한 세트들을 위하여 적용될 수 있다. 특히 구문 요소 값들의 큰 유한 세트들을 위하여, 비능률(빈들의 사용되지 않는 시퀀스들로부터 야기하는)이 무시될 수 있으나, 그러한 이진화 전략들의 보편성은 복잡도와 메모리 요구와 관련하여 장점을 제공한다. 구문 요소 값들의 작은 유한 세트들을 위하여, 흔히 이진화 전략을 가능한 심벌 값들의 수에 적용하는 것이 바람직하다.
테이블 2는 8 값의 유한 세트들을 위한 3가지 바람직한 이진화 전략을 도시한다. 유한 세트들을 위한 이진화 전략들은 빈 시퀀스들의 유한 세트들이 중복이 없는 코드를 표현하는(및 잠재적으로 빈 시퀀스들을 기록하는) 방법으로 빈들의 일부 시퀀스를 변형함으로써 계수가능 무한 세트들을 위한 보편적인 단항 이진화 전략들로부터 유래할 수 있다. 일례로서, 테이블 2의 절단된 단항 이진화 전략은 보편적인 단항 이진화의 구문 요소(7)를 위한 빈 시퀀스를 변형함으로써 생성되었다(테이블 1 참조). 테이블 2의 순차 0의 절단되고 기록된 지수-골롬(exponential-Golomb) 이진화는 보편적인 지수-골롬 순차 0 이진화의 구문 요소 7을 위한 빈 시퀀스를 변형하고(테이블 1 참조) 빈 시퀀스들을 기록함으로써(심벌 7을 위한 절단된 빈 시퀀스는 심벌 1로 지정되었다) 생성되었다. 구문 요소들의 유한 세트들을 위하여, 테이블 2의 마지막 칼럼에 예시된 것과 타이, 비-체계적/비-보편적 이진화 전략들을 사용하는 것이 또한 가능하다.
테이블 1. 계수가능 무한 세트들(또는 큰 유한 세트들)의 이진화 예들.
Figure pct00001

테이블 2. 유한 세트들의 이진화 예들.
Figure pct00002

이진화기(302)에 의해 생성된 빈들의 시퀀스의 각각의 빈(303)은 순차적인 순서로 파라미터 할당기(304, parameter assigner) 내로 제공된다. 파라미터 할당기는 하나 또는 그 이상의 파라미터의 세트를 각각의 빈(303)에 할당하고 파라미터들(305)의 관련 세트를 갖는 빈을 출력한다. 파라미터들의 세트는 인코더와 디코더에서 정확하게 동일한 방법으로 결정된다. 파라미터들의 세트는 하나 또는 그 이상의 다음의 파라미터로 구성될 수 있다.
특히, 파라미터 할당기(304)는 현재 빈(303)에 할당하도록 구성될 수 있다. 예를 들면, 파라미터 할당기(304)는 현재 빈(303)을 위한 이용가능한 콘텍스트 지수들 중 하나를 선택할 수 있다. 현재 빈(303)을 위한 콘텍스트들의 이용가능한 세트는 빈의 형태에 의존할 수 있으며, 차례로, 현재 빈(303)이 이것의 이진화의 일부분인, 구문 요소(301)의 형태/카테고리 및 후자의 이진화 내의 현재 빈(303)의 위치에 의해 정의될 수 있다. 이용가능한 콘텍스트 세트 중에서의 콘텍스트 선택은 이전의 빈들 및 후자와 관련된 구문 요소들에 의존할 수 있다. 이러한 각각의 콘텍스트는 그것과 관련된 확률 모델, 즉, 현재 빈을 위한 두 가능한 값 중 하나를 위한 확률의 추정을 위한 측정을 갖는데, 확률 모델은 부가적으로 두 가능한 빈 값 중 어느 것이 현재 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈을 표현하는지를 위한 추정을 지정하는 식별자에 의해 정의된다. 현재 빈을 위하여 단지 하나의 콘텍스트가 이용가능한 경우에 있어서, 콘텍스트 선택은 제거될 수 있다. 아래에 더 상세히 설명될 것과 같이, 파라미터 할당기(304)는 또한 각각의 콘텍스트에 속한 각각의 빈들의 실제 빈 통계에 대한 다양한 콘텍스트와 관련된 확률 모델들을 적용하기 위하여 확률 모델 적용을 실행할 수 있다.
또한 아래에 더 상세히 설명될 것과 같이, 파라미터 할당기(304)는 활성화되는 고효율 방식 또는 낮은 복잡도 방식에 따라 다르게 작동할 수 있다. 두 방식들에서 확률 모델은 아래에 설명될 것과 같이 현재 빈(303)을 빈 인코더들(310) 중 어느 하나에 관련되나, 파라미터 할당기(304)의 작용의 방식은 낮은 복잡도 방식에서 덜 복잡한 경향이 있으며, 코딩 효율은 빈 통계에 더 정확하게 적용되도록 개별 빈들(303)의 개별 인코더들(310)로의 관련을 야기하는 파라미터 할당기(304)에 기인하여 고효율 방식에서 증가하며, 그렇게 함으로써 낮은 복잡도 방식에 대한 엔트로피를 최적화한다.
파라미터 할당기(304)의 출력되는 파라미터들(305)의 관련 세트를 갖는 각각의 빈은 빈 버퍼 선택기(306, bin buffer selector)에 제공된다. 빈 버퍼 선택기(306)는 입력 빈 값과 관련 파라미터들(305)을 기초로 하여 입력 빈(305)의 값을 잠재적으로 변경하며 잠재적으로 변경된 값을 갖는 출력 빈(307)을 두 개 이상의 빈 버퍼들(308) 중 어느 하나 내로 제공한다. 출력 빈(307)이 보내지는 빈 버퍼(308)는 입력 빈(305)의 값 및/또는 관련 파라미터들(305)의 값을 기초로 하여 결정된다.
본 발명의 바람직한 실시 예에서, 빈 버퍼 선택기는 빈의 값을 변경하지 않는데, 즉, 출력 빈(30&0은 항상 입력 빈(305)과 동일한 값을 갖는다. 본 발명의 또 다른 바람직한 실시 예에서, 빈 버퍼 선택기(306)는 입력 빈 값 및 현재 빈을 위한 두 개의 가능한 빈 값들 중 어느 하나를 위한 확률의 추정을 위한 관련 측정을 기초로 하여 출력 빈 값(307)을 결정한다. 본 발명의 바람직한 실시 예에서, 만일 현재 빈을 위한 두 개의 가능한 빈 값들 중 어느 하나를 위한 확률의 측정이 특정 임계값보다 작으면(또는 작거나 동일하면), 출력 빈 값(307)은 입력 빈 값(305)과 동일하게 설정되고, 만일 현재 빈을 위한 두 개의 가능한 빈 값들 중 어느 하나를 위한 확률의 측정이 특정 임계값과 동일하거나 크면(또는 크면), 출력 빈 값(307)은 변경된다(즉, 입력 빈 값과 반대로 설정된다). 본 발명의 또 다른 바람직한 실시 예에서, 만일 현재 빈을 위한 두 개의 가능한 빈 값들 중 어느 하나를 위한 확률의 측정이 특정 임계값보다 크면(또는 크거나 동일하면), 출력 빈 값(307)은 입력 빈 값(305)과 동일하게 설정되고, 만일 현재 빈을 위한 두 개의 가능한 빈 값들 중 어느 하나를 위한 확률의 측정이 특정 임계값과 작거나 동일하면(또는 작으면), 출력 빈 값(307)은 변경된다(즉, 입력 빈 값과 반대로 설정된다). 본 발명의 바람직한 실시 예에서, 임계값은 두 가능한 빈 값을 위하여 추정된 확률을 위하여 0.5의 값과 상응한다.
본 발명의 또 다른 바람직한 실시 예에서, 빈 버퍼 선택기(306)는 입력 빈 값(305) 및 두 가능한 빈 값 중 어느 하나가 현재 빈을 위하여 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 표현하는 추정을 지정하는 관련 식별자를 기초로 하여 출력 빈 값(307)을 결정한다. 본 발명의 바람직한 실시 예에서, 만일 식별자가 두 가능한 빈 값의 제 1 세트가 현재 빈을 위한 덜 가능성 있는(또는 더 가능성 있는) 빈 값을 표현하면 출력 빈 값은 입력 빈 값(305)과 동일하게 설정되며, 만일 식별자가 두 가능한 빈 값의 제 2 세트가 현재 빈을 위한 덜 가능성 있는(또는 더 가능성 있는) 빈 값을 표현하면 출력 빈 값은 변경된다(즉, 입력 빈 값과 반대로 설정된다).
본 발명의 바람직한 실시 예에서, 빈 버퍼 선택기(306)는 현재 빈을 위한 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 관련 측정을 기초로 하여 출력 빈이 보내지는 빈 버퍼(308)를 결정한다. 본 발명의 바람직한 실시 예에서, 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 관련 측정을 위한 가능한 값들의 세트는 유한하며 빈 버퍼 선택기(306)는 정확하게 하나의 빈 버퍼(308)를 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 각각의 가능한 값과 관련시키는 테이블을 포함하며, 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 측정을 위한 서로 다른 값들은 동일한 빈 버퍼(308)와 관련될 수 있다. 본 발명의 또 다른 바람직한 실시 예에서, 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 측정을 위한 가능한 값들의 범위는 다수의 간격으로 분할되며, 빈 버퍼 선택기(306)는 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 현재 측정을 위한 간격 지수를 결정하며, 빈 버퍼 선택기(306)는 정확하게 하나의 빈 버퍼(308)를 간격 지수를 위한 각각의 과 관련시키는 테이블을 포함하며, 간격 지수를 위한 서로 다른 값들은 동일한 빈 버퍼(308)와 관련될 수 있다. 본 발명의 바람직한 실시 예에서, 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 측정을 위한 반대편 측정(반대편 측정은 P 및 1-P를 추정하는 확률을 표현하는 것이다)을 갖는 입력 빈들(30%0은 동일한 빈 버퍼(308) 내로 제공된다. 본 발명의 또 다른 바람직한 실시 예에서, 특정 빈 버퍼를 갖는 현재 빈을 위한 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 측정의 관련성은 예를 들면, 생성된 부분적인 비트스트림들이 유사한 비트 레이트들을 갖는 것을 보장하기 위하여 시간에 따라 적용된다. 또한 아래에, 간격 지수는 또한 파이프(pipe) 지수로 불릴 것인데, 더 가능한 빈 값을 나타내는 세분화 지수 및 플래그와 함께 파이프 지수는 실제 확률 모델, 즉, 확률 추정을 색인화한다.
본 발명의 또 다른 바람직한 실시 예에서, 빈 버퍼 선택기(306)는 현재 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 관련 측정을 기초로 하여 출력 빈(307)이 보내지는 빈 버퍼(308)를 결정한다. 본 발명의 바람직한 실시 예에서, 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 가능한 값들의 세트는 유한하며 빈 버퍼 선택기(306)는 정확하게 하나의 빈 버퍼(308)를 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정의 각각의 가능한 값과 관련시키는 테이블을 포함하며, 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 측정을 위한 서로 다른 값들은 동일한 빈 버퍼(308)와 관련된다. 본 발명의 또 다른 바람직한 실시 예에서, 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 측정을 위한 가능한 값들의 범위는 다수의 간격으로 분할되며, 빈 버퍼 선택기(306)는 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 현재 측정을 위한 간격 지수를 결정하며, 빈 버퍼 선택기(306)는 정확하게 하나의 빈 버퍼(308)를 간격 지수를 위한 각각의 가능한 값과 관련시키는 테이블을 포함하며, 간격 지수를 위한 서로 다른 값들은 동일한 빈 버퍼(308)와 관련될 수 있다. 본 발명의 또 다른 바람직한 실시 예에서, 특정 빈 버퍼를 갖는 현재 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 측정을 위한 관련성은 예를 들면, 생성된 부분적인 비트스트림들이 유사한 비트 레이트들을 갖는 것을 보장하기 위하여 시간에 따라 적용된다.
두 개 또는 그 이상의 빈 버퍼들(308) 각각은 정확하게 하나의 빈 인코더(310)와 연결되며 각각의 빈 인코더는 단지 하나의 빈 버퍼(308)와 연결된다. 각각의 빈 인코더(310)는 관련된 빈 버퍼(308)로부터 빈들을 판독하며 빈들(309)의 시퀀스를 비트들의 시퀀스를 표현하는 코드워드(311) 내로 전환한다. 빈 버퍼들(308)은 선입선출(first-in-first-out) 버퍼들을 표현하며, 뒤에 빈 버퍼(308) 내로 제공되는 빈들은 빈 버퍼 내로 일찍(순차적 순서로) 제공된 빈들 전에 인코딩되지 않는다. 특정 빈 인코더(310)의 출력인 코드워드들(311)은 특정 부분 비트스트림(312)으로 판독된다. 전체 인코딩 알고리즘은 구문 요소들을 두 개 또는 그 이상의 부분적인 비트스트림(312) 내로 전환하며, 부분적인 비트스트림들의 수는 빈 버퍼들과 빈 인코더들의 수와 동일하다. 본 발명의 바람직한 실시 예에서, 빈 인코더(310)는 빈들(309)의 가변 수를 비트들의 가변 수의 코드워드(311) 내로 전환한다. 본 발명의 위에서 설명되고 아래에 설명될 실시 예들의 한가지 장점은 빈들의 인코딩이 병렬로(예를 들면, 확률 측정들의 서로 다른 그룹들을 위하여) 수행될 수 있다는 것이며, 이는 일부 구현들을 위하여 처리 시간을 감소시킨다.
본 발명의 실시 예들의 또 다른 장점은 빈 인코더들(310)에 의해 수행되는 빈 인코딩이 파라미터들(305)의 서로 다른 세트들을 위하여 구체적으로 디자인된다는 것이다. 특히, 빈 인코딩과 인코딩은 추정된 확률들의 서로 다른 그룹들을 위하여 최적화될 수 있다(코딩 효율 및/또는 복잡도와 관련하여). 한편으로는, 이는 코딩 효율의 향상을 허용한다. 본 발명의 바람직한 실시 예에서, 빈 인코더들(310)은 현재 빈을 위한 두 개의 가능한 빈 값들(305) 중 어느 하나를 위한 확률의 추정을 위한 측정들의 서로 다른 그룹들을 위하여 서로 다른 인코딩 알고리즘들(즉, 빈 시퀀스들의 코드워드들 상으로의 매핑)을 구현한다. 본 발명의 또 다른 바람직한 실시 예에서, 빈 인코더들(310)은 현재 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 측정들의 서로 다른 그룹들을 위하여 서로 다른 인코딩 알고리즘들을 구현한다.
본 발명의 바람직한 실시 예에서, 빈 인코더들(310, 또는 하나 또는 그 이상의 빈 인코더들)은 입력 빈들(309)의 시퀀스들을 코드워드들(310) 상에 직접적으로 매핑하는 엔트로피 인코더들을 표현한다. 그러한 매핑들은 효율적으로 구현되고 복잡한 산술 코딩 엔진을 필요로 하지 않는다. 빈들의 시퀀스들 상으로의 코드워드들의 역 매핑은(디코더에서 수행되는 것과 같이) 입력 시퀀스의 완벽한 디코딩을 보장하기 위하여 독특해야만 하나, 코드워드들(310) 상으로의 빈 시퀀스들(309)의 매핑은 반드시 독특할 필요는 없는데, 즉, 빈들의 특정 시퀀스가 코드워드들의 하나 이상의 시퀀스 상에 매핑될 수 있는 것이 가능하다. 본 발명의 바람직한 실시 예에서, 입력 빈들(309)의 시퀀스들의 코드워드들(310) 상으로의 매핑은 전단사이다. 본 발명의 또 다른 바람직한 실시 예에서, 빈 인코더들(310, 또는 하나 또는 그 이상의 빈 인코더들)은 입력 빈들(309)의 가변 길이 시퀀스들을 가변 길이 코드워드들(310) 상에 직접적으로 매핑하는 엔트로피 인코더들을 표현한다. 본 발명의 바람직한 실시 예에서, 출력 코드워드들은 일반적인 허프만(huffman) 코드들 또는 표준(canonical) 허프만 코드들과 같은 중복 없는 코드들을 표현한다.
빈 시퀀스들의 반복 없는 코드들로의 전단사 매핑을 위한 두 가지 예가 테이블 3에 도시된다. 본 발명의 또 다른 바람직한 실시 예에서, 출력 코드워드들은 에러 검출과 에러 복구에 적합한 반복 코드들을 표현한다. 본 발명의 또 다른 바람직한 실시 예에서, 출력 코드워드들은 구문 요소들을 암호화하기에 적합한 암호화 코드(encryption code)들을 표현한다.
테이블 3. 빈 시퀀스들과 코드워드들 사이의 매핑들을 위한 예들.
Figure pct00003

본 발명의 또 다른 바람직한 실시 예에서, 빈 인코더들(310, 또는 하나 또는 그 이상의 빈 인코더들)은 입력 빈들(309)의 가변 길이 시퀀스들을 고정 길이 코드워드들(310) 상으로 직접적으로 매핑하는 엔트로피 인코더들을 표현한다. 본 발명의 또 다른 바람직한 실시 예에서, 빈 인코더들(310, 또는 하나 또는 그 이상의 빈 인코더들)은 입력 빈들(309)의 고정 길이 시퀀스들을 가변 길이 코드워드들(310) 상으로 직접적으로 매핑하는 엔트로피 인코더들을 표현한다.
본 발명의 일 실시 예에 따른 디코더가 도 8에 도시된다. 디코더는 기본적으로 인코더의 역 작동들을 실행하며, 따라서 (이전에 인코딩된) 구문 요소들(327)의 시퀀스가 두 개 또는 그 이상의 부분적인 비트스트림들(324)의 세트로부터 디코딩된다. 디코더는 2가지 서로 다른 처리 흐름을 포함한다: 인코더의 데이터 흐름을 복제하는 데이터 요구(data request), 및 인코더 데이터 흐름의 역을 표현하는 데이터 흐름. 도 8의 도면에서, 쇄선 화살표들은 데이터 요구 흐름을 나타내며, 실선 화살표는 데이터 흐름을 나타낸다. 디코더의 빌딩 블록은 기본적으로 인코더의 데이터 블록들을 복제하나, 역 작동들을 구현한다.
구문 요소의 디코딩은 이진화기(314)에 보내지는 새로운 디코딩된 구문 요소(313)를 위한 요구에 의해 트리거된다. 본 발명의 바람직한 실시 예에서, 새로운 디코딩된 구문 요소(313)를 위한 각각의 요구는 하나 또는 그 이상의 카테고리의 세트의 하나의 카테고리와 관련된다. 구문 요소를 위한 요구와 관련된 카테고리는 인코딩 동안에 상응하는 구문 요소와 관련되었던 카테고리와 동일하다.
이진화기(314)는 구문 요소(313)를 위한 요구들을 파라미터 할당기(316)로 보내지는 빈을 위한 하나 또는 그 이상의 요구 내로 매핑한다. 이진화기(314)에 의해 파라미터 할당기(316)로 보내지는 빈을 위한 요구에 대한 최종 응답으로서, 이진화기(314)는 빈 버퍼 선택기(318)로부터 디코딩된 빈(326)을 받는다. 이진화기(314)는 디코딩된 빈들(326)의 수신된 시퀀스를 요구된 구문 요소를 위한 특정 이진화 전략과 비교하며, 만일 디코딩된 빈들(326)의 수신된 시퀀스가 구문 요소의 이진화와 일치하면, 이진화기는 그것의 빈 버퍼를 비우고 새로운 디코딩된 심벌의 요구에 대한 최종 응답으로서 디코딩된 구문 요소를 출력한다. 만일 디코딩된 빈들의 이미 수신된 시퀀스가 요구된 구문 요소를 위한 이진화 전략을 위한 빈 시퀀스들 중 어느 하나와도 일치하지 않으면, 이진화기는 디코딩된 빈들의 시퀀스가 요구된 구문 요소를 위한 이진화 전략을 위한 빈 시퀀스들 중 어느 하나와 일치할 때까지 빈을 위한 또 다른 요구를 파라미터 할당기로 보낸다. 구문 요소를 위한 각각의 요구를 위하여, 디코더는 상응하는 구문 요소를 인코딩하기 위하여 사용되었던 이진화 전략과 동일한 이진화를 사용한다. 특정 구문 요소 카테고리를 위한 이진화 잔략은 가능한 구문 요소 값들의 세트 및/또는 특정 카테고리를 위한 구문 요소들의 다른 특성들에 의존할 수 있다.
파라미터 할당기(316)는 하나 또는 그 이상의 파라미터들의 세트를 빈을 위한 각각의 요구에 할당하고 파라미터들의 관련 세트를 갖는 빈을 위한 요구를 빈 버퍼 선택기로 보낸다. 파라미터 할당기에 의해 요구된 빈에 할당되는 파라미터들의 세트는 인코딩 동안에 상응하는 빈에 할당되었던 것과 동일하다. 파라미터들의 세트는 도 7의 인코더 설명에서 언급된 하나 또는 그 이상의 파라미터들로 구성될 수 있다.
본 발명의 바람직한 실시 예에서, 파라미터 할당기(316)는 빈을 위한 각각의 요구를 할당기(304)가 수행했던 것과 동일한 파라미터들, 즉, 현재 요구된 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 측정 및 두 가능한 빈 값 중 어느 것이 현재 요구된 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 표현하는가의 추정을 지정하는 식별자와 같이, 현재 요구된 빈을 위한 두 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 콘텍스트 및 그것과 관련된 측정과 관련시킨다.
파라미터 할당기(316)는 하나 또는 그 이상의 이미 디코딩된 심벌을 기초로 하여 하나 또는 그 이상의 위에서 언급된 확률 측정(현재 요구된 빈을 위한 두 개의 가능한 빈 값들 중 어느 하나의 확률의 추정을 위한 측정, 현재 요구된 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 측정, 두 가능한 빈 값들 중 어느 것이 현재 요구된 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 표현하는지의 추정을 지정하는 식별자)을 결정할 수 있다. 하나의 빈을 위한 특정 요구를 위한 확률 측정들의 결정은 상응하는 빈을 위한 인코더에서의 처리를 복제한다. 확률 측정들을 결정하기 위하여 사용되는 디코딩된 심벌들은 동일한 심벌 카테고리의 하나 또는 그 이상의 이미 디코딩된 심벌, 이웃하는 시간 및/또는 공간 위치들(구문 요소를 위한 현재 요구와 관련된 데이터 세트와 관련하여)의 데이터 세트(샘플들의 블록들 또는 그룹들과 같이)와 상응하는 동일한 심벌 카테고리의 하나 또는 그 이상의 이미 디코딩된 심벌들, 또는 동일하거나 및/또는 이웃하는 공간 및/또는 시간 위치들(구문 요소를 위한 현재 요구와 관련된 데이터 세트와 관련하여)의 데이터 세트와 상응하는 서로 다른 심벌 카테고리들의 하나 또는 그 이상의 이미 디코딩된 심벌들을 포함할 수 있다.
파라미터 할당기(316)의 출력인 파라미터들(317)의 관련 세트를 갖는 하나의 빈을 위한 각각의 요구는 빈 버퍼 선택기(318) 내로 제공된다. 파라미터들(317)의 관련 세트를 기초로 하여, 빈 버퍼 선택기(318)는 하나의 빈(319)을 위한 요구를 두 개 도는 그 이상의 빈 버퍼들(320) 중 어느 하나에 보내고 선택된 빈 버퍼(320)로부터 디코딩된 빈(325)을 수신한다. 디코딩된 입력 빈(325)은 잠재적으로 변경되고 디코딩된 출력 빈(326, 잠재적으로 변경된 값을 갖는)은 파라미터들(317)의 관련 세트를 갖는 하나의 빈을 위한 요구에 대한 최종 응답으로서 이진화기(314)에 보내진다.
하나의 빈을 위한 요구가 전달되는 빈 버퍼(320)는 인코더 면에서 빈 버퍼 선택기의 출력 빈이 보내진 빈 버퍼와 동일한 방법으로 선택된다.
본 발명의 바람직한 실시 예에서, 빈 버퍼 선택기(318)는 현재 요구된 빈을 위한 관련 측정을 기초로 하여 하나의 빈(319)을 위한 요구가 보내지는 빈 버퍼(320)를 결정한다. 본 발명의 바람직한 실시 예에서, 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 측정을 위한 가능한 값들의 세트는 유한하며 빈 버퍼 선택기(318)는 정확하게 하나의 빈 버퍼(320)를 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정의 각각의 가능한 값과 관련시키는 테이블을 포함하며, 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 측정을 위한 서로 다른 값들은 동일한 빈 버퍼(320)와 관련될 수 있다. 본 발명의 또 다른 바람직한 실시 예에서, 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 측정을 위한 가능한 값들의 범위는 다수의 간격으로 할당되며, 빈 버퍼 선택기(318)는 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 현재 측정을 위한 간격 지수를 결정하며, 빈 버퍼 선택기(318)는 정확하게 하나의 빈 버퍼(320)를 간격 지수를 위한 각각의 가능한 값과 관련시키는 테이블을 포함하며, 간격 지수를 위한 서로 다른 값들은 동일한 빈 버퍼(320)와 관련될 수 있다. 본 발명의 바람직한 실시 예에서, 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 반대편 측정들(반대편 측정들은 확률 추정들 P 및 1-P을 표현하는 것들이다)을 갖는 빈들(317)을 위한 요구들은 동일한 빈 버퍼(320)로 전달된다. 본 발명의 또 다른 바람직한 실시 예에서, 현재 빈 요구를 위한 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 측정의 특정 빈 버퍼와의 관련성은 시간에 따라 적용된다.
본 발명의 또 다른 바람직한 실시 예에서, 빈 버퍼 선택기(318)는 현재 요구된 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값들의 확률의 추정을 위한 관련 측정을 기초로 하여 하나의 빈(319)을 위한 요구가 보내지는 빈 버퍼(320)를 결정한다. 본 발명의 바람직한 실시 예에서, 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값들의 확률의 추정을 위한 관련 측정을 위한 가능한 값들의 세트는 유한하며 빈 버퍼 선택기(318)는 정확하게 하나의 빈 버퍼(320)를 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값들의 확률의 추정의 각각의 가능한 값과 관련시키는 테이블을 포함하며, 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값들의 확률의 추정을 위한 측정을 위한 서로 다른 값들은 동일한 빈 버퍼(320)와 관련될 수 있다. 본 발명의 또 다른 바람직한 실시 예에서, 덜 가능성이 있거나 또는 더 가능성이 있는 확률의 추정을 위한 측정을 위한 가능한 값들의 범위는 다수의 간격으로 분할되며, 빈 버퍼 선택기(318)는 덜 가능성이 있거나 또는 더 가능성이 있는 확률의 추정을 위한 현재 측정을 위한 간격 지수를 결정하며, 빈 버퍼 선택기(318)는 정확하게 하나의 빈 버퍼(320)를 간격 지수를 위한 각각의 가능한 값과 관련시키는 테이블을 포함하며, 간격 지수를 위한 서로 다른 값들은 동일한 빈 버퍼(320)와 관련될 수 있다. 본 발명의 또 다른 바람직한 실시 예에서, 현재 빈 요구를 위한 덜 가능성이 있거나 또는 더 가능성이 있는 확률의 추정을 위한 측정의 특정 빈 버퍼와의 관련성은 시간에 따라 적용된다.
선택된 빈 버퍼(320)로부터 디코딩된 빈(325)을 받은 후에, 빈 버퍼 선택기(318)는 잠재적으로 입력 빈(325)을 변경하고 출력 빈(326, 잠재적으로 변경된 값을 갖는)을 이진화기(314)로 보낸다. 빈 버퍼 선택기(318)의 입력/출력 빈 매핑은 인코더 면에서의 빈 버퍼 선택기의 입력/출력 빈 매핑의 역이다.
본 발명의 바람직한 실시 예에서, 빈 버퍼 선택기(318)는 빈의 값을 변경하지 않는데, 즉, 출격 빈(326)은 항상 입력 빈(325)과 동일한 값을 갖는다. 본 발명의 또 다른 바람직한 실시 예에서, 빈 버퍼 선택기(318)는 입력 빈 값들(325) 및 하나의 빈(317)을 위한 요구와 관련된 현재 요구된 빈을 위한 두 개의 가능한 빈 값 중 어느 하나를 위한 확률의 추정을 위한 측정을 기초로 하여 출력 빈 값(326)을 결정한다. 본 발명의 바람직한 실시 예에서, 출력 빈 값(326)은 만일 현재 요구된 빈을 위한 두 개의 가능한 빈 값 중 어느 하나를 위한 확률을 위한 측정이 특정 임계값보다 작으면(또는 작거나 동일하면) 입력 빈 값(325)과 동일하게 설정되며 만일 현재 요구된 빈을 위한 두 개의 가능한 빈 값 중 어느 하나를 위한 확률을 위한 측정이 특정 임계값보다 크거나 동일하면(또는 크면), 출력 빈 값(326)은 변경된다(즉, 입력 빈 값과 반대로 설정된다). 본 발명의 또 다른 바람직한 실시 예에서, 출력 빈 값(326)은 만일 현재 요구된 빈을 위한 두 개의 가능한 빈 값 중 어느 하나를 위한 확률을 위한 측정이 특정 임계값보다 크면(또는 크거나 동일하면) 입력 빈 값(325)과 동일하게 설정되며 만일 현재 요구된 빈을 위한 두 개의 가능한 빈 값 중 어느 하나를 위한 확률을 위한 측정이 특정 임계값보다 작거나 동일하면(또는 작으면), 출력 빈 값(326)은 변경된다(즉, 입력 빈 값과 반대로 설정된다). 본 발명의 바람직한 실시 예에서, 임계값은 두 가능한 빈 값을 위한 추정 확률을 위한 0.5의 값과 상응한다.
본 발명의 또 다른 바람직한 실시 예에서, 빈 버퍼 선택기(318)는 입력 빈 값(325) 및 두 가능한 빈 값들 중 어느 것이 빈(317)을 위한 요구와 관련된, 현재 빈 요구를 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 표현하는지를 추정을 지정하는 식별자를 기초로 하여 출력 빈 값(326)을 결정한다. 본 발명의 바람직한 실시 예에서, 만일 식별자가 두 가능한 빈 값 중 첫 번째가 현재 빈 요구를 위한 덜 가능성이 있는(또는 더 가능성이 있는) 빈 값을 표현하는 것으로 지정하면 출력 빈 값(326)은 입력 빈 값(325)과 동일하게 설정되며, 만일 식별자가 두 가능한 빈 값 중 두 번째가 현재 빈 요구를 위한 덜 가능성이 있는(또는 더 가능성이 있는) 빈 값을 표현하는 것으로 지정하면 출력 빈 값(326)은 변경된다(즉, 이는 입력 빈 값과 반대로 설정된다).
위에서 설명된 것과 같이, 빈 버퍼 선택기는 하나의 빈(319)을 위한 요구를 두 개 또는 그 이상의 빈 버퍼들(320) 중 어느 하나로 보낸다. 빈 버퍼들(320)은 연결된 빈 디코더들(322)로부터 디코딩된 빈들(321)의 시퀀스들이 제공되는, 선입선출 버퍼들을 표현한다. 빈 버퍼 선택기(318)로부터 빈 버퍼(320)에 보내지는 하나의 빈(309)을 위한 요구에 대한 응답으로서, 빈 버퍼(320)는 빈 버퍼(320) 내로 우선 제공된 그것의 콘텐츠의 빈을 제거하고 이를 빈 버퍼 선택기(318)로 보낸다. 더 일찍 빈 버퍼(320)로 보내진 빈들은 더 일찍 제거되고 빈 버퍼 선택기(318)로 보내진다.
두 개 또는 그 이상의 버퍼들(320) 각각은 정확하게 하나의 빈 디코더(322)와 연결되고 각각의 빈 디코더는 단지 하나의 빈 버퍼(320)에 연결된다. 각각의 빈 디코더(322)는 개별의 부분적인 비트스트림(324)로부터 비트들의 시퀀스들을 표현하는 코드워드들(323)을 판독한다. 빈 디코더는 코드워드들(323)을 연결된 빈 버퍼(320)로 보내지는 빈들(321)의 시퀀스 내로 전환한다. 전체 인코딩 알고리즘은 두 개 또는 그 이상의 부분적인 비트스트림(312)을 다수의 디코딩된 구문 요소들 내로 전환하며, 부분적인 비트스트림들의 수는 빈 버퍼들과 빈 인코더들의 수와 동일하며 구문 요소들의 디코딩은 새로운 구문 요소들을 위한 요구들에 의해 트리거된다. 본 발명의 바람직한 실시 예에서, 빈 디코더(322)는 비트들의 가변 수의 코드워드들(323)을 빈들(321)의 가변 수의 시퀀스로 전환한다. 본 발명의 실시 예들의 한가지 장점은 두 개 또는 그 이상의 부분적인 비트스트림들로부터 빈들의 디코딩이 병렬로(예를 들면, 확률 측정들의 서로 다른 그룹들을 위하여) 수행될 수 있다는 것이며, 이는 일부 구현들을 위하여 처리 시간을 감소시킨다.
본 발명의 실시 예들의 또 다른 장점은 빈 디코더들(322)에 의해 수행되는 빈 디코딩이 파라미터들(317)의 서로 다른 세트들을 위하여 구체적으로 디자인될 수 있다는 것이다. 특히, 빈 인코딩과 인코딩은 추정된 확률들의 서로 다른 그룹들을 위하여 최적화될 수 있다(코딩 효율 및/또는 복잡도와 관련하여). 한편으로는, 이는 유사한 인코딩/디코딩 복잡도를 갖는 최신 엔트로피 코딩 알고리즘들에 대하여 코딩 효율의 향상을 허용한다. 본 발명의 바람직한 실시 예에서, 빈 디코더들(322)은 현재 빈 요구를 위한 두 개의 가능한 빈 값(317) 중 어느 하나를 위한 확률의 추정을 위한 측정들의 서로 다른 그룹들을 위하여 서로 다른 디코딩 알고리즘들(즉, 빈 시퀀스들의 코드워드들 상으로의 매핑)을 구현한다. 본 발명의 또 다른 바람직한 실시 예에서, 빈 디코더들(322)은 현재 요구된 빈을 위한 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 위한 확률의 추정을 위한 측정들의 서로 다른 그룹들을 위하여 서로 다른 디코딩 알고리즘들을 구현한다.
빈 디코더들(322)은 인코더 면에서 상응하는 빈 인코더들의 역 매핑을 한다.
본 발명의 바람직한 실시 예에서, 빈 디코더들(322, 또는 하나 또는 그 이상의 빈 디코더)은 코드워드들(323)을 빈들(321)이 시퀀스들 상에 직접적으로 매핑하는 엔트로피 디코더들을 표현한다. 그러한 매핑은 효율적으로 구현될 수 있으며 복접한 산술 코딩 엔진을 요구하지 않는다. 빈들의 시퀀스들 상으로의 코드워드들의매핑은 독특해야만 한다. 본 발명의 바람직한 실시 예에서, 빈들(321)의 시퀀스들 상으로의 코드워드들(323)의 매핑은 전단사이다. 본 발명의 바람직한 실시 예에서, 빈 디코더들(322, 또는 하나 또는 그 이상의 디코더)은 가변 길이 코드워드들(323)을 빈들(321)의 가변 길이 시퀀스들 내로 직접적으로 매핑하는 엔트로피 디코더들을 표현한다. 본 발명의 바람직한 실시 예에서, 입력 코드워드들은 일반적인 허프만 코드들 또는 표준 허프만 코드들과 같은 중복 없는 코드들을 표현한다. 빈 시퀀스들의 반복 없는 코드들로의 전단사 매핑을 위한 두 가지 예가 테이블 3에 도시된다.
본 발명의 또 다른 바람직한 실시 예에서, 빈 디코더들(322, 또는 하나 또는 그 이상의 빈 디코더들)은 고정 길이 코드워드들(323)을 빈들(321)의 가변 길이 시퀀스들 상으로 직접적으로 매핑하는 엔트로피 디코더들을 표현한다. 본 발명의 또 다른 바람직한 실시 예에서, 빈 디코더들(322, 또는 하나 또는 그 이상의 빈 인코더들)은 가변 길이 코드워드들(323)을 빈들(321)의 고정 길이 시퀀스들 상으로 직접적으로 매핑하는 엔트로피 디코더들을 표현한다.
따라서, 도 7과 8은 심벌들(3)의 시퀀스를 인코딩하기 위한 인코더 및 이를 재구성하기 위한 디코더를 위한 실시 예를 도시한다. 인코더는 다수의 파라미터(305)를 심벌들의 시퀀스의 각각의 심벌에 할당하도록 구성되는 할당기(304)를 포함한다. 할당은 현재 심벌들이 속하고 구문 요소들(1)의 구문 구조에 따라, 현재 기대되며 차례로, 기대가 이전의 구문 요소들(1)과 심벌들(3)로부터 추론할 수 있는 표현(이진화와 같은)에 대한 구문 요소(1)의 카테고리와 같이 심벌들의 시퀀스의 이전의 심벌들 내에 포함된 정보를 기초로 한다. 또한, 인코더는 각각 각각의 엔트로피 인코더에 전달된 심벌들(3)을 각각의 비트스트림 내로 전환하도록 구성되는 복수의 엔트로피 인코더(10), 및 각각의 심벌(3)을 복수의 엔트로피 인코더(10) 중 선택된 하나에 전달하도록 구성되는 선택기(306)를 포함하며, 선택은 각각의 심벌에 할당되는 파라미터들(305)의 수에 따른다. 할당기(304)는 각각의 선택기(502)를 생산하기 위하여 선택기(206) 내에 통합되는 것으로서 생각될 수 있다.
심벌들의 시퀀스를 재구성하기 위한 디코더는 각각 각각의 비트스트림(323)을 심벌들(321) 내로 전환하도록 구성되는, 복수의 엔트로피 디코더(322); 다수의 파라미터들(317)을 심벌들의 시퀀스(도 8의 326 및 327 참조)의 이전에 재구성된 심벌들 내에 포함된 정보를 기초로 하여 재구성되는 심벌들의 시퀀스의 각각의 심벌(315)에 할당하도록 구성되는 할당기(316); 및 복수의 엔트로피 디코더(322) 중 선택된 하나로부터 재구성되는 심벌들의 시퀀스의 각각의 심벌을 검색하도록 구성되는 선택기(318);를 포함하는데, 선택은 각각의 심벌에 정의되는 파라미터들의 수에 따른다. 할당기(316)는 각각의 심벌에 할당되는 파라미터들의 수가 각각의 심벌이 추정할 수 있는 가능한 심벌 값들 중에서의 분포의 확률의 추정을 위한 측정을 포함하는 것과 같이 구성될 수 있다. 다시, 할당기(316) 및 선택기(318)는 하나의 블록, 선택기(402) 내로 통합되는 것으로 생각될 수 있다. 재구성되는 심벌들의 시퀀스는 이진 알파벳일 수 있으며 할당기(316)는 확률 분포의 추정이 이진 알파벳의 두 가능한 빈 값들 중 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값의 확률의 추정을 위한 측정으로 구성될 수 있으며, 두 가능한 빈 값 중 어느 하나를 위한 추정을 지정하는 식별자는 덜 가능성이 있거나 또는 더 가능성이 있는 빈 값을 표현한다. 할당기(316)는 또한 그것과 관련된 각각의 확률 분포 추정을 갖는 각각의 콘텍스트와 함께 재구성되는 심벌들의 시퀀스의 이전에 재구성된 심벌들 내에 포함되는 정보를 기초로 하여 콘텍스트를 재구성되는 심벌들(315)의 시퀀스의 각각의 심벌에 내부로 할당하도록 구성될 수 있으며, 각각의 콘텍스트가 할당되는 이전에 재구성된 심벌들의 심벌 값들을 기초로 하여 각각의 콘텍스트를 위한 확률 분포 추정을 실제 심벌 통계에 적용하도록 구성될 수 있다. 콘텍스트는 비디오 또는 픽쳐 코딩에서, 또는 금융 적용들의 경우에서의 테이블들에서와 같이 구문 요소들이 속하는 위치들의 공간 관계 또는 이웃을 고려할 수 있다. 그리고 나서, 각각의 심벌을 위한 확률 분포의 추정을 위한 측정은 확률 분포의 추정을 위한 측정(부분적인 비트스트림(312)을 지수화하는 파이프 지수)을 획득하기 위하여 복수의 확률 분포 추정 대표 중 어느 하나(세분화 지수를 잘라냄)에 대하여 각각의 심벌(세분화 지수와 함께 파이프 지수에 의해 지수화되는 아래의 실시 예들에서)로 할당된 콘텍스트와 관련된 확률 분포 추정을 양자화하거나, 또는 각각의 테이블 내의 지수로서 이를 사용하는 것과 같이 각각의 심벌에 할당된 콘텍스트와 관련된 확률 분포 추정을 기초로 하여 결정될 수 있다. 선택기는 복수의 엔트로피 디코더와 복수의 확률 분포 추정 대표 사이에 전단사 관련성이 정의되는 것과 같이 구성될 수 있다. 선택기(18)는 시간에 따라, 심벌들의 시퀀스의 이전에 재구성된 심벌들에 따라 미리 결정된 결정론적 방법으로 확률 분포 추정들의 범위로부터 복수의 확률 분포 추정 대표로 양자화 매핑을 변경하도록 구성될 수 있다. 즉, 선택기(318)는 양자화 단계 크기들, 즉, 개별 엔트로피 디코더들과 전단사로 관련된 개별 확률 지수들 상으로 매핑된 확률 분포들의 간격들을 변경할 수 있다. 복수의 엔트로피 디코더(322)는 차례로, 양자화 매핑의 변경에 응답하여 심벌들의 비트스트림들 내로의 그것의 전환하는 방법을 적용하도록 구성될 수 있다. 예를 들면, 각각의 엔트로피 디코더(322)는 각각의 확률 분포 추정 양자화 간격 내의 특정 확률 분포 추정을 위하여 최적화될 수 있는데, 즉, 각각의 확률 분포 추정 양자화 간격 내의 특정 확률 분포 추정을 위한 최적 압축률을 가질 수 있으며, 최적화되기 위하여 후자의 변경 상에 각각의 확률 분포 추정 양자화 간격 내의 이러한 특정 확률 분포 추정의 위치를 적용하도록 하기 위하여 그것의 코드워드/심벌 시퀀스 매핑을 변경할 수 있다. 선택기는 심벌들이 복수의 엔트로피 디코더로부터 검색되는 비율이 덜 분산되는 것과 같이 양자화 매핑을 변경하도록 구성될 수 있다. 이진화기(314)와 관련하여, 만일 구문 요소가 이미 이진수이면 이는 제거돨 수 있다는 것을 이해하여야 한다. 또한, 디코더(322)의 형태에 따라, 버퍼들(320)의 존재가 반드시 필요하지는 않다. 또한, 버퍼들은 디코더들 내에 통합될 수 있다.
유한 구문 요소 시퀀스들의 종료
본 발명의 바람직한 실시 예에서, 인코딩과 디코딩은 구문 요소들의 유한 세트를 위하여 수행된다. 흔히, 비디오 시퀀스의 스틸 이미지, 프레임 또는 필드, 이미지의 조각(slice), 비디오 시퀀스의 프레임 또는 필드의 조각, 혹은 연속적인 오디오 샘플들의 세트 등과 같은 데이터의 특정 양이 코딩된다. 구문 요소들이 유한 세트를 위하여, 일반적으로, 인코더 면에서 생성되는 부분적인 비트스트림들은 종료되어야만 하는데, 즉, 모든 구문 요소는 전송되거나 또는 저장된 부분적인 비트스트림들로부터 디코딩될 수 있는 것이 보장되어야만 한다. 마지막 빈이 상응하는 빈 버퍼(308) 내로 삽입된 후에, 빈 인코더(310)는 완전한 코드워드가 부분적인 비트스트림(312)에 판독되는 것을 보장해야만 한다. 만일 빈 인코더(310)가 빈 시퀀스들의 코드워드들 상으로의 직접적인 매핑을 구현하는 엔트로피 인코더를 표현하면, 마지막 빈을 빈 버퍼 내로 판독한 후에 빈 버퍼 내에 저장된 빈 시퀀스는 코드워드와 관련된 빈 시퀀스를 표현하지 않을 수 있다(즉, 코드워드들과 관련된 두 개 또는 그 이상의 빈 시퀀스들의 접두부호(prefix)를 표현할 수 있다). 이는 코드워드가 판독될 때까지 특정 또는 임의의 값을 갖는 빈들을 빈 버퍼 내로 삽입함으로써 수행될 수 있다. 본 발명의 바람직한 실시 예에서, 빈 인코더는 최소 길이를 갖는 코드워드들 중 어느 하나를 선택한다(관련 빈 시퀀스는 접두부호로서 빈 버퍼 내의 빈 시퀀스를 포함해야만 한다는 특성에 더하여). 디코더 면에서, 빈 디코더(322)는 부분적인 비트스트림 내의 마지막 코드워드를 위하여 필요한 것보다 더 많은 빈들을 디코딩할 수 있는데, 이러한 빈들은 빈 버퍼 선택기(118)에 의해 요구도지 않으며 버려지고 무시된다. 심벌들의 유한 세트의 디코딩은 디코딩된 구문 요소들을 위한 요구들에 의해 제어된다. 만일 데이터의 양을 위하여 또 다른 구문 요소가 요구되지 않으면, 디코딩은 종료된다.
부분적인 비트스트림들의 전송과 멀티플렉스
인코더에 의해 생성되는 부분적인 비트스트림들(312)은 개별적으로 전송될 수 있거나 또는 단일 비트스트림 내로 멀티플렉싱될 수 있거나, 또는 부분적인 비트스트림들의 코드워드들은 단일 비트스트림 내로 끼워질 수 있다.
본 발명의 일 실시 예에서, 데이터의 양을 위한 각각의 부분적인 비트스트림은 하나의 데이터 패킷에 판독된다. 데이터의 양은 비디오 시퀀스의 스틸 픽쳐, 필드 또는 프레임, 스틸 픽쳐의 조각, 비디오 시퀀스의 필드 또는 프레임의 조각, 혹은 오디오 샘플들의 프레임 등과 같은 구문 요소들의 임의의 세트일 수 있다.
본 발명의 또 다른 바람직한 실시 예에서, 데이터 양을 위한 두 개 또는 그 이상의 부분적인 비트스트림들 또는 데이터의 양을 위한 모든 부분적인 비트스트림은 데이터 패킷 내로 멀티플렉싱된다. 멀티플렉싱된 부분적인 비트스트림들을 포함하는 데이터 패킷의 구조가 도 9에 도시된다.
데이터 패킷(400)은 각각의 부분적인 비트스트림의 데이터를 위한(데이터의 고려되는 양을 위한) 헤더(header) 및 하나의 파티션으로 구성된다. 데이터의 패킷의 헤더(400)는 데이터 패킷(의 나머지)의 비트스트림 데이터(402)의 세그먼트들 내로의 분할을 위한 표시들을 포함한다. 분할을 위한 표시들 외에, 헤더는 부가 정보를 포함할 수 있다. 본 발명의 바람직한 실시 예에서, 데이터 패킷의 분할을 위한 표시들은 비트들, 또는 바이트들 또는 비트들의 배수 또는 바이트들의 배수의 유닛들 내의 데이터 세그먼트의 시작의 위치들이다. 본 발명의 바람직한 실시 예에서, 데이터 세그먼트들의 시작의 위치들은 데이터 패킷의 시작에 관한, 또는 헤더의 단부에 관하거나 혹은 이전 데이터 패킷의 시작에 관한, 데이터 패킷의 헤더 내의 절대값으로서 코딩된다. 본 발명의 또 다른 바람직한 실시 예에서, 데이터 세그먼트들의 시작의 위치들은 서로 다르게 코딩되는데, 즉, 데이터 세그먼트의 실제 시작 및 데이터 세그먼트의 시작을 위한 사이의 차이만이 코딩된다. 예측은 데이터 패킷의 전체 크기, 헤더의 크기, 데이터 패킷 내의 데이터 세그먼트의 수, 선행 데이터 세그먼트들의 시작의 위치와 같은 이미 알려지거나 또는 전송된 정보를 기초로 하여 유래될 수 있다. 본 발명의 바람직한 실시 예에서, 첫 번째 데이터 패킷의 시작의 위치는 코딩되지 않고, 데이터 패킷 헤더의 크기를 기초로 하여 추론된다. 디코더 면에서, 전송된 분할 표시들은 데이터 세그먼트들의 시작을 유래하기 위하여 사용된다. 데이터 세그먼트들은 그리고 나서 부분 비트스트림들로서 사용되고 데이터 세그먼트들 내에 포함된 데이터는 순차적인 순서로 상응하는 빈 디코더들 내로 제공된다.
부분 비트스트림들을 데이터 패킷 내로 멀티플렉싱하기 위한 일부 대안들이 존재한다. 특히 부분 비트스트림들의 크기가 매우 유사한 경우를 위하여, 필요한 부가 정보를 감소시킬 수 있는, 하나의 대안이 도 10에 도시된다. 데이터 패킷의 페이로드, 즉, 그것의 헤더(411)가 없는 데이터 패킷(410)은 미리 정의 방법으로 세그먼트들(412) 내로 분할된다. 예로서, 데이터 패킷 페이로드는 동일한 크기의 세그먼트들 내로 분할될 수 있다. 그때 각각의 세그먼트는 부분 비트스트림 또는 부분 비트스트림(413)의 첫 번째 부분과 관련된다. 만일, 부분 비트스트림이 관련 데이터 세그먼트보다 크면, 그것의 나머지(414)는 다른 데이터 세그먼트들의 단부에서 사용되지 않은 공간 내로 위치된다. 이는 비트스트림의 나머지 부분이 부가 정보를 감소시키는, 역 순서로(데이터 세그먼트의 단부에서 시작하여) 삽입되는 방법으로 수행될 수 있다. 부분 비트스트림들의 나머지들의 데이터 세그먼트들과의 관련성 및, 하나 이상의 나머지가 데이터 세그먼트에 추가될 때, 하나 또는 그 이상의 나머지를 위한 시작 부는 비트스트림 내부로, 즉, 데이터 패킷 헤더 내로 신호가 전달되어야만 한다.
가변 길이 코드워드들의 인터리빙(interleaving)
일부 적용들을 위하여, 위에서 설명된 하나의 데이터 패킷 내의 부분 비트스트림들의 멀티플렉싱(구문 요소들의 양을 위한)은 다음의 단점들을 가질 수 있다: 한편으로는 작은 데이터 패킷들을 위하여, 분할을 신호전달하는 부가 정보를 위한 비트들의 수는 부분 비트스트림들 내의 실제 데이터에 대하여 중요할 수 있는데, 이는 결국은 코딩 효율을 감소시킨다. 다른 한편으로는, 멀티플렉싱은 저지연을 필요로 하는 적용들에(예를 들면, 비디오 회의 적용들에) 적합하지 않을 수 있다. 설명된 멀티플렉싱과 함께, 인코더는 부분 비트스트림들이 완전히 생성되기 전에 데이터 패킷의 전송을 시작할 수 없는데, 그 이유는 분할들의 시작이 위치들이 전에 알려지지 않기 때문이다. 게다가, 일반적으로, 디코더는 그것이 데이터 패킷의 디코딩을 시작할 수 있기 전에 마지막 데이터 세그먼트의 시작을 받을 때까지 기다려야만 한다. 비디오 회의 시스템들과 같은 적용들을 위하여, 이러한 지연들은 그러한 적용들을 위하여 중요한, 일부 비디오 픽쳐들의 시스템의 부가적인 전체 지연에 더해질 수 있다(특히 전송 비트 레이트에 가까운 비트 레이트들을 위하여, 그리고 픽쳐를 인코딩/디코딩하기 위하여 두 픽쳐 사이의 시간 가격을 거의 필요로 하는 인코더들/디코더들을 위하여). 특정 적용들을 위한 단점들을 극복하기 위하여, 본 발명의 바람직한 실시 예의 인코더는 둘 또는 그 이상의 빈에 의해 발생되는 코드워드들이 단일 비트스트림 내로 인터리브되는 것과 같은 방법으로 구성될 수 있다. 인터리브된 코드워드들을 갖는 비트스트림은 디코더에 직접적으로 보내질 수 있다(작은 버퍼 지연을 무시할 때, 아래 참조). 디코더 면에서, 둘 또는 그 이상의 빈 디코더들은 디코딩 순서로 비트스트림으로부터 직접적으로 코드워드들을 판독한다; 디코딩은 첫 번째 받은 비트로 시작될 수 있다. 게다가, 부분 비트스트림들의 멀티플렉싱(또는 인터리빙)을 신호전달하는데 어떠한 부가 정보도 필요로 하지 않는다. 디코더 복잡도를 감소시키는 또 다른 방법은 빈 디코더들(322)이 글로벌 비트 버퍼로부터 가변-길이 코드워드들을 판독하지 않을 때 달성될 수 있으나, 대신에 그것들은 항상 글로벌 비트 버퍼로부터 비트들의 고정-길이 시퀀스들을 판독하고 비트들의 이러한 고정 길이 시퀀스들을 로컬 비트 버퍼에 추가하며, 각각의 빈 디코더(322)는 분리된 로컬 비트 버퍼와 연결된다. 가변-길이 코드워드들은 그리고 나서 로컬 비트 버퍼로부터 판독된다. 따라서, 가변-길이 코드워드들의 파싱(parsing)은 병렬로 수행될 수 있으며, 비트들의 고정-길이 시퀀스들의 액세스만이 동기화된 방법으로 수행되어야만 하나, 그러한 비트들의 고정-길이 시퀀스들의 액세스는 일반적으로 매우 빠르며, 따라서 일부 아키텍처(architecture)들을 위하여 전체 디코딩 복잡도가 감소될 수 있다. 특정 로컬 비트 버퍼로 보내지는 빈들의 고정된 수는 서로 다른 로컬 비트 버퍼를 위하여 다를 수 있으며 이는 또한 빈 디코더, 빈 버퍼, 또는 비트 버퍼 내의 이벤트들과 같은 특정 파라미터들에 따라, 시간에 따라 변할 수 있다. 그러나, 특정 액세스에 의해 판독되는 비트들의 수는 가변-길이 코드워드들의 판독에 대한 중요한 차이인, 특정 액세스 동안에 판독되는 실제 비트들에 의존하지 않는다. 비트들의 고정-길이 시퀀스들의 판독은 빈 버퍼들m 빈 디코더들, 또는 로컬 빈 버퍼들 내의 특정 이벤트들에 의해 트리거된다. 예로서, 연결된 빈 버퍼에 존재하는 비트들의 수가 미리 정의된 임계값 아래에 포함될 때 비트들의 새로운 고정-길이 시퀀스의 판독을 요구하는 것이 가능하며, 서로 다른 비트 버퍼들을 위하여 서로 다른 임계값들이 사용될 수 있다. 인코더에서, 빈들의 고정-길이 시퀀스들이 동일한 순서로 디코더 면에서 비트스트림으로부터 그것들이 판독되는, 비트스트림 내로 삽입되는 것이 보장되어야만 한다. 또한 고정-길이 시퀀스들의 이러한 인터리빙을 위에서 설명된 것들과 유사한 저지연 제어와 결합하는 것이 가능하다. 다음에서, 비트들의 고정 길이 시퀀스들의 인터리빙을 위한 바람직한 실시 예가 설명된다. 후자의 인터리빙 전략들에 대한 더 상세설명을 위하여, 국제특허 WO2011/128268A1이 참조된다.
이전의 코딩도 비디오 데이터를 압축하기 위하여 사용되는 실시 예들을 설명한 후에, 한편으로는 압축률과 다른 한편으로는 룩-업 테이블과 계산 오버헤드 사이의 뛰어난 균형과 관련하여 특히 효율적인 구현을 제공하는 본 발명의 실시 예들을 구현하기 위한 또 다른 실시 예가 설명된다. 특히, 다음의 실시 예들은 개별적으로 비트스트림들을 엔트로피 코딩하고 확률 추정의 부들을 효율적으로 포함하도록 하기 위하여 계산적으로 덜 복잡한 가변 길이 코드들의 사용을 가능하게 한다. 아래에 설명되는 실시 예에서, 심벌들은 이진 유형이고 아래에 나타내는 가변 길이 코드 코드들은 예를 들면, [0;0.5] 내에서 확장하는 RLPS에 의해 표현되는 확률 추정을 포함한다.
특히, 아래에 설명되는 다음의 실시 예들은 각각 도 7 내지 17에서의 개별 엔트로피 코더들(310)과 디코더들(322)을 위한 가능한 구현들을 설명한다. 그것들은 빈들, 즉 이진 심벌들의 코딩에 적합한데, 그 이유는 그것들이 이미지 또는 비디오 압축 적용들에서 발생하기 때문이다. 따라서, 이러한 실시 예들은 또한 그러한 이진 심벌들이 각각 인코딩되는 빈들(307) 및 디코딩되는 비트스트림들(324)의 의 하나 또는 그 이상의 스트림 내로 분할되는 이미지 또는 비디오 코딩에 적용가능하며, 각각의 그러한 빈 스트림은 베르누이(Bermoulli) 과정의 실현으로서 고려될 수 있다. 아래에 설명되는 실시 예들은 빈 스트림들을 인코딩하기 위하여 하나 도는 그 이상의 아래에 설명되는 다양한 이른바 가변-대-가변-코드들(v2v-코드들)을 사용한다. 가변-대-가변-코드는 동일한 수의 코드 워드들을 갖는 두 무-접두부호 코드, 일차, 및 이차 무-접수부호(prefix-free) 코드로서 고려될 수 있다. 아래에 설명되는 실시 예들에 따라, 인코더들(310)과 디코더들(322)의 적어도 일부는 다음과 같이 운용된다: 빈들(307)의 특정 시퀀스를 인코딩하기 위하여, 일차 무-접두부호 코드의 코드 워드가 버퍼(308)로부터 판독돨 때마다, 이차 무-접두부호 코드의 상응하는 코드 워드가 비트 스트림(312)에 판독된다. 그러한 비트 스트림(324)을 디코딩하기 위하여 동일한 과정이 사용된다. 일차 및 이차 무-접두부호 코드에서는 교환된다. 즉, 비트스트림(324)을 디코딩하기 위하여, 이차 무-접두부호코드의 코드 워드가 각각의 비트 스트림(324)으로부터 판독될 때마다, 일차 무-접두부호 코드의 상응하는 코드-워드가 버퍼(320)에 판독돤다.
바람직하게는, 아래에 설명되는 코드들은 룩-업 테이블을 필요로 하지 않는다. 코드들은 유한 상태 기계들 형태로 구현될 수 있다. 여기에 나타내는 가변-대-가변-코드들은 코드 워드들을 위한 큰 테이블을 저장할 필요가 없는 것과 같은 간단한 구성 규칙들에 의해 발생될 수 있다. 대신에, 인코딩 또는 디코딩을 수행하기 위하여 간단한 알고리즘이 사용될 수 있다. 이러한 구성 규칙들이 아래에 설명되며 그러한 구성 규칙들 중 2가지가 파라미터화될 수 있다. 그것들은 앞서 언급된 확률 간격의 차이 또는 서로소(disjoint) 부들을 포함하며, 따라서, 병렬의 모든 3 코드(인코더들(11)/디코더들(22)의 서로 다른 것들을 위한 각각), 도는 그것들 중 2개)와 같이, 만약 함께 사용하면 특히 바람직하다. 아래에 설명되는 구성 규칙들로, 임의의 확률(p)을 갖는 베르누이 과정들을 위하여, 코드들 중 하나가 초과 코드 길이에 대하여 잘 실행하는 것과 같이, 가변-대-가변-코드들의 세트를 디자인하는 것이 가능하다.
위에서 설명된 것과 같이, 각각 스트림들(312 및 324)의 인코딩과 디코딩은 각각의 스트림을 위하여 독립적으로 또는 인터리브드(interleaved) 방식으로 실행될 수 있다. 그러나, 가변-대-가변-코드들의 존재하는 클래스들에 특정하지 않으며, 따라서 다음에서의 각각의 3가지 구성을 위하여 특정 코드워드의 인코딩과 디코딩만이 설명된다. 그러나, 인터리빙 솔루션들에 대한 위의 모든 실시 예들은 또한 각각 현재 설명되는 코드들 또는 인코더들(310)과 디코더들(322)과 결합가능하다.
구성 규칙 1: '단항 빈 파이프' 코드들 또는 인코더/디코더들(310 및 322)
단항 빈 파이프 코드들(파이프 = 확률 간격 분할 엔트로피(probability interval partitioning entropy, PIPE, 이하 파이프로 표기)은 이른바 '빈 파이프' 코드들, 즉, 각각 앞서 언급된 확률 범위 [0;0.5]의 특정한 확률 서브-간격에 속하는 이진 심벌 통계의 데이터를 전달하는, 개별 비트스트림들(12 및 24) 중 어느 하나의 코딩에 적합한 코드들의 특별한 버전이다. 빈 파이프 코드들이 구성이 먼저 설명된다. 빈 파이프 코드는 적어도 3개의 코드 워드들을 갖는 어떠한 접두부호 없는 코드로부터 구성될 수 있다. 가변-대-가변 코드를 형성하기 위하여 이는 일차 및 이차 코드로서 접두부호 없는 코드를 사용하나, 이차 접두부호 없는 코드의 두 코드워드들은 상호교환된다. 이는 두 코드 워드들을 제외하고는, 빈들이 변경되지 않는 접두부호 없는 코드로 판독된다는 것을 의미한다. 이러한 기술로, 하나의 접두부호 없는 코드만이 정보와 함께 저장하는데 필요한데, 두 코드 워드들은 상호교환되며 따라서, 메모리 소비가 감소된다. 이는 서로 다른 길이의 코드 워드들을 교환하는데만 의미가 있는데 그 이유는 그렇지 않으면, 비트 스트림이 비트 스트림(비트 스트림의 단부에서 발생할 수 있는 효과들을 무시하는)과 동일한 길이를 가질 수 있기 때문이다.
이러한 구성 규칙 때문에, 빈 파이프 코드들의 두드러진 특성은, 만일 일차 및 이차 접두부호 없는 코드가 상호교환되면(코드 워드들의 매핑이 유지되는 동안에), 결과로서 생기는 가변-대-가변-코드는 오리지널 가변-대-가변-코드와 동일하다는 것이다. 따라서, 인코딩 알고리즘과 디코딩 알고리즘은 빈-파이프 코드들을 위하여 동일하다.
단항 빈 파이프 코드는 특별한 접두부호 없는 코드로부터 구성된다. 이러한 특별한 접두부호 없는 코드는 다음과 같이 구성된다: 우선, n 단항 코드 워드들로 구성되는 접두부호 없는 코드가 '01', '001', '0001'로 시작하여 n 코드워드가 생산될 때까지 발생되는데, n은 단항 빈 파이프 코드를 위한 파라미터이다. 가장 긴 코드 워드로부터, 트레일링(trailing) 1이 제거된다. 이는 절단된 단항 코드(그러나 코드 워드 '0'이 없는)와 상응한다. 그리고 나서, n-1 단항 코드 워드들이 '10', '110', '1110'으로 시작하여 n-1 코드워드가 생산될 때까지 발생된다. 이러한 가장 긴 코드 워드로부터, 트레일링 0이 제거된다. 단항 빈 파이프 코드를 발생시키기 위하여 이러한 두 접두부호 없는 코드들의 조합 세트가 입력으로서 사용된다. 상호교환되는 두 코드 워드들만이 0들로 구성되고 1들로 구성된다.
n=4를 위한 예:
수 일차 이차
1 0000 111
2 0001 0001
3 001 001
4 01 01
5 10 10
6 110 110
7 111 0000
구성 규칙 2: '라이스에 대한 단항' 코드들 및 라이스에 대한 단항 인코더/디코더들(10 및 22)
라이스 코드들에 대한 단항은 일차 코드로서 절단된 단항 코드를 사용한다. 즉, 단항 코드 워드들은 '1', '01', '001'로 시작하여 2n+1 코드 워드들이 발생되고 가장 긴 코드 워드가 형성될 때까지 발생되며, 트레일링 1은 제거된다. n은 라이스 코드에 대한 단항의 파라미터이다. 이차 접두부호 없는 코드는 다음과 같이 일차 무-접두부호 코드의 코드 워드로부터 구성된다. 0들만으로 구성되는 일차 코드 워드에 대하여, 코드 워드 '1'이 할당된다. 다른 모든 코드 워드들은 일차 무-접두부호 코드의 상응하는 코드 워드의 0들의 수의 n-비트 이진 표현을 갖는 연속되는 코드 워드 '0'으로 구성된다.
n=3을 위한 예:
수 일차 이차
1 1 0000
2 01 0001
3 001 0010
4 0001 0011
5 00001 0100
6 000001 0101
7 0000001 0110
8 00000001 0111
9 00000000 1
이는 무한 단항 코드를 라이스 파라미터 2n을 갖는 라이스 코드에 매핑하는 것과 동일하다는 것에 유의하여야 한다.
구성 규칙 3: '3 빈' 코드
3 빈 코드는 다음과 같이 주어진다:
수 일차 이차
1 000 0
2 001 100
3 010 101
4 100 110
5 110 11100
6 101 11101
7 011 11110
8 111 11111
이는 일차 코드(심벌 시퀀스들)가 고정된 길이를 가지며(항상 3 빈) 코드 워드들이 1들의 수를 선행함으로써 분류되는 특성을 갖는다.
3 빈 코드의 효율적인 구현이 다음에 설명된다. 3 빈 코드를 위한 인코더와 디코더는 다음의 방법으로 테이블들을 저장하지 않고 구현될 수 있다.
인코더(10 중의 어느 하나)에서, 빈 스트림(즉, 7)으로부터 3 빈들이 판독된다. 만일 이러한 3 빈들이 정확하게 하나의 1을 포함하면, 코드 워드 '1'이 비트 시트림에 판독되고 1의 위치(00을 갖는 오른쪽으로부터 시작하여)의 이진 표현으로 구성되는 두 빈들이 뒤따른다. 반일, 3 빈들이 정확하게 하나의 0을 포함하면, 비트스트림에 코드 워드 '111'이 판독되고 0의 위치(00을 갖는 오른쪽으로부터 시작하여)의 이진 표현으로 구성되는 두 빈들이 뒤따른다. 나머지 코드 워드들 '000' 및 '111'이 각각 '0' 및 '11111'에 매핑된다.
디코더(22 중의 어느 하나)에서, 각각의 비트스트림(24)으로부터 하나의 빈 또는 비트가 판독된다. 만일 이것이 '0'과 동일하면, 코드 워드 '000'이 빈 스트림(21)에 디코딩된다. 만일 이것이 '1'과 동일하면, 두 개 이상의 빈이 비트 스트림(24)로부터 판독된다. 만일 이러한 두 비트가 '11'과 동일하지 않으면, 그것들은 수의 이진 표현으로서 해석되고 두 0과 하나의 1은 수에 의해 1의 위치가 결정되는 것과 같이 비트 스트림에 디코딩된다. 만일 두 비트가 '11'과 동일하면, 두 개 이상의 비트가 판독되고 수의 이진 표현으로서 해석된다. 만일 이러한 수가 3보다 작으면, 두 1과 하나의 0이 디코딩되고 수는 0의 위치를 결정한다. 만일 그것이 3과 동일하면, '111'이 빈 스트림에 디코딩된다.
단항 빈 파이프 코드들의 효율적인 구현이 다음에 설명된다. 단항 빈 파이프 코드들을 위한 인코더와 디코더는 카운터(counter)를 사용함으로써 효율적으로 구현될 수 있다. 빈 파이프 코드들의 구조 때문에, 빈 파이프 코드들의 인코딩과 디코딩은 구현하기가 쉽다:
인코더(10 중의 어느 하나)에서, 만일 코드 워드의 첫 번째 빈이 '0'과 동일하면, 빈들은 '1'이 발생하거나 n 0들이 판독될 때까지(코드 워드의 첫 번째 '0'을 포함하여) 처리된다. 만일 '1'이 발생되면, 판독된 빈들은 비트 스트림에 변하지 않은 채로 기록된다. 그렇지 않으면(즉, n 0들이 판독되었으면), n-1 1들이 비트 스트림에 기록된다. 만일 코드 워드의 첫 번째 빈이 '1'과 동일하면, 빈들은 '0'이 발생하거나 n-1 1들이 판독될 때까지(코드 워드의 첫 번째 '1'을 포함하여) 처리된다. 만일 '0'이 발생되면, 판독된 빈들은 비트 스트림에 변하지 않은 채로 기록된다. 그렇지 않으면(즉, n-1 1들이 판독되었으면), n 0들이 비트 스트림에 기록된다.
디코더(322 중의 어느 하나)에서, 인코더에서와 동일한 알고리즘이 사용되는데, 그 이유는 위에서 설명된 것과 같이 이는 빈 파이프 코드들에서도 동일하기 때문이다.
라이스 코드들에 대한 단항의 효율적인 구현이 다음에 설명된다. 라이스 코드들에 대한 단항을 위한 인코더와 디코더는 이제 설명될 것과 같은 카운터를 사용함으로써 효율적으로 구현될 수 있다.
인코더(310 중의 어느 하나)에서, 빈들은 하나의 1이 발생하거나 또는 2n 0들이 판독될 때까지 빈 스트림으로부터 판독된다(즉, 7). 0들의 수가 계수된다. 만일 계수된 수가 2n과 동일하면, 코드 워드 '1'이 비트 스트림에 기록된다. 그렇지 않으면, '0'이 기록되고 그 뒤에 n 비트들로 기록되는, 계수된 수의 단항 표현이 뒤따른다.
디코더(322 중의 어느 하나)에서, 하나의 비트가 판독된다. 만일 그것이 '1'과 동일하면, 2n 0들이 빈 스트링에 디코딩된다. 만일 그것이 '0'과 동일하면, n 이상의 비트가 판독되고 수의 이진 표현으로서 해석된다. 0들의 이러한 수는 빈 스트림에 디코딩되고, 그 뒤에 '1'이 뒤따른다.
바꾸어 말하면, 방금 언급된 실시 예들은 심벌들의 시퀀스의 이전의 심벌들 내에 포함된 정보를 기초로 하여 심벌들의 시퀀스의 각각의 시퀀스에 다수의 파라미터들(305)을 할당하도록 구성되는 할당기(316); 각각, 각각의 엔트로피 인코더(310)로 전달된 심벌들(307)을 각각의 비트스트림(312)으로 전환하도록 구성되는 복수의 엔트로피 인코더(310); 및 각각의 심벌(303)을 복수의 엔트로피 인코더(10) 중 선택된 하나에 전달하도록 구성되며, 선택은 각각의 심벌(303)에 할당되는 파라미터들(305)의 수에 따르는 선택기(6);를 포함하는, 심벌들(303)의 시퀀스를 인코딩하기 위한 인코더를 설명한다. 방금 설명된 실시 예들에 따르면, 엔트로피 인코더들의 적어도 하나의 첫 번째 서브셋은 심벌들(307)의 스트림 내의 가변 길이들의 심벌 시퀀스들을 비트스트림(312) 내에 삽입되는 가변 길이들의 코드워드들로 매핑하도록 구성되는 가변 길이 인코더일 수 있으며, 첫 번째 서브셋의 각각의 엔트로피 코더들(310)은 일차 무-접두부호의 코드 워드들의 거의 2개가 이차 무-접두부호 코드의 동일한 코드 워드들에 매핑되며 일차 및 이차 무-접두부호 코드들의 두 코드 워드들은 서로 다른 길이를 가지며 교환 방식으로 서로 상에 매핑되는 것과 같이, (2n-1)≥3 코드 워드들을 갖는 일차 무-접두부호의 코드 워드들이 일차 접두부호 코드와 동일한 이차 무-접두부호 코드의 코드워드들에 매핑되는 전단사 매핑 규칙을 사용하며, 엔트로피 인코더들은 위에서 언급된 확률 간격의 서로 다른 부를 포함하도록 하기 위하여 서로 다른 n을 사용할 수 있다. 첫 번째 무-접두부호 코드는 첫 번째 무-접두부호의 코드들이 (a,b)2, (a,a,b)3, ...., (a,....,a,b)n, (b,a)2, (b,b,a)3,...., (b,....,b,a)n-1, (b,....,b)n-1이며, 교환 방식으로 서로 상으로 매핑되는 두 코드워드는 b≠a이고 a,b ∈ {0,1)을 갖는 (a,...,a)n, 및 (b,...,b)n-1인 것과 같이 구성된다. 대안들도 실현 가능하다.
바꾸어 말하면, 엔트로피 인코더들의 각각의 첫 번째 서브셋은 전달된 심벌들을 각각의 비트스트림 내의 각각의 엔트로피 인코더로 전환하는데 있어서, (1.1) 이 경우에 각각의 엔트로피 인코더가 코드워드를 첫 번째 심벌과 동일하고 그 다음에 심벌 b까지 각각의 엔트로피 인코더에 전달되는 다음의 심벌들과 동일한, 각각의 비트스트림에 기록하도록 구성되는, b≠a 및 a,b ∈ {0,1)을 갖는 b가 첫 번째 심벌 다음의 그 다음의 n-1 심벌들 내에 발생하는지, (1.2) 이 경우에 각각의 엔트로피 인코더가 하나의 코드워드를 (b,...,b)n-1과 동일한 각각의 비트스트림에 기록하도록 구성되는, 첫 번째 심벌 다음의 그 다음의 n-1 심벌들 내에 어떠한 b도 발생하지 않는지에 대하여 결정하기 위하여 (1) 이 경우에 각각의 엔트로피 인코더가 각각의 엔트로피 인코더로 전달되는 다음의 심벌들을 조사하도록 구성되는, 첫 번째 심벌이 a ∈ {0,1)과 동일한지에 대하여 결정하기 위하여; 또는 (2.1) 이 경우에서는 각각의 엔트로피 인코더가 첫 번째 심벌과 동일하고 그 다음에 심벌 a까지 각각의 엔트로피 인코더로 전달되는 다음의 심벌들과 동일한, 코드워드를 각각의 비트스트림에 기록하도록 구성되는, a가 첫 번째 심벌 다음의 그 다음의 n-2 심벌 내에 발생하는지, (2.2) 이 경우에서는 각각의 엔트로피 인코더가 (a,...,a)n과 동일한, 코드워드를 각각의 비트스트림에 기록하는, 어떠한 a도 그 다음의 n-2 심벌 내에 발생하지 않는지에 대하여 결정하기 위하여 (2) 이 경우에서는 각각의 엔트로피 인코더가 각각의 엔트로피 인코더로 전달되는 다음이 심벌들을 조사하도록 구성되는, 첫 번째 심벌이 b와 동일한지에 대하여 결정하기 위하여, 각각의 엔트로피 인코더로 전달되는 첫 번째 심벌을 조사하도록 구성될 수 있다.
부가적으로 또는 대안으로서, 엔트로피 인코더들(10)의 두 번째 서브셋은 각각 가변 길이들의 심벌 시퀀스들을 고정 길이들의 코드워드에 매핑하도록 구성되는 가변 길이 인코더일 수 있으며, 두 번째 서브셋의 각각의 엔트로피 코더들은 일차 절단된 단항 코드의 코드워드(bb...b)가 이차 무-접두부호 코드의 코드워드 (c) 상으로 매핑되고 일차 절단된 단항 코드의 모든 다른 코드워드들 {{(a), (ba), (bba), ..., (b,...ba)}은 접두부호로서 c≠d이고 c,d ∈ {0,1}을 갖는 (d) 및 접미부호로서 n-비트 워드를 갖는 코드워드들 상으로 매핑되는 것과 같이, b≠a이고 a,b ∈ {0,1}을 갖는 형태 {(a), (ba), (bba), ..., (b,...ba), (bb...b)}의 2n+1 코드 워드들을 갖는 일차 절단된 단항 코드의 코드 워드들이 이차 무-접두부호 코드의 코드 워드들 상에 매핑하는 전단사 매핑 규칙을 사용하며, 엔트로피 인코더들은 서로 다른 n을 사용한다. 엔트로피 인코더들의 각각의 두 번째 서브셋은 n-비트 워드가 일차 절단된 단항 코드의 각각의 코드워드 내의 b'들의 수의 n-비트 표현인 것과 같이 구성될 수 있다. 그러나, 대안들이 실현 가능하다.
다시, 각각의 인코더(10)의 운용의 방식의 관점으로부터, 엔트로피 인코더들이 두 번째 세트는 각각의 엔트로피 인코더로 전달된 심벌들을 각각의 비트스트림으로 전환하는데 있어서, a가 발생할 때까지, 또는 각각의 엔트로피 인코더로 전달된 심벌들의 시퀀스 내의 n'들의 수가 2n에 도달할 때까지 각각의 엔트로피 인코더로 전달된 심벌들의 시퀀스 내의 n'들의 수를 계수하도록 구성될 수 있으며, 시퀀스의 모든 2n 심벌은 b이며, (1) 만일 b'들이 수가 2n과 동일하면, 각각의 비트스트림에 대한 이차 무-접두부호 코드의 코드워드로서 c를 c ∈ {0,1}로 기록하며, (2) 만일 b'들이 수가 2n보다 낮으면, 접두부호로서 c≠d과 d ∈ {0,1}을 갖는 (d) 및 접미부호로서 b'들의 수에 딸 결정되는 n-비트 워드를 갖는, 각각의 비트스트림에 대한 이차 무-접두부호 코드의 코드워드를 기록한다.
또한 부가적으로 또는 대안으로서, 엔트로피 디코더들 중 미리 결정된 하나는 각각 가변 길이들의 코드워드들을 고정 길이들의 심벌 시퀀들에 매핑하도록 구성되는 가변 길이 코더들일 수 있으며, 미리 결정된 엔트로피 코더는 a ∈ {0,1}을 갖는 일차 코드의 코드워드 (aaa)3가 c ∈ {0,1}을 갖는 코드워드 (c) 상으로 매핑되는 것과 같이 일차 부호의 길이 3의 23 코드 워드들이 이차 무-접두부호 코드의 코드 워드들로 매핑되는 전단사 매핑 규칙을 사용하며, b≠a 및 b ∈ {0,1}을 갖는 정확하게 하나의 b를 갖는 일차 코드의 모든 3개의 코드워드는 접두부호로서 c≠d 및 d ∈ {0,1}을 갖는 (d) 및 접미부호로서 2-비트의 첫 번째 세트 중에서 각각의 첫 번째 2-비트 워드를 갖는 코드워드들 상으로 매핑되며, 정확하게 하나의 a를 갖는 일차 코드의 모든 3개의 코드워드는 접두부호로서 d를 갖는 코드워드들 상으로 매핑되며, 접미부호로서, 첫 번째 2-비트 워드의 연결은 첫 번째 세트의 요소가 아닐 수 있고 두 번째 2-비트 워드는 두 번째 세트의 요소가 아닐 수 있으며, 코드워드 (bbb)3은 접두부호로서 (d)를 갖는 하나의 코드워드 상으로 매핑되며, 접미부호로서, 첫 번째 2-비트 워드의 연결은 첫 번째 세트의 요소가 아닐 수 있고 두 번째 2-비트 워드는 두 번째 세트의 요소가 아닐 수 있다. 정확하게 하나의 b를 갖는 일차 코드의 코드워드들의 첫 번째 2-비트 워드는 일차 코드의 각각의 코드워드 내의 b의 위치의 2-비트 표현일 수 있으며, 정확하게 하나의 a를 갖는 일차 코드의 코드워드들의 두 번째 2-비트 워드는 일차 코드의 각각의 코드워드 내의 a의 위치의 2-비트 표현일 수 있다. 그러나, 대안들도 실현 가능하다.
다시, 엔트로피 인코더들 중 미리 결정된 하나는 미리 결정된 엔트로피 인코더로 전달되는 심벌들을 각각의 비트스트림으로 전환하는데 있어서, (1) 이 경우에서는 미리 결정된 엔트로피 인코더가 각각의 비트스트림에 코드워드 (c)를 기록하도록 구성되는, 트리플릿이 a'들로 구성되는지, (2) 이 경우에서는 미리 결정된 엔트로피 인코더가 각각의 비트스트림에, 접두부호로서 (d) 및 접미부호로서 트리플릿 내의 b의 위치의 2-비트 표현을 갖는 코드워드를 기록하도록 구성되는, 트리플릿이 정확하게 하나의 b를 포함하는지, (3) 이 경우에서는 미리 결정된 엔트로피 인코더가 각각의 비트스트림에, 접두부호로서 (d) 및 접미부호로서 첫 번째 세트의 요소가 아닐 수 있는 첫 번째 2-비트의 연결과 트리플릿 내의 a의 위치의 2-비트 표현을 갖는 코드워드를 기록하도록 구성되는, 트리플릿이 정확하게 하나의 a를 포함하는지, 또는 (4) 이 경우에서는 미리 결정된 엔트로피 인코더가 각각의 비트스트림에, 접두부호로서 (d) 및 접미부호로서 첫 번째 세트의 요소가 아닐 수 있는 첫 번째 2-비트의 연결과 두 번째 세트의 요소가 아닐 수 있는 첫 번째 2-비트를 갖는 코드워드를 기록하도록 구성되는, 트리플릿이 b'들로 구성되는지에 대하여 트리플릿들 내의 미리 결정된 엔트로피 인코더에 대한 심벌들을 조사하도록 구성될 수 있다.
디코딩 면과 관련하여, 방금 언급된 실시 예들은 각각 각각의 비트스트림을 심벌들(321)로 전환하도록 구성되는 복수의 엔트로피 디코더(322); 다수의 파라미터를 심벌들의 시퀀스의 이전에 재구성된 심벌들 내에 포함된 정보를 기초로 하여 재구성되는 심벌들의 시퀀스의 각각의 심벌(326)에 할당하도록 구성되는 할당기(316); 및 복수의 엔트로피 디코더 중 선택된 하나로부터 재구성되는 심벌들의 시퀀스의 각각의 심벌(325)을 검색하도록 구성되는 선택기(318);를 포함하며 선택은 각각의 심벌에 정의되는 파라미터들의 수에 의존하는, 심벌들(326)이 시퀀스를 재구성하기 위한 디코더를 개시한다. 방금 설명된 실시 예들에 따르면, 엔트로피 디코더들(322)의 적어도 하나의 첫 번째 서브셋은 각각 가변 길이들의 코드워드들을 가변 길이들의 김벌 시퀀스들에 매핑하도록 구성되는 가변 길이 디코더들이며, 첫 번째 서브셋의 각각의 엔트로피 디코더들(22)은 일차 무-접두부호 코드의 코드 워드들의 거의 2개가 이차 무-접두부호 코드워드의 동일한 코드 워드들에 매핑하나 일차 및 이차 무-접두부호 코드들의 두 코드 워드는 서로 다른 길이를 가지며 교환 방식으로 서로 상으로 매핑되는 것과 같이 (2n-1)≥3 코드워드들을 갖는 일차 무-접두부호 코드의 코드 워드들이 일차 접두부호 코드와 동일한 이차 무-접두부호 코드의 코드워드들에 매핑되는 전단사 매칭 규칙을 사용하며, 엔트로피 인코더들은 서로 다른 n이다. 첫 번째 무-접두부호 코드는 첫 번째 무-접두부호 코드의 코드워드들이 (a,b)2, (a,a,b)3, ..., (a,...,a,b)n, (a,...,a)2, (b,b,a)3, ..., (b,...,b,a)n-1, (b,...,b)n-1이고, 교환 방식으로 서로 매핑되는 두 코드워드들은 (a,...,a)n 및 (b,...,b)n일 수 있으며, b≠a이고 a,b ∈ {0,1}이다. 그러나, 대안들이 실현 가능하다.
엔트로피 디코더들의 각각의 첫 번째 서브셋은 각각의 비트스트림을 심벌들로 전환하는데 있어서, (1) 이 경우에 있어서, (1.1) 이 경우에서는 각각의 엔트로피 디코더가 첫 번째 비트와 동일하고 그 다음에 비트 b까지 각각의 비트스트림의 비트들과 동일한, 심벌 시퀀스를 재구성하도록 구성되는, b≠a이고 b0{0,1}을 갖는 b가 첫 번째 비트 다음의 그 다음의 n-1 비트들 내에서 발생하는지, 또는 (1.2) 이 경우에서는 각각의 엔트로피 디코더가 (b,...,b)n-1과 동일한, 심벌 시퀀스를 재구성하도록 구성되는, 어떠한 b도 첫 번째 비트 다음의 그 다음의 n-1 비트들 내에서 발생하지 않는지를 결정하기 위하여 각각의 엔트로피는 각각의 비트스트림의 다음의 비트들을 결정하도록 구성되는, 첫 번째 비트가 a 0 {0,1}과 동일한지를 결정하기 위하여, 또는 (2) 이 경우에 있어서, (2.1) 이 경우에서는 각각의 엔트로피 디코더가 첫 번째 비트와 동일하고 그 다음에 심벌 a까지 각각의 비트스트림의 비트들과 동일한, 심볼 시퀀스를 재구성하도록 구성되는, 그 다음의 n-2 비트들 내에서 발생하는지, 또는 (2.2) 이 경우에서는 각각의 엔트로피 디코더가 (a,...,a)n과 동일한, 심벌 시퀀스를 재구성하도록 구성되는, 어떠한 a도 첫 번째 비트 다음의 그 다음의 n-2 비트들 내에서 발생하지 않는지를 결정하기 위하여 각각의 엔트로피는 각각의 비트스트림의 다음의 비트들을 결정하도록 구성되는, 첫 번째 비트가 a 0 {0,1}과 동일한지를 결정하기 위하여, 각각의 비트스트림의 첫 번째 비트를 조사하도록 구성될 수 있다.
부가적으로, 또는 대안으로서, 엔트로피 디코더들(322)의 적어도 두 번째 세트는 이차 무-접두부호 코드의 코드워드 (c)가 일차 절단된 코드의 코드워드(bb...b) 상으로 매핑되고 접두부호로서 c≠d와 c,d ∈ {0,1} 및 접미부호로서 n-비트 워드를 갖는 (d)를 갖는 코드워드들이 일차 절단된 단항 코드의 다른 코드워드들 {(a), (ba), (bba), .... , (b...ba)}의 각각의 하나에 매핑되는 것과 같이, 이차 무-접두부호 코드의 코드 워드들이 일차 절단된 단항 코드 상으로 매핑되는 b≠a 및 a,b ∈ {0,1}을 갖는 형태 {(a), (ba), (bba), .... , (b...ba), (bb,..b)}의 2n+1 코드 워드들을 갖는 전단사 매핑 규칙을 사용하는 두 번째 서브셋의 각각의 엔트로피 디코더들로, 각각 고정 길이들의 코드워드들을 가변 길이들의 심벌 시퀀스들에 매핑하도록 구성되는 가변 길이 디코더일 수 있으며, 엔트로피 디코더들은 서로 다른 n을 사용한다.
엔트로피 디코더들의 각각의 두 번째 세트는 각각 고정 길이들의 코드워드들을 가변 길이들의 심벌 시퀀스에 매핑하도록 구성되고, 각각의 엔트로피 디코더의 비트스트림을 심벌들로 전환하는데 있어서, (1) 이 경우에 각각의 엔트로피 디코더가 b ∈ {0,1}을 갖는 (bb...b)2 n과 동일한 심벌 시퀀스를 재구성하도록 구성되는, c ∈ {0,1}을 갖는, 각각의 비트스트림의 첫 번째 비트가 c와 동일한지; 또는 (2) 이 경우에 각각의 엔트로피 디코더는 첫 번째 비트 다음의, 각각의 비트스트림의 n 추가의 비트들로부터 n-비트 워드를 결정하고 b≠a이고 b ∈ {0,1}을 가지며 b들의 수는 n-비트 단어에 의존하는 형태 {(a), (ba), (bba), ...., (b...ba), (bb...b)}인 그것으로부터 심벌 시퀀스를 재구성하도록 구성되는, 각각의 비트스트림의 첫 번째 비트가 c≠d이고 c,d ∈ {0,1}을 갖는 d와 동일한지를 결정하기 위하여 각각의 비트스트림의 첫 번째 비트를 조사하도록 구성되는 가변 길이 디코더일 수 있다.
부가적으로 또는 대안으로서, 엔트로피 디코더들 중 미리 결정된 하나는 각각 가변 길이들의 코드워드들을 고정 길이들의 심벌 시퀀들에 매핑하도록 구성되는 가변 길이 디코더들일 수 있으며, 미리 결정된 엔트로피 디코더는 c ∈ {0,1}을 갖는 코드워드가 a ∈ {0,1}을 갖는 일차 코드의 코드워드 (aaa)3에 매핑되는 것과 같이 이차 무-접두부호 코드의 코드 워드 (c)가 일차 코드의 길이 3의 23 코드 워드들에 매핑되는 전단사 매핑 규칙을 사용하며, 접두부호로서 c≠d 및 d ∈ {0,1}을 갖는 (d)를 갖는 코드워드들 및 접미부호로서 3개의 2-비트 워드들의 첫 번째 세트 중에서 각각의 첫 번째 2-비트는 정확하게 하나의 a를 갖는 일차 코드의 모든 3개의 코드워드 상으로 매핑되며, 접두부호로서 (d)를 갖는 코드워드 및 첫 번째 2-비트의 연결은 첫 번째 세트의 요소가 아닐 수 있고 두 번째 2-비트는 두 번째 세트의 요소가 아닐 수 있는데 그 이유는 접미부호가 코드워드 (bbb)3 상으로 매핑되기 때문이다. 정확하게 하나의 b를 갖는 일차 코드의 코드워드들의 첫 번째 2-비트 워드는 일차 코드의 각각의 코드워드 내의 b의 위치의 2-비트 표현일 수 있으며, 정확하게 하나의 a를 갖는 일차 코드의 코드워드들의 두 번째 2-비트 워드는 일차 코드의 각각의 코드워드 내의 a의 위치의 2-비트 표현일 수 있다. 그러나, 대안들도 실현 가능하다.
엔트로피 디코더들 중 미리 결정된 하나는 각각 가변 길이들의 코드워드들을 각각의 3개의 심벌의 심벌 시퀀스들로 매핑하도록 구성되고, 각각의 엔트로피 디코더의 비트스트림을 심벌들로 전환하는데 있어서, (1) 이 경우에 미리 결정된 엔트로피 디코더가 0 {0,1}을 갖는 (aaa)3와 동일한 심벌 시퀀스를 재구성하도록 적용되는, 각각의 비트스트림의 첫 번째 비트가 미리 결정된 엔트로피 디코더가 c ∈ {0,1}을 갖는 c와 동일한지를, 또는 (2) 이 경우에 미리 결정된 엔트로피 디코더가 첫 번째 비트 다음의, 각각의 비트스트림의 2개의 추가의 비트들로부터 첫 번째 2-비트를 결정하도록 구성되는, 각각의 비트스트림의 첫 번째 비트가 c ≠ d이고 d ∈ {0,1}을 갖는 d와 동일한지를 결정하기 위하여 각각의 비트스트림의 첫 번째 비트를 조사하도록 구성되며, (2.1) 이 경우에 미리 결정된 엔트로피 디코더는 b≠a이고 b0{0,1}을 가지며 각각의 심벌 시퀀스 내의 b의 위치는 첫 번째 2-비트 워드에 의존하는, 정확하게 하나의 b를 갖는 심벌 시퀀스를 재구성하도록 구성되는, 첫 번째 2-비트 워드가 3개의 2-비트 단어들의 첫 번째 세트의 요소가 없는지를, 또는 (2.2) 이 경우에 미리 결정된 엔트로피 디코더는 첫 번째 2-비트 워드가 결정된 2개의 비트들 다음의, 각각의 비트스트림의 2개의 추가의 비트들로부터 두 번째 2-비트 워드를 결정하도록 구성되는, 첫 번째 2-비트 워드가 첫 번째 세트의 요소인지를 결정하기 위하여 첫 번째 2-비트 워드를 조사하도록 구성되며, (3.1) 이 경우에 미리 결정된 엔트로피 디코더는 각각의 심벌 시퀀스 내의 a의 위치가 두 번째 2-비트 워드에 의존하는, 정확하게 하나의 a를 갖는 심벌 시퀀스를 재구성하도록 구성되는, 두 번째 2-비트 워드가 3개의 2-비트 단어들의 두 번째 세트의 요소가 없는지를, 또는 (3.2) 이 경우에 미리 결정된 엔트로피 디코더는 (bbb)3와 동일한 심벌 시퀀스를 재구성하도록 구성되는, 두 번째 2-비트 워드가 3개의 2-비트 워드들의 두 번째 세트의 요소인지를 결정하기 위하여 두 번째 2-비트 워드를 조사하도록 구성되는, 가변 길이 디코더일 수 있다.
이제, 비디오 코딩 전량의 일반적인 개념을 설명한 후에, 위의 실시 예들과 관련하여 본 발명의 실시 예들이 설명된다. 바꾸어 말하면, 아래에 설명되는 실시 예들은 위의 전략들의 사용에 의해 구현될 수 있으며, 마찬가지로, 위의 코딩 전략들은 아래에 설명되는 실시 예들을 사용하고 이용할 수 있다.
도 7 내지 9와 관련하여 설명된 위의 실시 예들에서, 도 1 내지 6의 엔트로피 인코더와 디코더들은 파이프 개념에 따라 구현되었다. 하나의 특정 실시 예는 산술 단일-확률 상태 인코더/디코더들(310 및 322)을 사용하였다. 아래에 설명될 것과 같이, 대안의 실시 예에 따라, 엔티티들(306-310) 및 상응하는 엔티티들(318 내지 322)은 통상의 엔트로피 인코딩 엔진에 의해 대체될 수 있다. 예로서, 단지 하나의 통상의 상태(R 및 L)를 관리하고 모든 심벌을 하나의 통상의 비트스트림 내로 인코딩하는, 산술 인코딩 엔진을 상상하면, 그렇게 함으로써, 병렬 처리에 대한 존재하는 파이프 개념의 바람직한 양상들을 포기하나, 아래에 설명되는 것과 같이 부분 비트스트림들의 인터리빙이 필요성을 방지한다. 그렇게 함으로써, 업데이트(테이블 룩-업과 같은)에 의해 콘텍스트들의 확률이 추정되는 확률 상태들의 수는 확률 간격 세분이 실행되는 확률 상태들의 수보다 높을 수 있다. 즉, 테이블(Rtab) 내로의 지수화 전에 확률 간격 모델 폭 값의 양자화와 유사하게, 또한 확률 상태 지수가 양자화될 수 있다. 단일 인코더/디코더들(310 및 322)을 위한 가능한 구현을 위한 위의 설명은 콘텍스트-적응적 이진 산술 인코딩/디코딩 엔진들과 같은 엔트로피 인코더/디코더들(318-322/306-310)이 구현의 예를 위하여 확대될 수 있다.
더 정확히 설명하면, 일 실시 예에 따라, 파라미터 할당기(여기서는 콘텍스트 할당기로서 작용하는)의 출력에 부착되는 엔트로피 인코더는 다음의 방법으로 운용될 수 있다:
0. 할당기(304)는 확률 파라미터와 함께 빈 값을 전달한다. 확률은 pstate_current[bin]이다.
1. 따라서, 엔트로피 인코딩 엔진은: 1) valLPS, 2) 빈, 및 3) 확률 분포 추정 pState_current[bin]을 받는다. pState_current[bin]은 Rtab의 구별가능한 확률 상태 지수들의 수보다 더 많은 상태들을 가질 수 있다. 만일 그렇다면, pState_current[bin]은 p_state 즉, 그리고 나서 테이블 Rtab을 액세스하도록 사용되는 지수를 획득하기 위하여 예를 들면, 1 이상 및 바람직하게는 2 또는 3인 m을 갖는 m LSB들의 무시에 의한 것과 같이 양자화될 수 있다. 그러나, 양자화는 제거될 수 있는데, 즉, p_state는 pState_currnet[bin]일 수 있다.
2. 그리고 나서, R의 양자화가 실행된다(위에서 설명된 것과 같이: p_state의 모든 구별가능한 값들을 위하여 하나의 R(및 하나의 통상적 비트스트림을 갖는 상응하는 L)이 사용/관리되거나, 또는 p_stste의 구별가능한 값 당 하나의 R(및 R/L 쌍 당 관련 부분 비트스트림을 갖는 상응하는 L)이 그러한 값 당 하나의 빈 인코더(310)를 갖는 것과 상응할 수 있다).
q_index=Qtab[R≫q] (또는 일부 다른 형태의 양자화)
3. 그리고 나서, RLPS의 R의 결정이 실행된다:
RLPS = Rtab[p_state][q_index]; Rtab은 p[p_state]ㆍQ[q_index]를 위한 그 안에 저장된 미리 계산된 값들을 갖는다.
R = R - RLPS[즉, R은 '빈'이 더 가능성이 있는 심벌이었던 것처럼 예비로 미리 업데이트된다]
4. 새로운 부분 간격의 계산:
if (bin = 1-valMPS) then
L ¬ L + R
L ¬ RRLPS
5. 비트들을 기록하는, L과 R의 재구성.
유사하게, 파라미터 할당기(여기서는 콘텍스트 할당기로서 작용하는)의 출력에 부착되는 엔트로피 디코더는 다음의 방법으로 운용될 수 있다:
0. 할당기(304)는 확률 파라미터와 함께 빈 값을 전달한다. 확률은 pstate_current[bin]이다.
1. 따라서, 엔트로피 디코딩 엔진은: 1) valLPS, 및 2) 확률 분포 추정 pState_current[bin]을 받는다. pState_current[bin]은 Rtab의 구별가능한 확률 상태 지수들의 수보다 더 많은 상태들을 가질 수 있다. 만일 그렇다면, pState_current[bin]은 p_state 즉, 그리고 나서 테이블 Rtab을 액세스하도록 사용되는 지수를 획득하기 위하여 1 이상 및 바람직하게는 2 또는 3인 m을 갖는 m LSB들의 무시에 의한 것과 같이 양자화될 수 있다. 그러나, 양자화는 제거될 수 있는데, 즉, p_state는 pState_currnet[bin]일 수 있다.
2. 그리고 나서, R의 양자화가 실행된다(위에서 설명된 것과 같이: p_state의 모든 구별가능한 값들을 위하여 하나의 R(및 하나의 통상적 비트스트림을 갖는 상응하는 L)이 사용/관리되거나, 또는 p_stste의 구별가능한 값 당 하나의 R(및 R/L 쌍 당 관련 부분 비트스트림을 갖는 상응하는 L)이 그러한 값 당 하나의 빈 인코더(310)를 갖는 것과 상응할 수 있다).
q_index=Qtab[R≫q] (또는 일부 다른 형태의 양자화)
3. 그리고 나서, RLPS의 R의 결정이 실행된다:
RLPS = Rtab[p_state][q_index]; Rtab은 p[p_state]ㆍQ[q_index]를 위한 그 안에 저장된 미리 계산된 값들을 갖는다.
R = R - RLPS[즉, R은 '빈'이 더 가능성이 있는 심벌이었던 것처럼 예비로 미리 업데이트된다]
4. 부분 간격의 위치에 따른 빈의 결정:
if (V 3 R) then
빈 ¬ 1 - valMPS
R ¬ RRLPS
else
빈 ¬ 1 - valMPS (빈은 더 가능성이 있는 심벌로서 디코딩된다; 실제 빈 값은 이러한 빈 정보와 valMPS에 의해 획득된다)
5. 하나의 비트를 판독하고 V를 업데이트하는, R의 재구성.
위에서 설명된 것과 같이, 할당기(4)는 pState_current[bin]을 각각의 빈에 할당한다. 콘텍스트 선택을 기초로 하여 연관이 수행된다. 즉, 할당기(4)는 차례로 그것과 관련된 pState_current[bin]을 갖는 콘텍스트 지수(ctxIdx)를 선택할 수 있다. 언제나 확률 업데이트가 실행될 수 있으며, 확률(pState_current[bin])은 코딩된 비트의 값에 따라 실행된다:
if (bit = 1 - valMPS) then
pState_current ← Next_State_LPS[pState_current]
if (pState_current = 0) then valMPs ← 1 - valMPs
else
pState_current ← Next_State_MPS[pState_current]
만일 하나 이상의 콘텍스트가 제공되면, 적용성은 콘텍스트 방법으로 수행되는데, 즉, 코딩을 위하여 pState_current[ctxIdx]가 사용되고 그리고 나서 현재 빈 값(각각, 인코딩되거나 디코딩된)이 업데이트된다.
아래에 더 상세히 설명될 것과 같이, 이제 설명되는 실시 예들에 따르면, 인코더와 디코더는 서로 다른 방식들, 주로 낮은 복잡도, 및 고효율 방식을 운용하기 위하여 선택적으로 구현될 수 있다. 이는 주로 다음의 파이프 코딩(그리고 나서 낮은 복잡도 및 고효율 파이프 방식을 언급하는)과 관련하여 설명되나, 복잡도 계산 내용의 설명은 하나의 통상적인 콘텍스트-적응적 산술 인코더/디코더를 사용하는 실시 예와 같은, 엔트로피 인코딩/디코딩 엔진들의 다른 구현들에 전달될 수 있다.
아래에서 설명되는 실시 예들에 따라 두 엔트로피 코딩 방식 모두 다음을 공유한다:
Figure pct00004
동일한 구문과 의미(각각 구문 요소 시퀀스(301 및 327)를 위하여)
Figure pct00005
모든 구문 요소를 위한 동일한 이진화 전략(CABAC(콘텍스트-적응적 이진 산술 코딩, 이하 CABAC로 표기)를 위하여 현재 지정된 것과 같이)(즉, 이진화기들은 활성화되는 방식과 관계없이 운용될 수 있다)
Figure pct00006
동일한 파이프 코드들의 사용(즉, 빈 인코더들/디코더들은 활성화되는 방식과 관계없이 운용될 수 있다)
Figure pct00007
8 비트 확률 모델 초기화 값들의 사용(CABAC를 위하여 현재 지정된 16 비트 확률 모델 초기화 값들 대신에)
일반적으로 말하면, 각각의 빈을 위한 파이프 경로(312)의 선택의 복잡도와 간은, 복잡도를 처리에 있어서 낮은 복잡도-파이프는 고효율-파이프와 다르다.
예를 들면, 낮은 복잡도 방식은 다음의 제약 하에서 운용될 수 있다: 각각의 빈(binIdx)을 위하여, 정확하게 하나의 확률 모델, 즉 하나의 콘텍스트 지수가 존재할 수 있다. 즉, 낮은 복잡도 파이프에서는 어떠한 콘텍스트 선택/적용이 제공되지 않는다. 그러나, 아래에 더 설명되는 것과 같이, 잔여 코딩을 위하여 사용되는 것과 같은 특정 구문 요소가 콘텍스트들을 사용하여 코딩될 수 있다. 게다가, 모든 확률 모델은 비-적응적인데, 즉, 모든 모델은 적절한 모델 확률들(조각 형태 및 조작 양자화 파라미터의 선택에 따라)로 각각의 조각의 시작에서 초기화될 수 있으며, 조작의 처리를 통하여 고정되어 유지될 수 있다. 예를 들면, 콘텍스트 모델링과 코딩 모두를 위하여, 8개의 서로 다른 파이프 코드들(310/322)과 상응하는 8개의 서로 다른 모델 확률이 제공될 수 있다. 잔여 코딩을 위한 특정 구문 요소들, 즉, 그 의미가 아래에 더 상세히 설명되는, significance_coeff_flag 및 coeff_abs)level_greaterX(X=1,2)은 (적어도) 예를 들면 4 구문 요소들의 그룹들이 동일한 확률 모델로 인코딩/디코딩되는 것과 같이 확률 모델들에 할당될 수 있다. 콘텍스트-적응적 가변 길이 코딩과 비교하여, 낮은 복잡도-파이프 방식은 대략 동일한 R-D 성능 및 동일한 처리율을 달성한다.
고효율-파이프는 다음의 차이들과 함께 H.264의 CAVAC 와 개념적으로 유사하게 구성될 수 있다: 이진 산술 코딩(binary arithmetic coding, BAC)은 파이프 코딩에 의해(낮은 복잡도-파이프 경우에서와 동일하게) 대체된다. 각각의 확률 모델, 즉, 각각의 콘텍스트 지수는 파이프 지수 및 세분화 지수에 의해 표현될 수 있으며, 0...7 범위 내의 값들을 갖는 파이프 지수는 8개의 서로 다른 파이프 코드들의 모델 확률을 표현한다. 이러한 변화는 상태들의 내부 표현에만 영향을 미치고 상태 기계(즉, 확률 추정) 자체에는 영향을 미치지 않는다. 아래에 더 상세히 설명될 것과 같이, 확률 모델들의 초기화는 위에서 설명된 것과 같이 8 비트 초기화 값들을 사용할 수 있다. 구문 요소들 coeff_abs_level_greaterX (X=1, 2), coeff_abs_level_minus3, 및 coeff_sign_flag (이들의 의미는 아래의 설명으로부터 더 자명해질 것이다)의 후방 스캐닝(backward scanning)은 전방 스캔(예를 들면, 유의성 맵 코딩에서 사용되는)과 동일한 스캐닝 경로를 따라 실행될 수 있다. coeff_abs_level_greaterX(X=1, 2)의 코딩을 위한 콘텍스트 유도는 또한 단순화될 수 있다. CABAC와 비교하여, 제안된 고효율-파이프는 더 나은 처리능력에서 대략 동일한 R-D 성능을 달성한다.
방금 언급된 방식들이 예를 들면, 이들이 서로 다른 방식으로 운용하는 것과 같이 앞서 언급된 콘텍스트-적응성 이진 산술 인코딩/디코딩 엔진을 제공함으로써 쉽게 발생된다는 것을 쉽게 알 수 있다.
따라서, 본 발명의 첫 번째 양상에 따른 일 실시 예에 따르면, 데이터 스트림을 디코딩하기 위한 디코더는 도 11에 도시된 것과 같이 구성될 수 있다. 디코더는 비디오 데이터와 같은 미디어 데이터가 코딩되는 인터리브드 비트스트림(340)과 같은 데이터스트림(401)을 디코딩하기 위한 것이다. 디코더는 데이터 스트림(401)에 따라 낮은 복잡도 방식 또는 고효율 방식을 활성화하도록 구성되는 모드 스위치(400)를 포함한다. 이를 위하여, 데이터 스트림(401)은 활성화되는 하나인 낮은 복잡도 방식의 경우에 1의 이진 값을 가지며, 활성화되는 하나의 고효율 방식의 경우에 0의 이진 값을 갖는, 이진 구문 요소와 같은, 구문 요소를 포함할 수 있다. 명백하게, 이진 값과 코딩 방식 사이의 관련성은 전환될 수 있으며, 두 개의 가능한 값 이상을 갖는 비-이진 구문 요소가 또한 사용될 수 있다. 두 방식 사이의 실제 선택이 각각의 구문 요소 이전에 아직 분명하지 않기 때문에, 이러한 구문 요소는 예를 들면, 고정된 확률 추정 또는 확률 모델로 인코딩되거나 혹은 그대로, 즉, 바이패스 방식을 사용하여 데이터스트림(401) 내로 판독되는 데이터스트림(401)의 일부 리딩 헤더(leading header) 내에 포함될 수 있다.
또한, 도 11의 디코더는 각각 데이터스트림(401) 내의 코드워드들을 심벌들의 부분적인 시퀀스들(321)로 전환하도록 구성되는 복수의 엔트로피 디코더(322)를 포함한다. 위에 설명된 것과 같이, 디-인터리버(de-interleaver, 404)는 한편으로는 디코더들(322)의 입력들 및 다른 한편으로는 데이터스트림(401)이 적용되는, 도 11의 디코더의 입력 사이에 연결될 수 있다. 또한 위에서 이미 설명된 것과 같이, 각각의 엔트로피 디코더(322)는 각각의 확률 간격과 관련될 수 있으며, 다양한 엔트로피 디코더들의 확률 간격들은 절대 심벌 값들보다는 더 가능성이 있는 심벌과 덜 가능성이 있는 심벌로 처리하는 엔트로피 디코더들(322)의 경우에 0 내지 1 또는 0 내지 0.5의 전체 확률 간격을 포함한다. 이러한 문제에 관한 상세한 설명은 위에서 설명되었다. 뒤에, 디코더들(322)의 수는 각각의 디코더에 할당되는 파이프 지수를 갖는 8이라고 가정되나, 다른 수도 또한 실현 가능하다. 또한, 다음에서 바람직하게는 pipe_id 0인, 이러한 코더들 중 어느 하나는 등-확률 통계를 갖는 빈들을 위하여 최적화되는데, 즉, 그것들의 빈 값은 동등하게 아마도 1과 0으로 가정한다. 이러한 디코더는 단지 빈들을 전달할 수 있다. 각각의 인코더(310)는 동일하게 운용된다. 각각 선택기들(402 및 502)에 의해 가장 가능성 있는 빈 값, valMPS의 값에 따른 어떠한 빈 조각도 제거될 수 있다. 바꾸어 말하면, 각각의 부분 스트림의 엔트로피는 이미 최적이다.
또한 도 11의 디코더는 복수의 엔트로피 디코더(322) 중 선택된 하나로부터 심벌들의 시퀀스(326)의 각각의 심벌을 검색하도록 구성되는 선택기(402)를 포함한다. 위에 설명된 것과 같이, 선택기(402)는 파라미터 할당기(316)와 선택기(318) 내로 분리될 수 있다. 디심벌라이저(314)는 구문 요소들의 시퀀스(327)를 획득하기 위하여 심벌들의 시퀀스(326)를 탈심벌화하도록 구성된다. 재구성자(404)는 구문 요소들(327)이 시퀀스를 기초로 하여 미디어 데이터(405)를 재구성하도록 구성된다. 선택기(402)는 화살표(406)에 의해 나타낸 것과 같이 낮은 복잡도 방식과 고효율 방식 중 활성화된 어느 하나에 따라 선택을 실행하도록 구성된다.
위에서 이미 설명된 것과 같이, 재구성자(404)는 고정된 구문과 구문 요소들의 의미들 상에서 운용하는, 즉, 모드 스위치(400)에 의한 방식 선택과 관련하여 고정된, 예측 블록 기반 비디오 디코더의 일부일 수 있다. 즉, 재구성자(404)의 구성은 모드 스위치 능력으로 고생하지 않는다. 더 정확히 설명하면, 재구성자(404)는 모드 스위치(400)에 의해 제공되는 모드 스위치능력에 기인하는 구현 오버헤드를 증가시키지 않으며 적어도 잔여 데이터와 관련하여 기능성 및 예측 데이터는 스위치(400)에 의해 선택되는 방식과 관계없이 그대로 남는다. 그러나, 엔트로피 디코더들(322)과 관련하여 동일하게 적용한다. 이러한 모든 디코더(322)는 두 방식에서 재사용되며, 따라서 비록 도 11의 디코더가 두 방식, 낮은 복잡도와 고효율 방식에 호환되나 부가적인 구현 오버헤드는 존재하지 않는다.
부가 양상으로서 도 11의 디코더는 하나의 방식 또는 나머지 방식에서 독립된 데이터스트림들 상에서만 운용할 수 있지 않다는 것을 이해하여야 한다. 오히려, 도 11의 디코더뿐만 아니라 데이터스트림(401)은 그에 알맞게 방식 선택을 잠금-루프 제어하기 위하여 디코더로부터 인코더로 피드백 채널의 사용과 함께 배터리 상태 등과 같은 외부 또는 환경 조건들에 따라 예를 들면, 디코딩 면에서 코딩 복잡도를 제어하기 위하여 비디오 또는 일부 오디오 피스(piece) 동안에서와 같은 미디어 데이터의 하나의 피스 동안에 두 방식 사이의 전환이 가능할 수 있는 것과 같이 구성될 수 있다.
따라서 도 11의 디코더는 선택되는 낮은 복잡도 방식 또는 선택되는 고효율 방식의 경우에 있어서, 두 경우에 유사하게 운용된다. 재구성자(404)는 구문 요소들을 사용하여 재구성을 실행하고 일부 구문 구조 규정을 처리하거나 준수함으로써 미리 결정된 구문 요소 형태의 현재 구문 요소를 요구한다. 디심벌라이저(314)는 재구성자(404)에 의해 요구되는 구문 요소를 위한 유효한 이진화를 생산하기 위하여 다수의 빈을 요구한다. 명백하게, 이진 알파벳의 경우에, 디심벌라이저(314)에 의해 실행되는 이진화는 각각의 빈/심벌(326)을 재구성자(404)로 통과시키도록 감소되는데 그 이유는 이진 구문 요소가 현재 요구되었기 때문이다.
그러나, 선택기(404)는 모드 스위치(400)에 의해 선택되는 방식에 관계없이 작용한다. 선택기(402)의 운용의 방식은 고효율 방식에서 더 복잡한 경향이 있고, 낮은 복잡도 방식에서 덜 복잡한 경향이 있다. 게다가, 다음의 설명은 덜 복잡한 방식에서 선택기(402)의 운용이 방식이 엔트로피 디코더들(322)로부터 일련의 심벌들을 검색하는데 엔트로피 디코더들(322) 중에서의 선택을 변경하는 비율을 감소시키는 경향이 있다. 바꾸어 말하면, 낮은 복잡도 방식에서, 즉시 일련의 심벌들이 복수의 엔트로피 디코더(322) 중에서 동일한 엔트로피 디코더로부터 검색되는 증가된 확률이 존재한다. 이는 차례로, 엔트로피 디코더들(322)로부터 심벌들의 빠른 검색을 허용한다. 고효율 방식에서, 차례로, 선택기(402)의 운용의 방식은 각각의 선택된 엔트로피 디코더(322)와 관련된 확률 간격이 선택기(402)에 의해 현재 검색되는 심벌의 실제 심벌 통계에 더 근접하게 맞는 엔트로피 디코더들(322) 중에서의 선택에 이르게 하는 경향이 있으며, 그렇게 함으로써 고효율 방식에 따라 각각의 데이터 스트림을 발생시킬 때 인코딩 면에서 더 나은 압축률을 생산한다.
예를 들면, 두 방식에서 선택기(402)의 서로 다른 행동은 다음과 같이 실현될 수 있다. 예를 들면, 선택기(402)는 미리 결정된 심벌을 위하여, 활성화되는 고효율 방식의 경우에 이전에 검색된 심벌들에 따라, 그리고 활성화되는 낮은 복잡도의 경우에 심벌들의 시퀀스의 어떠한 이전에 검색된 심벌들과도 관계없이 복수의 엔트로피 디코더(322) 중에서의 선택을 실행하도록 구성될 수 있다. 심벌들의 시퀀스(326)의 이전에 검색된 심벌들의 의존성은 콘텍스트 적응성 및/또는 확률 적응성에 기인할 수 있다. 두 적응성은 선택기(402) 내의 낮은 복잡도 동안에 꺼질 수 있다.
또 다른 실시 예에 따르면, 데이터스트림(401)은 조각들, 프레임들, 픽쳐들의 그룹, 프레임 시퀀스들 등과 같은 일련의 부들 내로 구조화될 수 있으며, 심벌들의 시퀀스의 각각의 심벌은 복수의 심벌 형태 중 각각의 하나와 관련될 수 있다. 이러한 경우에 있어서, 선택기(402)는 현재 부 내의 미리 결정된 심벌 형태의 심벌들을 위하여, 활성화되는 고효율 방식의 경우에 현재 부 내의 미리 결정된 심벌 형태의 심벌들의 시퀀스의 이전에 검색된 심벌들에 따라 선택을 변경하고, 활성화되는 낮은 복잡도 방식의 경우에 현재 부 내에서 일정한 선택을 남기도록 구성될 수 있다. 즉, 선택기(402)는 미리 결정된 심벌 형태를 위하여 엔트로피 디코더들(322) 중에서이 선택을 변경하도록 허용될 수 있으나, 이러한 변경들은 일련의 부들 사이의 전이 사이에서 발생하도록 제한된다. 이러한 측정에 의해, 실제 심벌 통계의 평가는 시간 인스턴스들을 거의 발생하지 않도록 제한되나, 코딩 복잡도는 대부분의 시간 내에서 감소된다.
또한, 심벌들의 시퀀스(326)의 각각의 심벌은 복수의 심벌 형태 중 각각의 하나와 관련될 수 있으며, 선택기(402)는 미리 결정된 심벌 형태의 미리 결정된 심벌을 위하여, 심벌들의 시퀀스(326)의 이전에 검색된 심벌들에 따라 복수의 콘텍스트 중 어느 하나를 선택하고 활성화되는 고효율 방식의 경우에 미리 결정된 심벌에 따라 선택된 콘텍스트와 관련된 확률 모델의 업데이팅과 함께 선택된 콘텍스트와 관련된 확률 모델에 따라 엔트로피 디코더들(322) 중에서의 선택을 실행하며, 심벌들의 시퀀스(326)의 이전에 검색된 심벌들에 따라 복수의 콘텍스트 중 어느 하나의 선택을 실행하고 활성화되는 낮은 복잡도 방식의 경우에 선택된 콘텍스트 상수와 관련된 확률 모델의 남김(leaving)과 함께 선택된 콘텍스트와 관련된 확률 모델에 따라 엔트로피 디코더들(322) 중에서의 선택을 실행하도록 구성될 수 있다. 즉, 선택기(402)는 두 방식에서 특정 구문 요소 형태와 관련하여 콘텍스트 적응을 사용할 수 있으나, 낮은 복잡도 방식의 경우에 확률 적응성을 억제할 수 있다.
대안으로서, 확률 적응성을 완전히 억제하는 대신에, 선택기(402)는 단지 고효율 방식에 관하여 낮은 복잡도 방식의 확률 적응성의 업데이트 비율을 감소시킬 수 있다.
또한, 낮은 복잡도-파이프-특정 양상들, 즉, 낮은 복잡도 방식들의 양상들은 바구어 말하면 다음과 같이 설명될 수 있다. 특히, 비-적응적 확률 모델들이 낮은 복잡도 방식에서 사용될 수 있다. 비-적응적 확률 모델은 하드코딩된(hardcoded), 즉, 전체 일정한 확률을 가질 수 있거나, 또는 그것의 확률은 조각만의 처리를 통하여 고정되며 따라서 조각 형태 또는 양자화 파라미터, 즉, 예를 들면, 각각의 조각을 위하여 데이터스트림(401) 내에 신호가 전달되는 양자화 파라미터에 의존하여 설정될 수 있다. 동일한 빈들에 할당되는 연속적인 빈들이 고정된 확률 모델을 따른다고 가정함으로써, 한 단계로 그러한 빈들의 일부를 디코딩하는 것이 가능한데 그 이유는 그것들이 동일한 파이프 코드를 사용하여, 즉, 동일한 엔트로피 디코더를 사용하여 인코딩되고, 각각 빈을 디코딩한 후에 확률 업데이트가 생략되기 때문이다. 확률 업데이트들의 생략은 인코딩과 디코딩 과정 동안의 운용들을 절약하며, 따라서 또한 복잡도 감소와 하드웨어 디자인에서의 유의성 단순화에 이르게 한다.
비-적응적 제한은 빈들의 특정 수가 이러한 모델을 사용하여 인코딩/디코딩된 후에 확률 업데이트들이 허용되는 것과 같은 방법으로 모든 또는 일부 선택된 확률 모델을 위하여 덜해질 수 있다. 적절한 업데이트 간격은 확률 적응을 허용하며 일부 빈들을 즉시 디코딩하는 능력을 갖는다.
다음에서, 낮은 복잡도-파이프 및 고효율-파이프의 가능한 통상적이고 복잡도-확정성 양상들의 더 상세한 설명이 제공된다. 특히, 다음에서, 동일한 방법으로 또는 복잡도-확장성(scalable) 방법으로 낮은 복잡도-파이프 방식과 고효율-파이프 방식를 위하여 사용될 수 있는 양상들이 설명된다. 복잡도-확장성은 특정 부분을 제거하거나 또는 그것들을 덜 복잡한 것으로 대체함으로써 낮은 복잡도 경우가 고효율 경우로부터 유도되는 것을 의미한다. 그러나, 그것들과 함께 처리하기 전에, 도 11의 실시 예는 위에서 설명된 콘텍스트 적응성 이진 산술 인코딩/디코딩 실시 예 상으로 쉽게 전달될 수 있다는 것을 이해하여야 한다: 선택기(402)와 인트로피 디코더들(322)는 데이터스트림(401)을 직접적으로 수신하고 데이터스트림으로부터 현재 유도되는 빈을 위한 콘텍스트를 선택할 수 있는 콘텍스트 적응성 이진 산술 디코더 내로 압축될 수 있다. 이는 특히 콘텍스트 적응성 및/또는 확률 적응성에 있어서 사실이다. 두 기능들/적응성들은 낮은 복잡도 방식 동안에 꺼질 수 있거나, 또는 더 느긋하게 디자인될 수 있다.
예를 들면, 도 11의 실시 예의 구현에서, 엔트로피 디코더들(322)을 포함하는 파이프 엔진 엔트로피 코딩 단계는 8개의 체계적인 가변-대-가변-코드들을 사용할 수 있는데, 즉, 각각의 엔트로피 디코더(322)는 위에서 설명된 가변-대-가변 형태일 수 있다. 체계적인 가변-대-가변 코드들을 사용하는 파이프 코딩 개념은 가변-대-가변 코드들의 수를 한정함으로써 단순화된다. 콘텍스트-적응적 이진 산술 디코더의 경우에 있어서, 확률 세분화를 위하여 가변-대-가변 코드들은 서로 다른 콘텍스트들을 위하여 동일한 확률 상태들을 관리할 수 있으며 서로 다른 콘텍스트를 위하여 이를(또는 그것의 양자화된 버전) 사용할 수 있다. CABAC 또는 확률 모델 상태들, 즉, 확률 업데이트를 위하여 사용되는 상태들의 파이프 지수들 또는 R탭 내의 룩-업을 위한 확률 지수들로의 매핑이 데이블 A와 같이 도시될 수 있다.
Figure pct00008
테이블 A: CABAC 상태들의 파이프 지수들로의 매핑
이러한 변형된 전략은 복잡도-확정성 비디오 코딩 접근법을 위한 기초로서 사용될 수 있다. 확률 방식 적용을 실행할 때, 선택기(402) 또는 콘텍스트-적응성 이진 산술 디코더는 각각 파이프 디코더(322)를 선택할 수 있는데, 즉, 사용되는 파이프 지수 및 테이블 A에 도시된 매핑을 사용하여 현재 디코딩되려는 심볼과 관련된(콘텍스트를 통한 것과 같이) 확률 상태 지수(여기서는 바람직하게는 0 내지 62 범위의)를 기초로 하여, 각각 R탭 내의 확률 지수를 유도할 수 있으며, 예를 들면, 각각 더 가능성이 있는 심벌 및 덜 가능성이 있는 심벌의 경우에 방문되는 그 다음의 확률 상태 지수를 나타내는 특정한 테이블 워크(walk) 전이 값들을 사용하는 현재 디코딩되는 심벌에 따라 이러한 확률 상태 지수를 업데이트할 수 있다. 낮은 복잡도 방식의 경우에 있어서, 후자의 업데이트는 제거될 수 있다. 전체적으로 고정된 확률 모델들이 경우에 매핑도 없어질 수 있다.
그러나, 임의 엔트로피 코딩 설정이 사용될 수 있으며 작은 적용과 함께 본 발명에서의 기술이 또한 사용될 수 있다.
도 11의 위의 설명은 일반적으로 구문 요소들과 구문 요소 형태들을 언급하였다. 다음에서, 변환 계수 레벨들의 복잡도 구성가능 코딩이 설명된다.
예를 들면, 재구성자(404)는 활성화되는 고효율 방식 또는 낮은 복잡도 방식과 관계없이 구문 요소들의 시퀀스의 일부를 기초로 하여 변환 계수 레벨들(202)의 변환 블록(200)을 재구성하도록 구성될 수 있으며, 구문 요소들의 시퀀스(327)의 일부는 비-인터리브드 방식으로, 변환 블록(200) 내의 비-제로 변환 계수 레벨들의 위치들을 나타내는 유의성 맵을 정의하며, 그 다음에 비-제로 변환 계수 레벨들을 정의하는 레벨 구문 요소들이 뒤따른다. 특히, 다음의 요소들이 포함될 수 있다: 변환 블록 내의 마지막 비-제로 변환 계수 레벨의 위치를 나타내는 단부 위치 구문 요소들(last_significant_pos_x, lsat_significant_pos_y); 함께 유의성 맵을 정의하고 DC 위치로부터 변환 블록(200) 내의 마지막 비-제로 변환 계수 레벨에 이르게 하는 1차원 경로(274)를 따라 각각의 위치를 위하여, 각각의 위치에서 변환 계수 레벨이 비-제로인지 아닌지에 대하여 나타내는 제 1 구문 요소들(coeff_sigficant_flag); 제 1 이진 구문 요소들에 따라 비-제로 변환 계수 레벨이 위치되는 1차원 경로의 각각의 위치를 위하여, 각각의 위치에서 변환 계수 레벨이 1보다 큰지에 대하여 나타내는 제 2 구문 요소들(coeff_abs_greater1); 및 제 1 이진 구문 요소들에 따라 1보다 큰 변환 계수 레벨이 위치되는 1차원 경로의 각각의 위치를 위하여, 각각의 위치에서 각각의 변환 계수 레벨이 1을 초과하는 양을 나타내는 제 3 구문 요소들(coeff_abs_greater_2).
단부 위치 구문 요소들, 제 1, 제 2 및 제 3 구문 위치들 중에서의 순차는 고효율 방식과 낮은 복잡도 방식을 위하여 동일하며, 선택기(402)는 디심벌라이저가 끝 부분 위치 구문 요소들, 제 1, 제 2 및/또는 제 3 구문 위치들을 획득하는 심벌들을 위하여 엔트로피 디코더들(322) 중에서의 선택을 실행하도록 구성될 수 있다.
특히, 선택기(402)는 디심벌라이저(314)가 제 1 구문 요소들과 제 2 구문 요소들를 획득하는 심벌들의 서브시퀀스 중에서 미리 결정된 심벌 형태의 심벌들을 위하여, 심벌들의 서브시퀀스 중에서 미리 결정된 심벌 형태의 이전에 검색된 심벌들에 따라 복수의 콘텍스트 중 하나를 미리 결정된 심벌 형태의 각각의 심벌을 위하여 선택하고, 활성화되는 고효율 방식의 경우에 선택된 콘텍스트와 관련된 확률 모델에 따라 선택을 실행하며, 활성화되는 낮은 복잡도의 경우에 서브시퀀스의 연이은 지속적인 서브파트에 대하여 선택이 일정한 것과 같이 부분 상수(piece wise constant) 방식으로 선택을 실행하도록 구성될 수 있다. 위에 설명된 것과 같이, 서브파트들은 1차원 경로(274)를 따라 측정될 때 각각의 서브파트가 확장하는 이치들의 수, 또는 현재 콘텍스트 내에 이미 코딩된 각각의 형태의 구문 요소들의 수로 측정될 수 있다. 즉, 이진 구문 요소들, 예를 들면, coeff _ significant _ flag, coeff_abs_greater1coeff _ abs _ greater2는 고효율 방식에서 선택된 콘텍스트의 확률 모델을 기초로 하여 디코더(322)의 선택과 함께 적응적으로 코딩된다. 확률 적용이 또 한 사용된다. 낮은 복잡도 방식에서, 각각의 이진 구문 요소들 coeff_significant_flag, coeff _ abs _ greater1coeff _ abs _ greater2를 위하여 사용되는 서로 다른 콘텍스트들이 또한 존재한다. 그러나, 각각의 구문 요소를 위하여, 콘텍스트는 그 다음의 전이에서 콘텍스트의 변화와 함께 경로(274)를 따라 제 1 부를 위하여 고정되며, 경로(274)를 따라 바로 따른다. 예를 들면, 각각의 부는 각각의 위치를 위하여 각각의 구문 요소가 존재하는지와 관계없이 블록(200) 길이의 4, 8, 16 위치들로 정의될 수 있다. 예를 들면, coeff _ abs _ greater1coeff _ abs _ greater2는 유효 위치들, 즉, coeff _ significant _ flag가 1인 위치들을 위하여 존재한다. 대안으로서, 각각의 위치는 따라서 결과로서 생기는 각각의 부가 블록들의 높은 수를 넘어 확장하는지와 관계없이, 4, 8, 16 구문 요소들 길이로 정의될 수 있다. 예를 들면, coeff_abs_greater1coeff _ abs _ greater2는 단지 유의 위치들을 위하여 존재하며, 따라서 4개의 구문 요소들의 부들은 이 위치에서 각각의 레벨 때문에 coeff_abs_greater1coeff _ abs _ greater2 중 어느 것도 제로가 아닌 것과 같이 그러한 어떠한 구문 요소도 전송되지 않는 경로(274)를 따라 그것들 사이의 위치 때문에 각각 4 블록 위치들 이상을 넘어 확장할 수 있다.
선택기(402)는 디심벌라이저가 제 1 구문 요소들과 제 2 구문 요소들을 획득하는 심벌들의 서브시퀀스 중에서 미리 결정된 심벌 형태의 심벌들을 위하여, 미리 결정된 심벌 값을 갖고 동일한 서브파트에 속하는, 심벌들의 시퀀스 내의 미리 결정된 심벌 형태의 이전에 검색된 심벌들의 수, 또는 동일한 서브파트에 속하는, 심벌들의 시퀀스 내의 미리 결정된 심벌 형태의 이전에 검색된 심벌들의 수에 따라 복수의 콘텍스트 중 어느 하나를 미리 결정된 심벌 형태의 각각의 심벌을 위하여 선택하도록 구성될 수 있다. 위의 특정 실시 예들에 따라 첫 번째 대안은 coeff_abs_greater1에 있어서 사실이었으며 이차 대안은 coeff _ abs _ greater2에 있어서 사실이었다.
또한, 제 1 이진 구문 요소들에 따라, 1보다 큰 변환 계수 레벨이 위치되는 1차원 경로의 각각의 위치를 위하여, 각각의 위치에서 각각의 변환 계수 레벨이 1을 초과하는 양을 나타내는 제 3 구문 요소들은 정수 값의 구문 요소들, 즉 coeff_abs_minus3을 포함할 수 있으며, 디심벌라이저(314)는 심벌 시퀀스 단어들을 정수 값의 구문 요소들의 공-도메인에 매핑하기 위하여 제어 파라미터에 의해 제어가능한 매핑 기능을 사용하고, 만일 고효율 방식이 활성화되면 이전의 제 3 구문 요소의 정수 값의 구문 요소들에 따라 정수 값이 구문 요소 당 제어 파라미터를 설정하며, 활성화되는 낮은 복잡도의 경우에 서브시퀀스의 일련의 연속적인 서브파트들에 대하여 설정이 일정한 것과 같이 부분 상수방식으로 설정을 실행하도록 구성될 수 있으며, 선택기(402)는 두 고효율 방식과 낮은 복잡도 방식에서, 동일한 확률 분포와 관련된, 정수 값이 구문 요소들 상으로 매핑된 심벌 시퀀스 단어들이 심벌들을 위하여 엔트로피 디코더들(322) 중 미리 결정된 어느 하나를 선택하도록 구성될 수 있다. 즉, 디심벌라이저가 선택된 방식에 따라 운용될 수 있더라도, 스위치(400)가 점선(407)에 의해 도시된다. 제어 파라미터의 부분 상수 설정 대신에, 디심벌라이저는 예를 들면 현재 조각 동안에 제어 파라미터를 일정하게 유지할 수 있거나 또는 시간에 맞게 포괄적으로 일정하게 유지할 수 있다.
그 다음에, 복잡도-확장성 콘텍스트 모델링이 설명된다.
콘텍스트 모델 지수의 유도를 위한 상부와 왼쪽 이웃의 동일한 구문 요소의 평가는 통상의 접근법이며 예를 들면, 움직임 벡터 차분값 구문 요소를 위하여 고효율의 경우에 흔히 사용된다. 그러나, 이러한 평가는 더 나은 저장을 필요로 하며 구문 요소의 직접적인 코딩을 허용하지 않는다. 또한, 높은 코딩 성능을 달성하기 위하여, 더 많은 이용가능한 이웃들이 평가될 수 있다.
바람직한 실시 예에서, 이웃 정사각형 또는 직사각형 블록들 혹은 예측 유닛들의 구문 요소들을 평가하는 모든 콘텍스트 단계는 하나의 콘텍스트 모델에 고정된다. 이는 콘텍스트 모델 선택 단계에서의 적응성의 불능화와 동일하다. 그러한 바람직한 실시 예를 위하여, 이진화 후에 빈 스트링의 빈 지수에 따른 콘텍스트 모델 선택은 CABAC를 위한 현재 디자인과 비교하여 변형되지 않는다. 또 다른 바람직한 실시 예에서, 구문 요소들을 위한 고정된 콘텍스트 모델에 더하여, 또한 서로 다른 빈 지수를 위한 콘텍스트 모델이 고정된다. 본 설명은 변환 계수 레벨들의 코딩과 관련된 움직임 벡터 차분값과 구문 요소들을 위한 이진화 및 콘텍스트 모델 성택을 포함하지 않는다는 것을 이해하여야 한다.
바람직한 실시 예에서, 왼쪽 이웃의 평가만이 허용된다. 이는 처리 체인(chain)에서 감소된 버퍼에 이르게 하는데 그 이유는 마지막 블록 또는 코딩 유닛 라인이 더 이상 저장되어서는 안 되기 때문이다. 또 다른 바람직한 실시 예에서, 동일한 코딩 유닛에 놓인 이웃들만이 평가된다.
바람직한 실시 예에서, 모든 이용가능한 이웃이 평가된다. 예를 들면, 상부와 왼쪽 이웃에 더하여, 가용성의 경우에 상부 왼쪽, 상부 오른쪽, 및 하부 왼쪽 이웃이 평가된다.
즉, 도 11의 선택기(402)는 미디어 데이터의 미리 결정된 블록과 관련하여 미리 결정된 심벌을 위하여, 복수의 콘텍스트 중 어느 하나를 선택하고 선택된 콘텍스트와 관련된 확률 모델에 따라 엔트로피 디코더들(322) 중에서의 선택을 실행하기 위하여 활성화된 고효율 방식의 경우에 미디어 데이터의 서로 다른 이웃하는 블록들의 높은 수와 관련하여 심벌들의 시퀀스의 이전에 검색된 심벌들을 사용하도록 구성될 수 있다. 즉, 이웃하는 블록들은 시간들 및/또는 공간 도메인으로 이웃할 수 있다. 예를 들면, 도 1 내지 3에 공간적으로 이웃하는 블록들을 볼 수 있다. 그때, 선택기(402)는 낮은 복잡도 방식과 비교하여 고효율 방식의 경우에서 이웃하는 블록들의 높은 수와 관련하여 이전에 검색된 심벌들 또는 구문 요소들을 기초로 하여 접촉 적용을 실행하기 위하여 모드 스위치(400)에 의해 방식 선택에 반응할 수 있으며 그렇게 함으로써 방금 설명된 것과 같은 저장 오버헤드를 감소시킨다.
그 다음에, 일 실시 예에 따른 움직임 벡터 차분값들의 감소된 복잡도 코딩이 설명된다.
H.264/AVC 비디오 코덱 표준에서, 마크로블록과 관련된 움직임 벡터는 현재 마크로블록의 움직임 벡터와 중간 움직임 벡터 예측변수 사이의 차이(움직임 벡터 차분값, mvd)의 차이의 시그널링에 의해 전송된다. 엔트로피 코더로서 CABAC가 사용될 때, 움직임 벡터 차이는 다음과 같이 코딩된다. 정수 값의 움직임 벡터 차분값는 절대 및 부호 부분으로 나눠진다. 절대 부분은 결과로서 생기는 빈 스트링의 접두부호와 접미부호로서 언급되는, 절단된 단항 및 3차 지수-골롬의 조합을 사용하여 이진화된다. 절단된 단항 이진화와 관련된 빈들은 콘텍스트 모델들을 사용하여 코딩되며, 지수-골롬 이진화와 관련된 빈들은 바이패스 방식에서, 즉, CABAC를 갖는 0.5의 고정 확률로 코딩된다. 단항 이진화는 다음과 같이 작동한다. 움직임 벡터 차분값의 절대 정수 값을 n이라 하고, 그리고 나서 결과로서 생기는 빈 스트링은 n번의 '1' 및 하나의 트레일링 '0'으로 구성된다., 예를 들면, n=4일 때, 빈 스트링은 '11110'이다. 절단된 단항 경우에 있어서, 한계가 존재하며 만일 값이 이러한 한계를 초과하면, 빈 스트링은 n+1번의 '1'로 구성된다. 움직임 벡터 차이의 경우를 위하여, 한계는 9와 동일하다. 이는 만일 움직임 벡터 차분값가 9번의 '1'을 야기하는 9와 동일하거나 또는 9보다 큰 절대가 코딩되면, 빈 스트링은 지수-롤롬 이진화를 갖는 접두부호 및 접미부호로 구성된다는 것을 의미한다. 절단된 단항 부분을 위한 콘텍스트 모델링은 다음과 같이 수행된다. 빈 스트링의 첫 번째 빈을 위하여, 만일 이용가능하면 상부 및 왼쪽 마크로블록들로부터 절대 움직임 벡터 차이 값들이 취해진다(만일 이용할 수 없으며, 값은 0인 것으로 추론된다). 만일 특정 컴포넌트(수평 도는 수직방향)을 위한 합이 2보다 크면, 두 번째 콘텍스트 모델이 선택되며, 만일 절대 합이 32보다 크면, 세 번째 콘텍스트 모델이 선택되며, 그렇지 않으면(절대 합이 3보다 작으면) 첫 번째 콘텍스트 모델이 선택된다. 게다가, 콘텍스트 모델들은 각각의 컴포넌트를 위하여 서로 다르다. 빈 스트링의 두 번째 빈을 위하여, 4번째 콘텍스트 모델이 사용되고 단항 부분들의 나머지 빈들을 위하여 5번째 콘텍스트 모델이 사용된다. 절대 움직임 벡터 차분값가 9와 동일하거나 이보다 클 때, 예를 들면, 절단된 단항 부분의 모든 빈은 '1'과 동일하며, 절대 움직임 벡터 차와 9 사이의 차이는 3차 지수-골롬 이진화를 갖는 바이패스 방식으로 코딩된다. 마지막 단계에서, 움직임 벡터 차분값의 부호는 바이패스 방식으로 코딩된다.
엔트로피 코더로서 CABAC를 사용할 때 움직임 벡터 차이를 위한 최신 코딩 기술은 고효율 비디오 코딩((HEVC) 프로젝트의 현재 테스트 모델(HM)에서 지정된다. 고효율 비디오 코딩에서, 블록 크기들은 다양하며 움직임 벡터에 이해 지정되는 형태는 예측 유닛(prediction unit, PU)으로서 언급된다. 상부 왼쪽 이웃의 예측 유닛 크기는 현재 예측 유닛과 다른 형태와 크기를 가질 수 있다. 따라서, 관련될 때마다, 상부와 왼쪽 이웃의 정의는 이제 현재 예측 유닛의 상부-왼쪽 노서리의 상부와 왼쪽 이웃으로서 언급된다. 코딩 자체를 위하여, 일 실시 예에 따라 첫 번째 빈을 위한 유도 과정만이 변경될 수 있다. 이웃들로부터의 움직임 벡터의 절대 합의 평가 대신에, 각각의 이웃이 개별적으로 평가될 수 있다. 만일 이웃의 절대 움직임 벡터가 이용가능하고 16보다 크면, 첫 번째 빈을 위한 콘텍스트 모델 지수는 동일한 수의 콘텍스트 모델을 야기하여 증가될 수 있으며, 나머지 절대 움직임 벡터 차분값 레벨과 부호의 코딩은 정확하게 H.264/AVC와 동일하다.
움직임 벡터 차분값의 코딩에 대하여 위에서 설명된 기술에 있어서, 콘텍스트 모델로 9 빈들까지 코딩되어야 하며, 움직임 벡터 차분값의 나머지 값은 부호 정보와 함께 낮은 복잡도의 바이패스 방식으로 코딩될 수 있다. 이러한 본 발명의 실시 예는 증가된 수의 바이패스를 야기하는 콘텍스트 모델들의 수를 감소시키고 움직임 벡터 차분값의 코딩을 위하여 필요한 콘텍스트 모델들의 수를 감소시키기 위한 기술을 설명한다. 이를 위하여, 절단 값이 9에서 1 또는 2로 감소된다. 이는 절대 움직임 벡터 차분값가 0보다 큰지를 지정하는 첫 번째 빈만이 콘텍스트 모델을 사용하여 코딩되거나 또는 절대 움직임 벡터 차분값가 0과 1보다 큰지를 지정하는 첫 번째 및 두 번째 빈이 콘텍스트 모델을 사용하여 코딩되며, 나머지 값은 바이패스 방식으로 및/또는 가변 길이 코딩 코드를 사용하여 코딩되는 것을 의미한다. 가변 길이 코딩 코드를 사용하는(단항 또는 절단된 단항 코드를 사용하지 않는) 이진화로부터 야기되는 모든 빈은 낮은 복잡도의 바이패스 방식을 사용하여 코딩된다. 파이프의 경우에 있어서, 비트스트림 내로의, 그리고 비트스트림으로부터의 직접적인 삽입이 가능하다. 게다가, 만약 있다면, 첫 번째 빈을 위한 더 나은 콘텍스트 모델 선택을 유도하기 위하여 상부와 왼쪽 이웃의 서로 다른 정의가 사용될 수 있다.
바람직한 실시 예에서, 지수-골롬 코드들은 절대 움직임 벡터 차분값 컴포넌트들의 나머지 부분을 이진화하도록 사용된다. 이를 위하여, 지수-골롬 코드의 순차는 가변적이다. 지수-골롬 코드의 순차는 다음과 같이 유도된다. 첫 번째 빈을 위한 콘텍스트 모델, 및 따라서 그러한 콘텍스트 모델이 지수가 유도되고 코딩된 후에, 지수-골롬 이진화 부분을 위한 순차로서 지수가 사용된다. 이러한 바람직한 실시 예에서, 첫 번째 빈을 위한 콘텍스트 모델은 이는 지수-골롬 코드의 순차로서 사용되는, 지수 0-2를 야기하는 1-3 범위 내에 존재하며, 이는 지수-골롬 코드의 순차로서 사용될 수 있다. 이러한 바람직한 실시 예는 고효율 경우를 위하여 사용될 수 있다.
절대 움직임 벡터 차분값의 코딩에서 5 콘텍스트의 두 배를 사용하는 위에서 설명된 기술에 대한 대안에 있어서, 9 단항 코드 이진화 빈들을 코딩하기 위하여, 14 콘텍스트 모델들(각각의 컴포넌트를 위하여 7)이 또한 사용될 수 있다. 예를 들면, 단항 부분의 첫 번째와 두 번째 빈은 이전에 설명된 것과 같이 4개의 서로 다른 콘텍스트로 코딩될 수 있고, 세 번째 빈을 위하여 5번째 콘텍스트가 사용될 수 있으며, 4번째 빈과 관련하여 6번째 콘텍스트가 사용될 수 있으며, 5번째부터 9번째 빈은 7번째 콘텍스트를 사용하여 코딩된다. 따라서, 이러한 경우에 있어서 14개의 콘텍스트가 필요할 수 있으며, 낮은 복잡도의 바이패스 방식으로 나머지 값만이 코딩될 수 있다. 증가된 수의 바이패스를 야기하는 콘텍스트 모델들로 코딩되는 빈들의 수를 감소시키고 움직임 벡터 차분값의 코딩을 위하여 필요한 콘텍스트 모델들의 수를 감소시키는 기술은 예를 들면, 9로부터 1 또는 2로와 같이, 절단 값을 감소시키는 것이다. 이는 절대 움직임 벡터 차분값가 제로보다 큰지를 지정하는 첫 번째 빈만이 콘텍스트 모델을 사용하여 코딩될 수 있거나 혹은 절대 움직임 벡터 차분값가 제로와 1보다 큰지를 지정하는 첫 번째 및 두 번째 빈이 각각의 콘텍스트 모델을 사용하여 코딩될 수 있으며, 나머지 값은 가변 길이 코딩 코드로 코딩된다는 것을 의미한다. 가변 길이 코딩 코드를 사용하는 이진화를 야기하는 모든 빈은 낮은 복잡도의 바이패스 방식을 사용하여 코딩된다. 파이프의 경우에 있어서, 비트스트림 내로의, 그리고 비트스트림으로부터의 직접적인 삽입이 가능하다. 게다가, 설명된 실시 예는 첫 번째 빈을 위한 더 나은 콘텍스트 모델 선택을 유도하기 위하여 상부 및 왼쪽 이웃의 또 다른 정의를 사용한다. 이에 더하여, 콘텍스트 모델링은 첫 번째 또는 첫 번째와 두 번째 빈을 위하여 필요한 콘텍스트 모델들이 수가 감소되어 또 다른 메모리 감소에 이르게 하는 방법으로 변형된다. 또한, 위의 이웃들과 같은 이웃들의 평가는 이웃들의 움직임 벡터 차분값 값들의 저장을 위하여 필요한 라인 버퍼/메모리의 절약을 야기할 수 없다. 마지막으로, 컴포넌트들의 코딩 순차는 두 컴포넌트들을 위한 접두부호 빈들(즉, 콘텍스트 모델들로 코딩되는 빈들)의 코딩을 허용하고 그 뒤에 바이패스 빈들의 코딩을 허용하는 방식으로 분할될 수 있다.
바람직한 실시 예에서, 절대 움직임 벡터 차분값 컴포넌트들의 나머지 부분을 이진화하기 위하여 지수-골롬 코드들이 사용된다. 이를 위하여, 지수-골롬 코드의 순차는 가변적이다. 지수-골롬 코드의 순차는 다음과 같이 유도될 수 있다. 첫 번째 빈을 위한 콘텍스트 모델, 따라서 그러한 콘텍스트 모델이 지수가 유도된 후에, 지수는 지수-골롬 이진화를 위한 순차로서 사용된다. 이러한 바람직한 실시 예에서, 첫 번째 빈을 위한 콘텍스트 모델은 지수-골롬 코드의 순차로서 사용될 수 있수 있는, 지수 0-2를 야기하는 1-3의 범위 내에 존재한다. 이러한 바람직한 실시 예는 고효율 경우를 위하여 사용될 수 있으며 콘텍스트 모델이 수는 6으로 감소된다. 다시 콘텍스트 모델들의 수를 감소시키기 위하여, 따라서 메모리를 절약하기 위하여, 또 다른 바람직한 실시 예에서 수평 및 수직 컴포넌트들이 동일한 콘텍스트 모델을 공유할 수 있다. 그러한 경우에 있어서, 3개의 콘텍스트 모델만이 필요하다. 게다가, 본 발명의 또 다른 바람직한 실시 예에서의 평가를 위하여 왼쪽 이웃만이 고려될 수 있다. 이러한 바람직한 실시 예에서, 임계값은 변형되지 않을 수 있다(예를 들면, 0 또는 1의 지수-골롬 파라미터를 야기하는 16의 단일 임계값 혹은 0 또는 2의 지수-골롬 파라미터를 야기하는 32의 단일 임계값). 이러한 바람직한 실시 예는 움직임 벡터 차분값의 저장을 위하여 필요한 라인 버퍼를 절약한다. 그러한 바람직한 실시 예를 위하여, 움직임 벡터 차분값의 코딩을 위하여 총 3개의 콘텍스트 모델이 필요하며 가능한 지수-골롬 파라미터는 0-2 범위에 존재한다. 또 다른 바람직한 실시 예에서, 임계값은 16 및 32와 동일하다. 다시, 설명된 실시 예는 고효율 경우에 적합하다.
본 발명의 또 다른 바람직한 실시 예에서, 절단 값은 9로부터 2로 감소된다. 이러한 바람직한 실시 예에서, 첫 번째 빈과 두 번째 빈은 콘텍스트 모델들을 사용하여 코딩될 수 있다. 첫 번째 빈을 위한 콘텍스트 모델 선택은 최신 또는 위의 바람직한 실시 예에서 설명된 변형된 방법으로 수행될 수 있다. 두 번째 빈을 위하여, 최신 기술로서 개별 콘텍스트 모델이 선택된다. 또 다른 바람직한 실시 예에서, 두 번째 빈을 위한 콘텍스트 모델은 왼쪽 이웃의 움직임 벡터 차분값를 평가함으로써 선택된다. 이러한 경우를 위하여, 콘텍스트 모델 지수는 첫 번째 빈을 위한 것과 동일하며, 이용가능한 콘텍스트 모델들은 첫 번째 빈을 위한 것과 다르다. 통틀어 6개의 콘텍스트 모델이 필요하다(컴포넌트들이 콘텍스트 모델들을 공유한다는 것에 유의하여야 한다). 다시, 지수-골롬 파라미터는 첫 번째 빈의 선택된 콘텍스트 모델 지수에 의존할 수 있다. 본 발명의 또 다른 바람직한 실시 예에서, 지수-골롬 파라미터는 두 번째 빈의 콘텍스트 모델 지수에 의존한다. 번 발명의 설명된 실시 예들은 고효율 경우를 위하여 사용될 수 있다.
본 발명의 또 다른 바람직한 실시 예에서, 두 빈을 위한 콘텍스트 모델들은 고정되고 왼쪽 또는 위의 이웃들을 평가함으로써 유도되지 않는다. 이러한 바람직한 실시 예를 위하여, 콘텍스트 모델의 총 수는 2와 동일하다. 본 발명의 또 다른 바람직한 실시 예에서, 첫 번째 빈과 두 번째 빈은 동일한 콘텍스트 모델을 공유한다. 그 결과, 움직임 벡터 차분값의 코딩을 위하여 하나의 콘텍스트 모델만이 필요하다. 본 발명의 두 바람직한 실시 예들에서, 지수-골롬 파라미터는 고정되고 1과 동일하다. 설명된 본 발명의 바람직한 실시 예는 두 고효율 및 낮은 복잡도 구성에 적합하다.
또 다른 바람직한 실시 예에서, 지수-골롬 부분의 순차는 첫 번째 빈의 콘텍스트 모델 지수와 관계없이 유도된다. 이러한 경우에 있어서, 지수-골롬 부분을 위한 순차를 유도하기 위하여 H.264/AVC의 통상의 콘텍스트 모델 선택의 절대 합이 사용된다. 이러한 바람직한 실시 예는 고효율 경우를 위하여 사용될 수 있다.
또 다른 바람직한 실시 예에서, 지수-골롬 코드들의 순차는 고정되고 0으로 설정된다. 또 다른 바람직한 실시 예에서, 지수-골롬 코드들의 순차는 고정되고 1로 설정된다. 바람직한 실시 예에서, 지수-골롬 코드들의 순차는 2로 고정된다. 또 다른 바람직한 실시 예에서, 지수-골롬 코드들의 순차는 3으로 고정된다. 또 다른 바람직한 실시 예에서, 지수-골롬 코드들의 순차는 현재 예측 유닛의 형태와 크기에 따라 고정된다. 설명된 바람직한 실시 예들은 낮은 복잡도 경우를 위하여 사용될 수 있다. 지수-골롬 부분의 고정된 순차는 콘텍스트 모델들로 코딩된 빈들의 감소된 수로 고려된다는 것을 이해하여야 한다.
바람직한 실시 예에서, 이웃들은 다음과 같이 정의된다. 위의 예측 유닛을 위하여, 모든 예측 유닛은 현재 예측 유닛을 포함하고 가장 큰 움직임 벡터를 갖는 예측 유닛으로 고려된다. 이는 또한 왼쪽 이웃을 위하여 수행된다. 모든 예측 유닛은 현재 예측 유닛이 평가되고 가장 큰 움직임 벡터를 갖는 예측 유닛이 사용되는 것을 포함한다. 또 다른 바람직한 실시 예에서, 모든 예측 유닛으로부터 평균 절대 움직임 벡터 값은 상부 및 왼쪽 경계를 포함하고 현재 예측 유닛은 첫 번째 빈을 유도하도록 사용된다.
위의 본 발명의 바람직한 실시 예들을 위하여, 코딩 순차를 다음과 같이 변경하는 것이 가능하다. 움직임 벡터 차분값는 수평 및 수직 방향을 위하여 차례로 지정되어야만 한다(또는 반대로). 따라서 두 개의 빈 스트링이 코딩되어야만 한다. 엔트로피 코딩 엔진을 위한 모드 스위칭의 수를 최소화하기 위하여, 첫 번째 단계에서 두 컴포넌트를 위한 콘텍스트 모델로 코딩된 빈들을 코딩하고 그 다음에 두 번째 단계에서 바이패스 방식으로 코딩된 빈들을 코딩하는 것이 가능하다. 이는 단지 레코딩이라는 것에 유의하여야 한다.
단항 또는 절단된 단항 이진화로부터 야기되는 빈들은 또한 값이 현재 빈 지수보다 큰지를 지정하는 빈 지수 당 하나의 플래그의 동등한 고정 길이 이진화에 의해 표현될 수 있다는 것을 이해하여야 한다. 예로써, 움직임 벡터 차분값의 절단된 단항 이진화를 위한 절단 값은 값들 0, 1, 2를 위한 코드워드들 0, 10, 11을 야기하는 2로 설정된다. 빈 지수 당 하나의 플래그를 갖는 상응하는 고정 길이 이진화에 있어서, 빈 지수 0(죽, 첫 번째 빈)을 위한 하나의 플래그는 절대 움직임 벡터 차분값 값이 0보다 큰지를 지정하고 빈 지수 1을 갖는 두 번째 빈을 위한 하나의 플래그는 절대 움직임 벡터 차분값 값이 1보다 큰지를 지정한다. 두 번째 플래그만이 코딩될 때 첫 번째 플래그가 1과 동일하면, 이는 동일한 코드워드들 0, 10, 11을 야기한다.
그 다음에, 일 실시 예에 따른 확률 모델들의 내부 상태의 복잡도-확장성 표현이 설명된다.
고효율-파이프 설정에서, 확률 모델의 내부 상태는 그것으로 빈을 인코딩한 후에 업데이트된다. 업데이트된 상태는 예전 상태 및 코딩된 빈의 값을 사용하는 상태 전이 테이블 룩업에 의해 유도된다. CABAC의 경우에 있어서, 확률 모델은 각각의 상태가 간격(0.0, 0.5)에서 하나의 모델 확률과 상응하는 63개의 서로 다른 상태를 취할 수 있다. 이러한 상태들 각각은 두 개이 모델 확률을 실현하기 위하여 사용된다. 상태에 할당된 확률에 더하여, 1.0 - 확률이 또한 사용되고 valMPs라 불리는 플래그가 확률 또는 1.0 - 확률이 사용되는 정보를 저장한다.
이는 총 126 상태들에 이르게 한다. 파이프 코딩 개념을 갖는 그러한 확률 모델을 사용하기 위하여, 각각의 126 상태들은 이용가능한 파이프 코더들 중 어느 하나에 매핑되는 것이 필요하다. 파이프의 현재 구현들에서, 이는 룩업-테이블을 사용함으로써 수행된다. 그러한 매핑의 일례가 테이블 A에 도시된다.
다음에서, 일 실시 예가 내부 상태를 파이프 지수로 전환하도록 룩업 테이블을 사용하여 방지하기 위하여 확률 모델의 내부 상태가 어떻게 표현될 수 있는지를 설명한다. 확률 모델의 내부 상태 변수로부터 파이프 지수를 추출하기 위하여 오로지 일부 간단한 비트 마스킹 운용들이 필요하다. 확률 모델의 내부 상태의 이러한 신규의 복잡도-확장성 표현은 두 개의 레벨 방식으로 디자인된다. 낮은 복잡도 운용이 의무적인 적용들을 위하여 첫 번째 레벨만이 사용된다. 이는 관련 빈들을 인코딩하고 디코딩하는데 사용되는 파이프 지수 및 flag valMps만을 설명한다. 설명된 파이프 엔트로피 코딩 전략의 경우에 있어서, 첫 번째 레벨은 8개의 서로 다른 확률 모델 사이를 구별하도록 사용될 수 있다. 따라서, 첫 번째 레벨은 파이프 지수를 위한 3 비트 및 valMps를 위한 하나의 또 다른 비트가 필요할 수 있다. 두 번째 레벨로 첫 번째 레벨의 각각의 코스(coarse) 확률 범위들은 높은 해상도에서 확률들의 표현을 제공하는 일부 더 작은 간격들로 개선된다. 이러한 더 상세한 표현은 확률 추정기들의 더 정확한 운용을 가능하게 한다. 일반적으로, 이는 높은 RD 성능을 겨냥한 코딩 적용들에 적합하다. 예로서, 파이프의 사용을 갖는 확률 모델들의 내부 상태의 이러한 복잡도-확장성 표현은 다음과 같이 도시된다:
Figure pct00009

첫 번째 및 두 번째 레벨은 단일 8 비트 메모리 내에 저장된다. 첫 번째 레벨(가장 유의한 비트 상의 더 가능성이 있는 심벌의 값을 갖는 파이프 지수를 정의하는 지수)을 저장하기 위하여 4 비트들이 필요하며 두 번째 레벨을 저장하기 위하여 또 다른 4 비트들이 필요하다. CABAC 확률 추정기의 행동을 구현하기 위하여, 각각의 파이프 지수는 얼마나 많은 CABAC 상태들이 파이프 지수 상에 매핑되었는가에 따라 특정 수의 허용된 세분화 지수를 갖는다. 예를 들면, 테이블 A에서의 매핑을 위하여, 테이블 B에 파이프 지수 당 CABAC 상태들의 수가 도시된다.
Figure pct00010
테이블 B: 테이블 A의 예를 위한 파이프 지수 당 CABAC 상태들의 수
빈의 인코딩 또는 디코딩 과정 동안에 파이프 지수 및 valMps는 간단한 비트 마스크(mask) 또는 비트 이동(shift) 운용들을 사용함으로써 직접적으로 액세스될 수 있다. 낮은 복잡도 코딩 과정들은 첫 번째 레벨의 4 비트들만을 필요로 하며 고효율 코딩 과정들은 CABAC 확률 추정기의 확률 모델 업데이트를 실행하기 위하여 두 번째 레벨의 4 비트들을 사용할 수 있다. 이러한 업데이트들 실행하기 위하여, 오리지널 테이블과 동일한 상태 전이들을 수행하나, 상태들의 복잡도-확장성 두-레벨 표현을 사용하는, 상태 전이 룩업-테이블이 디자인될 수 있다. 오리지널 상태 전이 테이블은 63 요소들의 두 배로 구성된다. 각각의 빈 상태를 위하여, 이는 두 개의 출력 상태를 포함한다. 복잡도-확장성 표현을 사용할 때, 상태 전이(transition) 테이블은 테이블 크기의 수용가능한 증가인 128 요소의 2배로 구성된다. 이러한 증가는 세분화 지수를 사용하기 위하여 얼마나 많은 비트들이 사용되는가에 의존하며 정확하게 CABAC 확률 추정기의 행동을 대행하기 위하여 4개의 비트가 필요하다. 그러나, 각각의 파이프 지수를 위하여 단지 8 상태만이 허용되는 것과 같이 CABAC 상태들의 감소된 세트 상에서 운용할 수 있는, 서로 다른 확률 추정기가 사용될 수 있다. 따라서 메모리 소비는 세분화 지수를 표현하도록 사용되는 비트들의 수를 적용함으로써 코딩 과정의 주어진 복잡도 레벨과 일치될 수 있다. CABAC(64 확률 상태 지수가 존재하는)를 갖는 모델 확률들의 내 부 상태와 비교하여 모델 확률들을 특정 파이프 코드에 매핑하기 위한 테이블 룩업들의 사용이 방지되고 어떠한 다른 전환도 필요하지 않다.
그 다음에, 일 실시 예에 따른 복잡도-확장성 콘텍스트 모델 업데이팅이 설명된다.
그러나, 복잡도-확장성 방법으로 콘텍스트 모델들의 업데이트를 수행하는 것이 가능하다. 즉, 콘텍스트 모델을 업데이트하는지에 대한 결정은 다양한 양상들을 기초로 할 수 있다. 예를 들면, 코더 설정은 예를 들면, 구문 요소 coeff_significant_flag의 콘텍스트 모델들 같은 특정 콘텍스트 모델들을 위하여 어떠한 업데이트도 수행할 수 없으며, 다른 모든 콘텍스트 모델을 위하여 항상 업데이트를 수행한다.
바꾸어 말하면, 선택기(402)는 다수의 미리 결정된 심벌 형태의 각각의 심벌들을 위하여, 미리 결정된 심벌 형태들의 수가 고효율 방식과 비교하는 것보다 더 낮은 복잡도에서 낮은 것과 같이 각각의 확률 모델과 관련된 각각의 미리 결정된 심벌에 따라 엔트리 디코더들(322) 중에서의 선택을 실행하도록 구성될 수 있다.
게다가, 콘텍스트 모델을 업데이트할 것인가를 제어하기 위한 표준은 예를 들면, 비트스트림 패킷의 크기, 지금까지 디코딩된 빈들의 수일 수 있거나, 또는 업데이트는 콘텍스트 모델을 위한 빈들의 특정한 고정 또는 가변 수를 코딩한 후에만 수행된다.
콘텍스트 모델들을 업데이트할 것인가를 결정하기 위한 이러한 전략과 함께, 복잡도-확장성 콘텍스트 모델 업데이팅이 구현될 수 있다. 이는 콘텍스트 모델 업데이트들이 수행되는 비트스트림 내의 빈들의 부를 증가시키거나 감소시키도록 허용한다. 콘텍스트 모델 업데이트들의 수가 높을수록, 코딩 효율은 더 뛰어나고 계산 복잡도가 높아진다. 따라서, 복잡도-확장성 콘텍스트 모델 업데이팅은 설명된 전략으로 달성될 수 있다.
바람직한 실시 예에서, 콘텍스트 모델 업데이트는 구문 요소들 coeff_significant_flag, coeff _ abs _ greater1, 및 coeff _ abs _ greater2을 제외하고 모든 구문 요소의 빈들을 위하여 수행된다.
또 다른 바람직한 실시 예에서, 콘텍스트 모델 업데이트는 coeff_significant_flag, coeff _ abs _ greater1, 및 coeff _ abs _ greater2만의 빈들을 위하여 수행된다.
또 다른 바람직한 실시 예에서, 콘텍스트 모델 업데이트는 조각의 인코딩 또는 디코딩이 시작할 때 모든 콘텍스트 모델을 위하여 수행된다. 특정한 미리 정의된 수의 변환 블록들이 처리된 후에, 콘텍스트 모델 업데이트는 조각의 말단이 도달할 때까지 모든 콘텍스트 모델을 위하여 사용할 수 없다.
예를 들면, 선택기(402)는 미리 결정된 심벌 형태의 심벌들을 위하여, 미리 결정된 심벌 형태의 심벌들이 업데이트와 함께 실행되는 심벌들의 시퀀스의 학습 단계의 길이가 고효율 방식과 비교하는 것보다 낮은 복잡도에서 더 짧은 것과 같이, 관련 확률 모델의 업데이팅과 함께 또는 업데이팅 없이 미리 결정된 심벌 형태와 관련된 확률 모델에 따라 엔트로피 디코더들(322) 중에서의 선택을 실행하도록 구성될 수 있다.
또 다른 바람직한 실시 예는 이전에 설명된 바람직한 실시 예와 동일하나, 이는 하나의 테이블이 모든 콘텍스트 모델의 "첫 번째 부분"(valMps 및 pipeIdx)를 저장하고 두 번째 테이블이 모든 콘텍스트 모델의 "두 번째 부분"(세분화Idx)을 저장하는 것과 같은 방법으로 콘텍스트 모델의 내부 상태의 복잡도-확장성 표현을 사용한다. 모든 콘텍스트 모델을 위하여 콘텍스트 모델 업데이팅이 사용될 수 없는(이전의 바람직한 실시 예에서 설명된 것과 같이), 지점에서, "두 번째 부분"을 저장한 테이블은 더 이상 필요하지 않고 버려질 수 있다.
그 다음에, 일 실시 예에 따른 빈들의 시퀀스를 위한 콘텍스트 모델 업데이팅이 설명된다.
낮은 복잡도-파이프 구성에서, coeff _ significant _ flag, coeff_abs_greater1, 및 coeff _ abs _ greater2을gudxodml 구문 요소들의 빈들은 서브셋들로 그룹화된다. 각각의 서브셋을 위하여, 그것의 빈들을 인코딩하기 위하여 단일 콘텍스트 모델이 사용된다. 이러한 경우에 있어서, 콘텍스트 모델 업데이트는 이러한 시퀀스의 고정된 수의 빈들의 코딩 후에 수행될 수 있다. 이는 그 다음에 다중-빈 업데이트를 나타낸다. 그러나, 이러한 업데이트는 마지막으로 코딩된 빈과 콘텍스트 모델의 내부 상태만을 사용하는 업데이트와 다를 수 있다. 예를 들면, 코딩된 각각의 빈을 위하여, 하나의 콘텍스트 모델 업데이트 단계가 수행된다.
다음에서, 8 빈으로 구성되는 바람직한 서브셋의 인코딩을 위한 예들이 주어진다. 글자 'b'는 빈의 디코딩을 표시하고 글자 'u'는 콘텍스트 모델의 업데이트들을 표시한다. 낮은 복잡도-파이프 경우에 있어서, 콘텍스트 모델 업데이트들을 하지 않고 빈 디코딩만이 수행된다:
b b b b b b b b
고효율-파이프 경우에 있어서, 각각의 빈의 디코딩 후에, 콘텍스트 모델 업데이트가 수행된다:
b u b u b u b u b u b u b u b u
복잡도를 다소 감소시키기 위하여, 빈들의 시퀀스 뒤에 콘텍스트 모델 업데이트가 수행될 수 있다(본 실시 예에서는 각각 4 빈 뒤에, 이러한 4 빈들의 업데이트들이 수행된다):
b b b b u u u u b b b b u u u u
즉, 선택기(402)는 미리 결정된 심벌 형태의 심벌들을 위하여, 업데이트와 함께 미리 결정된 심벌 형태의 심벌들을 위한 선택이 실행되는 주파수가 고효율 방식과 비교하는 것보다 낮은 복잡도에서 낮은 것과 같이, 관련 확률 모델의 업데이트와 함께 또는 업데이트 없이 미리 결정된 심벌 형태와 관련된 확률 모델에 따라 엔트로피 디코더들(322) 중에서의 선택을 실행하도록 구성될 수 있다.
이러한 경우에 있어서, 4 빈들의 디코딩 후에, 방금 디코딩된 4 빈들을 기초로 하여 4 업데이트 단계가 뒤따른다. 이러한 4 업데이트 단계는 룩업 특별 룩업-테이블을 사용함으로써 하나의 단일 단계로 수행될 수 있다. 이러한 룩업 테이블은 4 빈들의 각각의 가능한 조합 및 콘텍스트 모델의 각각의 가능한 내부 상태를 위하여 4 종래의 업데이트 단계들 후에 결과로서 생기는 새로운 상태를 저장한다.
특정 방식에서, 구문 요소(coeff _ significant _ flag)를 위하여 다중-빈 업데이트가 사용된다. 다른 모든 구문 요소의 빈들을 위하여, 어떠한 콘텍스트 업데이트 모델도 사용되지 않는다. 다중-빈 업데이트 단계가 수행되기 전에 코딩되는 빈들의 수는 n으로 설정된다. 세트의 빈들의 수가 n으로 나눠질 수 없을 때, 1 내지 n-1 빈들은 마지막 다중-빈 업데이트 후에 서브셋의 끝에 남는다. 이러한 각각의 빈들을 위하여, 이러한 빈들을 모두 코딩한 후에 종래의 단일-빈 업데이트가 수행된다. 수 n은 1보다 큰 어떠한 양의 수일 수 있다. 또 다른 방식은 다중-빈 업데이트가 coeff _ significant _ flag, coeff _ abs _ greater1, 및 coeff _ abs _ greater2의 임의의 조합들(단지 coeff_abs_greater1만 대신에)을 위하여 수행되는 것을 제외하고는, 이전 방식과 동일할 수 있다. 따라서, 이러한 방식은 다른 것보다 더 복잡할 수 있다. 다른 모든 구문 요소(다중-빈 업데이트가 사용되지 않는)는 서브셋들 중 하나를 위하여 단일 빈 업데이트가 사용되고 나머지 서브셋을 위하여 어떠한 확률 모델 업데이트도 사용되지 않는 두 개의 서로소 서브셋으로 나눠진다. 어떤 가능한 서로소 서브셋도 유효하다(엔트로피 서브셋을 포함하여).
대안의 실시 예에서, 다중-빈 업데이트는 다중 빈 업데이트 단계 이전에 즉시 코딩되는 마지막 m 빈들만을 기초로 할 수 있다. m은 n보다 작은 어떠한 자연수일 수 있다. 따라서, 디코딩은 다음과 같이 수행될 수 있다:
b b b b u u b b b b u u b b b b u u b b b b....
n=4이고 m=2.
즉, 선택기(402)는 미리 결정된 심벌 형태의 심벌들을 위하여, n/m 비율이 고효율 방식과 비교하는 것보다 낮은 복잡도에서 높은 것과 같이, 미리 결정된 심벌 형태의 가장 최근의 m 심벌들을 기초로 하여 미리 결정된 형태의 관련 확률 모델의 모든 n-번째 심벌의 업데이트와 함께, 미리 결정된 심벌 형태와 관련된 확률 모델에 따라 엔트로피 디코더들(322) 중에서의 선택을 실행하도록 구성될 수 있다.
또 다른 바람직한 실시 예에서, 구문 요소(coeff _ significant _ flag)를 위하여, 콘텍스트 모델들을 구문 요소들의 빈들에 할당하기 위하여 고효율-파이프 구성을 위하여 위에 설명된 것과 같이 로컬 템플릿을 사용하는 콘텍스트 모델링 전략이 사용될 수 있다. 그러나, 이러한 빈들을 위하여, 어떠한 콘텍스트 모델 업데이트도 사용되지 않는다.
또한, 선택기(402)는 미리 결정된 심벌 형태의 심벌들을 위하여, 콘텍스트들의 수 및/또는 이전에 검색된 심벌들의 수가 고효율 방식과 비교하는 것보다 낮은 복잡도에서 낮은 것과 같이, 심벌들의 시퀀스의 이전에 검색된 심벌들의 수에 따라 콘텍스트들의 수 중 어느 하나를 선택하고 선택된 콘텍스트와 관련된 확률 모델에 따라 엔트로피 디코더들 중에서의 선택을 실행하도록 구성될 수 있다.
8 비트 초기화 값들을 사용하는 확률 모델 초기화
본 섹션은 종래의 비디오 코딩 표준 H.256/AVC의 경우에서와 같이 두 8 비트 값 대신에 이른바 8 비트 초기화 값을 사용하는 확률 모델들의 복잡도-확장성 내부 상태의 초기화 과정을 설명한다. 이는 H.264/AVC의 CABAC에서의 확률 모델들을 위하여 사용되는 초기 값 쌍들에 비교할 수 있는 두 부분으로 구성된다. 두 부분은 양자화 파라미터로부터 특정 확률(예를 들면, 파이프 지수 형태의)을 표현하는, 확률 모델의 초기 상태를 계산하기 위하여 선형 방정식의 두 파라미터를 표현한다:
Figure pct00011
첫 번째 부분은 슬로프를 설명하며 인코딩 또는 디코딩 동안에 사용되는 양자화 파라미터와 관련하여 초기 상태의 의존성을 이용한다.
Figure pct00012
두 번째 부분은 주어진 양자화 파라미터에서의 파이프 지수뿐만 아니라 valMps를 정의한다.
주어진 초기화 값을 사용하여 확률 모델을 초기화하기 위하여 두 가지 서로 다른 방식이 이용가능하다. 첫 번째 방식은 도시된 양자화 파라미터-독립 초기화이다. 이는 단지 파이프 지수 및 모든 양자화 파라미터를 위한 초기화 값의 두 번째 부분에 정의된 valMPs만을 사용한다. 이는 슬로프가 0과 동일한 경우와 동일하다. 두 번째 방식은 양자화 파라미터-의존 초기화로 설명되며 이는 부가적으로 파이프 지수를 변경하고 세분화 지수를 정의하기 위하여 초기화 값의 첫 번째 부분의 슬로프를 사용한다. 8 비트 초기화 값의 두 부분은 다음과 같이 도시된다:
Figure pct00013

이는 두 개의 4 비트 부분들로 구성된다. 첫 번째 부분은 어레이 내에 저장되는 16개의 서로 다른 미리 정의된 슬로프 중에서 1을 가리키는 지수를 포함한다. 미리 정의된 슬로프들은 7개의 음의(negative) 슬로프(슬로프 지수 0-6), 제로와 동일한 하나의 슬로프(슬로프 지수 7) 및 8개의 양의 슬로프(슬로프 지수 8-15)로 구성된다. 슬로프들이 테이블 C에 도시된다.
Figure pct00014
테이블 C;
부동 소수점 연산(floating point operation)들의 사용을 방지하기 위하여 모든 값들은 256의 인자에 의해 매겨진다. 두 번째 부분은 확률 간격 p=0 및 p=1 사이의 valMps=1의 오름차순 확률을 구현하는 파이프 지수이다. 바꾸어 말하면, 파이프 코더 n은 파이프 코더 n-1보다 높은 모델 확률에서 운용하여야만 한다. 모든 모델 확률을 위하여, 하나의 파이프 확률 지수가 이용가능하며 이는 확률 간격이 Q=26을 위하여 pvalMps=1의 확률을 포함하는 파이프 코더를 식별한다.
Figure pct00015
테이블 D: 초기화 값의 두 번째 부분의 파이프 코더들과 valMps로의 매핑: UR= 단항-대-라이스-코드, TB=3-빈-코드, BP=빈-파이프-코드, EP=동등한 확률(코딩되지 않은)
y=m*(QP-QPref)+256*b 형태의 간단한 선형 방정식을 계산함으로써 확률 모델들의 내부 상태의 초기화를 계산하기 위하여 양자화 파라미터 및 8 비트 초기화 값이 필요하다. m은 슬로프 지수(8 비트 초기화 값의 첫 번째 부분)의 사용에 의해 테이블 C로부터 취해지는 슬로프를 정의하고 b는 QPref=26(8 비트 초기화 값의 두 번째 부분: "파이프 확률 지수")에서 파이프 코더를 나타낸다는 것에 유의하여야 한다. 그때, valMPS는 1이고 만일 y가 2047보다 크면 파이프 지수는 (y-2048) ≫ 8과 동일하다. 그렇지 않으면, valMps는 0이고 파이프 지수는 (2047-y) ≫ 8과 동일하다. 세분화 지수는 만일 valMPS가 1과 동일하면 ((y-2048) & 255) * numStates) ≫ 8과 동일하다. 두 경우에 있어서, numStates는 테이블 B에 도시된 것과 같이 파이프 지수의 CABAC 상태들의 수와 동일하다.
위의 전략은 파이프 코더들과 조합하여 사용될 수 있을 뿐만 아니라 위에서 언급된 CABAC 전략들과 함께 사용될 수 있다. 파이프가 없을 때, 파이프 지수(즉, pState_current[bin]의 각각의 가장 중요한 빈들)당, CABAC 상태들, 즉, 그 사이에 확률 업데이트 내의 상태 전이가 실행되는 확률 상태들(pState_current[bin])은 그때 단지 실제로 양자화 파라미터에 따라 CANAC 상태의 피스-방식 선형 보간을 실현하는 파라미터들의 세트이다. 실제로, 게다가, 이러한 파이프-방식의 선형 보간은 또한 파라미터 numStates가 모든 파이프 지수를 위하여 동일한 값을 사용하는 경우에 사실상 사용할 수 없을 수 있다. 예를 들면, 모든 경우를 위한 numStates의 8로의 설정은 총 16*8 상태를 생산하고 세분화 지수의 계산은 valMPs=1을 위한 ((y-2048)&255)≫5 또는 valMPs=0을 위한 ((2047-y)&255≫5로 단순화한다. 이러한 경우를 위하여, valMPs, 파이프 지수, 및 세분화 지수를 사용하는 표현의 다시 H.264/AVC의 오리지널 CABAC에 의해 사용되는 표현으로의 매핑은 매우 간단하다. CABAC 상태는 (파이프 지수 ≪ 3)+ 세분화 지수로서 주어진다. 이러한 양상은 도 16과 관련하여 아래에 더 설명된다.
8 비트 초기화 값의 슬로프가 제로와 동일하지 않거나 또는 양자화 파라미터가 26과 동일하지 않으면, 인코딩 또는 디코딩 과정의 양자화 파라미터를 갖는 선형 방정식의 사용에 의해 내부 상태를 계산하는 것이 필요하다. 제로와 동일시하는 슬로프 또는 현재 코딩 과정의 양자화 파라미터가 26과 동일한 슬로프의 경우에 있어서 8 비트 초기화 값의 두 번째 부분이 확률 모델의 내부 상태를 초기화하기 위하여 직접적으로 사용될 수 있다. 그렇지 않으면, 결과로서 생기는 내부 상태의 소수 부분은 특정 파이프 코더의 한계들 사이의 선형 보간에 의한 고효율 코딩 적용들에서 세분화 지수를 결정하기 위하여 더 활용될 수 있다. 이러한 바람직한 실시 예에서 선형 보간은 간단히 소수 부분을 현재 파이프 코더를 위하여 이용가능한 세분화 지수들의 총 수와 곱하고 그 결과를 가장 가까운 정수 세분화 지수에 매핑함으로써 실행된다.
확률 모델들의 내부 상태의 초기화의 과정은 파이프 확률 지수 상태들의 수와 관련하여 변경될 수 있다. 특히, 파이프 코더 E1을 사용하는 동일한 가능 방식의 이중 발생, 즉 1 또는 0인 더 가능성이 있는 심벌 사이를 구별하기 위한 두 서로 다른 파이프 지수의 사용은 다음과 같이 방지될 수 있다. 다시. 과정은 조각 데이터의 파싱 동안에 적용될 수 있으며, 이러한 과정의 입력은 테이블 E에 도시된 것과 같이 예를 들면, 초기화되는 모든 콘텍스트 모델을 위하여 비트 스트림 내에 전송될 수 있는, 8 비트 초기화 값일 수 있다.
테이블 E: 확률 모델을 위한 무한 값의 8 비트들의 설정
Figure pct00016

처음의 4 비트는 슬로프 주슬 정의하며 비트들 b4-b7을 마스킹함으로써 검색된다. 모든 슬로프 지수를 위하여 테이블 F에 슬로프(m)가 지정되고 표시된다.
테이블 F. 슬로프 지수를 위한 변수 m의 값들
Figure pct00017

비트들 b0-b3, 8 비트 초기 값의 마지막 4 비트들은 확률 지수를 식별하고 미리 정의된 양자화 파라미터에서의 확률을 설명한다. 확률 지수 0은 각각 값 0을 갖는 심벌들을 위한 가장 높은 확률을 나타내고, 확률 지수 14는 값 1을 갖는 심벌들을 위한 가장 높은 확률을 나타낸다. 테이블 G는 각각의 확률 지수를 위하여 상응하는 파이프 코더와 그것의 valMPs를 나타낸다.
테이블 G. 초기 값의 마지막 4 부분의 파이프 코더들과 valMPs로의 매핑. UR = 단항-대-라이스-코드, TB = 3-빈-코드, BP = 빈-파이프-코드, EP = 동일한 확률(코딩되지 않은)
Figure pct00018

두 값과 함께 내부 상태의 계산은 y=m*x+256*b와 같은 선형 방정식을 사용함으로써 수행될 수 있는데, 여기서 m은 슬로프를 나타내고, x는 현재 조각의 양자화 파라미터를 나타내며 b는 아래의 설명에서 나타내는 것과 같이 확률 지수로부터 유래한다. 이러한 과정에서의 모든 값들은 부동 소수점 운용들의 사용을 방지하기 256의 인자에 의해 계산된다. 이러한 과정의 출력(y)은 현재 양자화 파라미터에서의 확률 모델의 내부 상태를 표현하며 8 비트 메모리 내에 저장된다. G에 도시된 것과 같이 내부 상태는 valMPs, 파이프 지수 및 세분화 지수로 구성된다.
테이블 H. 확률 모델의 내부 상태의 설정
Figure pct00019

세분화 지수와 파이프 지수의 할당은 CABAC 확률 모델의 내부 상태(pStateCtx)와 유사하며 H 내에 표현된다.
테이블 I. 파이프 지수, 세분화 지수 및 확률 상태 지수
Figure pct00020

바람직한 실시 예에서 확률 지수는 QP26에서 정의된다. 8 비트 초기화 값을 기초로 하여 내부 상태(valMps, 파이프 지수 및 세분화 지수)는 다음의 슈도-코드에서 설명되는 것과 같이 처리된다:
n = ( probIdx ≪ 8 ) - m * 26
fullCtxState = max( 0, min( 3839, ( m * max( 0,min( 51, SliceQPγ )
) ) ) + n + 128 )
remCtxState = fullCtxState & 255
preCtxState = fullCtxState ≫ 8
if( preCtxState < 8 ) {
pipeIdx = 7 preCtxState
valMPS = 0
} else {
pipeIdx = preCtxState - 8
valMPS = 1
}
offset = { 3, 7, 5, 7, 10, 14, 16, 1 }
if( pipeIdx = = 0 ) {
if( remCtxState <= 127 )
remCtxState = 127 - remCtxState
else
remCtxState = remCtxState - 128
refineIdx = ( ( remCtxState ≪ 1 ) * offset ) ≫ 8
} else {
if( valMPS = = 0 )
remCtxState = 255 - remCtxState
refineIdx = ( remCtxState * offset[pipeIdx] ) ≫ 8
}
슈도 코드에 도시된 것과 같이 세분화 지수는 파이프 지수의 간격 사이를 선형으로 보간하고 그 결과를 상응하는 세분화 지수에 양자화함으로써 계산된다. 오프셋은 각각의 파이프 지수를 위하여 세분화 지수의 총 수를 지정한다. fullCtxState/256의 간격 [7, 8]은 반으로 나눠진다. 간격 [7, 7.5]은 pipeIdx = 0 및 valMps = 0으로 매핑되며 간격 [7.5, 8]은 pipeIdx = 0 및 valMps = 1로 매핑된다. 도 16은 내부 상태를 유래하는 과정을 도시하고 fullCtxState/256의 pStateCtx로의 매핑을 나타낸다.
슬로프는 파이프 지수 및 양자화 파라미터의 의존성을 표시한다는 것에 유의한다. 만일 8 빈 초기화 값의 슬로프 지수가 7과 동일하면 결과로서 생기는 내부 상태는 모든 조각 양자화 파라미터들을 위하여 동일하며 따라서 내부 상태의 초기화 과정은 조각의 현재 양자화 파라미터로부터 독립된다.
즉, 선택기(402)는 두 방식, 낮은 복잡도와 고효율에 일반적일 수 있는 테이블 내의 지수로서 이러한 구문 요소를 사용하는 그 안에 포함되는 변환 계수 레벨들과 같이, 이러한 부의 데이터를 양자화하기 위하여 사용되는 양자화 단계 크기(QP)를 표시하는 구문 요소를 사용하여, 전체 스트림 또는 그 다음의 조각과 같은 데이터스트림의 다음의 부를 디코딩하는데 사용되는 파이프 지수들을 초기화할 수 있다. 테이블 D와 같은 테이블은 각각의 참조 QPref를 위하여, 각각의 심벌 형태를 위한 파이프 지수들, 또는 각각의 심벌 형태를 위한 다른 데이터를 포함할 수 있다. 현재 부의 실제 양자화 파라미터에 따라, 선택기는 폭(QP-QPref)을 곱하는 것에 의한 것과 같이, 실제 양자화 파라미터와 양자화 파라미터 자체에 의해 지수화되는 각각의 테이블 엔트리를 사용하여 파이프 지수 값을 계산할 수 있다. 낮은 복잡도 및 고효율 방식에서의 유일한 차이는 다음과 같다: 선택기는 고효율 방식과 비교하여 낮은 복잡도 방식의 경우 더 낮은 정확도로 결과를 계산한다. 선택기는 예를 들면, 단지 계산 결과의 정수 부분을 사용할 수 있다. 고효율 방식에서, 낮은 정확도 또는 정수 부분에 의해 표시되는 것과 같은 각각의 파이프지수를 위하여 이용가능한 세분화 지수 중의 하나를 선택하기 위하여 소수 부분(fractional part)과 같은, 가장 높은 정확도 나머지가 사용된다. 위에서 언급된 테이블 워크의 사용에 의한 것과 같은 확률 적용성을 실행하기 위하여 세분화 지수는 고효율 방식에서(또한 잠재적으로 더 드물게 낮은 복잡도 방식에서) 사용된다. 높은 경계에서 현재 파이프 지수를 위한 이용가능한 지수들을 제거할 때, 세분화 지수의 최소화와 함께 가장 높은 파이프지수가 그 다음에 선택된다. 낮은 경계에서 현재 파이프 지수를 위한 이용가능한 지수들을 제거할 때, 새로운 파이프 지수를 위하여 이용가능한 최대로 세분화 지수의 최대화와 함께 그 다음으로 낮은 파이프 지수가 그 다음에 선택된다. 세분화 지수와 함께 파이프 지수는 확률 상태를 정의하나, 부분 스트림들 중에서의 선택을 위하여, 선택기는 단지 파이프 지수를 사용한다. 세분화 지수는 단지 확률을 더 가깝게, 또는 더 정확하게 추적하는 역할을 한다.
그러나, 위의 설명은 또한 복잡도 확장성이 도 7-10의 파이프 코딩 개념 또는 도 12에 도시된 것과 같은 디코더를 사용하는 CABAC와 관계없이 달성될 수 있다는 것을 나타낸다.도 12의 디코더는 미디어 데이터가 코딩되는 데이터 스트림을 디코딩하기 위한 것이며, 데이터 스트림(601)에 따라 낮은-복잡도 방식 또는 고효율 방식을 활성화하도록 구성되는 모드 스위치(600)뿐만 아니라, 심벌 시퀀스 워드들의 정수 값 구문 요소들의 공-도메인으로의 매핑을 위하여, 제어 파라미터에 의해 제어가능한 매핑 기능을 사용하여 정수 값 구문 요소들을 획득하기 위하여 데이터 스트림으로부터 예를 들면, 직접적으로 또는 엔트로피 디코딩에 의해 획득된 심벌들의 시퀀스(603)를 디심벌라이저하도록 구성되는 디심벌라이저(602)를 포함한다. 재구성자(605)는 정수 값 구문 요소들을 기초로 하여 미디어 데이터(606)를 재구성하도록 구성된다. 디심벌라이저(602)는 화살표(607)에 의해 도시된 것과 같이, 고효율 방식이 활성화되는 경우에서의 제 1 비율로 제어 파라미터가 데이터 스트림에 따라 변경되고 제어 파라미터가 데이터 스트림에 관계없이 일정하거나 또는 낮은-복잡도 방식이 활성화되는 경우에서의 제 1 비율보다 낮은 제 2 비율로, 데이터 스트림에 따라 변경하는 것과 같이 탈심벌화을 실행하도록 구성된다. 예를 들면, 제어 파라미터는 이전에 탈심벌화된 심벌들에 따라 변경될 수 있다.
위의 설명 중 일부는 도 12의 양상을 사용하였다. 시퀀스(327) 내의 구문 요소들 coeff_abs_minus3 및 움직임 벡터 차분값은 예를 들면, 407에 의해 표시된 것과 같이 선택된 방식에 따라 디심벌라이저(314) 내에 이진화되었으며, 재구성자(605)는 재구성을 위하여 이러한 구문 요소들을 사용하였다. 분명하게, 도 11과 19의 두 양상은 또한 쉽게 조합할 수 있으나, 도 12의 양상은 또한 다른 코딩 환경들과 결합될 수 있다.
예를 들면, 위에서 설명된 움직임 벡터 차분값 코딩이 참조된다. 디심벌라이저(602)는 매핑 기능이 절단 값 아래의 정수 값 구문 요소들의 도메인의 첫 번째 간격 내의 매핑 및 절단 값을 위한 절단된 단항 코드 형태의 접두부호와 절단 값을 포함하고 절단 값 위의 정수 값 구문 요소들의 도메인의 두 번째 간격 내의 가변 길이 코딩 코드워드 형태의 접미부호의 조합을 실행하기 위하여 절단된 단항 코드를 사용하는 것과 같이 구성될 수 있으며, 디코더는 변경하는 확률 추정을 갖는 엔트로피 코딩을 사용하여 데이터 스트림(601)으로부터 절단된 단항 코드의 다수의 첫 번째 빈 및 일정한 등-확률 바이패스 방식을 사용하여 가변 길이 코딩 코드워드의 다수의 두 번째 빈을 유래하도록 구성되는 엔트로피 디코더(608)를 포함할 수 있다. 고효율 방식에서, 엔트로피 코딩은 화살표(609)에 의해 도시된 것과 같이 낮은 복잡도 코딩보다 더 복잡할 수 있다. 즉, 콘텍스트-적응성 및/또는 확률 적응성은 고효율 방식으로 적용되고 낮은 복잡도 방식으로 억제될 수 있거나, 또는 복잡도는 다양한 실시 예들과 관련하여 위에서 다룬 것과 같이, 다른 항들로 계산될 수 있다.
미디어 데이터를 데이터 스트림 내로 인코딩하기 위하여, 도 11이 디코더와 곡 맞는 인코더가 도 13에 도시된다. 이는 데이터 스트림(501) 내로 낮은-복잡도 방식 또는 고효율 방식의 활성을 신호전달하도록 구성되는 삽입기(500), 미디어 데이터(505)를 구문 요소들의 시퀀스(506) 내로 프리코딩(precoding)하도록 구성되는 구성자(504), 구문 요소들의 시퀀스(506)를 심벌들의 시퀀스(508) 내로 기호화하도록 구성되는 심벌라이저(symbolizer, 507), 각각 심벌들의 부분 시퀀스들을 데이터 스트림의 코드 워드들로 전환하도록 구성되는 복수의 엔트로피 인코더(310), 및 심벌들의 시퀀스(508)의 각각의 신벌을 복수의 엔트로피 인코더(310) 중 선택된 하나에 전달하도록 구성되는 선택기(502)를 포함할 수 있으며, 선택기(502)는 화살표(51)에 의해 도시된 것과 같이 낮은-복잡도 방식과 고효율 방식 중 활성화된 하나에 따라 선택을 실행하도록 구성된다. 인코더들(310)의 코드워드들을 위하여 선택적으로 인터리버(510)가 제공될 수 있다.
미디어 데이터를 데이터 스트림 내로 인코딩하기 위하여, 도 12에 꼭 맞는 인코더가 데이터 스트림(701) 내로 낮은-복잡도 방식 또는 고효율 방식의 활성을 신호전달하도록 구성되는 삽입기(700), 미디어 데이터(705)를 정수 값 구문 요소를 포함하는 구문 요소들의 시퀀스(706) 내로 프리코딩(precoding)하도록 구성되는 구성자(504), 및 정수 값 구문 요소들의 도메인을 심벌 시퀀스 워드들의 공-도메인에 매핑하기 위하여, 제어 파라미터에 의해 제어가능한 함수의 매핑을 사용하여 정수 값 구문 요소를 기호화하도록 구성되는 심벌라이저(707)를 포함하는 것과 같이 도 14에 도시되며, 심벌라이저(707)는 고효율 방식이 활성화되는 경우에 제 1 비율로 데이터 스트림에 따라 제어 파라미터가 변경되고 제어 파라미터는 화살표(708)에 의해 도시된 것과 같이 낮은-복잡도 방식이 활성화되는 경우에서의 제 1 비율보다 낮은 제 2 비율로, 데이터 스트림과 관계없이 일정하거나 또는 데이터 스트림에 따라 변경하는 것과 같이 기호화를 실행하도록 구성된다. 결과는 데이터스트림(701) 내로 코딩된다.
다시, 도 14의 실시 예는 위에 설명된 콘텍스트-적응적 이진 산술 인코딩/디코딩 실시 예 상으로 쉽게 전달될 수 있다는 것을 이해하여야 한다: 선택기(509)와 엔트로피 인코더들(310)은 데이터 스트림(401)을 직접적으로 출력하고 현재 데이터스트림으로부터 유래하는 빈을 위한 선택할 수 있는 콘텍스트-적응적 이진 산술 인코더 내로 압축할 수 있다. 이는 특히 콘텍스트 적용성 및/또는 확률 적용성에 있어서 사실이다.
위에서 대안의 실시 예들에 따라, 위의 실시 예들 중 일부와 관련하여 설명된 모드 스위칭 능력은 제거된다는 것을 간단히 설명하였다. 이를 명확히 하기 위하여, 단지 모드 스위칭 능력의 제거가 위의 실시 예들로부터 도 16의 실시 예를 구별하는 것에 대하여 위의 설명을 요약하는, 도 16이 참조된다. 게다가, 다음의 설명은 예를 들면, H.264와 비교하여 슬로프와 오프셋을 위한 덜 정확한 파라미터들을 사용하는 콘텍스트들의 확률 추정들의 초기화로부터 야기하는 장점들을 나타낼 것이다.
특히, 도 16은 움직임 벡터 차분값들의 수평과 수직 컴포넌트들이 움직임 벡터 차분값들의 수평과 수직 컴포넌트들의 이진화들을 사용하여 코딩되는 데이터 스트림(401)으로부터 비디오(405)를 디코딩하기 위한 디코더를 도시하며, 이진화들은 절단 값 아래의 수평과 수직 컴포넌트들의 도메인의 첫 번째 간격 내에서, 각각 수평과 수직 컴포넌트들의 절단된 단항 코드, 및 절단된 단항 코드 형태의 접두부호의 조합과 동일화한다. 각각 수평과 수직 컴포넌트들의 지수 골롬 코드의 형태의 절단 값과 접미부호는 수평과 수직 컴포넌트들의 도메인의 두 번째 간격 내에 그리고 절단 값 위에 포함되며, 절단 값은 2이고 지수 골롬 코드는 1의 순차를 갖는다. 디코더는 움직임 벡터 차분값들의 수평과 수직 컴포넌트들을 위하여, 절단된 단항 코드의 빈 위치 당 정확하게 하나의 콘텍스트를 갖는 콘텍스트-적응적 이진 엔트로피 디코딩을 사용하여 데이터 스트림으로부터 절단된 단항 코드, 및 움직임 벡터 차분값들의 이진화를 획득하기 위하여 일정한 등-확률 바이패스 방식(equi-probability bypass mode)를 사용하는 지수 골롬 코드를 유래하도록 구성되는 엔트로피 디코더(409)를 포함한다. 더 정확히 설명하면, 위에서 설명된 것과 같이 엔트로피 디코더(409)는 위에서 언급된 CABAC 전략과 같은 이진 엔트로피 디코딩을 사용하거나, 또는 이진 파이프 디코딩, 즉, 각각의 선택기/할당기와 함께 일부 병렬 운용 엔트로피 디코더들(322)을 포함하는 구성을 사용하여 데이터 스트림(401)으로부터 이진화들의 빈들(326)의 수를 유래하도록 구성될 수 있다. 디심벌라이저(314)는 움직임 벡터 차분값들의 수평과 수직 컴포넌트들의 정수 값들을 획득하기 위하여 움직임 벡터 차분값 구문 요소들의 이진화들을 탈이진화하며, 재구성자(404)는 움직임 벡터 차분값들의 수평과 수직 컴포넌트들의 정수 값들을 기초로 하여 비디오를 재구성한다.
이를 더 상세히 설명하기 위하여, 대표적으로 하나의 움직임 벡터 차분값, 즉, 예측된 움직임 벡터와 실제/재구성된 움직임 벡터 사이의 예측 잔류를 표현하는 벡터를 도시한 도 18이 간단하게 참조된다. 수평과 수직 컴포넌트들(802x) 및 802y)이 또한 도시된다. 그것들은 픽셀 위치들의 단위, 즉, 픽셀 피치, 또는 픽셀 피치의 반 혹은 1/4 등과 같은 서브픽셀 위치들의 단위로 전송될 수 있다. 수평과 수직 컴포넌트들(802x,y)은 정수 값이다. 그것들의 도메인은 제로부터 무한까지 도달한다. 부호 값은 개별적으로 처리될 수 있으며 여기서는 더 이상 고려되지 않는다. 바꾸어 말하면, 여기에 설명되는 설명은 움직임 벡터 차분값들(802x,y)의 크기에 초점을 맞춘다. 도메인은 804에 도시된다. 도 19는 서로 상에 수직으로 배치되는 컴포넌트(802x,y)의 가능한 값들과 관련된 도메인 축(804)의 오른쪽 면 상에서, 각각의 가능한 값이 매핑되는(이진화되는) 이진화들을 도시한다. 도시된 것과 같이, 절단된 단항 코드(806)만이 2의 절단 값 아래에 발생하며, 반면에 이진화는 접미부호로서, 또한 절단 값-1 위의 정수 값이 나머지를 위한 이진화를 계속하기 위하여 2의 절단 값과 동일하거나 또는 이보다 큰 가능한 값들로부터의 순차(808)의 지수 골롬 코드를 갖는다. 모든 빈들을 위하여, 단지 두 개의 콘텍스트가 제공된다: 수평과 수직 컴포넌트들(802x,y)의 이진화의 첫 번째 빈 위치를 위한 하나, 및 두 수평과 수직 컴포넌트들(802x,y)의 절단된 단항 코드(806)의 두 번째 빈 위치를 위한 또 다른 하나. 지수 골롬 코드(808)의 빈 위치를 위하여, 엔트로피 디코더(409)에 의해 등-확률 바이패스 방식이 사용된다. 즉, 두 빈 값들은 동등하게 확률을 발생하는 것으로 가정된다. 이러한 빈들을 위한 확률 추정은 고정된다. 그것에 비하여, 방금 언급된 절단된 단항 코드(806)의 빈들의 두 콘텍스트와 관련된 확률 추정이 디코딩 동안에 연속적으로 적용된다.
위의 설명에 따라, 엔트로피 디코더(409)가 방금 언급된 작업들을 실행하기 위하여 어떻게 구현될 수 있는지에 대하여, 더 상세히 설명하기 전에, 설명은 이제 화살표(810)를 사용하여 도 18에 도시된 재-이진화를 갖는 코드들(106 및 108)의 빈들을 재-이진화함으로써 디심벌라이저(314)에 의해 획득되는 것과 같이 움직임 벡터 차분값들(800)과 그것들이 정수 값을 사용하는 재구성자(404)의 가능한 구현에 초점을 맞춘다. 특히, 재구성자(404)는 위에서 설명된 것과 같이, 데이터 스트림(401)으로부터 현재 재구성되는 픽쳐의, 이 중에서 적어도 일부가 움직임-보상 예측의 대상이 되는 블록들 내로의 세분과 관련한 정보를 검색할 수 있다. 도 19는 820에서 대표적으로 재구성되는 픽쳐 및 움직임-보상 예측이 822에서 그 안의 픽쳐 콘텐츠를 예측하도록 사용되는 픽쳐(120)의 앞서 언급된 세분의 블록들을 도시한다. 도 2a-2c와 관련하여 설명된 것과 같이, 블록들(122)의 세분과 크기들을 위하여 서로 다른 가능성들이 존재한다. 이러한 블록들(122)을 위한 움직임 벡터 차분값(800)을 위한 전송을 방지하기 위하여, 재구성자(404)는 데이터 스트림이 세분이 고정된다는 사실에 더하여, 세분 정보에 더하여, 또는 세분 정보 없이, 부가적으로 머지(merge) 정보를 전송하는 머지 개념을 이용할 수 있다. 머지 정보는 어떠한 블록들(822)이 머지 그룹들을 형성하는지에 관하여 재구성자(404)로 신호를 전달한다. 이러한 측정에 의해, 재구성자(404)가 특정 움직임 벡터 차분값을 블록들(822)의 전체 머지 그룹에 적용하는 것이 가능하다. 자연적으로, 인코딩 면에서, 머지 정보의 전송은 세분 전송 오버헤드(만일 존재하면), 머지 정보 전송 오버헤드 및 머지 그룹들의 크기의 증가에 따라 감소하는 움직임 벡터 차분값 전송 오버헤드 사이의 균형의 대상이다. 다른 한편으로, 머지 그룹 당 블록들의 수의 증가는 이러한 머지 그룹을 위한 움직임 벡터 차분값의 각각의 머지 그룹의 개별 블록들의 실제 필요들로의 적용을 감소시키며 그렇게 함으로써 이러한 블록들의 움직임 벡터 차분값들의 덜 정확한 움직임-보상 예측들을 생산하고 예를 들면, 변환 계수 레벨 형태의 예측 잔류를 전송하기 위한 더 높은 전송 오버헤드를 필요로 한다. 따라서, 적절한 방식으로, 인코딩 면 상에 균형이 발견된다. 그러나, 어떠한 경우라도, 머지 개념은 덜 공간적 급간상관(intercorrelation)을 나타내는 머지 그룹들을 위한 움직임 벡터 차분값을 야기한다. 예를 들면, 멤버쉽의 특정 머지 그룹으로의 쉐이딩(shading)에 의해 도시된 도 18이 참조된다. 확실히, 이러한 블록들 내의 픽쳐 콘텐츠의 실제 움직임은 각각의 블록들을 병합하도록 디코딩된 인코딩 면의 그것과 유사하였다. 그러나, 다른 머지 그룹들 내의 픽쳐 콘텐츠의 움직임의 상관성은 낮다. 따라서, 절단된 단항 코드(806)의 빈 당 단지 하나의 콘텍스트를 사용하는 제한은 엔트로피 코딩 효율에 부정적으로 영향을 주지 않는데 그 이유는 이웃하는 픽쳐 콘텐츠 움직임 사이의 공간적 급간상관을 위하여 머지 개념이 이미 충분히 수용하기 때문이다. 콘텍스트는 단지 빈 위치는 움직임 벡터 차분값 컴포넌트(802xy)의 이진화의 일부분이고 빈 위치는 2인 절단 값에 기인하여 1 또는 2인 사실을 기초로 하여 선택될 수 있다. 따라서, 다른 이미 디코딩된 빈들/구문 요소들/움직임 벡터 차분값 컴포넌트들(802xy)은 콘텍스트 선택에 영향을 미치지 않는다.
유사하게, 재구성자(404)는 각각의 블록 또는 머지 그룹을 위하여 우선 어떠한 움직임 벡터 예측변수들의 리스트가 발생되고 그리고 나서 실제로 움직임 벡터 차분값을 예측하도록 사용되는 예측변수의 지수에 대한 데이터 스트림 정보 내로 분명하게 또는 함축적으로 전송하는 다중-가설 예측 개념(multi-hypothesis prediction concept)을 더(움직임 벡터들의 공간 및/또는 시간 예측을 넘어) 사용함으로써 움직임 벡터 차분값들에 의해 전달되는 정보 콘텐츠를 감소시키도록 구성될 수 있다. 예를 들면, 도 20에서의 비-음영 블록(122)이 참조된다. 재구성자(404)는 왼쪽으로부터, 상부로부터, 이 둘의 조합 등으로부터 같이 공간적으로의 움직임 벡터의 예측 및 비디오의 이전에 디코딩된 픽쳐와 앞서 언급된 예측변수들의 또 다른 조합의 공동-위치된 부의 움직임 벡터로부터 움직임 벡터의 공간적 예측에 의한 것과 같이 이러한 블록의 움직임 벡터를 위하여 서로 다른 예측변수들을 제공할 수 있다. 이러한 예측변수들은 인코딩 면에서 예측할 수 있는 예측가능한 방식으로 재구성자(404)에 의해 분류된다. 이를 위하여 데이터스트림 내에 일부 정보가 전달되며 재구성자에 의해 사용된다. 즉, 예측변수들의 이러한 순차 리스트 중에서 어떤 예측변수가 이러한 블록의 움직임 벡터를 위하여 실제로 사용되어야만 하는가에 대한, 일부 힌트가 데이터 스트림 내에 포함된다. 그러나, 지수가 우선 예측되고 그리고 나서 단지 그것의 예측이 전송되는 것이 또한 가능하다. 다른 가능성들이 또한 존재한다. 어떠한 경우에서도, 방금 언급된 예측 전략은 현재 블록의 움직임 벡터의 매우 정확한 예측을 가능하게 하며 따라서 움직임 벡터 차분값 내에 부과되는 정보 콘텐츠 요구가 감소된다. 따라서, 절단된 단항 코드의 단지 두 빈들 상으로의 콘텍스트-적응적 엔트로피 코딩의 제한, 도 18과 관련하여 설명된 2로 내려간 절단 값의 감소뿐만 아니라, 1이 되는 지수 골롬의 순차의 선택은 코딩 효율에 부정적으로 영향을 미치지 않는데, 그 이유는 움직임 벡터 차분값들은 높은 예측 효율에 기인하여, 움직임 벡터 차분값 컴포넌트(802x,y)의 높은 값들이 덜 빈번하게 방문되는 빈도 히스토그램을 나타내기 때문이다. 수평과 수직 컴포넌트들 사이의 구별의 어떠한 생략도 효율적인 예측에 들어맞는데, 그 이유는 예측이 예측 정확성이 높은 두 방향에서 동등하게 잘 운용되는 경향이 있기 때문이다.
위의 설명에서, 도 1-15에 제공된 전체 내용은 또한 예를 들면, 디심벌라이저(314), 재구성자(404) 및 엔트로피 디코더(409)의 기능에 관한 한, 도 16에 도시된 엔티티들 상으로 전달가능하다는 것을 이해하는 것이 필수적이다. 그럼에도 불구하고, 완전성을 위하여, 이러한 내용들 중 일부가 아래에 다시 설명된다.
방금 설명된 예측 전략의 더 나은 이해를 위하여, 도 20이 참조된다. 방금 설명된 것과 같이, 구성자(404)는 현재 블록(822) 또는 블록들의 현재 머지 그룹을 위한 서로 다른 예측변수들을 획득할 수 있으며, 이러한 예측변수들이 실선 벡터들(824)에 의해 도시된다. 예측변수들은 공간 및/또는 시간 예측에 의해 획득될 수 있는데, 부가적으로 산술 평균 운용 등이 사용될 수 있으며, 따라서 개별 예측변수들은 서로 동일하게 상관하는 방법으로 재구성자(404)에 의해 획득되었을 수 있다. 벡터들(826)이 획득된 것과 독립적으로, 재구성자(404)는 이러한 예측변수들(126)을 순차 리스트 내로 순차화하거나 또는 분류한다. 이는 도 21의 수들 1 내지 4에 의해 도시된다. 만일 분류 과정이 인코더와 디코더가 동시에 운용할 수 있도록 독특하게 결정될 수 있으면 이는 바람직하다. 그리고 나서, 방금 언급된 지수는 분명하게 또는 함축적으로, 데이터 스트림 중에서, 현재 블록 또는 머지 그룹을 위한 재구성자(404)에 의해 획득될 수 있다. 예를 들면, 제 2 예측변수 "2"가 선택되었을 수 있으며 재구성(404)는 움직임 벡터 차분값에 이러한 선택된 예측변수(126)를 더하며, 그렇게 함으로써 그리고 나서 움직임-압축 예측에 의해 현재 블록/머지 그룹의 콘텍스트를 예측하도록 사용되는, 최종적으로 재구성되는 움직임 백터(128)를 생산한다. 머지 그룹의 경우에 있어서, 머지 그룹의 개별 블록들과 관련하여 움직임 벡터(128)를 더 세분화하기 위하여, 재구성자(404)가 머지 그룹의 블록들을 위하여 제공되는 또 다른 움직임 벡터 차분값을 포함하는 것이 가능할 수 있다.
따라서, 도 16에 도시된 엔티티들의 구현들을 더 설명하면, 이는 이진 산술 디코딩 또는 이진 파이프 코딩을 사용하여 데이터 스트림(401)으로부터 절단된 단항 코드(806)를 유래하도록 구성되는 엔트로피 디코더(409)일 수도 있다. 또한, 엔트로피 디코더(409)는 절단된 단항 코드(806)의 두 위치를 위한 서로 다른 콘텍스트들, 또는 대안으로서 두 빈을 위한 동일한 콘텍스트를 사용하도록 구성될 수 있다. 엔트로피 디코더(409)는 확률 상태 업데이트를 실행하도록 구성될 수 있다. 엔트로피 디코더(409)는 현재 절단된 단항 코드(806) 외부에서 유래하는 빈을 위하여, 현재 유래된 빈을 위하여 선택된 콘텍스트와 관련된 현재 확률 상태로부터 현재 유래하는 빈에 따른 새로운 확률 상태로 전환함으로써 이를 수행한다. 위의 테이블들 Next_State_LPS 및 Next_State_MPS 위에서 열거된 다른 단계들 0 내지 5에 더하여 엔트로피 디코더에 의해 실행되는 것에 대한 테이블 룩-업이 참조된다. 위의 논의에서, 현재 확률 상태는 pstate_current에 의해 언급되었다. 이는 관심 있는 각각의 콘텍스트를 위하여 정의된다. 엔트로피 디코더(409)는 현재 확률 간격 폭 값, 즉 R을 양자화하고, 확률 간격 지수, q_index를 획득하기 위하여 현재 확률 간격을 표현하며, 차례로, 현재 확률 간격의 두 부분 간격들로의 세분을 획득하기 위하여, 현재 유래되는 빈을 위하여 선택된 콘텍스트와 관련된 현재 확률 상태에 따라, 확률 간격 지수와 확률 상태 지수, 즉, p_state를 사용하여 테이블 엔티티들 중에서 하나의 테이블 엔티티의 지수화에 의해 간격 세분을 실행함으로써 절단된 단항 코드(806) 중에서 현재 유래되는 빈을 이진 산술 디코딩하도록 구성될 수 있다. 위에서 설명된 실시 예들에서, 이러한 부분 간격들은 가장 가능하고 가장 덜 가능한 심벌과 관련되었다. 위에서 설명된 것과 같이, 엔트로피 디코더(409)는 예를 들면, 두 개 또는 세 개의, 8-비트 표현의 가장 중요한 비트들의 저장 및 현재 확률 간격 폭 값의 양자화로 현재 확률 폭 값(R)을 위한 8-비트 표현을 사용하도록 구성될 수 있다. 엔트로피 디코더(409)는 또한 현재 확률 간격의 내부로부터의 오프셋 값, 즉 V을 기초로 하여 두 부분 간격들 중에서 선택하고, 확률 간격 폭 값(R) 및 오프셋 상태 값을 업데이트하며, 선택된 부분 간격을 사용하여 현재 유래되는 빈의 값을 추론하고 업데이트된 확률 간격 폭 값(R) 및 데이터 스트림(401)으로부터의 계속적인 판독을 포함하는 오프셋 상태 값(V)의 재규격화(renormalizarion)를 실행하도록 구성될 수 있다. 엔트로피 디코더(409)는 예를 들면, 현재 확률 간격의 두 부분 간격들 내로의 세분을 획득하기 위하여 현재 확률 간격 폭 값을 이등분함으로써 지수 골롬 코드 중에서 빈을 이진 산술 디코딩하도록 구성될 수 있다. 이등분은 고정된 확률 추정과 상응하고 0.5와 동일하다. 이는 간단한 비트 이동에 의해 구현될 수 있다. 엔트로피 디코더는 또한 각각의 움직임 벡터 차분값을 위하여, 각각의 움직임 벡터 차분값의 수평과 수직 컴포넌트들의 지수 골롬 코드 이전에, 데이터 스트림(401)으로부터 각각의 움직임 벡터 차분값의 수평과 수직 컴포넌트들의 절단된 단항 코드를 유래하도록 구성될 수 있다. 이러한 측정에 의해, 엔트로피 디코더(409)는 높은 수의 빈들이 확률 추정이 고정된 빈들의 점수, 주로 0.5를 함께 형성하는 것을 이용할 수 있다. 이는 엔트로피 디코딩 과정을 가속화할 수 있다. 다른 한편으로는, 엔트로피 디코더(409)는 단지 우선 하나의 움직임 벡터 차분값의 수평과 수직 컴포넌트들을 유래함으로써 움직임 벡터 차분값들 사이의 순차를 유지하고 그리고 나서 그 다음 움직임 벡터 차분값의 수평과 수직 컴포넌트들을 계속 유래하는 것을 선호한다. 이러한 측정에 의해, 디코딩 엔티티, 즉, 도 16의 디코더 상에 부과되는 메모리 요구들은 감소되는데 그 이유는 디심벌라이저(314)가 또 다른 움직임 벡터 차분값들에 대한 스캔을 기다릴 필요 없이 즉시 움직임 벡터 차분값들의 탈-이진화를 계속하기 때문이다. 이는 콘텍스트 선택에 의해 가능할 수 있게 된다: 코드(806)의 빈 위치 당 단지 정확하게 하나의 콘텍스트가 이용가능하기 때문에, 어떠한 공간적 상관성도 검사될 필요가 없다.
재구성자(404)는 위에서 설명된 것과 같이, 움직임 벡터의 수평 및 수직 컴포넌트들을 위한 예측변수들(126)을 획득하기 위하여 공간적으로 및/또는 시간적으로 수평 및/또는 수직 컴포넌트들을 예측할 수 있고 단순히 각각의 예측변수에 대한 움직임 벡터 차분값를 더하는 것에 의한 것과 같이, 움직임 벡터 차분값들의 수평 및 수직 컴포넌트들을 사용하여 예측변수들(826)을 개선함으로써 움직임 벡터들의 수평 및 수직 컴포넌트들을 재구성할 수 있다.
또한, 재구성자(404)는 움직임 벡터들의 수평 및 수직 컴포넌트를 위한 예측의 순차 리스트를 획득하기 위하여 서로 다른 방식들로 움직임 벡터들의 수평 및 수직 컴포넌트들을 예측하고, 데이터 스트림으로부터 리스트 지수를 획득하며 리스트 지수가 움직임 벡터 차분값들의 수평 및 수직 컴포넌트들을 사용하여 가리키는 리스트의 예측변수를 개선함으로써 움직임 벡터들의 수평 및 수직 컴포넌트들을 재구성하도록 구성될 수 있다.
또한, 위에서 이미 설명된 것과 같이, 재구성자(404)는 움직임 벡터들의 수평 및 수직 컴포넌트들(820x,y)을 비디오의 픽쳐들의 블록들 내로의 세분화에 의해 정의되는 공간적 입도에 적용함으로써 움직임 보상 예측을 사용하여 비디오를 재구성하도록 구성될 수 있으며, 재구성자(404)는 병합 그룹들 내로 블록들을 그룹화하고 병합 그룹들의 유닛에서, 이진화기(314)에 의해 획득되는 움직임 벡터 차분값들의 수평 및 수직 컴포넌트들(820x,y)의 정수 값들을 적용하기 위하여 데이터 스트림(401) 내에 존재하는 구문 요소들의 병합을 사용할 수 있다.
재구성자(404)는 구문 요소들의 병합을 배제하는 데이터 스트림(401)의 일부로부터 블록들 내로 비디오 픽쳐들의 세분화를 유도할 수 있다. 재구성자(404)는 또한 관련 병합 그룹의 모든 블록들을 위한 미리 결정된 움직임 벡터의 수평 및 수직 컴포넌트들을 적용할 수 있거나, 또는 병합 그룹의 블록들과 관련된 움직임 벡터 차분값들의 수평 및 수직 컴포넌트들에 의해 이를 개선할 수 있다.
완전성만을 위하여, 도 17은 도 16의 디코더에 맞는 인코더를 도시한다. 도 17의 인코더는 구성자(504), 심벌라이저(507) 및 엔트로피 인코더(513)를 포함한다. 인코더는 움직임 벡터들을 예측하고 예측된 움직임 벡터들의 예측 에러를 표현하기 위하여 움직임 벡터 차분값들의 수평 및 수직 컴포넌트들의 정수 값들(506)을 설정함으로써 움직임 벡터들을 사용하고 움직임 벡터들을 예측으로 코딩하는 움직임 보상 예측에 의해 비디오를 예측으로 코딩하도록 구성되는 구성자(504); 움직임 벡터 차분값들의 수평 및 수직 컴포넌트들의 이진화들(508)을 획득하기 위하여 정수 값들을 이진화하도록 구성되는 심벌라이저(507)를 구비하되, 이진화들은 절단 값 아래의 수평 및 수직 컴포넌트들의 도메인의 제 1 간격 내에서, 각각 수평 및 수직 컴포넌트들의 절단된 단항 코드와, 절단 값 위의 수평 및 수직 컴포넌트들의 도메인의 제 2 간격 내에서, 각각 절단 값을 위한 절단된 단항 코드 형태의 접두부호와 수평 및 수직 컴포넌트들의 지수-골롬 형태의 접미부호의 조합을 동일시하며, 절단 값은 2이고 지수-골롬 코드는 순차 1을 가지며; 움직임 벡터 차분값들의 수평 및 수직 컴포넌트들을 위하여, 움직임 벡터 차분값들의 수평 및 수직 컴포넌트들에 일반적인, 절단된 단항 코드, 및 일정한 등-확률 바이패스 방식을 사용하는 지수-골롬 코드의 빈 위치 당 정확히 하나의 콘텍스트를 갖는 콘텍스트 적용성 이진 인코딩을 사용하여 절단된 단항 코드를 데이터 스트림 내로 인코딩하도록 구성되는 엔트로피 인코더(513)를 포함한다. 추가의 가능한 구현의 세부내용이 도 16의 디코더와 관련된 설명으로부터 도 17의 인코더 상으로 직접 이동될 수 있다.
비록 장치의 맥락에서 일부 양상들이 설명되었으나, 이러한 양상들은 또한 블록 또는 장치가 방법 단계 또는 방법 단계의 특징에 상응하는, 상응하는 방법의 설명을 나타내는 것이 자명하다. 유사하게, 방법 단계의 맥락에서 설명된 양상들은 또한 상응하는 장치의 상응하는 블록 또는 아이템 또는 특징을 나타낸다. 일부 또는 모든 방법 단계들은 예를 들면, 마이크로프로세서, 프로그램가능 컴퓨터 또는 전자 회로 같은, 하드웨어 장치에 의해(또는 사용하여) 실행될 수 있다. 일부 실시 예들에서, 일부 하나 또는 그 이상의 가장 중요한 방법 단계들이 그러한 장치에 의해 실행될 수 있다.
본 발명의 인코딩된 신호는 디지털 저장 매체 상에 저장될 수 있거나 또는 무선 전송 매체 혹은 인터넷과 같은 유선 전송 매체와 같은 전송 매체 상에 전송될 수 있다.
특정 구현 필요성에 따라, 본 발명의 실시 예들은 하드웨어 또는 소프트웨어에서 구현될 수 있다. 구현은 디지털 저장 매체, 예를 들면, 거기에 저장되는 전자적으로 판독가능한 신호들을 갖는, 플로피 디스크, DVD, CD, ROM,, PROM, EPROM, EEPROM 또는 플래시 메모리를 사용하여 실행될 수 있는데, 이는 각각의 방법이 실행되는 것과 같이 프로그램가능 컴퓨터 시스템과 협력한다(또는 협력할 수 있다). 따라서 디지털 저장 매체는 컴퓨터 판독가능할 수 있다.
본 발명에 따른 일부 실시 예들은 여기에 설명된 방법들 중의 하나가 실행되는 것과 같이, 프로그램가능 컴퓨터 시스템과 협력할 수 있는, 전자적으로 판독가능한 제어 신호들을 갖는 비-일시적 데이터 캐리어를 포함한다.
일반적으로, 본 발명의 실시 예들은 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있는데, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터 상에 구동될 때 방법들 중의 하나를 실행하도록 작동할 수 있다. 프로그램 코드는 예를 들면 기계 판독가능 캐리어 상에 저장될 수 있다.
다른 실시 예들은 기계 판독가능 캐리어 상에 저장되는, 여기에 설명된 방법들 중의 하나를 실행하기 위한 컴퓨터 프로그램을 포함한다.
바꾸어 말하면, 따라서 본 발명의 방법의 일 실시 예는 컴퓨터 프로그램이 컴퓨터상에 구동할 때, 여기에 설명된 방법들 중의 하나를 실행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
본 발명의 방법의 또 다른 실시 예는 따라서 여기에 설명된 방법들 중의 하나를 실행하기 위하여 그것에 대해 기록된, 컴퓨터 프로그램을 포함하는 데이터 캐리어(또는 디지털 저장 매체, 또는 컴퓨터 판독가능 매체)이다. 데이터 캐리어, 디지털 저장 매체 또는 기록된 매체는 일반적으로 유형(tangible) 및/또는 비-일시적이다.
본 발명의 방법의 또 다른 실시 예는 따라서 여기에 설명된 방법들 중의 하나를 실행하기 위한 컴퓨터 프로그램을 표현하는 신호들의 데이터 스트림 또는 시퀀스이다. 신호들의 데이터 스트림 또는 시퀀스는 예를 들면 데이터 통신 연결, 예를 들면 인터넷을 거쳐 전달되도록 구성될 수 있다.
또 다른 실시 예는 처리 수단들, 예를 들면, 여기에 설명된 방법들 중의 하나를 실행하거나 적용하도록 구성되는 컴퓨터, 또는 프로그램가능 논리 장치를 포함한다.
또 다른 실시 예는 여기에 설명된 방법들 중의 하나를 실행하기 위하여 거기에 설치된 컴퓨터 프로그램을 갖는 컴퓨터를 포함한다.
본 발명에 따른 또 다른 실시 예는 여기에 설명된 방법들 중 하나를 수신기 에 실행하도록 컴퓨터 프로그램을 전달하도록(예를 들면, 전자적으로 또는 광학적으로) 구성되는 장치 또는 시스템을 포함한다. 수신기는 예를 들면, 컴퓨터, 이동 기기, 메모리 장치 등일 수 있다. 장치 또는 시스템은 컴퓨터 프로그램을 수신기에 전달하기 위한 파일 서버를 포함할 수 있다.
일부 실시 예들에서, 프로그램가능 논리 장치(예를 들면, 필드 프로그램가능 게이트 어레이)는 여기에 설명된 방법들의 기능들이 일부 또는 모두를 실행하도록 사용될 수 있다. 일부 실시 예들에서, 필드 프로그램가능 게이트 어레이는 여기에 설명된 방법들 중의 하나를 실행하기 위하여 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법들은 바람직하게는 어떠한 하드웨어 장치에 의해 실행된다.
위에서 설명된 실시 예들은 단지 본 발명의 원리를 설명하기 위한 것이다. 여기에 설명된 배치들 및 내용들의 변형 및 변경들은 통상의 지식을 가진 자들에 자명할 것이라는 것을 이해하여야 한다. 따라서, 본 발명의 실시 예들의 설명에 의해 표현된 특정 상세 내용에 의한 것이 아니라 첨부된 청구항들의 범위에 의해서만 한정되는 것으로 의도된다.
10 : 인코더
20 : 샘플 어레이
21 : 빈 스트림
22 : 디코더
24 : 비트스트림
30 : 데이터 스트림
40 : 블록
40b : 마크로블록
50 : 디코더
60 : 샘플 어레이의 재구성된 버전
100 : 변환 스테이지
102 : 엔트로피 코더
104 : 역 변환 스테이지
106 : 예측변수
108 : 감산기
110 : 가산기
112 : 입력
114 : 출력
120 : 픽쳐
122 : 블록
126 : 예측변수
128 : 움직임 벡터
150 : 엔트로피 디코더
152 : 역 변환 스테이지
154 : 가산기
156 : 예측변수
158 : 입력
160 : 출력
200 : 블록
202 : 샘플
204 : 변환 블록
206 : 변환 계수
208 : 블록의 카피
301 : 구문 요소
302 : 이진화기
303 : 빈
304 : 파라미터 할당기
305 : 파라미터
306 : 빈 버퍼 선택기
307 : 출력 빈
308 : 빈 버퍼
309 : 빈
310 : 인코더
311 : 코드워드
312 : 비트스트림
313 : 구문 요소
314 : 디심벌라이저
316 :파라미터 할당기
317 : 파라미터
318 : 빈 버퍼 선택기
319 : 빈
320 : 빈 버퍼
322 : 엔트로피 디코더
325 : 입력 빈
326 : 출력 빈
327 : 구문 요소
400 : 데이터 패킷
401 : 데이터 스트림
402 : 비트스트림 데이터
404 : 재구성자
405 : 미디어 데이터
409 : 엔트로피 디코더
411 : 헤더
412 : 세그먼트
413 : 부분 비트스트림
500 : 삽입기
501 : 데이터 스트림
502 : 선택기
504 : 구성자
505 : 미디어 데이터
506 : 구문 요소들의 시퀀스
507 : 심벌라이저
508 : 심벌들의 시퀀스
510 : 인터리버
600 : 모드 스위치
601 : 데이터 스트림
602 : 디심벌라이저
603 : 시퀀스
605 : 재구성자
608 : 엔트로피 디코더
700 : 삽입기
701 : 데이터 스트림
705 : 미디어 데이터
706 : 요소들의 시퀀스
707 : 심벌라이저
800 : 움직임 벡터 차분값
802x: 수평 컴포넌트
802y : 수직 컴포넌트들
802x,y : 수평과 수직 컴포넌트
804 : 도메인 축
806 : 절단된 단항 코드
808 : 지수 골롬 코드
822 : 블록
826 : 예측변수

Claims (32)

  1. 수평과 수직 컴포넌트들의 이진화들을 사용하여 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들이 코딩되는 데이터 스트림으로부터 비디오를 디코딩하기 위한 디코더에서, 상기 이진화들은 절단 값 아래의 상기 수평과 수직 컴포넌트들의 도메인의 첫 번째 간격 내에서, 각각 상기 수평과 수직 컴포넌트들의 절단된 단항 코드와, 상기 절단 값을 포함하고 상기 절단 값 위의 상기 수평과 수직 컴포넌트들의 상기 도메인의 두 번째 간격 내에서, 각각 상기 절단 값을 위한 상기 절단된 단항 코드 형태의 접두부호와 상기 수평과 수직 컴포넌트들의 지수-골롬 형태의 접미부호의 조합을 동일시하며, 상기 절단 값은 2이고 상기 지수-골롬 코드는 순차 1을 가지는 비디오를 디코딩하기 위한 디코더에 있어서:
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들을 위하여, 움직임 벡터 차분값들의 수평과 수직 컴포넌트들에 통상적인, 절단된 단항 코드의 위치 당 정확하게 하나의 콘텍스트를 갖는 콘텍스트-적응적 이진 엔트로피 디코딩을 사용하여 데이터 스트림으로부터의 상기 절단된 단항 코드 및, 움직임 벡터 차분값들의 이진화를 획득하기 위하여 일정한 등-확률 바이패스 방식을 사용하여 지수-골롬 코드를 유래하도록 구성되는 엔트로피 디코더;
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들의 정수 값들을 획득하기 위하여 상기 움직임 벡터 차분값 구문 요소들의 이진화들을 탈이진화하도록 구성되는 디심벌라이저;
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들의 정수 값들을 기초로 하여 상기 비디오를 재구성하도록 구성되는 재구성자;를 포함하는 것을 특징으로 하는 디코더.
  2. 제 1항에 있어서, 상기 엔트로피 디코더(409)는 이진 산술 디코딩 또는 파이프 디코딩을 사용하여 상기 데이터 스트림(401)으로부터 상기 절단된 단항 코드(806)를 유래하도록 구성되는 것을 특징으로 하는 디코더.
  3. 제 1항 또는 2항에 있어서, 상기 엔트로피 디코더(409)는 상기 절단된 단항 코드(806)의 상기 두 빈 위치들을 위하여 서로 다른 콘텍스트들을 사용하도록 구성되는 것을 특징으로 하는 디코더.
  4. 제 1항 내지 3항 중 어느 한 항에 있어서, 상기 엔트로피 디코더(409)는 상기 절단된 단항 코드(806) 중에서 현재 유래하는 빈을 위하여, 상기 현재 유래되는 빈을 위하여 선택된 콘텍스트와 관련된 현재 확률 상태로부터 상기 현재 유래되는 빈에 따라 새로운 확률 상태로 이동시킴으로써 확률 상태 업데이드를 실행하도록 구성되는 것을 특징으로 하는 디코더.
  5. 제 1항 내지 4항 중 어느 한 항에 있어서, 상기 엔트로피 디코더(409)는 확률 간격 지수를 획득하기 위하여 현재 확률 간격을 표현하는 현재 확률 간격 폭 값을 양자화하고, 상기 현재 확률 간격의 두 부분 간격들 내로의 세분을 획득하기 위하여 현재 유래되는 상기 빈을 위하여 선택된 상기 콘텍스트와 관련된 현재 확률 상태에 따라 확률 간격 지수와 확률 상태 지수를 사용하여 테이블 엔트리 중에서 하나의 테이블 엔트리의 지수화에 의해 간격 세분을 실행함으로써, 상기 절단된 단항 코드(806) 중에서 현재 유래되는 빈을 이진 산술 디코딩하도록 구성되는 것을 특징으로 하는 디코더.
  6. 제 5항에 있어서, 상기 엔트로피 디코더(409)는 상기 현재 확률 간격 폭 값을 위하여 8 비트 표현을 사용하고 상기 현재 확률 폭 값을 양자화하는데 상기 8 비트 표현의 2개 또는 3개의 가장 중요한 비트들을 저장하도록 구성되는 것을 특징으로 하는 디코더.
  7. 제 5항 또는 6항에 있어서, 상기 엔트로피 디코더(409)는 상기 현재 확률 간격의 내부로부터의 오프셋 상태 값을 기초로 하여 상기 두 부분 간격들 중에서 선택하고, 상기 확률 간격 폭 값과 상기 오프셋 상태 값을 업데이트하며, 상기 선택된 부분 간격을 사용하여 현재 유래되는 상기 빈의 값을 추론하며, 상기 데이터 스트림(401)으로부터의 비트들의 판독의 연속을 포함하는 상기 업데이트된 확률 간격 폭 값과 상기 오프셋 상태 값의 재규격화를 실행하도록 구성되는 것을 특징으로 하는 디코더.
  8. 제 5항 내지 7항 중 어느 한 항에 있어서, 상기 엔트로피 디코더(409)는 일정한 등-확률 바이패스 방식에서, 상기 현재 확률 간격의 두 부분 간격들 내로의 세분을 획득하기 위하여 상기 현재 확률 간격 폭 값을 이등분함으로써 상기 지수-골롤 코드 중에서 하나의 빈을 이진 산술 디코딩하도록 구성되는 것을 특징으로 하는 디코더.
  9. 제 1항 내지 8항 중 어느 한 항에 있어서, 상기 엔트로피 디코더(409)는 각각의 움직임 벡터 차분값을 위하여, 상기 각각의 움직임 벡터 차분값의 상기 수평과 수직 컴포넌트들의 상기 지수-골롬 코드 전에, 상기 데이터 스트림으로부터 상기 각각의 움직임 벡터 차분값의 상기 수평과 수직 컴포넌트들의 상기 절단된 단항 코드를 유래하도록 구성되는 것을 특징으로 하는 디코더.
  10. 제 1항 내지 9항 중 어느 한 항에 있어서, 상기 재구성자는 움직임 벡터들의 상기 수평과 수직 컴포넌트들을 위한 예측 변수를 획득하고 상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들을 사용하여 상기 예측변수들(826)을 세분화함으로써 상기 움직임 벡터들의 상기 수평과 수직 컴포넌트들을 재구성하기 위하여 상기 움직임 벡터들의 상기 수평과 수직 컴포넌트들을 공간적으로 및/또는 시간적으로 예측하도록 구성되는 것을 특징으로 하는 디코더.
  11. 제 1항 내지 10항 중 어느 한 항에 있어서, 상기 재구성자는 상기 움직임 벡터들의 수평과 수직 컴포넌트들을 위한 예측들의 순차 리스트를 획득하기 위하여 서로 다른 방법들로 상기 움직임 벡터들의 수평과 수직 컴포넌트들을 예측하고, 상기 데이터 스트림으로부터 리스트 지수를 획득하며, 상기 리스트 지수가 상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들을 사용하여 나타내는 상기 예측변수를 세분화함으로써 상기 움직임 벡터들의 수평과 수직 컴포넌트들을 재구성하도록 구성되는 것을 특징으로 하는 디코더.
  12. 제 10항 또는 11항에 있어서, 상기 재구성자는 상기 움직임 벡터들의 수평과 수직 컴포넌트들의 사용에 의해 움직임-보상 예측을 사용하여 상기 비디오를 재구성하도록 구성되는 것을 특징으로 하는 디코더.
  13. 제 12항에 있어서, 상기 재구성자는 블록들 내의 상기 비디오의 픽쳐들의 세분화에 의해 정의되는 공간 입도에서 상기 움직임 벡터들의 수평과 수직 컴포넌트들의 적용에 의해 움직임-보상 예측을 사용하여 상기 비디오를 재구성하도록 구성되며, 상기 재구성자는 상기 블록들을 머지 그룹들 내로 분류하고 머지 그룹들의 유닛들로, 상기 탈이진화기에 의해 획득된 상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들의 상기 정수 값들을 적용하기 위하여 상기 데이터 스트림 내에 존재하는 머징 구문 요소들을 사용하는 것을 특징으로 하는 디코더.
  14. 제 13항에 있어서, 상기 재구성자는 상기 머징 구문 요소들을 제외하고 상기 데이터 스트림의 일부로부터 블록들 내의 상기 비디오의 픽쳐들의 세분을 유래하도록 구성되는 것을 특징으로 하는 디코더.
  15. 제 13항 또는 14항에 있어서, 상기 재구성자는 관련된 머지 그룹의 모든 블록을 위하여 미리 결정된 움직임 벡터의 상기 수평과 수직 컴포넌트들을 적용하도록 구성되거나, 또는 상기 머지 그룹의 블록들과 관련된 상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들에 의해 이를 세분화하도록 구성되는 것을 특징으로 하는 디코더.
  16. 데이터 스트림 내로 비디오를 인코딩하기 위한 인코더에 있어서,
    움직임 벡터들을 사용하는 움직임 보상 예측에 의해 상기 비디오를 예측으로 코딩하고, 상기 움직임 벡터들을 예측하고 상기 예측된 움직임 벡터들의 예측 오차를 표현하기 위하여 움직임 벡터 차분값들의 수평과 수직 컴포넌트들의 정수 값의 설정함으로써 상기 움직임 벡터들을 예측으로 코딩하도록 구성되는 것을 특징으로 하는 구성자;
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들의 이진화들을 획득하기 위하여 상기 정수 값들을 이진화하도록 구성되는 심벌라이저를 구비하되, 상기 이진화들은 절단 값 아래의 상기 수평과 수직 컴포넌트들의 도메인의 첫 번째 간격 내에서, 각각 상기 수평과 수직 컴포넌트들의 절단된 단항 코드와, 상기 절단 값을 포함하고 상기 절단 값 위의 상기 수평과 수직 컴포넌트들의 상기 도메인의 두 번째 간격 내에서, 각각 상기 절단 값을 위한 상기 절단된 단항 코드 형태의 접두부호와 상기 수평과 수직 컴포넌트들의 지수-골롬 형태의 접미부호의 조합을 동일시하며, 상기 절단 값은 2이고 상기 지수-골롬 코드는 순차 1을 가지며;
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들을 위하여, 움직임 벡터 차분값들의 수평과 수직 컴포넌트들에 통상적인, 절단된 단항 코드의 위치 당 정확하게 하나의 콘텍스트를 갖는 콘텍스트-적응적 이진 엔트로피 디코딩을 사용하여 데이터 스트림으로부터의 상기 절단된 단항 코드 및, 움직임 벡터 차분값들의 이진화를 획득하기 위하여 일정한 등-확률 바이패스 방식을 사용하여 지수-골롬 코드를 인코딩하도록 구성되는 엔트로피 인코더;를 포함하는 것을 특징으로 하는 인코더.
  17. 제 16항에 있어서, 상기 엔트로피 인코더는 이진 산술 인코딩 또는 파이프 인코딩을 사용하여 상기 절단된 단항 코드를 상기 데이터 스트림 내로 인코딩하도록 구성되는 것을 특징으로 하는 인코더.
  18. 제 16항 또는 17항에 있어서, 상기 엔트로피 인코더는 상기 절단된 단항 코드(806)의 상기 두 빈 위치들을 위하여 서로 다른 콘텍스트들을 사용하도록 구성되는 것을 특징으로 하는 인코더.
  19. 제 16항 내지 18항 중 어느 한 항에 있어서, 상기 엔트로피 인코더는 상기 절단된 단항 코드 중에서 현재 인코딩하는 빈을 위하여, 상기 현재 인코딩되는 빈을 위하여 선택된 콘텍스트와 관련된 현재 확률 상태로부터 상기 현재 유래되는 빈에 따라 새로운 확률 상태로 이동시킴으로써 확률 상태 업데이드를 실행하도록 구성되는 것을 특징으로 하는 인코더.
  20. 제 16항 내지 19항 중 어느 한 항에 있어서, 상기 엔트로피 인코더는 확률 간격 지수를 획득하기 위하여 현재 확률 간격을 표현하는 현재 확률 간격 폭 값을 양자화하고, 상기 현재 확률 간격의 두 부분 간격들 내로의 세분을 획득하기 위하여 현재 유래되는 상기 빈을 위하여 선택된 상기 콘텍스트와 관련된 현재 확률 상태에 따라 확률 간격 지수와 확률 상태 지수를 사용하여 테이블 엔트리 중에서 하나의 테이블 엔트리의 지수화에 의해 간격 세분을 실행함으로써, 상기 절단된 단항 코드(806) 중에서 현재 유래되는 빈을 이진 산술 디코딩하도록 구성되는 것을 특징으로 하는 인코더.
  21. 제 20항에 있어서, 상기 엔트로피 인코더는 상기 현재 확률 간격 폭 값을 위하여 8 비트 표현을 사용하고 상기 현재 확률 폭 값을 양자화하는데 상기 8 비트 표현의 2개 또는 3개의 가장 중요한 비트들을 저장하도록 구성되는 것을 특징으로 하는 인코더.
  22. 제 20항 또는 21항에 있어서, 상기 엔트로피 인코더는 상기 현재 인코딩되는 빈의 정수 값을 기초로 하여 상기 두 부분 간격들 중에서 선택하고, 상기 확률 간격 폭 값과 상기 오프셋 상태 값을 업데이트하며, 상기 선택된 부분 간격을 사용하여 상기 확률 간격 폭 값과 확률 간격 오프셋을 업데이트하며, 상기 데이터 스트림(401)으로부터의 비트들의 기록의 연속을 포함하는 상기 확률 간격 폭 값과 상기 오프셋 상태 값의 재규격화를 실행하도록 구성되는 것을 특징으로 하는 인코더.
  23. 제 20항 내지 21항 중 어느 한 항에 있어서, 상기 엔트로피 인코더는 상기 현재 확률 간격의 두 부분 간격들 내로의 세분을 획득하기 위하여 상기 현재 확률 간격 폭 값을 이등분함으로써 상기 지수-골롬 코드 중에서 하나의 빈을 이진 산술 인코딩하도록 구성되는 것을 특징으로 하는 인코더.
  24. 제 16항 내지 23항 중 어느 한 항에 있어서, 상기 엔트로피 인코더는 각각의 움직임 벡터 차분값을 위하여, 상기 각각의 움직임 벡터 차분값의 상기 수평과 수직 컴포넌트들의 상기 지수-골롬 코드 전에, 상기 각각의 움직임 벡터 차분값의 상기 수평과 수직 컴포넌트들의 상기 절단된 단항 코드를 상기 데이터 스트림 내로 인코딩하도록 구성되는 것을 특징으로 하는 인코더.
  25. 제 16항 내지 24항 중 어느 한 항에 있어서, 상기 구성자는 움직임 벡터들의 상기 수평과 수직 컴포넌트들을 위한 예측 변수를 획득하기 위하여 상기 움직임 벡터들의 상기 수평과 수직 컴포넌트들을 공간적으로 및/또는 시간적으로 예측하고, 상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들을 향하여 상기 예측변수들을 세분화하기 위하여 상기 움직임 벡터들의 상기 수평과 수직 컴포넌트들을 결정하도록 구성되는 것을 특징으로 하는 인코더.
  26. 제 16항 내지 25항 중 어느 한 항에 있어서, 상기 구성자는 상기 움직임 벡터들의 수평과 수직 컴포넌트들을 위한 예측들의 순차 리스트를 획득하기 위하여 서로 다른 방법들로 상기 움직임 벡터들의 수평과 수직 컴포넌트들을 예측하고, 리스트 지수를 결정하며, 상기 리스트 지수를 나타내는 정보를 상기 데이터 스트림 내로 삽입하며, 상기 리스트 지수가 상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들을 향하여 나타내는 상기 예측변수를 세분화하기 위하여 상기 움직임 벡터들의 수평과 수직 컴포넌트들을 결정하도록 구성되는 것을 특징으로 하는 인코더.
  27. 제 16항 내지 26항 중 어느 한 항에 있어서, 상기 구성자는 블록들 내의 상기 비디오의 픽쳐들의 세분화에 의해 정의되는 공간 입도에서 상기 움직임 벡터들의 수평과 수직 컴포넌트들의 적용에 의해 움직임-보상 예측을 사용하여 상기 비디오를 코딩하도록 구성되며, 상기 구성자는 상기 블록들을 머지 그룹들 내로 분류하고 머지 그룹들의 유닛들로, 상기 탈이진화기에 의해 이진화의 대상이 되는 상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들의 상기 정수 값들을 적용하기 위하여 상기 데이터 스트림 내로 머징 구문 요소들을 결정하고 삽입하는 것을 특징으로 하는 인코더.
  28. 제 27항에 있어서, 상기 구성자는 블록들 내의 상기 비디오의 픽쳐들의 세분을 상기 머징 구문 요소들을 제외하고 상기 데이터 스트림의 일부 내로 코딩하도록 구성되는 것을 특징으로 하는 인코더.
  29. 제 27항 또는 28항에 있어서, 상기 구성자는 관련된 머지 그룹의 모든 블록을 위하여 미리 결정된 움직임 벡터의 상기 수평과 수직 컴포넌트들을 적용하도록 구성되거나, 또는 상기 머지 그룹의 블록들과 관련된 상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들에 의해 이를 세분화하도록 구성되는 것을 특징으로 하는 인코더.
  30. 수평과 수직 컴포넌트들의 이진화들을 사용하여 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들이 코딩되는 데이터 스트림으로부터 비디오를 디코딩하기 위한 방법에서, 상기 이진화들은 절단 값 아래의 상기 수평과 수직 컴포넌트들의 도메인의 첫 번째 간격 내에서, 각각 상기 수평과 수직 컴포넌트들의 절단된 단항 코드와, 상기 절단 값을 포함하고 상기 절단 값 위의 상기 수평과 수직 컴포넌트들의 상기 도메인의 두 번째 간격 내에서, 각각 상기 절단 값을 위한 상기 절단된 단항 코드 형태의 접두부호와 상기 수평과 수직 컴포넌트들의 지수-골롬 형태의 접미부호의 조합을 동일시하며, 상기 절단 값은 2이고 상기 지수-골롬 코드는 순차 1을 가지는 비디오를 디코딩하기 위한 방법에 있어서:
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들을 위하여, 움직임 벡터 차분값들의 수평과 수직 컴포넌트들에 통상적인, 절단된 단항 코드의 위치 당 정확하게 하나의 콘텍스트를 갖는 콘텍스트-적응적 이진 엔트로피 디코딩을 사용하여 데이터 스트림으로부터의 상기 절단된 단항 코드 및, 움직임 벡터 차분값들의 이진화를 획득하기 위하여 일정한 등-확률 바이패스 방식을 사용하여 지수-골롬 코드를 유래하는 단계;
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들의 정수 값들을 획득하기 위하여 상기 움직임 벡터 차분값 구문 요소들의 이진화들을 탈이진화하는 단계;
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들의 정수 값들을 기초로 하여 상기 비디오를 재구성하는 단계;를 특징으로 하는 비디오를 디코딩하기 위한 방법
  31. 비디오를 데이터 스트림 내로 인코딩하기 위한 인코더에 있어서,
    움직임 벡터들을 사용하는 움직임 보상 예측에 의해 상기 비디오를 예측으로 코딩하는 단계 및 상기 움직임 벡터들을 예측하고 상기 예측된 움직임 벡터들의 예측 오차를 표현하기 위하여 움직임 벡터 차분값들의 수평과 수직 컴포넌트들의 정수 값의 설정함으로써 상기 움직임 벡터들을 예측으로 코딩하는 단계;
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들의 이진화들을 획득하기 위하여 상기 정수 값들을 이진화하는 단계를 구비하되, 상기 이진화들은 절단 값 아래의 상기 수평과 수직 컴포넌트들의 도메인의 첫 번째 간격 내에서, 각각 상기 수평과 수직 컴포넌트들의 절단된 단항 코드와, 상기 절단 값을 포함하고 상기 절단 값 위의 상기 수평과 수직 컴포넌트들의 상기 도메인의 두 번째 간격 내에서, 각각 상기 절단 값을 위한 상기 절단된 단항 코드 형태의 접두부호와 상기 수평과 수직 컴포넌트들의 지수-골롬 형태의 접미부호의 조합과 동일하며, 상기 절단 값은 2이고 상기 지수-골롬 코드는 순차 1을 가지며:
    상기 움직임 벡터 차분값들의 상기 수평과 수직 컴포넌트들을 위하여, 움직임 벡터 차분값들의 수평과 수직 컴포넌트들에 통상적인, 절단된 단항 코드의 위치 당 정확하게 하나의 콘텍스트를 갖는 콘텍스트-적응적 이진 산술 인코딩을 사용하여 상기 절단된 단항 코드를 상기 데이터 스트림 및 일정한 등-확률 바이패스 방식을 사용하여 지수-골롬 코드 내로 인코딩하는 단계;를 포함하는 것을 특징으로 하는 인코더.
  32. 컴퓨터 상에 구동할 때, 제 30항 내지 31항 중 어느 한 항에 따른 방법을 실행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램.
KR1020147001047A 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩 KR101662136B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161497794P 2011-06-16 2011-06-16
US61/497,794 2011-06-16
US201161508506P 2011-07-15 2011-07-15
US61/508,506 2011-07-15
PCT/EP2012/061613 WO2012172113A1 (en) 2011-06-16 2012-06-18 Entropy coding of motion vector differences

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020167026722A Division KR101818978B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩

Publications (2)

Publication Number Publication Date
KR20140022957A true KR20140022957A (ko) 2014-02-25
KR101662136B1 KR101662136B1 (ko) 2016-10-04

Family

ID=46319135

Family Applications (13)

Application Number Title Priority Date Filing Date
KR1020207034609A KR102437504B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020147000948A KR101619333B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020177010779A KR101882848B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020207015415A KR102254000B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩
KR1020147001047A KR101662136B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩
KR1020197035422A KR102187981B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020187000824A KR101994869B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩
KR1020197018337A KR102160647B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩
KR1020167003248A KR101730587B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020167026722A KR101818978B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩
KR1020187021221A KR102052471B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020247003097A KR20240017975A (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020227029290A KR102631388B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화

Family Applications Before (4)

Application Number Title Priority Date Filing Date
KR1020207034609A KR102437504B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020147000948A KR101619333B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020177010779A KR101882848B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020207015415A KR102254000B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩

Family Applications After (8)

Application Number Title Priority Date Filing Date
KR1020197035422A KR102187981B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020187000824A KR101994869B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩
KR1020197018337A KR102160647B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩
KR1020167003248A KR101730587B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020167026722A KR101818978B1 (ko) 2011-06-16 2012-06-18 움직임 벡터 차분값의 엔트로피 코딩
KR1020187021221A KR102052471B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020247003097A KR20240017975A (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화
KR1020227029290A KR102631388B1 (ko) 2011-06-16 2012-06-18 엔트로피 코딩에서 컨텍스트 초기화

Country Status (31)

Country Link
US (36) US9473170B2 (ko)
EP (9) EP2721822B1 (ko)
JP (12) JP6059212B2 (ko)
KR (13) KR102437504B1 (ko)
CN (26) CN103931194B (ko)
AP (3) AP4072A (ko)
AU (11) AU2012268951B2 (ko)
BR (4) BR122020024986B1 (ko)
CA (2) CA2839569C (ko)
CL (2) CL2013003603A1 (ko)
CO (2) CO6852031A2 (ko)
CY (1) CY1124687T1 (ko)
DK (5) DK3471415T3 (ko)
ES (5) ES2906869T3 (ko)
FI (2) FI2721819T3 (ko)
HK (17) HK1197128A1 (ko)
HR (1) HRP20220272T1 (ko)
HU (5) HUE057958T2 (ko)
IL (15) IL309379A (ko)
LT (4) LT3343781T (ko)
MX (7) MX2013014868A (ko)
MY (2) MY184473A (ko)
PH (15) PH12018500328B1 (ko)
PL (5) PL3343781T3 (ko)
PT (5) PT3343781T (ko)
RS (4) RS64604B1 (ko)
RU (7) RU2595934C2 (ko)
SI (4) SI2721819T1 (ko)
UA (2) UA123987C2 (ko)
WO (3) WO2012172115A1 (ko)
ZA (2) ZA201400029B (ko)

Families Citing this family (215)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUE025960T2 (en) 2010-04-13 2016-04-28 Ge Video Compression Llc Video coding using multi-tree subdivisions of images
KR101529842B1 (ko) 2010-04-13 2015-06-17 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 샘플 배열 멀티트리 세부분할에서 계승
CN106067983B (zh) 2010-04-13 2019-07-12 Ge视频压缩有限责任公司 解码数据流的方法、生成数据流的方法及解码器
TWI713356B (zh) 2010-04-13 2020-12-11 美商Ge影像壓縮有限公司 樣本區域合併技術
US9288089B2 (en) 2010-04-30 2016-03-15 Ecole Polytechnique Federale De Lausanne (Epfl) Orthogonal differential vector signaling
US9288082B1 (en) 2010-05-20 2016-03-15 Kandou Labs, S.A. Circuits for efficient detection of vector signaling codes for chip-to-chip communication using sums of differences
US8593305B1 (en) 2011-07-05 2013-11-26 Kandou Labs, S.A. Efficient processing and detection of balanced codes
US9077386B1 (en) 2010-05-20 2015-07-07 Kandou Labs, S.A. Methods and systems for selection of unions of vector signaling codes for power and pin efficient chip-to-chip communication
US9246713B2 (en) 2010-05-20 2016-01-26 Kandou Labs, S.A. Vector signaling with reduced receiver complexity
US9124557B2 (en) 2010-05-20 2015-09-01 Kandou Labs, S.A. Methods and systems for chip-to-chip communication with reduced simultaneous switching noise
US9985634B2 (en) 2010-05-20 2018-05-29 Kandou Labs, S.A. Data-driven voltage regulator
US9251873B1 (en) 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9667379B2 (en) 2010-06-04 2017-05-30 Ecole Polytechnique Federale De Lausanne (Epfl) Error control coding for orthogonal differential vector signaling
US20120182388A1 (en) * 2011-01-18 2012-07-19 Samsung Electronics Co., Ltd. Apparatus and method for processing depth image
RS64604B1 (sr) * 2011-06-16 2023-10-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja
EP4220966A1 (en) 2011-06-24 2023-08-02 Sun Patent Trust Image decoding device,
CN105554510B (zh) 2011-06-28 2019-06-28 三星电子株式会社 对视频进行解码的方法和设备
US11647197B2 (en) * 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
AU2012285851B2 (en) 2011-07-15 2015-11-12 Ge Video Compression, Llc Sample array coding for low-delay
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
EP2988511A1 (en) 2011-08-04 2016-02-24 MediaTek Inc. Method and apparatus for reordered binarization of syntax elements in cabac
EP2740263B1 (en) * 2011-09-16 2019-02-27 HFI Innovation Inc. Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc
JP6130839B2 (ja) * 2011-10-06 2017-05-17 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
US20130101047A1 (en) * 2011-10-19 2013-04-25 Sony Corporation Context reduction of significance map coding of 4x4 and 8x8 transform coefficient in hm4.0
US9871537B2 (en) * 2011-10-27 2018-01-16 Qualcomm Incorporated Mapping states in binary arithmetic coder for video coding
US9484952B2 (en) 2011-11-03 2016-11-01 Qualcomm Incorporated Context state and probability initialization for context adaptive entropy coding
MY167316A (en) * 2011-11-04 2018-08-16 Sharp Kk Arithmetic decoding device, image decoding device, arithmetic coding device, image coding device, and arithmetic decoding method
KR20130050403A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
WO2013106987A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of bypass coding and reducing contexts for some syntax elements
US20130188698A1 (en) * 2012-01-19 2013-07-25 Qualcomm Incorporated Coefficient level coding
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US11039138B1 (en) * 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
JP6156723B2 (ja) * 2012-03-08 2017-07-05 サン パテント トラスト 画像符号化方法、画像復号化方法、画像符号化装置および画像復号化装置
US9237344B2 (en) * 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
US9584802B2 (en) 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US9621921B2 (en) 2012-04-16 2017-04-11 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
WO2013175698A1 (ja) 2012-05-25 2013-11-28 パナソニック株式会社 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置および画像符号化復号装置
EP2858354B1 (en) 2012-05-25 2022-12-21 Sun Patent Trust Video image coding method, video image decoding method, video image coding device, video image decoding device, and video image coding-decoding device
WO2013175736A1 (ja) * 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
JP6288423B2 (ja) 2012-06-04 2018-03-07 サン パテント トラスト 動画像符号化方法、動画像符号化装置、動画像復号方法、および、動画像復号装置
DE102012224060A1 (de) * 2012-12-20 2014-06-26 Robert Bosch Gmbh Verfahren zur Datenübertragung für ein Batteriemanagementsystem
WO2014124450A1 (en) 2013-02-11 2014-08-14 Kandou Labs, S.A. Methods and systems for high bandwidth chip-to-chip communications interface
CN104053007B (zh) * 2013-03-15 2019-05-07 乐金电子(中国)研究开发中心有限公司 深度图像帧内编码模式索引值配置方法及装置
GB2513111A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
KR102241045B1 (ko) 2013-04-16 2021-04-19 칸도우 랩스 에스에이 고 대역폭 통신 인터페이스를 위한 방법 및 시스템
KR20160024975A (ko) 2013-06-25 2016-03-07 뉴메리 엘티디. 비디오의 멀티-레벨 공간적-시간적 레졸루션 증가
WO2014210074A1 (en) 2013-06-25 2014-12-31 Kandou Labs SA Vector signaling with reduced receiver complexity
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
US20150098504A1 (en) * 2013-10-09 2015-04-09 Qualcomm Incorporated Block vector coding for intra block copying
WO2015089623A1 (en) * 2013-12-16 2015-06-25 Mcafee, Inc. Process efficient preprocessing for an encryption standard
GB2521828A (en) 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
WO2015100522A1 (en) * 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
US9806761B1 (en) 2014-01-31 2017-10-31 Kandou Labs, S.A. Methods and systems for reduction of nearest-neighbor crosstalk
EP3100424B1 (en) 2014-02-02 2023-06-07 Kandou Labs S.A. Method and apparatus for low power chip-to-chip communications with constrained isi ratio
US9787799B2 (en) 2014-02-27 2017-10-10 Dropbox, Inc. Systems and methods for managing content items having multiple resolutions
US10885104B2 (en) * 2014-02-27 2021-01-05 Dropbox, Inc. Systems and methods for selecting content items to store and present locally on a user device
EP3672176B1 (en) 2014-02-28 2022-05-11 Kandou Labs, S.A. Clock-embedded vector signaling codes
US9509437B2 (en) 2014-05-13 2016-11-29 Kandou Labs, S.A. Vector signaling code with improved noise margin
US20150334425A1 (en) * 2014-05-14 2015-11-19 Blackberry Limited Adaptive context initialization
US9148087B1 (en) 2014-05-16 2015-09-29 Kandou Labs, S.A. Symmetric is linear equalization circuit with increased gain
CA2950180C (en) 2014-05-28 2020-04-21 Arris Enterprises Llc Acceleration of context adaptive binary arithmetic coding (cabac) in video codecs
US9337862B2 (en) * 2014-06-09 2016-05-10 Tidal Systems, Inc. VLSI efficient Huffman encoding apparatus and method
US9852806B2 (en) 2014-06-20 2017-12-26 Kandou Labs, S.A. System for generating a test pattern to detect and isolate stuck faults for an interface using transition coding
US9930341B2 (en) * 2014-06-20 2018-03-27 Qualcomm Incorporated Block vector coding for intra block copying
US9112550B1 (en) 2014-06-25 2015-08-18 Kandou Labs, SA Multilevel driver for high speed chip-to-chip communications
US9854253B2 (en) * 2014-06-30 2017-12-26 Qualcomm Incorporated Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data
CN106797352B (zh) 2014-07-10 2020-04-07 康杜实验室公司 高信噪特性向量信令码
US9432082B2 (en) 2014-07-17 2016-08-30 Kandou Labs, S.A. Bus reversable orthogonal differential vector signaling codes
WO2016014423A1 (en) 2014-07-21 2016-01-28 Kandou Labs S.A. Multidrop data transfer
KR101949964B1 (ko) 2014-08-01 2019-02-20 칸도우 랩스 에스에이 임베딩된 클록을 갖는 직교 차동 벡터 시그널링 코드
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN105578180B (zh) * 2014-10-16 2019-01-15 联想(北京)有限公司 一种编码方法及装置
US9674014B2 (en) 2014-10-22 2017-06-06 Kandou Labs, S.A. Method and apparatus for high speed chip-to-chip communications
CN104392725A (zh) * 2014-12-02 2015-03-04 中科开元信息技术(北京)有限公司 多声道无损音频混合编解码方法及装置
US10097833B2 (en) * 2014-12-26 2018-10-09 Intel Corporation Method and system of entropy coding using look-up table based probability updating for video coding
US10057580B2 (en) * 2015-01-30 2018-08-21 Mediatek Inc. Method and apparatus for entropy coding of source samples with large alphabet
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding
EP3254465A1 (en) * 2015-02-05 2017-12-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-view video codec supporting residual prediction
US9930378B2 (en) * 2015-02-11 2018-03-27 Qualcomm Incorporated Signaling of operation points for carriage of HEVC extensions
US10200711B2 (en) 2015-03-27 2019-02-05 Qualcomm Incorporated Motion vector derivation in video coding
CN112235575B (zh) 2015-04-08 2024-01-12 寰发股份有限公司 编码方法、编码装置和相应地计算机可读存储介质
WO2016178880A1 (en) * 2015-05-06 2016-11-10 NGCodec Inc. Intra prediction processor with reduced cost block partitioning and refined intra mode selection
EP3269141B1 (en) * 2015-05-19 2021-06-23 MediaTek Inc. Method and apparatus for multi-table based context adaptive binary arithmetic coding
KR102372931B1 (ko) 2015-06-26 2022-03-11 칸도우 랩스 에스에이 고속 통신 시스템
WO2017034113A1 (ko) * 2015-08-24 2017-03-02 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017041271A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
ES2844525B1 (es) * 2015-09-11 2022-07-05 Kt Corp Metodo para decodificar un video
US10158874B2 (en) * 2015-09-30 2018-12-18 Apple Inc. Parallel bypass and regular bin coding
US10198355B2 (en) 2015-10-29 2019-02-05 Dropbox, Inc. Proving a dynamic digital content cache
US10440399B2 (en) * 2015-11-13 2019-10-08 Qualcomm Incorporated Coding sign information of video data
US10055372B2 (en) 2015-11-25 2018-08-21 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
US10003315B2 (en) 2016-01-25 2018-06-19 Kandou Labs S.A. Voltage sampler driver with enhanced high-frequency gain
FR3047379A1 (fr) * 2016-01-29 2017-08-04 Orange Procede de codage et decodage de donnees, dispositif de codage et decodage de donnees et programmes d'ordinateur correspondants
US10791097B2 (en) 2016-04-14 2020-09-29 Sophos Limited Portable encryption format
US10573324B2 (en) 2016-02-24 2020-02-25 Dolby International Ab Method and system for bit reservoir control in case of varying metadata
US10003454B2 (en) 2016-04-22 2018-06-19 Kandou Labs, S.A. Sampler with low input kickback
CN115085727A (zh) 2016-04-22 2022-09-20 康杜实验室公司 高性能锁相环
US10153591B2 (en) 2016-04-28 2018-12-11 Kandou Labs, S.A. Skew-resistant multi-wire channel
EP3449606A4 (en) 2016-04-28 2019-11-27 Kandou Labs S.A. LOW POWER MULTILAYER ATTACK CIRCUIT
WO2017189931A1 (en) 2016-04-28 2017-11-02 Kandou Labs, S.A. Vector signaling codes for densely-routed wire groups
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
US10142652B2 (en) * 2016-05-05 2018-11-27 Google Llc Entropy coding motion vector residuals obtained using reference motion vectors
FR3054764B1 (fr) * 2016-07-28 2018-07-27 B<>Com Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes
WO2018030293A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US9906358B1 (en) 2016-08-31 2018-02-27 Kandou Labs, S.A. Lock detector for phase lock loop
US10411922B2 (en) 2016-09-16 2019-09-10 Kandou Labs, S.A. Data-driven phase detector element for phase locked loops
US10419781B2 (en) * 2016-09-20 2019-09-17 Qualcomm Incorporated Storing and retrieving high bit depth image data
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
US11356693B2 (en) 2016-09-29 2022-06-07 Qualcomm Incorporated Motion vector coding for video coding
US10462462B2 (en) * 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
CN106231318B (zh) * 2016-09-30 2020-04-28 浙江宇视科技有限公司 一种基于量化变换系数的视频加扰方法及装置
BR112019007359A2 (pt) * 2016-10-11 2019-07-16 Genomsys Sa método e sistema para acesso seletivo dos dados bioinformáticos armazenados ou transmitidos
US10200188B2 (en) 2016-10-21 2019-02-05 Kandou Labs, S.A. Quadrature and duty cycle error correction in matrix phase lock loop
US10200218B2 (en) 2016-10-24 2019-02-05 Kandou Labs, S.A. Multi-stage sampler with increased gain
US10372665B2 (en) 2016-10-24 2019-08-06 Kandou Labs, S.A. Multiphase data receiver with distributed DFE
US10805608B2 (en) * 2016-12-22 2020-10-13 Kt Corporation Method and apparatus for processing video signal
US11240526B2 (en) 2017-01-02 2022-02-01 Industry-University Cooperation Foundation Hanyang University Method and apparatus for decoding image using interpicture prediction
WO2018128222A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
US10757412B2 (en) * 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system
KR20180087771A (ko) * 2017-01-25 2018-08-02 삼성전자주식회사 엔트로피 인코더 및 이를 포함하는 비디오 인코더
US10595033B2 (en) 2017-02-15 2020-03-17 Sony Corporation Variable length coding of header data for image compression
KR102450863B1 (ko) * 2017-03-22 2022-10-05 에스케이텔레콤 주식회사 움직임벡터를 부호화 또는 복호화하기 위한 장치 및 방법
US10554988B2 (en) * 2017-03-22 2020-02-04 Qualcomm Incorporated Binary arithmetic coding with parameterized probability estimation finite state machines
US11240536B2 (en) * 2017-04-13 2022-02-01 Lg Electronics Inc. Method and device for entropy encoding, decoding video signal
WO2018191749A1 (en) 2017-04-14 2018-10-18 Kandou Labs, S.A. Pipelined forward error correction for vector signaling code channel
US10116468B1 (en) 2017-06-28 2018-10-30 Kandou Labs, S.A. Low power chip-to-chip bidirectional communications
US10686583B2 (en) 2017-07-04 2020-06-16 Kandou Labs, S.A. Method for measuring and correcting multi-wire skew
US10693587B2 (en) 2017-07-10 2020-06-23 Kandou Labs, S.A. Multi-wire permuted forward error correction
US11477492B2 (en) * 2017-08-04 2022-10-18 Google Inc. Adaptation for entropy coding of blocks of image data
US10203226B1 (en) 2017-08-11 2019-02-12 Kandou Labs, S.A. Phase interpolation circuit
US10791341B2 (en) * 2017-10-10 2020-09-29 Qualcomm Incorporated Binary arithmetic coding with progressive modification of adaptation parameters
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
US11039143B2 (en) * 2017-11-20 2021-06-15 Qualcomm Incorporated Memory reduction for context initialization with temporal prediction
US11575922B2 (en) * 2017-12-06 2023-02-07 V-Nova International Limited Methods and apparatuses for hierarchically encoding and decoding a bytestream
US10609421B2 (en) * 2018-07-12 2020-03-31 Google Llc Context derivation for coefficient coding
US10326623B1 (en) 2017-12-08 2019-06-18 Kandou Labs, S.A. Methods and systems for providing multi-stage distributed decision feedback equalization
US10694205B2 (en) * 2017-12-18 2020-06-23 Google Llc Entropy coding of motion vectors using categories of transform blocks
US10602178B1 (en) * 2017-12-21 2020-03-24 Mozilla Corporation Systems and methods for frame context selection
EP3503557A1 (en) * 2017-12-22 2019-06-26 Thomson Licensing Method and apparatus for video encoding and decoding based on context switching
US10554380B2 (en) 2018-01-26 2020-02-04 Kandou Labs, S.A. Dynamically weighted exclusive or gate having weighted output segments for phase detection and phase interpolation
WO2019147403A1 (en) 2018-01-29 2019-08-01 Interdigital Vc Holdings, Inc. Encoding and decoding with refinement of the reconstructed picture
TWI799785B (zh) * 2018-03-29 2023-04-21 弗勞恩霍夫爾協會 視訊解碼器、視訊編碼器、用以解碼視訊內容之方法、用以編碼視訊內容之方法、電腦程式及視訊位元串流
CN117294838A (zh) * 2018-03-29 2023-12-26 弗劳恩霍夫应用研究促进协会 用于增强并行编码能力的构思
US10986354B2 (en) * 2018-04-16 2021-04-20 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US10630990B1 (en) * 2018-05-01 2020-04-21 Amazon Technologies, Inc. Encoder output responsive to quality metric information
CN108810553B (zh) * 2018-05-02 2021-01-12 上海大学 一种基于稀疏化处理的移动节点监测数据序列压缩方法
TWI675441B (zh) * 2018-05-14 2019-10-21 欣興電子股份有限公司 封裝載板結構及其製造方法
KR102559966B1 (ko) * 2018-05-25 2023-07-26 라인플러스 주식회사 복수의 채널을 이용하여 동적 비트레이트의 비디오를 송출 및 재생하는 방법 및 시스템
US10986340B2 (en) * 2018-06-01 2021-04-20 Qualcomm Incorporated Coding adaptive multiple transform information for video coding
US10939115B2 (en) * 2018-06-19 2021-03-02 Qualcomm Incorporated Efficient weighted probability estimation for binary arithmetic coding
CN108848380B (zh) * 2018-06-20 2021-11-30 腾讯科技(深圳)有限公司 视频编码和解码方法、装置、计算机设备及存储介质
WO2020008330A1 (en) * 2018-07-01 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Priority-based non-adjacent merge design
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding
CN108989825B (zh) * 2018-07-18 2021-05-07 北京奇艺世纪科技有限公司 一种算术编码方法、装置及电子设备
US11218737B2 (en) 2018-07-23 2022-01-04 Google Llc Asymmetric probability model update and entropy coding precision
US10743029B2 (en) * 2018-07-30 2020-08-11 Tencent America LLC Constraints on coding unit partition
CN116095312A (zh) 2018-08-04 2023-05-09 北京字节跳动网络技术有限公司 视频处理方法、装置和计算机可读介质
US11336918B2 (en) 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN117676165A (zh) * 2018-09-10 2024-03-08 华为技术有限公司 视频解码方法及视频解码器
CN114143554B (zh) * 2018-09-13 2024-04-12 华为技术有限公司 一种预测运动信息的解码方法及装置
US11006150B2 (en) * 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
KR102473571B1 (ko) * 2018-10-05 2022-12-06 타이사 리서치 엘엘씨 변환 계수 코딩 방법 및 그 장치
WO2020070612A1 (en) 2018-10-06 2020-04-09 Beijing Bytedance Network Technology Co., Ltd. Improvement for temporal gradient calculating in bio
US20200143226A1 (en) * 2018-11-05 2020-05-07 Samsung Electronics Co., Ltd. Lossy compression of neural network activation maps
US10983677B2 (en) 2018-11-16 2021-04-20 Dropbox, Inc. Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria
US10841595B2 (en) * 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for transform coefficient encoding and decoding
US10917636B2 (en) * 2018-12-03 2021-02-09 Tencent America LLC Method and apparatus for video coding
US10904548B2 (en) * 2018-12-06 2021-01-26 Qualcomm Incorporated Coefficient processing for video encoding and decoding
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
CN111355958B (zh) * 2018-12-21 2022-07-29 华为技术有限公司 视频解码方法及装置
CA3114341C (en) * 2018-12-29 2023-10-17 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using compact mv storage
US11252431B2 (en) 2019-01-02 2022-02-15 Telefonaktiebolaget Lm Ericsson (Publ) Side motion refinement in video encoding/decoding systems
US11032560B2 (en) * 2019-01-17 2021-06-08 Tencent America LLC Method and apparatus for video coding without updating the HMVP table
CN111475424B (zh) * 2019-01-23 2023-07-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读存储介质
US11134273B2 (en) 2019-02-14 2021-09-28 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN109946229A (zh) * 2019-02-25 2019-06-28 南京文易特电子科技有限公司 一种香烟条包智能数字双拉线检测系统及检测方法
US10652581B1 (en) * 2019-02-27 2020-05-12 Google Llc Entropy coding in image and video compression using machine learning
US10939107B2 (en) * 2019-03-01 2021-03-02 Sony Corporation Embedded codec circuitry for sub-block based allocation of refinement bits
WO2020180153A1 (ko) * 2019-03-06 2020-09-10 엘지전자 주식회사 인터 예측을 위한 비디오 신호의 처리 방법 및 장치
US11202100B2 (en) * 2019-03-11 2021-12-14 Qualcomm Incorporated Coefficient coding for transform skip mode
US11178399B2 (en) * 2019-03-12 2021-11-16 Qualcomm Incorporated Probability initialization for video coding
KR102223790B1 (ko) * 2019-03-15 2021-03-05 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
CN109947398B (zh) * 2019-03-25 2020-12-25 武汉轻工大学 三重积分求解方法、装置、终端设备及可读存储介质
KR102647470B1 (ko) 2019-04-15 2024-03-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비선형 적응형 루프 필터링에서 파라미터의 시간적 예측
WO2020231140A1 (ko) 2019-05-14 2020-11-19 엘지전자 주식회사 적응적 루프 필터 기반 비디오 또는 영상 코딩
CN112135149B (zh) * 2019-06-24 2023-07-18 华为技术有限公司 语法元素的熵编码/解码方法、装置以及编解码器
US11184642B2 (en) 2019-08-02 2021-11-23 Mediatek Inc. Methods and apparatus for simplification of coding residual blocks
WO2021040492A1 (ko) * 2019-08-31 2021-03-04 엘지전자 주식회사 비디오/영상 코딩 시스템에서 변환 계수 코딩 방법 및 장치
WO2021058593A1 (en) * 2019-09-24 2021-04-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding concept for a sequence of information values
CN115361561B (zh) * 2019-10-01 2023-08-01 北京达佳互联信息技术有限公司 残差和系数编解码的方法和装置
CN112866181B (zh) * 2019-11-28 2023-05-26 上海商汤智能科技有限公司 数据解码装置、加速器、以及片上系统
US11468601B2 (en) 2020-01-13 2022-10-11 Samsung Display Co., Ltd. Systems and methods for scalable throughput entropy coder
US11822902B2 (en) * 2020-01-21 2023-11-21 California Institute Of Technology Systems and methods for performing lossless source coding
US20230042018A1 (en) * 2020-02-12 2023-02-09 Google Llc Multi-context entropy coding for compression of graphs
CN116018647A (zh) * 2020-07-10 2023-04-25 皇家飞利浦有限公司 通过基于可配置机器学习的算术编码进行的基因组信息压缩
US11362681B2 (en) 2020-08-21 2022-06-14 Seagate Technology Llc One-shot state transition probability encoder and decoder
CN112260699A (zh) * 2020-09-15 2021-01-22 深圳拓邦股份有限公司 属性通讯编解码方法、编码装置、解码装置及系统
FR3114717B1 (fr) * 2020-09-30 2023-10-13 Fond B Com Procédé et dispositif électronique de décodage d’un flux de données, programme d’ordinateur et flux de données associés
US11722672B2 (en) 2020-10-06 2023-08-08 Qualcomm Incorporated Adaptively deriving rice parameter values for high bit-depth video coding
CN114501036A (zh) * 2020-11-13 2022-05-13 联发科技股份有限公司 熵解码装置及相关熵解码方法
CN114727109B (zh) * 2021-01-05 2023-03-24 腾讯科技(深圳)有限公司 多媒体的量化处理方法、装置及编码、解码设备
US11356197B1 (en) 2021-03-19 2022-06-07 Kandou Labs SA Error-tolerant forward error correction ordered set message decoder
CN113079377B (zh) * 2021-04-01 2022-09-30 中国科学技术大学 一种深度图像/视频压缩网络的训练方法
WO2022217245A1 (en) * 2021-04-07 2022-10-13 Innopeak Technology, Inc. Remaining level binarization for video coding
CN113489979A (zh) * 2021-05-28 2021-10-08 杭州博雅鸿图视频技术有限公司 熵编码方法、装置、电子设备及存储介质
CN113422964A (zh) * 2021-06-04 2021-09-21 绍兴市北大信息技术科创中心 一种串长度参数编解码方法和装置
KR20240044497A (ko) * 2021-08-17 2024-04-04 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 블록 기반 비디오 코딩을 위한 부호 예측
US11871038B2 (en) * 2021-09-29 2024-01-09 Tencent America LLC Techniques for constraint flag signaling for range extension with residual rice coding extension
WO2023114468A1 (en) * 2021-12-16 2023-06-22 Beijing Dajia Internet Information Technology Co., Ltd. Sign prediction for block-based video coding
US20230291935A1 (en) * 2022-03-11 2023-09-14 Tencent America LLC Systems and methods for division-free probability regularization for arithmetic coding
US20230308651A1 (en) * 2022-03-22 2023-09-28 Tencent America LLC Systems and methods for regularization-free multi-hypothesis arithmetic coding
WO2023195643A1 (ko) * 2022-04-05 2023-10-12 삼성전자 주식회사 엔트로피 부호화 및 복호화 장치 및 그 방법
WO2024007090A1 (zh) * 2022-07-04 2024-01-11 嘉兴尚坤科技有限公司 一种超高清视频数据编码/解码处理方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038837A1 (en) * 2003-07-17 2005-02-17 Detlev Marpe Method and apparatus for binarization and arithmetic coding of a data value

Family Cites Families (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5925884B2 (ja) * 1980-12-24 1984-06-22 住友ゴム工業株式会社 ゴムロ−ラ
JPS5916569A (ja) * 1982-07-17 1984-01-27 Yoshida Kogyo Kk <Ykk> 金属部材のコ−ナ−部にストライプ模様を形成する方法
US6885864B2 (en) 1992-03-06 2005-04-26 Aircell, Inc. Virtual private network for cellular communications
US5717394A (en) 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5381145A (en) 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
JPH06334993A (ja) * 1993-03-26 1994-12-02 Sony Corp 動画像符号化又は復号化装置、並びに動きベクトルの可変長符号化及び復号化方法
KR970003102B1 (ko) * 1993-09-17 1997-03-14 대우전자 주식회사 영상 복호기에서의 하프 픽셀 움직임 보상 회로
US5847776A (en) 1996-06-24 1998-12-08 Vdonet Corporation Ltd. Method for entropy constrained motion estimation and coding of motion vectors with increased search range
JP2866616B2 (ja) 1996-06-24 1999-03-08 昇 大串 健康ベッド
JPH10151789A (ja) 1996-11-22 1998-06-09 Eiji Shiozaki 粉体飛翔式印字制御方法および印字装置
WO1998044479A1 (fr) * 1997-03-31 1998-10-08 Matsushita Electric Industrial Co., Ltd. Procede de visualisation du premier plan d'images et dispositif connexe
KR100255754B1 (ko) * 1997-08-30 2000-05-01 전주범 이진 형상 신호 부호화 방법
CN1146245C (zh) * 1997-12-22 2004-04-14 株式会社大宇电子 隔行二进制形状编码方法和装置
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US6865298B2 (en) * 2001-03-30 2005-03-08 Sharp Laboratories Of America, Inc. Compound document compression based upon neighboring pixels
JP4125565B2 (ja) * 2001-08-31 2008-07-30 松下電器産業株式会社 画像符号化方法、画像復号化方法及びその装置
US20030048808A1 (en) * 2001-09-12 2003-03-13 Stahl Thomas Anthony Method and apparatus for changing received streaming content channels
KR100765060B1 (ko) 2001-11-09 2007-10-09 주식회사 포스코 침전조의 워터배출 조정장치
US7435543B2 (en) * 2001-11-27 2008-10-14 Animal Technology Institute Of Taiwan Genetic markers for pig backfat thickness
KR100925968B1 (ko) * 2001-12-17 2009-11-09 마이크로소프트 코포레이션 컴퓨터 시스템에서 비디오 시퀀스의 복수의 비디오 화상을 처리하는 방법, 시스템 및 컴퓨터 판독가능 매체
US7003035B2 (en) * 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
CN1225904C (zh) * 2002-04-12 2005-11-02 精工爱普生株式会社 在压缩域视频处理中降低存储器要求和实施有效的逆运动补偿的方法和设备
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
ATE421802T1 (de) * 2002-05-02 2009-02-15 Fraunhofer Ges Forschung Verfahren und anordnung zur arithmetischen enkodierung und dekodierung von binären zuständen sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium
DK1487113T3 (da) * 2002-05-02 2006-11-20 Fraunhofer Ges Forschung Kodning og afkodning af transformationskoefficienter i billede- eller videokodere
JP4230188B2 (ja) * 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
US6919105B2 (en) 2003-01-06 2005-07-19 Philip Morris Usa Inc. Continuous process for retaining solid adsorbent particles on shaped micro-cavity fibers
US6894628B2 (en) * 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US20050013498A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7233622B2 (en) * 2003-08-12 2007-06-19 Lsi Corporation Reduced complexity efficient binarization method and/or circuit for motion vector residuals
EP1513350A1 (en) * 2003-09-03 2005-03-09 Thomson Licensing S.A. Process and arrangement for encoding video pictures
US6771197B1 (en) 2003-09-26 2004-08-03 Mitsubishi Electric Research Laboratories, Inc. Quantizing signals using sparse generator factor graph codes
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
JP4408766B2 (ja) 2004-07-30 2010-02-03 Ntn株式会社 Icタグ付き車輪用軸受装置
CN1589023A (zh) * 2004-08-06 2005-03-02 联合信源数字音视频技术(北京)有限公司 一种基于上下文的多码表变长编解码方法及编解码装置
US7609947B2 (en) 2004-09-10 2009-10-27 Panasonic Corporation Method and apparatus for coordinating playback from multiple video sources
CN101052972A (zh) * 2004-09-22 2007-10-10 液滴技术有限公司 多技术熵编码系统和方法
DE102004049156B4 (de) * 2004-10-08 2006-07-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codierschema für einen ein zeitlich veränderliches Graphikmodell darstellenden Datenstrom
KR20060038189A (ko) * 2004-10-29 2006-05-03 삼성전자주식회사 컨텍스트 기반 적응형 이진 산술 복부호화 방법 및 장치
KR100636229B1 (ko) * 2005-01-14 2006-10-19 학교법인 성균관대학 신축형 부호화를 위한 적응적 엔트로피 부호화 및 복호화방법과 그 장치
KR100703760B1 (ko) 2005-03-18 2007-04-06 삼성전자주식회사 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치
AU2006201490B2 (en) * 2005-04-19 2008-05-22 Samsung Electronics Co., Ltd. Method and apparatus for adaptively selecting context model for entropy coding
RU2336661C2 (ru) * 2005-04-19 2008-10-20 Самсунг Электроникс Ко., Лтд. Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии
EP1727371A1 (en) * 2005-05-27 2006-11-29 Thomson Licensing Method for controlling the encoder output bit rate in a block-based video encoder, and corresponding video encoder apparatus
JP4856954B2 (ja) * 2005-06-08 2012-01-18 パナソニック株式会社 画像符号化装置
CN1878309A (zh) * 2005-06-08 2006-12-13 松下电器产业株式会社 视频编码装置
KR100683788B1 (ko) 2005-06-25 2007-02-20 삼성에스디아이 주식회사 복수의 층들의 전극 라인들이 형성된 교류형 방전디스플레이 패널
RU2371881C1 (ru) * 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
CN101223780A (zh) * 2005-07-18 2008-07-16 三星电子株式会社 减少编码器和解码器之间的不匹配的视频编码方法和设备
CN100461863C (zh) * 2005-08-05 2009-02-11 上海富瀚微电子有限公司 基于上下文自适应二进制算术解码器
EP1755341A1 (en) * 2005-08-19 2007-02-21 Texas Instruments Incorporated Method of quantization of transform coefficients
US7221296B2 (en) * 2005-08-22 2007-05-22 Streaming Networks (Pvt.) Ltd. Method and system for fast context based adaptive binary arithmetic coding
KR100813963B1 (ko) * 2005-09-16 2008-03-14 세종대학교산학협력단 동영상의 무손실 부호화, 복호화 방법 및 장치
CN100403801C (zh) * 2005-09-23 2008-07-16 联合信源数字音视频技术(北京)有限公司 一种基于上下文的自适应熵编/解码方法
CN100466739C (zh) 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
JP2009513290A (ja) 2005-10-31 2009-04-02 生立生物科技股▲分▼有限公司 強膜バックリングバンドとその製造方法
KR100873636B1 (ko) * 2005-11-14 2008-12-12 삼성전자주식회사 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치
EA013890B1 (ru) 2005-11-25 2010-08-30 Грегор Зебиц Домашняя сеть, использующая проводные и беспроводные защищённые каналы связи
US7245242B2 (en) * 2005-11-28 2007-07-17 Conexant Systems, Inc. Decoding systems and methods
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
JP4318050B2 (ja) 2006-01-24 2009-08-19 ソニー株式会社 ワイヤレスチャンネル決定選択方法およびアクセスポイント装置
KR100750165B1 (ko) * 2006-02-22 2007-08-17 삼성전자주식회사 압축률 향상을 위해 개선된 컨텍스트 모델 선택을 사용하는cabac 부호화 방법 및 장치, 그리고 cabac복호화 방법 및 장치
US20070217702A1 (en) * 2006-03-14 2007-09-20 Sung Chih-Ta S Method and apparatus for decoding digital video stream
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US7929608B2 (en) * 2006-03-28 2011-04-19 Sony Corporation Method of reducing computations in intra-prediction and mode decision processes in a digital video encoder
JP2007300455A (ja) * 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
JP2007306370A (ja) * 2006-05-12 2007-11-22 Victor Co Of Japan Ltd 画像符号化記録装置
US8472527B2 (en) * 2006-09-13 2013-06-25 Texas Instruments Incorporated Hierarchical motion estimation using original frame for sub-sampled reference
CN101198051B (zh) * 2006-12-07 2011-10-05 深圳艾科创新微电子有限公司 基于h.264的熵解码器的实现方法及装置
US7573405B2 (en) 2006-12-29 2009-08-11 Texas Instruments Incorporated System updating accumulated statistics coding variable values after multiple encodings
US20080162432A1 (en) * 2006-12-29 2008-07-03 Wen-Shan Wang Search table for unary k-th order exp-golomb decoder
CN101005287A (zh) * 2007-01-26 2007-07-25 北京中星微电子有限公司 提高算术编码速度的方法、系统及编码装置
US20080225947A1 (en) * 2007-03-13 2008-09-18 Matthias Narroschke Quantization for hybrid video coding
CN101115200B (zh) * 2007-04-20 2010-05-19 西安交通大学 一种有效的运动矢量可伸缩编码方法
WO2008136828A1 (en) * 2007-05-04 2008-11-13 Qualcomm Incorporated Video coding mode selection using estimated coding costs
JP2008300455A (ja) 2007-05-29 2008-12-11 Sumitomo Electric Ind Ltd パワーモジュール
BRPI0813904B1 (pt) * 2007-06-29 2020-12-08 Velos Media International Limited dispositivo de codificação de imagem para codificar imagens de entrada e dispositivo de decodificação de imagem para decodificar dados de imagens codificados
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
KR101408698B1 (ko) 2007-07-31 2014-06-18 삼성전자주식회사 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치
US7839311B2 (en) * 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
US7535387B1 (en) * 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
CN101478672B (zh) * 2008-01-04 2012-12-19 华为技术有限公司 视频编码、解码方法及装置和视频处理系统
EP2077550B8 (en) * 2008-01-04 2012-03-14 Dolby International AB Audio encoder and decoder
JP4915350B2 (ja) * 2008-01-16 2012-04-11 日本電気株式会社 エントロピ符号化器、映像符号化装置、映像符号化方法および映像符号化プログラム
EP2245857B1 (en) 2008-01-22 2015-06-03 Dolby Laboratories Licensing Corporation Adaptive motion information cost estimation with dynamic look-up table updating
US20090201983A1 (en) 2008-02-07 2009-08-13 Motorola, Inc. Method and apparatus for estimating high-band energy in a bandwidth extension system
JP4479829B2 (ja) 2008-04-03 2010-06-09 ソニー株式会社 撮像装置及び撮像方法
US7656320B2 (en) 2008-04-10 2010-02-02 Red Hat, Inc. Difference coding adaptive context model using counting
JP4962400B2 (ja) 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US8179974B2 (en) * 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
CN101267559A (zh) * 2008-05-08 2008-09-17 上海交通大学 视频解码器的通用熵解码方法及装置
US20090304071A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Adaptive application of entropy coding methods
CN101304522A (zh) * 2008-06-20 2008-11-12 中国民航大学 一种以jpeg2000压缩图像为载体的大容量信息隐藏方法
US8699562B2 (en) * 2008-10-06 2014-04-15 Lg Electronics Inc. Method and an apparatus for processing a video signal with blocks in direct or skip mode
US9973739B2 (en) * 2008-10-17 2018-05-15 Nokia Technologies Oy Sharing of motion vector in 3D video coding
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
EP2182732A1 (en) * 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
US20100127904A1 (en) 2008-11-26 2010-05-27 Horizon Semiconductors Ltd. Implementation of a rapid arithmetic binary decoding system of a suffix length
KR101196792B1 (ko) * 2008-12-03 2012-11-05 노키아 코포레이션 Dct 계수 부호화 모드들 간의 전환
JP2010268094A (ja) * 2009-05-13 2010-11-25 Sony Corp 画像復号化装置および画像復号化方法
JP2010278668A (ja) 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
US9479812B2 (en) * 2009-06-05 2016-10-25 Time Warner Cable Enterprises Llc User selection of software components in a television set-top box
KR101678968B1 (ko) * 2009-08-21 2016-11-25 에스케이텔레콤 주식회사 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101441874B1 (ko) * 2009-08-21 2014-09-25 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
CN102055483B (zh) * 2009-10-29 2013-05-08 鸿富锦精密工业(深圳)有限公司 熵解码装置
JP5409268B2 (ja) * 2009-10-30 2014-02-05 株式会社日立ソリューションズ 情報提示装置及び携帯端末
KR20110071047A (ko) * 2009-12-20 2011-06-28 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치
US9237355B2 (en) 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
US9973768B2 (en) 2010-03-16 2018-05-15 Texas Instruments Incorporated CABAC decoder with decoupled arithmetic decoding and inverse binarization
CN101841707B (zh) * 2010-03-19 2012-01-04 西安电子科技大学 基于jpeg2000标准的高速实时处理算术熵编码方法
JP5676744B2 (ja) * 2010-04-13 2015-02-25 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
US20120014429A1 (en) * 2010-07-15 2012-01-19 Jie Zhao Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
CN101938654B (zh) * 2010-08-17 2013-04-10 浙江大学 一种变换系数的优化量化方法及装置
CN101951516B (zh) * 2010-09-25 2013-06-05 清华大学 基于h.264/avc中cabac的并行编码实现电路及编码方法
US8902988B2 (en) 2010-10-01 2014-12-02 Qualcomm Incorporated Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model
US10327008B2 (en) * 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
JP5570437B2 (ja) * 2011-01-12 2014-08-13 三菱電機株式会社 エントロピー符号化装置、エントロピー復号装置、エントロピー符号化方法及びエントロピー復号方法
US9008181B2 (en) 2011-01-24 2015-04-14 Qualcomm Incorporated Single reference picture list utilization for interprediction video coding
ITTO20110414A1 (it) * 2011-05-11 2012-11-12 St Microelectronics Pvt Ltd Procedimento ed apparecchiatura per elaborare segnali video, prodotto informatico e segnale codificato relativi
RS64604B1 (sr) 2011-06-16 2023-10-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja
US9654772B2 (en) 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US9584802B2 (en) 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US10856009B2 (en) * 2014-09-04 2020-12-01 Mediatek Inc. Method of block vector clipping and coding for screen content coding and video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038837A1 (en) * 2003-07-17 2005-02-17 Detlev Marpe Method and apparatus for binarization and arithmetic coding of a data value

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JCT-VC. Encoder-side description of Test Model under Consideration. JCT-VC of ITU-T and ISO/IEC. JCTVC-B204. Oct. 3, 2010, pp.1-19* *
T. Wiegand, et al. WD3: Working Draft 3 of High-Efficiency Video Coding. JCT-VC of ITU-T and ISO/IEC. JCTVC-E603. Ver.8. Jun. 27, 2011, pp.1-215* *
V. Sze, et al. Simplified MVD context selection (Extension of E324). JCT-VC of ITU-T and ISO/IEC. JCTVC-F133. Ver.3. Jul. 6, 2011, pp.1-2* *

Also Published As

Publication number Publication date
CN107517384A (zh) 2017-12-26
PH12018500353A1 (en) 2018-08-13
CN107333141B (zh) 2020-04-07
PH12018500352B1 (en) 2018-08-13
AU2012268951B2 (en) 2015-07-30
AP2014007361A0 (en) 2014-01-31
AU2021209284A1 (en) 2021-08-19
AU2018200699A1 (en) 2018-02-22
KR101619333B1 (ko) 2016-05-18
JP2022123096A (ja) 2022-08-23
BR122021000264B1 (pt) 2022-02-22
AP4072A (en) 2017-03-16
BR112013032333B1 (pt) 2022-07-26
RU2615681C2 (ru) 2017-04-06
US9743090B2 (en) 2017-08-22
JP6492047B2 (ja) 2019-03-27
PL3930330T3 (pl) 2023-10-23
JP2021108479A (ja) 2021-07-29
HUE063990T2 (hu) 2024-02-28
US20170302969A1 (en) 2017-10-19
AU2023203785A1 (en) 2023-07-13
RU2658883C1 (ru) 2018-06-25
JP2019050610A (ja) 2019-03-28
DK3930330T3 (da) 2023-08-28
AU2018200699B2 (en) 2018-10-25
US9686568B2 (en) 2017-06-20
RU2755020C2 (ru) 2021-09-09
US20180152708A1 (en) 2018-05-31
PH12018500350A1 (en) 2018-08-13
KR20190079689A (ko) 2019-07-05
JP2023075109A (ja) 2023-05-30
EP3471415B1 (en) 2021-08-04
IL265636A (en) 2019-05-30
RS64867B1 (sr) 2023-12-29
CN107333140B (zh) 2020-09-22
WO2012172113A1 (en) 2012-12-20
US20170302968A1 (en) 2017-10-19
JP6867334B2 (ja) 2021-04-28
KR20220122800A (ko) 2022-09-02
US20180152707A1 (en) 2018-05-31
KR20200138444A (ko) 2020-12-09
MX2023005265A (es) 2023-05-23
JP6560393B2 (ja) 2019-08-14
FI3930330T3 (fi) 2023-09-07
IL283649B (en) 2022-03-01
CN107347161A (zh) 2017-11-14
IL283649A (en) 2021-07-29
US20180109813A1 (en) 2018-04-19
AU2019203792A1 (en) 2019-06-20
US10425644B2 (en) 2019-09-24
PH12018500355A1 (en) 2018-08-13
IL297827B1 (en) 2023-09-01
CN107529704B (zh) 2019-08-09
IL252388B (en) 2022-08-01
PH12018500356B1 (en) 2018-08-13
US20230078680A1 (en) 2023-03-16
CO6852030A2 (es) 2014-01-30
CN107801025A (zh) 2018-03-13
HUE057958T2 (hu) 2022-06-28
IL230415A (en) 2017-01-31
KR20180006510A (ko) 2018-01-17
SI2721819T1 (sl) 2023-12-29
IL252388A0 (en) 2017-07-31
IL305221A (en) 2023-10-01
BR112013032333A2 (pt) 2016-12-20
JP6356723B2 (ja) 2018-07-11
AU2021209284B2 (en) 2022-06-23
DK3471415T3 (da) 2021-11-01
CN107333140A (zh) 2017-11-07
PH12018500351A1 (en) 2018-08-13
CN107465928B (zh) 2020-10-30
CN107360434B (zh) 2020-05-12
CN107360423A (zh) 2017-11-17
LT3471415T (lt) 2021-12-10
PH12019500790A1 (en) 2019-11-11
IL299953B1 (en) 2023-09-01
EP3930330B1 (en) 2023-06-07
JP5952900B2 (ja) 2016-07-13
AP2014007360A0 (en) 2014-01-31
WO2012172114A1 (en) 2012-12-20
US10057603B2 (en) 2018-08-21
KR102160647B1 (ko) 2020-09-28
US20240048708A1 (en) 2024-02-08
IL249644A0 (en) 2017-02-28
IL297827B2 (en) 2024-01-01
CA2839560A1 (en) 2012-12-20
CN107770559A (zh) 2018-03-06
HK1246541A1 (zh) 2018-09-07
RU2699677C2 (ru) 2019-09-09
US20200267389A1 (en) 2020-08-20
BR112013032332B1 (pt) 2022-08-16
US9918104B2 (en) 2018-03-13
CN103748886A (zh) 2014-04-23
CA2839569A1 (en) 2012-12-20
AP3686A (en) 2016-04-23
AU2016202638B2 (en) 2017-06-15
AU2017228613B2 (en) 2017-11-02
LT3930330T (lt) 2023-09-11
CL2013003603A1 (es) 2014-08-01
US20190191165A1 (en) 2019-06-20
US10298964B2 (en) 2019-05-21
AU2017228613A1 (en) 2017-10-05
CN107529709A (zh) 2018-01-02
EP3930330A1 (en) 2021-12-29
PH12018500349B1 (en) 2018-08-13
US20140140400A1 (en) 2014-05-22
HK1246543A1 (zh) 2018-09-07
SI3471415T1 (sl) 2021-12-31
EP2721822A1 (en) 2014-04-23
CN107360423B (zh) 2020-05-12
CN107333142B (zh) 2020-06-02
PH12018500331A1 (en) 2018-07-09
IL259768A (en) 2018-07-31
IL294454A (en) 2022-09-01
US10230954B2 (en) 2019-03-12
JP5925884B2 (ja) 2016-05-25
UA115186C2 (uk) 2017-09-25
US10148962B2 (en) 2018-12-04
EP3471415A1 (en) 2019-04-17
LT2721819T (lt) 2023-11-27
JP2018186527A (ja) 2018-11-22
MX336735B (es) 2016-01-29
KR20190136116A (ko) 2019-12-09
US9973761B2 (en) 2018-05-15
US20160360204A1 (en) 2016-12-08
CN107465927A (zh) 2017-12-12
US10432940B2 (en) 2019-10-01
CN107517384B (zh) 2020-06-30
US20160366447A1 (en) 2016-12-15
CN103931194A (zh) 2014-07-16
AU2012268950A1 (en) 2014-01-30
KR20170047406A (ko) 2017-05-04
PL3343781T3 (pl) 2022-03-28
EP4033672A1 (en) 2022-07-27
US20140198841A1 (en) 2014-07-17
EP2721819A1 (en) 2014-04-23
US9936227B2 (en) 2018-04-03
CN103733622A (zh) 2014-04-16
PH12018500354A1 (en) 2018-08-13
US20160360238A1 (en) 2016-12-08
US20180295387A1 (en) 2018-10-11
RU2014101164A (ru) 2015-07-27
PT3343781T (pt) 2022-03-07
CN107529704A (zh) 2018-01-02
HUE042350T2 (hu) 2019-06-28
IL304856B1 (en) 2024-04-01
US20170302954A1 (en) 2017-10-19
PH12018500329A1 (en) 2018-07-09
PH12018500330A1 (en) 2018-07-09
US20170302953A1 (en) 2017-10-19
CN107465927B (zh) 2020-05-12
DK2721819T3 (da) 2023-11-13
ES2704627T3 (es) 2019-03-19
MX364201B (es) 2019-04-16
AU2016202638A1 (en) 2016-05-19
US11277614B2 (en) 2022-03-15
PH12018500352A1 (en) 2018-08-13
US20190158840A1 (en) 2019-05-23
JP7231594B2 (ja) 2023-03-01
US20180332290A1 (en) 2018-11-15
US20190141329A1 (en) 2019-05-09
HUE056273T2 (hu) 2022-02-28
US10630988B2 (en) 2020-04-21
CN107529709B (zh) 2019-05-07
CN107801041A (zh) 2018-03-13
KR101882848B1 (ko) 2018-07-27
CN107613307A (zh) 2018-01-19
RU2595934C2 (ru) 2016-08-27
AU2022235513B2 (en) 2023-04-13
AU2023203785B2 (en) 2023-12-21
AU2019203792B2 (en) 2021-04-29
PL3471415T3 (pl) 2022-01-03
KR101662136B1 (ko) 2016-10-04
RU2642373C1 (ru) 2018-01-24
US20180205953A1 (en) 2018-07-19
EP3343781B1 (en) 2021-12-01
CN107529706A (zh) 2018-01-02
DK3343781T3 (da) 2022-03-07
US20200169733A1 (en) 2020-05-28
PH12018500348A1 (en) 2018-08-13
HK1248434B (zh) 2020-04-24
JP2014518473A (ja) 2014-07-28
JP2014520451A (ja) 2014-08-21
IL299953B2 (en) 2024-01-01
US20170366810A1 (en) 2017-12-21
US11533485B2 (en) 2022-12-20
PH12018500354B1 (en) 2018-08-13
US10432939B2 (en) 2019-10-01
IL299953A (en) 2023-03-01
MX2013014868A (es) 2014-05-28
US10630987B2 (en) 2020-04-21
PH12018500356A1 (en) 2018-08-13
CN107529705A (zh) 2018-01-02
CN107465926B (zh) 2021-06-08
IL309379A (en) 2024-02-01
JP2014522613A (ja) 2014-09-04
HK1246545A1 (zh) 2018-09-07
JP7100836B2 (ja) 2022-07-14
IL265636B (en) 2021-06-30
JP6814780B2 (ja) 2021-01-20
RU2018100106A3 (ko) 2019-07-17
CN107465926A (zh) 2017-12-12
AU2019200328B2 (en) 2019-03-07
JP2021044809A (ja) 2021-03-18
CN107529707B (zh) 2019-10-01
CN107333141A (zh) 2017-11-07
US20170302952A1 (en) 2017-10-19
PH12018500329B1 (en) 2018-07-09
FI2721819T3 (fi) 2023-11-16
AU2019200328A1 (en) 2019-02-07
MX2023005264A (es) 2023-05-23
ES2953667T3 (es) 2023-11-15
US9930371B2 (en) 2018-03-27
JP2017085602A (ja) 2017-05-18
AU2022235513A1 (en) 2022-10-13
EP3703367A1 (en) 2020-09-02
CL2013003601A1 (es) 2014-07-25
CO6852031A2 (es) 2014-01-30
AP2016009618A0 (en) 2016-12-31
MX2013014867A (es) 2014-05-21
PH12018500330B1 (en) 2018-07-09
EP2721822B1 (en) 2018-10-31
CN103748886B (zh) 2017-11-10
PH12018500355B1 (en) 2018-08-13
US9729883B2 (en) 2017-08-08
US9628827B2 (en) 2017-04-18
CN107801041B (zh) 2019-08-13
US10440364B2 (en) 2019-10-08
US20140177707A1 (en) 2014-06-26
US9473170B2 (en) 2016-10-18
EP4277276A1 (en) 2023-11-15
HK1248951A1 (zh) 2018-10-19
HK1248948B (zh) 2020-02-21
IL230023A (en) 2017-06-29
ZA201400029B (en) 2015-04-29
RU2018120845A (ru) 2019-12-09
EP2721820A1 (en) 2014-04-23
DK2721822T3 (en) 2019-02-18
CN103931194B (zh) 2017-09-05
LT3343781T (lt) 2022-03-10
US10313672B2 (en) 2019-06-04
CA2839560C (en) 2016-10-04
MX2019004403A (es) 2021-10-07
KR102437504B1 (ko) 2022-08-29
AU2012268950B2 (en) 2016-02-04
EP2721819B1 (en) 2023-08-16
HK1197128A1 (en) 2015-01-02
JP2016174378A (ja) 2016-09-29
JP2018139415A (ja) 2018-09-06
KR20200064171A (ko) 2020-06-05
MY170940A (en) 2019-09-19
US10306232B2 (en) 2019-05-28
PT2721822T (pt) 2019-01-23
US20230188719A1 (en) 2023-06-15
US20190320178A1 (en) 2019-10-17
HK1246542A1 (zh) 2018-09-07
HK1247488A1 (zh) 2018-09-21
HK1248947A1 (zh) 2018-10-19
HRP20220272T1 (hr) 2022-05-13
PH12018500328A1 (en) 2018-07-09
SI3343781T1 (sl) 2022-04-29
ES2961663T3 (es) 2024-03-13
CN107517383A (zh) 2017-12-26
KR101730587B1 (ko) 2017-04-26
KR102187981B1 (ko) 2020-12-07
ES2906869T3 (es) 2022-04-20
CN107333142A (zh) 2017-11-07
RU2019127048A3 (ko) 2021-03-01
RU2014101166A (ru) 2015-07-27
US9596475B2 (en) 2017-03-14
US20200092560A1 (en) 2020-03-19
CN107770559B (zh) 2020-06-26
US9918090B2 (en) 2018-03-13
PT2721819T (pt) 2023-11-22
CA2839569C (en) 2017-01-03
IL254274A0 (en) 2017-10-31
RS62714B1 (sr) 2022-01-31
RU2019127048A (ru) 2021-03-01
US20190327474A1 (en) 2019-10-24
US20220224904A1 (en) 2022-07-14
IL290229B (en) 2022-12-01
US20170250709A1 (en) 2017-08-31
CN107801042A (zh) 2018-03-13
CN107360434A (zh) 2017-11-17
RU2018100106A (ru) 2019-07-09
US20180359476A1 (en) 2018-12-13
CN107529710A (zh) 2018-01-02
US9455744B2 (en) 2016-09-27
US11838511B2 (en) 2023-12-05
MX345195B (es) 2017-01-20
MY184473A (en) 2021-04-01
UA123987C2 (uk) 2021-07-07
JP6059212B2 (ja) 2017-01-11
US9930370B2 (en) 2018-03-27
CN107517383B (zh) 2020-07-14
WO2012172115A1 (en) 2012-12-20
US10819982B2 (en) 2020-10-27
US20170142416A1 (en) 2017-05-18
PH12018500351B1 (en) 2018-08-13
CN107529706B (zh) 2020-11-17
RU2018120845A3 (ko) 2021-04-05
AU2012268951A1 (en) 2014-01-16
HK1247487A1 (zh) 2018-09-21
CN107613307B (zh) 2021-04-06
HUE062605T2 (hu) 2023-11-28
PH12018500328B1 (en) 2018-07-09
CN107529705B (zh) 2021-02-12
CN107529708A (zh) 2018-01-02
PH12018500349A1 (en) 2018-08-13
BR112013032332A2 (pt) 2016-12-20
IL254274B (en) 2018-06-28
KR102052471B1 (ko) 2019-12-05
CN107465928A (zh) 2017-12-12
HK1247489A1 (zh) 2018-09-21
KR102254000B1 (ko) 2021-05-20
CN103733622B (zh) 2017-06-30
CN107529707A (zh) 2018-01-02
HK1248436A1 (zh) 2018-10-12
CN107347161B (zh) 2020-06-12
US10063858B2 (en) 2018-08-28
PT3930330T (pt) 2023-08-31
KR20140028106A (ko) 2014-03-07
KR20240017975A (ko) 2024-02-08
ES2897209T3 (es) 2022-02-28
CN107529708B (zh) 2019-05-07
RS64604B1 (sr) 2023-10-31
HK1248949A1 (zh) 2018-10-19
ES2704627T8 (es) 2021-01-25
PH12019500792A1 (en) 2020-12-02
RU2758981C2 (ru) 2021-11-03
HK1247490A1 (zh) 2018-09-21
CN107801042B (zh) 2020-06-19
PH12018500353B1 (en) 2018-08-13
EP3343781A1 (en) 2018-07-04
PH12018500348B1 (en) 2018-08-13
SI3930330T1 (sl) 2023-10-30
CN107529710B (zh) 2020-04-07
KR101818978B1 (ko) 2018-01-16
US9762913B2 (en) 2017-09-12
ZA201400030B (en) 2015-04-29
IL290229A (en) 2022-03-01
PT3471415T (pt) 2021-11-04
US20180324435A1 (en) 2018-11-08
AU2024201731A1 (en) 2024-04-04
JP7464768B2 (ja) 2024-04-09
HK1246540A1 (zh) 2018-09-07
US10021393B2 (en) 2018-07-10
PL2721819T3 (pl) 2024-02-19
PH12018500350B1 (en) 2018-08-13
KR20160018879A (ko) 2016-02-17
KR20180086522A (ko) 2018-07-31
IL297827A (en) 2023-01-01
IL294454B2 (en) 2023-06-01
BR122020024986B1 (pt) 2022-02-22
IL249644A (en) 2017-09-28
IL290229B2 (en) 2023-04-01
KR20160119254A (ko) 2016-10-12
US20160360223A1 (en) 2016-12-08
IL304856A (en) 2023-09-01
CY1124687T1 (el) 2022-07-22
PL2721822T3 (pl) 2019-04-30
US9768804B1 (en) 2017-09-19
KR101994869B1 (ko) 2019-07-01
US20170180733A1 (en) 2017-06-22
HK1249313B (zh) 2020-04-24
RS63053B1 (sr) 2022-04-29
KR102631388B1 (ko) 2024-01-31
CN107801025B (zh) 2020-07-14

Similar Documents

Publication Publication Date Title
JP7464768B2 (ja) 動きベクトル差のエントロピー符号化
US10645388B2 (en) Context initialization in entropy coding

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant