KR101706838B1 - 비디오 코딩에서 참조 인덱스 코딩을 위한 바이패스 빈들 - Google Patents
비디오 코딩에서 참조 인덱스 코딩을 위한 바이패스 빈들 Download PDFInfo
- Publication number
- KR101706838B1 KR101706838B1 KR1020147031475A KR20147031475A KR101706838B1 KR 101706838 B1 KR101706838 B1 KR 101706838B1 KR 1020147031475 A KR1020147031475 A KR 1020147031475A KR 20147031475 A KR20147031475 A KR 20147031475A KR 101706838 B1 KR101706838 B1 KR 101706838B1
- Authority
- KR
- South Korea
- Prior art keywords
- reference picture
- picture index
- index value
- context
- coding mode
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
일 예에서, 본 개시물의 양태들은 참조 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 디코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 인덱스 구문 엘리먼트를 디코딩하는 방법에 관한 것이다. 본 방법은 또한 참조 인덱스 값이 컨텍스트 코딩 모드로 코딩된 적어도 하나의 빈보다 더 많은 빈들을 포함할 경우, 참조 인덱스 값의 적어도 다른 빈을 CABAC 프로세스의 바이패스 코딩 모드로 디코딩하는 단계, 및 참조 인덱스 값을 2진화하는 단계를 포함한다.
Description
본 개시물은 2012년 4월 11일자에 출원된 미국 가출원 번호 제 61/623,043호, 2012년 4월 23일자에 출원된 미국 가출원 제 61/637,218호, 2012년 4월 30일자에 출원된 미국 가출원 제 61/640,568호, 2012년 5월 15일자에 출원된 미국 가출원 제 61/647,422호, 및 2012년 6월 27일자에 출원된 미국 가출원 번호 제 61/665,151호의 이점을 주장하며, 이의 각각의 내용들이 여기에 그들 전체로 참조로 포함된다.
기술 분야
본 개시물은 비디오 코딩에 관한 것으로, 좀더 구체적으로는, 비디오 코딩 프로세스에서 구문 엘리먼트들을 코딩하는 기법들에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대정보 단말기들 (PDAs), 랩탑 또는 데스크탑 컴퓨터들, 태블릿 컴퓨터들, 디지털 카메라들, 디지털 리코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 원격 화상회의 디바이스들 등을 포함한, 광범위한 디바이스들에 포함될 수 있다. 디지털 비디오 디바이스들은 디지털 비디오 정보를 좀더 효율적으로 송수신하고 저장하기 위해, MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, AVC (Advanced Video Coding), 현재 개발중인 HEVC (High Efficiency Video Coding) 표준에 의해 정의된 표준들, 및 이런 표준들의 확장판들에 설명된 것들과 같은 비디오 압축 기법들을 구현한다.
비디오 압축 기법들은 비디오 시퀀스들에 고유한 리던던시를 감소시키거나 또는 제거하기 위해 공간 예측 및/또는 시간 예측을 포함한다. 블록-기반의 비디오 코딩에 있어, 비디오 프레임 또는 슬라이스는 블록들로 파티셔닝될 수도 있다. 비디오 프레임은 대안적으로 화상으로서 지칭될 수도 있다. 각각의 블록은 더 파티셔닝될 수도 있다. 인트라-코딩된 (I) 화상 또는 슬라이스에서의 블록들은 동일한 화상 또는 슬라이스에서 이웃하는 블록들에서의 참조 샘플들에 대한 공간 예측을 이용하여 인코딩된다. 인터-코딩된 (P 또는 B) 화상 또는 슬라이스에서의 블록들은 동일한 화상 또는 슬라이스에서 이웃하는 블록들에서의 참조 샘플들에 대한 공간 예측, 또는 다른 참조 화상들에서의 참조 샘플들에 대한 시간 예측을 이용할 수도 있다. 공간 또는 시간 예측은 코딩되는 블록에 대한 예측 블록을 초래한다. 잔여 데이터는 코딩되는 원래 블록과 예측 블록 사이의 픽셀 차이들을 나타낸다.
인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터, 및 코딩된 블록과 예측 블록 사이의 차이를 나타내는 잔여 데이터에 따라서 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔여 데이터에 따라서 인코딩된다. 추가적인 압축을 위해, 잔여 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 잔여 변환 계수들을 초래할 수도 있으며, 이 잔여 변환 계수는 그후 양자화될 수도 있다. 처음에 2차원 어레이로 배열된, 양자화된 변환 계수들은 엔트로피 코딩을 위한 변환 계수들의 1차원 벡터를 발생하기 위해 특정의 순서로 스캐닝될 수도 있다. 엔트로피 코딩은 또한 비디오 코딩 프로세스에서 사용되는 다양한 다른 구문 엘리먼트들에 적용될 수도 있다.
본 개시물의 기법들은 일반적으로 비디오 데이터를 엔트로피 코딩하는 것에 관한 것이다. 예를 들어, 컨텍스트 적응형 코딩을 수행할 때, 비디오 코더는 빈이 주어진 2진 값을 가질 우도를 나타낼 수도 있는 확률 추정치들을 이용하여, 데이터의 각각의 비트 또는 "빈" 을 코딩할 수도 있다. 확률 추정치들이 "컨텍스트 모델" 로 또한 지칭되는 확률 모델 내에 포함될 수도 있다. 비디오 코더는 빈에 대한 컨텍스트를 결정함으로써 컨텍스트 모델을 선택할 수도 있다. 빈에 대한 컨텍스트는 이전에 코딩된 구문 엘리먼트들의 관련되는 빈들의 값들을 포함할 수도 있다. 그 빈을 코딩한 후, 비디오 코더는 가장 현재의 확률 추정들을 반영하기 위해 빈의 값에 기초하여 컨텍스트 모델을 업데이트할 수도 있다. 컨텍스트 코딩 모드를 적용하는 것과는 대조적으로, 비디오 코더는 바이패스 코딩 모드를 적용할 수도 있다. 예를 들어, 비디오 코더는 바이패스 모드를 이용하여, 정규 산술 코딩 프로세스 (regular arithmetic coding process) 를 바이패스하거나, 또는 생략할 수도 있다. 이런 경우들에서, 비디오 코더는 (코딩 동안 업데이트되지 않는) 고정 확률 모델을 이용하여 그 빈들을 코딩하는 것을 바이패스할 수도 있다.
본 개시물의 기법들은 인터-코딩된 비디오 데이터와 연관되는 구문 엘리먼트들을 효율적으로 컨텍스트 코딩하는 것에 관한 것이다. 예를 들어, 본 개시물의 양태들은 참조 인덱스 값들, 모션 벡터 예측자들, 모션 벡터 차이 값들 등을 효율적으로 코딩하는 것에 관한 것이다. 일부의 경우, 비디오 코더는 구문 엘리먼트의 일부 빈들에 대한 컨텍스트 코딩 및 구문 엘리먼트의 다른 빈들에 대한 바이패스 코딩을 수행할 수도 있다. 예를 들어, 비디오 코더는 참조 인덱스 값의 하나 이상의 빈들을 컨텍스트 코딩하고, 참조 인덱스 값의 하나 이상의 다른 빈들을 바이패스 코딩할 수도 있다.
일 예에서, 본 개시물의 양태들은 참조 인덱스 값을 2진화하는 단계, 2진화된 참조 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 인코딩하는 단계, 및 2진화된 참조 인덱스 값이 컨텍스트 코딩 모드로 코딩된 적어도 하나의 빈보다 더 많은 빈들을 포함할 경우, 2진화된 참조 인덱스 값의 적어도 다른 빈을 CABAC 프로세스의 바이패스 코딩 모드로 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 인덱스 구문 엘리먼트를 인코딩하는 방법에 관한 것이다.
또 다른 예에서, 본 개시물의 양태들은 참조 인덱스 값을 2진화하고, 2진화된 참조 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 인코딩하고, 그리고, 2진화된 참조 인덱스 값이 컨텍스트 코딩 모드로 코딩된 적어도 하나의 빈보다 더 많은 빈들을 포함할 경우, 2진화된 참조 인덱스 값의 적어도 다른 빈을 CABAC 프로세스의 바이패스 코딩 모드로 인코딩하기 위해 하나 이상의 프로세서들을 포함하는, 비디오 인코딩 프로세스에서 참조 인덱스 구문 엘리먼트를 인코딩하는 장치에 관한 것이다.
또 다른 예에서, 본 개시물의 양태들은 참조 인덱스 값을 2진화하는 수단, 2진화된 참조 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 인코딩하는 수단, 및 2진화된 참조 인덱스 값이 컨텍스트 코딩 모드로 코딩된 적어도 하나의 빈보다 더 많은 빈들을 포함할 경우, 2진화된 참조 인덱스 값의 적어도 다른 빈을 CABAC 프로세스의 바이패스 코딩 모드로 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 인덱스 구문 엘리먼트를 인코딩하는 장치에 관한 것이다.
또 다른 예에서, 본 개시물의 양태들은 참조 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 디코딩하는 단계, 참조 인덱스 값이 컨텍스트 코딩 모드로 코딩된 적어도 하나의 빈보다 더 많은 빈들을 포함할 경우, 참조 인덱스 값의 적어도 다른 빈을 CABAC 프로세스의 바이패스 코딩 모드로 디코딩하는 단계, 및 참조 인덱스 값을 2진화하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 인덱스 구문 엘리먼트를 디코딩하는 방법에 관한 것이다.
또 다른 예에서, 본 개시물의 양태들은 참조 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 디코딩하고, 참조 인덱스 값이 컨텍스트 코딩 모드로 코딩된 적어도 하나의 빈보다 더 많은 빈들을 포함할 경우, 참조 인덱스 값의 적어도 다른 빈을 CABAC 프로세스의 바이패스 코딩 모드로 디코딩하고, 및 참조 인덱스 값을 2진화하도록 구성된 하나 이상의 프로세서들을 포함하는, 비디오 디코딩 프로세스에서 참조 인덱스 구문 엘리먼트를 디코딩하는 장치에 관한 것이다.
또 다른 예에서, 본 개시물의 양태들은 실행될 경우, 하나 이상의 프로세서들로 하여금, 참조 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 디코딩하고, 참조 인덱스 값이 컨텍스트 코딩 모드로 코딩된 적어도 하나의 빈보다 더 많은 빈들을 포함할 경우, 참조 인덱스 값의 적어도 다른 빈을 CABAC 프로세스의 바이패스 코딩 모드로 디코딩하고, 및 참조 인덱스 값을 2진화하게 하는 명령들을 안에 저장하는 비-일시적 컴퓨터-판독가능 매체에 관한 것이다.
하나 이상의 예들의 세부 사항들이 첨부도면 및 아래의 상세한 설명에서 개시된다. 다른 특성들, 목적들, 및 이점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백히 알 수 있을 것이다.
도 1 은 예시적인 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2 는 예시적인 비디오 인코더를 예시하는 블록도이다.
도 3 은 예시적인 비디오 디코더를 예시하는 블록도이다.
도 4 는 예시적인 산술 코딩 프로세스를 예시하는 블록도이다.
도 5a 는 예측 데이터의 예시적인 스트링을 예시하는 블록도이다.
도 5b 는 예측 데이터의 또 다른 예시적인 스트링을 예시하는 블록도이다.
도 6 은 예측 데이터의 또 다른 예시적인 스트링을 예시하는 블록도이다.
도 7 은 예측 데이터의 또 다른 예시적인 스트링을 예시하는 블록도이다.
도 8a 는 3개의 가능한 값들로 인터-예측 방향 구문 엘리먼트를 컨텍스트 코딩하는 것을 예시하는 블록도이다.
도 8b 는 본 개시물의 양태들에 따른, 인터-예측 방향 구문 엘리먼트를 바이패스 코딩하는 것을 예시하는 블록도이다.
도 9 는 본 개시물의 양태들에 따른, 참조 인덱스 값을 엔트로피 인코딩하는 일 예를 예시하는 플로우차트이다.
도 10 은 본 개시물의 양태들에 따른, 참조 인덱스 값을 엔트로피 디코딩하는 일 예를 예시하는 플로우차트이다.
도 11 은 본 개시물의 양태들에 따른, 예측 데이터를 엔트로피 인코딩하는 일 예를 예시하는 플로우차트이다.
도 12 는 본 개시물의 양태들에 따른, 예측 데이터를 엔트로피 디코딩하는 일 예를 예시하는 플로우차트이다.
도 2 는 예시적인 비디오 인코더를 예시하는 블록도이다.
도 3 은 예시적인 비디오 디코더를 예시하는 블록도이다.
도 4 는 예시적인 산술 코딩 프로세스를 예시하는 블록도이다.
도 5a 는 예측 데이터의 예시적인 스트링을 예시하는 블록도이다.
도 5b 는 예측 데이터의 또 다른 예시적인 스트링을 예시하는 블록도이다.
도 6 은 예측 데이터의 또 다른 예시적인 스트링을 예시하는 블록도이다.
도 7 은 예측 데이터의 또 다른 예시적인 스트링을 예시하는 블록도이다.
도 8a 는 3개의 가능한 값들로 인터-예측 방향 구문 엘리먼트를 컨텍스트 코딩하는 것을 예시하는 블록도이다.
도 8b 는 본 개시물의 양태들에 따른, 인터-예측 방향 구문 엘리먼트를 바이패스 코딩하는 것을 예시하는 블록도이다.
도 9 는 본 개시물의 양태들에 따른, 참조 인덱스 값을 엔트로피 인코딩하는 일 예를 예시하는 플로우차트이다.
도 10 은 본 개시물의 양태들에 따른, 참조 인덱스 값을 엔트로피 디코딩하는 일 예를 예시하는 플로우차트이다.
도 11 은 본 개시물의 양태들에 따른, 예측 데이터를 엔트로피 인코딩하는 일 예를 예시하는 플로우차트이다.
도 12 는 본 개시물의 양태들에 따른, 예측 데이터를 엔트로피 디코딩하는 일 예를 예시하는 플로우차트이다.
비디오 코딩 디바이스는 공간 및 시간 리던던시를 이용함으로써 비디오 데이터를 압축할 수도 있다. 예를 들어, 비디오 인코더는 이웃하는, 이전에 코딩된 블록들에 대해 블록을 코딩함으로써 공간 리던던시를 이용할 수도 있다. 이와 유사하게, 비디오 인코더는 이전에 코딩된 화상들의 데이터에 대해 블록을 코딩함으로써 시간 리던던시를 이용할 수도 있다. 특히, 비디오 인코더는 공간 이웃의 데이터 (인트라-코딩으로 지칭됨) 로부터 또는 하나 이상의 다른 화상들의 데이터 (인터-코딩으로 지칭됨) 로부터 현재의 블록을 예측할 수도 있다. 비디오 인코더는 그후 그 블록에 대한 잔여를 그 블록에 대한 실제 픽셀 값들과 그 블록에 대한 예측된 픽셀 값들 사이의 차이로서 계산할 수도 있다. 따라서, 블록에 대한 잔여치는 픽셀 (또는, 공간) 도메인에서의 픽셀 단위 차이 값들을 포함할 수도 있다.
비디오 코더는 비디오 데이터의 블록을 인터-예측할 때 모션 추정 및 모션 보상을 수행할 수도 있다. 예를 들어, 모션 추정은 비디오 인코더에서 수행되며, 하나 이상의 모션 벡터들을 계산하는 것을 포함한다. 모션 벡터는 참조 화상의 참조 샘플에 대한, 현재의 화상에서의 비디오 데이터의 블록의 변위를 나타낼 수도 있다. 참조 샘플은 픽셀 차이의 관점에서 코딩중인 블록에 가장 가깝게 매칭하는 것으로 발견되는 블록일 수도 있으며, 이것은 SAD (sum of absolute difference), SSD (sum of squared difference), 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 참조 샘플은 참조 화상 또는 참조 슬라이스 내 어디서든지 발생할 수도 있으며, 반드시 참조 화상 또는 슬라이스의 블록 경계에서 발생하지 않을 수도 있다. 일부 예들에서, 참조 샘플은 분수 픽셀 위치에서 발생할 수도 있다.
모션 벡터를 정의하는 데이터는 예를 들어, 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터에 대한 해상도 (예컨대, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 가리키는 참조 화상, 및/또는 예컨대, 예측 방향으로 표시되는 바와 같은, 모션 벡터에 대한 참조 화상 리스트 (예컨대, 리스트 0 (L0), 리스트 1 (L1) 또는 결합된 리스트 (LC)) 를 기술할 수도 있다. 참조 인덱스 (ref_idx) 는 모션 벡터가 가리키는 참조 화상 리스트에서 특정의 화상을 식별할 수도 있다. 이와 같이, ref_idx 구문 엘리먼트는 참조 화상 리스트, 예컨대, L0, L1 또는 LC 으로의 인덱스로서 기능한다.
참조 블록을 식별하자 마자, 원래 비디오 데이터 블록과 참조 블록 사이의 차이가 결정된다. 이 차이는 예측 잔여 데이터로서 지칭될 수도 있으며, 코딩되는 블록에서의 픽셀 값들과, 코딩된 블록을 나타내기 위해 선택된 참조 블록에서의 픽셀 값들 사이의 픽셀 차이들을 나타낸다. 더 나은 압축을 달성하기 위해, 예측 잔여 데이터는 예컨대, 이산 코사인 변환 (DCT), 정수 변환, Karhunen-Loeve (K-L) 변환, 또는 또 다른 변환을 이용하여 변환될 수도 있다. 추가적인 압축을 위해, 변환 계수들은 양자화될 수도 있다.
엔트로피 코더는 그후 비디오 데이터의 블록과 연관되는 심볼들 또는 구문 엘리먼트들 및 양자화된 변환 계수들을 엔트로피 인코딩한다. 엔트로피 코딩 방식들의 예들은 컨텍스트 적응형 가변 길이 코딩 (CAVLC), 컨텍스트 적응형 2진 산술 코딩 (CABAC), 확률 간격 파티셔닝 엔트로피 코딩 (PIPE), 또는 기타 등등을 포함한다. 컨텍스트 코딩 전에, 비디오 인코더는 각각의 코딩되는 값의 절대값을 2진화된 형태로 변환할 수도 있다. 이와 같이, 코딩되는 각각의 비-제로 값은 예컨대, 값을 하나 이상의 비트들, 또는 "빈들" 을 갖는 코드워드로 변환하는 1진 코딩 표 또는 다른 코딩 방식을 이용하여, "2진화될" 수도 있다.
CABAC 에 대해, 일 예로서, 비디오 코더는 비디오 데이터의 블록과 연관되는 심볼들을 코딩하기 위해 확률 모델 (또한, 컨텍스트 모델로서 지칭됨) 을 선택할 수도 있다. 예를 들어, 인코더에서, 목표 심볼은 확률 모델을 이용함으로써 코딩될 수도 있다. 디코더에서, 목표 심볼은 확률 모델을 이용함으로써 파싱될 수도 있다. 일부의 경우, 빈들은 컨텍스트 적응형 코딩과 비-컨텍스트 적응형 코딩의 결합을 이용하여 코딩될 수도 있다. 예를 들어, 비디오 코더는 바이패스 모드를 이용하여 하나 이상의 빈들에 대한 정규 산술 코딩 프로세스를 바이패스하거나, 또는 생략하지만, 다른 빈들에 대해서는 컨텍스트 적응형 코딩을 이용할 수도 있다. 이런 예들에서, 비디오 코더는 고정 확률 모델을 이용하여 빈들을 바이패스 코딩할 수도 있다. 즉, 바이패스 코딩된 빈들은 컨텍스트 또는 확률 업데이트들을 포함하지 않는다. 일반적으로, 아래에서 도 4 에 대해 더 자세히 설명하는 바와 같이, 컨텍스트 코딩 빈들은 그 빈들을 컨텍스트 코딩 모드를 이용하여 코딩하는 것으로 지칭될 수도 있다. 이와 유사하게, 바이패스 코딩 빈들은 그 빈들을 바이패스 코딩 모드를 이용하여 코딩하는 것으로 지칭될 수도 있다.
구문 엘리먼트의 빈을 코딩하기 위한 컨텍스트 모델은 이전에 코딩된 이웃하는 구문 엘리먼트들의 관련되는 빈들의 값들에 기초할 수도 있다. 일 예로서, 현재의 구문 엘리먼트의 빈을 코딩하기 위한 컨텍스트 모델은 예컨대, 현재의 구문 엘리먼트의 상부 상에, 그리고 좌측에 있는, 이전에 코딩된 이웃하는 구문 엘리먼트들의 관련되는 빈들의 값들에 기초할 수도 있다. 컨텍스트가 유도되는 위치들은 컨텍스트 서포트 이웃 (또한, "컨텍스트 서포트 (context support)", 또는 간단히 "서포트 (support)" 로서 지칭됨) 로서 지칭될 수도 있다. 예를 들어, (예컨대, 비디오 데이터의 블록에서 비-제로 변환 계수들의 로케이션들을 나타내는) 유의도 맵의 빈들을 코딩하는 것에 대해, 5개의 지점 서포트가 컨텍스트 모델을 정의하는데 사용될 수도 있다.
일부 예들에서, 컨텍스트 모델 (Ctx) 은 복수의 상이한 컨텍스트들 중 하나를 선택하는데 적용되는 인덱스 또는 오프셋일 수도 있으며, 복수의 상이한 컨텍스트들 각각은 특정의 확률 모델에 대응할 수도 있다. 그러므로, 어쨌든, 각각의 컨텍스트에 대해 상이한 확률 모델이 일반적으로 정의된다. 그 빈을 코딩한 후, 확률 모델은 그 빈에 대한 가장 현재의 확률 추정치들을 반영하기 위해 빈의 값에 기초하여 추가로 업데이트된다. 예를 들어, 확률 모델은 유한 상태 머신에서의 상태로서 유지될 수도 있다. 각각의 특정의 상태는 특정의 확률 값에 대응할 수도 있다. 확률 모델의 업데이트에 대응하는 다음 상태는 현재의 빈 (예컨대, 현재 코딩되는 빈) 의 값에 의존할 수도 있다. 따라서, 확률 모델의 선택은 그 값들이, 적어도 부분적으로, 빈이 주어진 값을 가질 확률을 나타내기 때문에, 이전에 코딩된 빈들의 값들에 의해 영향을 받을 수도 있다. 위에서 설명된 컨텍스트 코딩 프로세스는 일반적으로 컨텍스트-적응형 코딩 모드로서 지칭될 수도 있다.
위에서 설명된 확률 업데이팅 프로세스는 코딩 프로세스로 지연할 수도 있다. 예를 들어, 컨텍스트 적응형 코딩의 목적들을 위해 2개의 빈들이 동일한 컨텍스트 모델 (예컨대, ctx(0)) 을 사용한다고 가정한다. 이 예에서, 제 1 빈은 ctx(0) 를 이용하여 코딩을 위한 확률 모델을 결정할 수도 있다. 제 1 빈의 값은 ctx(0) 와 연관되는 확률 모델에 영향을 미친다. 따라서, 확률 업데이트는 제 2 빈을 ctx(0) 로 코딩하기에 앞서 수행되어야 한다. 이와 같이, 확률 업데이트는 코딩 사이클에 지연을 도입할 수도 있다.
비디오 코딩에 대해, 또 다른 예로서, 비디오 코더는 참조 인덱스 (ref_idx) 의 빈들의 시퀀스 (예컨대, bin(0), bin(1), … bin(n)) 를 컨텍스트 적응형 코딩할 수도 있다. 위에서 언급한 바와 같이, 참조 인덱스 (ref_idx) 는 모션 벡터가 가리키는 참조 화상 리스트에서 특정의 화상을 식별할 수도 있다. 단일 참조 인덱스 (ref_idx) 는 예를 들어, 최고 15 개의 빈들을 포함할 수도 있다. 설명의 목적들을 위해, 비디오 코더가 그 빈들을 코딩하기 위한 3개의 컨텍스트들을 유도하고 그 컨텍스트들을 (예컨대, 컨텍스트 인덱스들 ctx(0), ctx(1), 및 ctx(2) 을 이용하여 표시되는) 코딩되는 빈 개수에 기초하여 적용한다고 가정한다. 즉, 이 예에서, 비디오 코더는 ctx(0) 를 이용하여 bin(0) 를 코딩하고, ctx(1) 를 이용하여 bin(1) 를 코딩하고, 그리고 ctx(2) 를 이용하여 나머지 빈들 (e.g, bin(2) 내지 bin(n)) 을 코딩할 수도 있다.
위에서 설명된 예에서, 제 3 컨텍스트 (ctx(2)) 는 다수의 빈들 (예컨대, 최고 13 개의 빈들) 간에 공유된다. 이 방법에서 bin(n) 을 통해서 bin(2) 을 코딩하는데 동일한 확률 모델을 이용하는 것은 연속적인 코딩 사이클들 사이에 지연을 일으킬 수도 있다. 예를 들어, 위에서 언급한 바와 같이, 동일한 컨텍스트를 반복적으로 호출하고 각각의 빈 이후 그 모델을 업데이트하기를 대기하는 것은 코더의 처리량에 대한 병목현상 (bottleneck) 을 야기할 수도 있다.
더욱이, bin(2) 과 bin(n) 사이의 상관이 확률 모델을 업데이트하는 것과 연관되는 시간 및 계산 리소스들을 보장하기에 충분하지 않을 수도 있다. 즉, 컨텍스트 적응형 코딩의 하나의 잠재적인 이점은 (동일한 컨텍스트가 주어진다고 하면) 이전에 코딩된 빈들에 기초하여 확률 모델을 적응시키는 능력이다. 그러나, 제 1 빈의 값이 후속 빈의 값과의 관련 또는 관계가 적으면, 확률 업데이트와 연관되는 효율 이득이 작을 수도 있다. 따라서, 낮은 상관을 보이는 빈들은 상대적으로 더 높은 상관들을 가지는 빈들 만큼 컨텍스트 적응형 코딩으로부터 이득을 얻지 못할 수도 있다.
본 개시물의 양태들은 인터-코딩된 비디오 데이터와 연관되는 구문 엘리먼트들을 효율적으로 컨텍스트 코딩하는 것에 관한 것이다. 예를 들어, 본 개시물의 양태들은 참조 인덱스 값들, 모션 벡터 예측자들, 모션 벡터 차이 값들 등을 효율적으로 코딩하는 것에 관한 것이다. 일부 예들에서, 비디오 코더는 구문 엘리먼트의 일부 빈들에 대한 컨텍스트 코딩 및 구문 엘리먼트의 다른 빈들에 대한 바이패스 코딩을 수행할 수도 있다.
특히 위에서 설명된 참조 인덱스 코딩 예와 관련하여, 본 개시물의 양태들에 따르면, 비디오 코더는 ctx(0) 를 bin(0) 에, ctx(1) 를 bin(1) 에, ctx(2) 를 bin(2) 에 적용할 수도 있으며, 어떤 컨텍스트들도 요구됨이 없이, 참조 인덱스 값의 나머지 빈들을 바이패스 코딩할 수도 있다. 즉, 비디오 코더는 ctx(2) 를, 2진화된 참조 인덱스 값의 bin(2) 를 CABAC 코딩하기 위한 컨텍스트로서 이용할 수도 있으나, bin(2) 에 뒤따르는 임의의 빈들을 바이패스 코딩할 수도 있다.
참조 인덱스 값들이 길이가 15 개의 빈들 이상일 수도 있다는 점을 고려하면, 이 방법으로 컨텍스트 코딩되는 빈들의 개수를 제한하는 것은 참조 인덱스 빈들의 모두를 컨텍스트 코딩하는 것에 대한, 계산 및/또는 시간 절감을 발생할 수도 있다. 더욱이, 위에서 언급한 바와 같이, 참조 인덱스 값의 비트들 사이의 상관이 높지 않을 수도 있으며 (예컨대, 참조 인덱스 값의 bin(3) 의 값이 bin(4) 가 "1" 또는 "0" 의 값을 가질 우도와 관련된 유용한 표시를 제공하지 않을 수도 있으며), 이것은 컨텍스트 코딩의 이익을 감소시킨다. 따라서, 참조 인덱스 값의 더 적은 빈들을 컨텍스트 코딩함으로써 절약되는 시간 및 계산 리소스들의 양이, 참조 인덱스 값의 모든 빈들을 컨텍스트 코딩하는 것과 연관되는 코딩 효율 이득들보다 더 중요할 수도 있다.
본 개시물의 다른 양태들은 일반적으로 코딩 동안 컨텍스트 코딩된 빈들 및 비-컨텍스트 코딩된 빈들을 그룹화하는 것에 관한 것이다. 예를 들어, 위에서 언급한 바와 같이, 일부 구문 엘리먼트들은 컨텍스트 코딩과 바이패스 코딩의 결합을 이용하여 코딩될 수도 있다. 즉, 일부 구문 엘리먼트들은 컨텍스트 코딩되는 하나 이상의 빈들 및 바이패스 코딩되는 하나 이상의 다른 빈들을 가질 수도 있다.
예의 목적들을 위해, 2개의 구문 엘리먼트들 각각이 (하나 이상의 컨텍스트 코딩된 빈들을 포함하는) 컨텍스트 코딩된 부분 및 (하나 이상의 바이패스 코딩된 빈들을 포함하는) 바이패스 코딩된 부분을 갖는다고 가정한다. 이 예에서, 비디오 코더는 제 1 구문 엘리먼트의 컨텍스트 코딩된 부분을 코딩하고, 그후 제 1 구문 엘리먼트의 바이패스 코딩된 부분을, 그후 제 2 구문 엘리먼트의 컨텍스트 코딩된 부분을, 그후 제 2 구문 엘리먼트의 바이패스 코딩된 부분을 코딩할 수도 있다.
위에서 설명된 예에서, 비디오 코더는 2개의 구문 엘리먼트들을 코딩하기 위해 컨텍스트 코딩 모드와 바이패스 코딩 모드 사이에 3번 스위칭할 수도 있다. 예를 들어, 비디오 코더는 제 1 구문 엘리먼트의 컨텍스트 코딩된 빈들 이후, 제 1 구문 엘리먼트의 바이패스 코딩된 빈들 이전, 그리고, 제 2 구문 엘리먼트의 컨텍스트 코딩된 빈들 이후, 컨텍스트 코딩과 바이패스 코딩 사이에 스위칭한다. 이 방법으로 컨텍스트 코딩과 바이패스 코딩 사이의 스위칭은 계산적으로 비효율적일 수도 있다. 예를 들어, 컨텍스트 코딩과 바이패스 코딩 사이의 스위칭은 하나 이상의 클록 사이클들을 소비할 수도 있다. 따라서, 각각의 엘리먼트에 대한 컨텍스트 코딩과 바이패스 코딩 사이의 스위칭은 컨텍스트 코딩과 바이패스 코딩 사이의 전환으로 인해, 레이턴시를 도입할 수도 있다.
본 개시물의 양태들은 코딩 동안 컨텍스트 코딩된 빈들 및 비-컨텍스트 코딩된 빈들 (예컨대, 바이패스 빈들) 을 그룹화하는 것을 포함한다. 예를 들어, 위에서 설명된 예에 관하여, 본 개시물의 양태들에 따르면, 비디오 코더는 제 1 구문 엘리먼트의 컨텍스트 코딩된 빈들을 코딩하고, 뒤이어서 제 2 구문 엘리먼트의 컨텍스트 코딩된 빈들을, 뒤이어서 제 1 구문 엘리먼트의 바이패스 코딩된 빈들을, 뒤이어서 제 2 구문 엘리먼트의 바이패스 코딩된 빈들을 코딩할 수도 있다. 따라서, 비디오 코더는 단지 컨텍스트 코딩 모드와 바이패스 코딩 모드 사이에, 예컨대, 컨텍스트 코딩된 빈들과 비-컨텍스트 코딩된 빈들 사이에, 한번에 (single time) 전환한다.
이와 같이 빈들을 그룹화하는 것은 비디오 코더가 컨텍스트 코딩 모드와 바이패스 코딩 모드 사이에서 스위칭하는 빈도를 감소시킬 수도 있다. 따라서, 본 개시물의 양태들은 컨텍스트 코딩된 빈들과 바이패스 코딩된 빈들의 결합을 포함하는 구문 엘리먼트들을 코딩할 때 레이턴시를 감소시킬 수도 있다. 일부 예들에서, 아래에서 도 5 내지 도 8 과 관련하여 설명되는 바와 같이, 예측 데이터와 연관되는 빈들은 본 개시물의 기법들에 따라서 그룹화될 수도 있다. 예를 들어, 본원에서 설명하는 바와 같이, 예측 데이터는 일반적으로 인터-예측과 연관되는 데이터를 포함할 수도 있다. 예를 들어, 예측 데이터는 참조 인덱스 값들, 모션 벡터들, 모션 벡터 예측자들, 모션 벡터 차이 값들 등을 나타내는 데이터를 포함할 수도 있다.
도 1 은 본 개시물의 예들에 따라서 예측 데이터를 코딩하도록 구성될 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에 나타낸 바와 같이, 시스템 (10) 은 인코딩된 비디오를 목적지 디바이스 (14) 로 통신 채널 (16) 을 통해서 송신하는 소스 디바이스 (12) 를 포함한다. 인코딩된 비디오 데이터는 또한 저장 매체 (34) 또는 파일 서버 (36) 상에 저장될 수도 있으며, 원하는 바에 따라 목적지 디바이스 (14) 에 의해 액세스될 수도 있다. 저장 매체 또는 파일 서버에 저장될 때, 비디오 인코더 (20) 는 코딩된 비디오 데이터를 저장 매체에 저장하기 위해, 코딩된 비디오 데이터를 네트워크 인터페이스, 컴팩트 디스크 (CD), 블루-레이 또는 디지털 비디오 디스크 (DVD) 버너 또는 스탬핑 기능 디바이스, 또는 다른 디바이스들과 같은, 또 다른 디바이스에 제공할 수도 있다. 이와 유사하게, 네트워크 인터페이스, CD 또는 DVD 리더 등과 같은, 비디오 디코더 (30) 와는 별개인 디바이스가 저장 매체로부터 코딩된 비디오 데이터를 취출하고, 그 취출된 데이터를 비디오 디코더 (30) 에 제공할 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크탑 컴퓨터들, 노트북 (즉, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋-탑 박스들, 전화기 핸드셋들, 예컨대 소위 스마트폰들, 텔레비전, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 또는 기타 등등을 포함한, 매우 다양한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 많은 경우에, 이런 디바이스들은 무선 통신용으로 탑재될 수도 있다. 그러므로, 통신 채널 (16) 은 인코딩된 비디오 데이터의 송신에 적합한, 무선 채널, 유선 채널, 또는 무선 채널과 유선 채널의 결합을 포함할 수도 있다. 이와 유사하게, 파일 서버 (36) 는 인터넷 접속을 포함한, 임의의 표준 데이터 접속을 통해서, 목적지 디바이스 (14) 에 의해 액세스될 수도 있다. 이것은 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하는데 적합한, 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예컨대, DSL, 케이블 모뎀 등), 또는 양쪽의 결합을 포함할 수도 있다.
본 개시물의 예들에 따른, 예측 데이터를 코딩하는 기법들은, 오버-디-에어 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상에의 저장을 위한 디지털 비디오의 인코딩, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은, 다양한 멀티미디어 애플리케이션들 중 임의의 애플리케이션의 지원 하에, 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 전화 통신과 같은, 지원 애플리케이션들로의 1-방향 또는 2-방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 변조기/복조기 (22) 및 송신기 (24) 를 포함한다. 소스 디바이스 (12) 에서, 비디오 소스 (18) 는 비디오 캡쳐 디바이스, 예컨대 비디오 카메라, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오를 수신하는 비디오 공급 인터페이스, 및/또는 컴퓨터 그래픽스 데이터를 소스 비디오로서 발생하는 컴퓨터 그래픽스 시스템, 또는 이런 소스들의 결합과 같은, 소스를 포함할 수도 있다. 일 예로서, 비디오 소스 (18) 가 비디오 카메라이면, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들일 수도 있다. 그러나, 본 개시물에서 설명하는 기법들은 일반적으로는 비디오 코딩에 적용가능할 수도 있으며, 무선 및/또는 유선 애플리케이션들, 또는 인코딩된 비디오 데이터가 로컬 디스크 상에 저장되는 애플리케이션에 적용될 수도 있다.
캡쳐되거나, 사전-캡쳐되거나, 또는 컴퓨터-발생된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 무선 통신 프로토콜과 같은, 통신 표준에 따라서 모뎀 (22) 에 의해 변조되어, 송신기 (24) 를 통해서 목적지 디바이스 (14) 로 송신될 수도 있다. 모뎀 (22) 은 여러 믹서들, 필터들, 증폭기들 또는 신호 변조용으로 설계된 다른 구성요소들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함한, 데이터를 송신하도록 설계된 회로들을 포함할 수도 있다.
비디오 인코더 (20) 에 의해 인코딩되는 캡쳐된, 사전-캡쳐된, 또는 컴퓨터-발생된 비디오는 또한 추후 소비를 위해 저장 매체 (34) 또는 파일 서버 (36) 상에 저장될 수도 있다. 저장 매체 (34) 는 Blu-ray 디스크들, DVD들, CD-ROM들, 플래시 메모리, 또는 인코딩된 비디오를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들을 포함할 수도 있다. 저장 매체 (34) 상에 저장된 인코딩된 비디오는 그후 디코딩 및 플레이백을 위해 목적지 디바이스 (14) 에 의해 액세스될 수도 있다.
파일 서버 (36) 는 인코딩된 비디오를 저장하고 그 인코딩된 비디오를 목적지 디바이스 (14) 로 송신할 수 있는 임의 종류의 서버일 수도 있다. 예시적인 파일 서버들은 웹 서버 (예컨대, 웹사이트용), FTP 서버, 네트워크 부착된 스토리지 (NAS) 디바이스들, 로컬 디스크 드라이브, 또는 인코딩된 비디오 데이터를 저장하고 이를 목적지 디바이스로 송신할 수 있는 임의의 다른 유형의 디바이스를 포함한다. 파일 서버 (36) 로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이 양쪽의 결합일 수도 있다. 파일 서버 (36) 는 인터넷 접속을 포함한, 임의의 표준 데이터 접속을 통해서, 목적지 디바이스 (14) 에 의해 액세스될 수도 있다. 이것은 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예컨대, DSL, 케이블 모뎀, 이더넷, USB 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하는데 적합한 이들 양쪽의 결합을 포함할 수도 있다.
목적지 디바이스 (14) 는, 도 1 의 예에서, 수신기 (26), 모뎀 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 목적지 디바이스 (14) 의 수신기 (26) 는 채널 (16) 을 통해서 정보를 수신하고, 모뎀 (28) 은 비디오 디코더 (30) 를 위한 복조된 비트스트림을 발생한다. 채널 (16) 을 통해서 통신된 정보는 비디오 데이터를 디코딩할 때에 비디오 디코더 (30) 에 의한 사용을 위해 비디오 인코더 (20) 에 의해 발생된 다양한 구문 정보를 포함할 수도 있다. 이런 구문은 또한 저장 매체 (34) 또는 파일 서버 (36) 상에 저장된 인코딩된 비디오 데이터에 포함될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 비디오 데이터를 인코딩 또는 디코딩할 수 있는 각각의 인코더-디코더 (코덱) 의 부분을 형성할 수도 있다.
디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나 이의 외부에 있을 수도 있다. 일부 예들에서, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하며, 또한 외부 디스플레이 디바이스와 인터페이스하도록 구성될 수도 있다. 다른 예들에서, 목적지 디바이스 (14) 는 디스플레이 디바이스일 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 그 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 디바이스를 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (16) 은 임의의 무선 또는 유선 통신 매체, 예컨대 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들, 또는 무선 매체와 유선 매체들의 임의의 결합을 포함할 수도 있다. 통신 채널 (16) 은 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크, 예컨대 인터넷과 같은 패킷-기반 네트워크의 일부를 형성할 수도 있다. 통신 채널 (16) 은 일반적으로 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 송신하는, 유선 또는 무선 매체들의 임의의 적합한 결합을 포함한, 임의의 적합한 통신 매체, 또는 상이한 통신 매체들의 컬렉션을 나타낸다. 통신 채널 (16) 은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 통신을 촉진하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 현재 개발중인 HEVC (High Efficiency Video Coding) 표준과 같은 비디오 압축 표준에 따라서 동작할 수도 있으며, HEVC 테스트 모델 (HM) 에 따를 수도 있다. 이의 대안으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 다른 독점 또는 산업 표준들, 예컨대, 대안적으로 MPEG 4 로서 지칭되는, ITU-T H.264 표준, 파트 10, AVC (Advanced Video Coding), 또는 이런 표준들의 확장판들에 따라서 동작할 수도 있다. 본 개시물의 기법들은, 그러나, 임의의 특정의 코딩 표준에 한정되지 않는다. 다른 예들은 MPEG-2 및 ITU-T H.263 를 포함한다.
도 1 에 나타내지는 않지만, 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있으며, 오디오 및 비디오 양쪽의 인코딩을 공통 데이터 스트림 또는 별개의 데이터 스트림들로 처리하기 위해 적합한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, 일부 예들에서, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 다른 프로토콜들, 예컨대, 사용자 데이터그램 프로토콜 (UDP) 을 따를 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은, 적용가능한 경우, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSPs), 특수 목적 프로세서들 또는 프로세싱 회로들, 주문형 집적회로들 (ASICs), 필드 프로그래밍가능 게이트 어레이들 (FPGAs), 고정 로직 회로 (fixed logic circuitry), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 임의의 이들의 결합들과 같은 프로세서를 포함하는, 다양한 적합한 인코더 또는 디코더 회로 중 임의의 회로로서 구현될 수도 있다. 따라서, 비디오 인코더 (20) 및 비디오 디코더 (30) 내 여러 유닛들은 마찬가지로 다양한 이런 구조적 엘리먼트들 또는 이들의 결합들 중 임의의 것에 의해 구현될 수도 있다. 이 기법들이 소프트웨어로 부분적으로 구현되는 경우, 디바이스는 본 개시물의 기법들을 수행하기 위해 소프트웨어용 명령들을 적합한 비-일시적 컴퓨터-판독가능 저장 매체에 저장하고, 그 명령들을 하드웨어에서 하나 이상의 프로세서들을 이용하여 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 쪽이든 각각 디바이스에서 결합된 인코더/디코더 (코덱) 의 일부로서 통합될 수도 있다.
본 개시물은 일반적으로 어떤 정보를 비디오 디코더 (30) 와 같은 또 다른 디바이스로 "시그널링하는" 비디오 인코더 (20) 를 언급할 수도 있다. 그러나, 비디오 인코더 (20) 는 어떤 구문 엘리먼트들을 비디오 데이터의 여러 인코딩된 부분들과 연관시킴으로써 정보를 시그널링할 수도 있는 것으로 이해되어야 한다. 즉, 비디오 인코더 (20) 는 어떤 구문 엘리먼트들을 비디오 데이터의 여러 인코딩된 부분들의 헤더들에 저장하여 데이터를 "시그널링할" 수도 있다. 일부의 경우, 이런 구문 엘리먼트들은 비디오 디코더 (30) 에 의해 수신되어 디코딩되기 전에 인코딩되어 저장될 수도 있다 (예컨대, 저장 디바이스 (32) 에 저장될 수도 있다). 따라서, 용어 "시그널링" 은 일반적으로 압축된 비디오 데이터를 디코딩하기 위한 구문 또는 다른 데이터의 통신을 지칭할 수도 있으며, 이런 통신이 인코딩 시에 구문 엘리먼트들을 매체에 저장할 때에 일어날지도 모르는 것과 같이, 실시간으로 또는 거의-실시간으로 일어나든 또는 어떤 기간에 걸쳐서 일어나든, 이 구문 엘리먼트들은 그후 이 매체에 저장된 후 임의의 시간에 디코딩 디바이스에 의해 취출될 수도 있다.
위에서 지적한 바와 같이, JCT-VC 는 HEVC 표준의 개발에 노력을 들이고 있다. HEVC 표준화 노력들은 HEVC 테스트 모델 (HM) 로서 지칭되는 비디오 코딩 디바이스의 진화 모델 (evolving model) 에 기초한다. HM 은 예컨대, ITU-T H.264/AVC 에 따른 기존 디바이스들에 관련된 비디오 코딩 디바이스들의 여러 추가적인 능력들을 가정한다. 본 개시물은 일반적으로 CU 의 코딩 노드를 지칭하기 위해 용어 "비디오 블록" 을 사용한다. 일부 특정의 경우들에서, 본 개시물은 또한 트리블록, 즉, LCU, 또는 코딩 노드 및 PU들 및 TU들을 포함하는 CU 를 지칭하기 위해 용어 "비디오 블록" 을 이용할 수도 있다.
비디오 시퀀스는 일반적으로 비디오 프레임들 또는 화상들의 시리즈를 포함한다. 화상들의 그룹 (GOP) 은 일반적으로 비디오 화상들의 하나 이상의 시리즈를 포함한다. GOP 는 GOP 의 헤더, 화상들의 하나 이상의 헤더, 또는 다른 곳에, GOP 에 포함된 다수의 화상들을 기술하는 구문 데이터를 포함할 수도 있다. 화상의 각각의 슬라이스는 각각의 슬라이스에 대한 인코딩 모드를 기술하는 슬라이스 구문 데이터를 포함할 수도 있다. 비디오 인코더 (20) 는 일반적으로 비디오 데이터를 인코딩하기 위해 개개의 비디오 슬라이스들 내 비디오 블록들에 대해 동작한다. 비디오 블록은 CU 내 코딩 노드에 대응할 수도 있다. 비디오 블록들은 고정 또는 가변 사이즈들을 가질 수도 있으며, 규정된 코딩 표준에 따라서 사이즈가 상이할 수도 있다.
예로서, 그리고 위에서 언급된 바와 같이, HM 은 (또한, PU 유형들로서 지칭되는) 여러 PU 사이즈들에서의 예측을 지원한다. 특정의 CU 의 사이즈가 2Nx2N 이라고 가정하면, HM 은 2Nx2N 또는 NxN 의 PU 사이즈들에서 인트라-예측을, 그리고 2Nx2N, 2NxN, Nx2N, 또는 NxN 의 대칭적인 PU 사이즈들에서 인터-예측을 지원한다. HM 은 또한 2NxnU, 2NxND, nLx2N, 및 nRx2N 의 PU 사이즈들에서의 인터-예측에 대해 비대칭적인 파티셔닝을 지원한다. 비대칭적인 파티셔닝에서, CU 의 하나의 방향은 파티셔닝되지 않지만, 다른 방향은 25% 및 75% 로 파티셔닝된다. 25% 파티션에 대응하는 CU 의 부분은 "상부 (Up)", "하부 (Down)", "좌측 (좌측)", 또는 "우측 (우측)" 의 표시가 뒤따르는 "n" 으로 표시된다. 따라서, 예를 들어, "2NxnU" 는 최상부에서 2Nx0.5N PU 로 그리고 최저부에서 2Nx1.5N PU 로 수평으로 파티셔닝된 2Nx2N CU 를 지칭한다. 다른 파티셔닝 유형들이 또한 가능하다.
본 개시물에서, "NxN" 및 "N 바이 N" 은 수직 및 수평 치수들의 관점에서 비디오 블록의 픽셀 치수들, 예컨대, 16x16 픽셀들 또는 16 바이 16 픽셀들을 지칭하기 위해 상호교환가능하게 사용될 수도 있다. 일반적으로, 16x16 블록은 수직 방향으로 16개의 픽셀들 (y = 16) 및 수평 방향으로 16개의 픽셀들 (x = 16) 을 가질 것이다. 이와 유사하게, NxN 블록은 일반적으로 수직 방향으로 N 개의 픽셀들 및 수평 방향으로 N 개의 픽셀들을 가지며, 여기서 N 은 음이 아닌 정수 값을 나타낸다. 블록에서 픽셀들은 로우들 및 칼럼들로 배열될 수도 있다. 더욱이, 블록들은 수직 방향에서와 같이 수평 방향에서 동일한 픽셀들의 개수를 반드시 가질 필요는 없다. 예를 들어, 블록들은 NxM 픽셀들을 포함할 수도 있으며, 여기서 M 은 반드시 N 과 같을 필요는 없다.
CU 의 PU들을 이용한 인트라-예측 또는 인터-예측 코딩 이후, 비디오 인코더 (20) 는 CU 의 TU들에 대한 잔여 데이터를 계산할 수도 있다. PU들은 공간 도메인 (또한, 픽셀 도메인으로 지칭됨) 에서 픽셀 데이터를 포함할 수도 있으며, TU들은 이산 코사인 변환 (DCT), 정수 변환, 웨이블릿 변환, 또는 잔여 비디오 데이터에 개념적으로 유사한 변환과 같은 변환의 적용 이후 변환 도메인에서 계수들을 포함할 수도 있다. 잔여 데이터는 인코딩되지 않은 원래 화상의 픽셀들과 PU들에 대응하는 예측 값들 사이의 픽셀 차이들에 대응할 수도 있다. 비디오 인코더 (20) 는 CU 에 대한 잔여 데이터를 포함하는 TU들을 형성하고, 그후 그 TU들을 변환하여, 그 CU 에 대한 변환 계수들을 발생할 수도 있다.
일부 예들에서, 위에서 언급한 바와 같이, TU들은 RQT 에 따라서 정의될 수도 있다. 예를 들어, RQT 는 변환들 (예컨대, DCT, 정수 변환, 웨이블릿 변환, 또는 하나 이상의 다른 변환들) 이 비디오 데이터의 블록과 연관되는 잔여 크로마 샘플들 및 잔여 루마 샘플들에 적용되는 방법을 나타낼 수도 있다. 즉, 위에서 언급한 바와 같이, CU 에 대응하는 잔여 샘플들은 더 작은 유닛들로 RQT 를 이용하여 세분될 수도 있다. 일반적으로, RQT 는 TU들로의 CU 의 파티셔닝의 회귀적인 표현이다.
변환 계수들을 발생하기 위해 잔여 데이터에 임의의 변환들의 적용에 뒤이어서, 비디오 인코더 (20) 는 변환 계수들의 양자화를 수행할 수도 있다. 양자화는 일반적으로 계수들을 나타내는데 사용되는 데이터의 양을 가능한 한 감축하기 위해 변환 계수들이 양자화되는 프로세스를 지칭하며, 추가적인 압축을 제공한다. 양자화 프로세스는 그 계수들의 일부 또는 모두와 연관되는 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 값은 양자화 동안 m-비트 값까지 절사될 수도 있으며, 여기서, n 은 m 보다 더 크다.
일부 예들에서, 비디오 인코더 (20) 는 엔트로피 인코딩될 수 있는 직렬화된 벡터를 발생하기 위해, 미리 정의된 스캐닝 순서를 이용하여, 양자화된 변환 계수들을 스캐닝할 수도 있다. 다른 예들에서, 비디오 인코더 (20) 는 적응적 스캐닝을 수행할 수도 있다. 양자화된 변환 계수들을 스캐닝하여 1차원 벡터를 형성한 후, 비디오 인코더 (20) 는 1차원 벡터를, 예컨대, 컨텍스트 적응형 가변 길이 코딩 (CAVLC), 컨텍스트 적응형 2진 산술 코딩 (CABAC), 구문-기반 컨텍스트-적응형 2진 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 또 다른 엔트로피 인코딩 방법론에 따라서, 엔트로피 인코딩할 수도 있다. 비디오 인코더 (20) 는 또한 비디오 데이터를 디코딩할 때에 비디오 디코더 (30) 에 의해 사용하기 위한 인코딩된 비디오 데이터와 연관되는 구문 엘리먼트들을 엔트로피 인코딩할 수도 있다. HEVC 의 현재의 버전은 엔트로피 코딩을 위해 CABAC 을 이용하도록 설계된다.
일부 예들에서, 비디오 인코더 (20) 는 컨텍스트 적응형 코딩과 비-컨텍스트 적응형 코딩의 결합을 이용하여 구문 엘리먼트들을 코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 빈들을 코딩하기 위해 컨텍스트 상에서 동작하는 확률 모델 또는 "컨텍스트 모델" 을 선택함으로써 빈들을 컨텍스트 코딩할 수도 있다. 이에 반해, 비디오 인코더 (20) 는 빈들을 코딩할 때 정규 산술 코딩 프로세스를 바이패스하거나 또는 생략함으로써 빈들을 바이패스 코딩할 수도 있다. 이런 예들에서, 비디오 인코더 (20) 는 고정 확률 모델을 이용하여 그 빈들을 바이패스 코딩할 수도 있다.
위에서 언급한 바와 같이, 컨텍스트 코딩과 연관되는 확률 모델 업데이팅 프로세스는 코딩 프로세스에 지연을 도입할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 인덱스 (ref_idx) 의 빈들의 시퀀스 (예컨대, bin(0), bin(1), … bin(n)) 를 컨텍스트 코딩할 수도 있다. 단일 참조 인덱스 (ref_idx) 는 예를 들어, 최고 15 개의 빈들을 포함할 수도 있다. 설명의 목적들을 위해, 비디오 인코더가 그 빈들을 코딩하기 위한 3개의 컨텍스트들을 유도하고 그 컨텍스트들을 (예컨대, 컨텍스트 인덱스들 ctx(0), ctx(1), 및 ctx(2) 을 이용하여 표시되는) 코딩되는 빈 개수에 기초하여 적용한다고 가정한다. 즉, 이 예에서, 비디오 인코더는 ctx(0) 를 이용하여 bin(0) 를 코딩하고, ctx(1) 를 이용하여 bin(1) 를 코딩하고, 그리고 ctx(2) 를 이용하여 나머지 빈들 (e.g, bin(2) 내지 bin(n)) 을 코딩할 수도 있다.
위에서 설명된 예에서, 제 3 컨텍스트 (ctx(2)) 는 다수의 빈들 (예컨대, 최고 13 개의 빈들) 간에 공유된다. 이 방법에서 bin(n) 을 통해서 bin(2) 을 코딩하는데 동일한 확률 모델을 이용하는 것은 연속적인 코딩 사이클들 사이에 지연을 일으킬 수도 있다. 예를 들어, 동일한 컨텍스트를 반복적으로 호출하고 각각의 빈 이후 그 모델을 업데이트하기를 대기하는 것은 코더의 처리량에 대한 병목현상을 야기할 수도 있다.
더욱이, bin(2) 과 bin(n) 사이의 상관이 확률 모델을 업데이트하는 것과 연관되는 시간 및 계산 리소스들을 보장하기에 충분하지 않을 수도 있다. 즉, 컨텍스트 적응형 코딩의 하나의 잠재적인 이점은 (동일한 컨텍스트가 주어진다고 하면) 이전에 코딩된 빈들에 기초하여 확률 모델을 적응시키는 능력이다. 그러나, 제 1 빈의 값이 후속 빈의 값과의 관련 또는 관계가 적으면, 확률 업데이트와 연관되는 효율 이득이 작을 수도 있다. 따라서, 낮은 상관을 보이는 빈들은 상대적으로 더 높은 상관들을 가지는 빈들 만큼 컨텍스트 적응형 코딩으로부터 이득을 얻지 못할 수도 있다.
본 개시물의 양태들에 따르면, 비디오 인코더 (20) 는 2진화된 참조 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스로 코딩함으로써, 그리고, 2진화된 참조 인덱스 값의 적어도 다른 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 바이패스 코딩 모드로 코딩함으로써, 참조 인덱스 구문 엘리먼트를 인코딩할 수도 있다.
예시의 목적을 위한 예에서, 비디오 인코더 (20) 는 ctx(0) 를 bin(0) 에, ctx(1) 를 bin(1) 에, ctx(2) 를 bin(2) 에 적용할 수도 있으며, 어떤 컨텍스트들도 요구됨이 없이, 참조 인덱스 값의 나머지 빈들을 바이패스 코딩할 수도 있다. 즉, 비디오 코더는 ctx(2) 를, 2진화된 참조 인덱스 값의 bin(2) 를 CABAC 코딩하기 위한 컨텍스트로서 이용할 수도 있으나, bin(2) 을 뒤따르는 임의의 빈들을 바이패스 코딩할 수도 있다.
참조 인덱스 값들이 길이가 15 개의 이상의 빈들일 수도 있다는 점을 고려하면, 이 방법으로 컨텍스트 코딩되는 빈들의 개수를 제한하는 것은 참조 인덱스 빈들의 모두를 코딩하는 컨텍스트에 대한, 계산 및/또는 시간 절감을 발생할 수도 있다. 더욱이, 위에서 언급한 바와 같이, 참조 인덱스 값의 비트들 사이의 상관이 높지 않을 수도 있으며 (예컨대, 참조 인덱스 값의 bin(3) 의 값이 bin(4) 가 "1" 또는 "0" 의 값을 가질 우도와 관련된 유용한 표시를 제공하지 않을 수도 있으며), 이것은 컨텍스트 코딩의 이익을 감소시킨다. 따라서, 참조 인덱스 값의 더 적은 빈들을 컨텍스트 코딩함으로써 절약되는 시간 및 계산 리소스들의 양이, 참조 인덱스 값의 모든 빈들을 컨텍스트 코딩하는 것과 연관되는 코딩 효율 이득들보다 더 중요할 수도 있다.
본 개시물의 다른 양태들에 따르면, 비디오 인코더 (20) 는 인코딩 동안 컨텍스트 코딩된 빈들 및 비-컨텍스트 코딩된 빈들을 그룹화할 수도 있다. 예를 들어, 위에서 언급한 바와 같이, 일부 구문 엘리먼트들은 컨텍스트 코딩과 바이패스 코딩의 결합을 이용하여 코딩될 수도 있다. 즉, 일부 구문 엘리먼트들은 컨텍스트 코딩되는 하나 이상의 빈들, 및 바이패스 코딩되는 하나 이상의 다른 빈들을 가질 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 구문 엘리먼트들의 시퀀스를 코딩하기 위해 컨텍스트 코딩과 바이패스 코딩 사이에 스위칭할 수도 있다. 그러나, 컨텍스트 코딩과 바이패스 코딩 사이의 스위칭은 하나 이상의 클록 사이클들을 소비할 수도 있다. 따라서, 각각의 엘리먼트에 대한 컨텍스트 코딩과 바이패스 코딩 사이의 스위칭은 컨텍스트 코딩과 바이패스 코딩 사이의 전환으로 인해, 레이턴시를 도입할 수도 있다.
본 개시물의 양태들에 따르면, 비디오 인코더 (20) 는 코딩 동안 컨텍스트 코딩된 빈들 및 비-컨텍스트 코딩된 빈들 (예컨대, 바이패스 빈들) 을 그룹화할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 하나 보다 많은 구문 엘리먼트와 연관되는 빈들을 컨텍스트 코딩할 수도 있다. 비디오 인코더 (20) 는 그후 하나 보다 많은 구문 엘리먼트와 연관되는 빈들을 바이패스 코딩할 수도 있다. 다른 예들에서, 비디오 인코더 (20) 는 컨텍스트 코딩에 앞서 바이패스 코딩을 수행할 수도 있다. 어쨌든, 이 기법들은 비디오 인코더 (20) 로 하여금 컨텍스트 코딩과 바이패스 코딩 사이의 전환을 최소화가능하게 한다. 따라서, 본 개시물의 양태들은 컨텍스트 코딩된 빈들과 바이패스 코딩된 빈들의 결합을 포함하는 구문 엘리먼트들을 코딩할 때 레이턴시를 감소시킬 수도 있다.
비디오 디코더 (30) 는, 코딩된 비디오 데이터를 수신하자 마자, 비디오 인코더 (20) 와 관련하여 설명된 인코딩 과정과는 일반적으로 반대인 디코딩 과정을 수행할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 인코딩된 비트스트림을 수신하고 그 비트스트림을 디코딩할 수도 있다. 본 개시물의 양태들에 따르면, 예를 들면, 비디오 디코더 (30) 는 2진화된 참조 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스로 코딩함으로써, 그리고, 2진화된 참조 인덱스 값의 적어도 다른 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 바이패스 코딩 모드로 코딩함으로써, 참조 인덱스 구문 엘리먼트를 인코딩할 수도 있다.
본 개시물의 다른 양태들에 따르면, 비디오 디코더 (30) 는 그룹화된 컨텍스트 코딩된 빈들 및 비-컨텍스트 코딩된 빈들 (예컨대, 바이패스 빈들) 을 가지는 비트스트림을 디코딩할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 하나 보다 많은 구문 엘리먼트와 연관되는 컨텍스트 코딩된 빈들을 디코딩할 수도 있다. 비디오 디코더 (30) 는 그후 하나 보다 많은 구문 엘리먼트와 연관되는 바이패스 코딩된 빈들을 디코딩할 수도 있다. 다른 예들에서, 비디오 디코더 (30) 는 (디코딩되는 비트스트림에서의 빈들의 배열에 따라서) 컨텍스트 코딩에 앞서 바이패스 코딩을 수행할 수도 있다. 어쨌든, 이 기법들은 비디오 디코더 (30) 로 하여금 컨텍스트 코딩과 바이패스 코딩 사이의 전환을 최소화가능하게 한다. 따라서, 본 개시물의 양태들은 컨텍스트 코딩된 빈들과 바이패스 코딩된 빈들의 결합을 포함하는 구문 엘리먼트들을 코딩할 때 레이턴시를 감소시킬 수도 있다.
도 2 는 본 개시물의 예들에 따른, 예측 데이터를 코딩하는 기법들을 이용할 수도 있는 비디오 인코더 (20) 의 일 예를 예시하는 블록도이다. 비디오 인코더 (20) 의 양태들이 예시의 목적을 위해, HEVC 코딩의 상황에서 설명되지만, 본 개시물의 기법들은 예측 데이터의 코딩을 필요로 할 수도 있는 임의의 특정의 코딩 표준 또는 방법에 한정되지 않는다.
비디오 인코더 (20) 는 비디오 화상들 내 CU들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라 코딩은 주어진 화상 내 비디오 데이터에서 공간 리던던시를 감소시키거나 또는 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 현재의 화상과 이전에 코딩된 화상들 사이에 시간 리던던시를 감소시키거나 또는 제거하기 위해 시간 예측에 의존한다. 인트라-모드 (I-모드) 는 여러 공간-기반의 비디오 압축 모드들 중 임의의 모드를 지칭할 수도 있다. 단방향 예측 (P-모드) 또는 양방향 예측 (B-모드) 와 같은 인터-모드들은 여러 시간-기반의 비디오 압축 모드들 중 임의의 모드를 지칭할 수도 있다.
도 2 에 나타낸 바와 같이, 비디오 인코더 (20) 는 인코딩되는 화상 내에서 현재의 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (20) 는 모션 보상 유닛 (44), 모션 추정 유닛 (42), 인트라-예측 유닛 (46), 참조 화상 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 도 2 에 예시된 변환 프로세싱 유닛 (52) 은 잔여 데이터의 블록에 실제 변환 또는 변환의 결합들을 적용하는 유닛이며, CU 의 변환 유닛 (TU) 으로서 또한 지칭될 수도 있는 변환 계수들의 블록과 혼동되지 않아야 한다. 비디오 블록 재구성을 위해, 비디오 인코더 (20) 는 또한 역양자화 유닛 (58), 역변환 프로세싱 유닛 (60), 및 합산기 (62) 를 포함한다. 디블록킹 필터 (도 2 에 미도시) 가 또한 블록 경계들을 필터링하여 재구성된 비디오로부터 블록킹 아티팩트들을 제거하기 위해 포함될 수도 있다. 원할 경우, 디블록킹 필터는 일반적으로 합산기 (62) 의 출력을 필터링할 것이다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩되는 화상 또는 슬라이스를 수신한다. 화상 또는 슬라이스는 최대 코딩 유닛들 (LCU들) 과 같은 다수의 비디오 블록들로 분할될 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간 압축을 제공하기 위해 하나 이상의 참조 화상들에서의 하나 이상의 블록들에 대해, 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 인트라-예측 유닛 (46) 은 공간 압축을 제공하기 위해 코딩될 블록과 동일한 화상 또는 슬라이스에서 하나 이상의 이웃하는 블록들에 대해 그 수신된 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다.
모드 선택 유닛 (40) 은 코딩 모드들, 즉, 인트라 또는 인터 중 하나를, 예컨대, 각각의 모드에 대한 에러 (즉, 왜곡) 결과들에 기초하여 선택하고, 최종 인트라- 또는 인터-예측된 블록 (예컨대, 예측 유닛 (PU)) 을 합산기 (50) 에 제공하여 잔여 블록 데이터를 발생하고, 그리고 합산기 (62) 에 제공하여 참조 화상에서의 사용을 위해, 인코딩된 블록을 재구성할 수도 있다. 합산기 (62) 는 아래에서 더 자세히 설명하는 바와 같이, 그 예측된 블록을 그 블록에 대한 역변환 프로세싱 유닛 (60) 으로부터의 역 양자화된, 역변환된 데이터와 합산하여, 인코딩된 블록을 재구성한다. 일부 화상들은 I-프레임들로서 지정될 수도 있으며, 여기서, I-프레임에서의 모든 블록들은 인트라-예측 모드에서 인코딩된다. 일부의 경우, 인트라-예측 유닛 (46) 은 예컨대, 모션 추정 유닛 (42) 에 의해 수행되는 모션 탐색이 블록의 충분한 예측을 초래하지 않을 때, 순방향 예측된 화상 (P-프레임) 또는 양방향-예측된 화상 (B-프레임) 에서 블록의 인트라-예측 인코딩을 수행할 수도 있다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위해 별개로 예시된다. 모션 추정 (또는, 모션 탐색) 은 모션 벡터들을 발생하는 프로세스이며, 이 프로세스는 비디오 블록들에 대한 모션을 추정한다. 모션 벡터는, 예를 들어, 참조 화상의 참조 샘플에 대한, 현재의 화상에서의 예측 유닛의 변위를 나타낼 수도 있다. 모션 추정 유닛 (42) 은 예측 유닛을 참조 화상 메모리 (64) 에 저장된 참조 화상의 참조 샘플들과 비교함으로써 인터-코딩된 화상의 예측 유닛에 대한 모션 벡터를 계산한다.
예측 블록 (또한, 참조 샘플로서 지칭됨) 은 픽셀 차이의 관점에서 코딩되는 블록에 가깝게 매칭하는 것으로 발견되는 블록이며, SAD (sum of absolute difference), SSD (sum of square difference), 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 참조 화상 메모리 (64) 에 저장된 참조 화상들의 서브-정수 픽셀 위치들에 대한 값들을 계산할 수도 있으며, 이 참조 화상 메모리는 또한 참조 화상 버퍼로서 지칭될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 화상의 1/4 픽셀 위치들, 1/8 픽셀 위치들, 또는 다른 분수 픽셀 위치들의 값들을 내삽할 수도 있다. 따라서, 모션 추정 유닛 (42) 은 풀 픽셀 위치들 및 분수 픽셀 위치들에 대해, 모션 탐색을 수행하고, 분수 픽셀 정밀도를 가진 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 PU 의 위치를 참조 화상의 예측 블록의 위치와 비교함으로써 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를 계산한다. 따라서, 일반적으로, 모션 벡터에 대한 데이터는 참조 화상 리스트, 참조 화상 리스트 (ref_idx) 에 대한 인덱스, 수평 성분, 및 수직 성분을 포함할 수도 있다. 참조 화상은 제 1 참조 화상 리스트 (리스트 0), 제 2 참조 화상 리스트 (리스트 1), 또는 결합된 참조 화상 리스트 (리스트 c) 로부터 선택될 수도 있으며, 이 리스트 각각은 참조 화상 메모리 (64) 에 저장된 하나 이상의 참조 화상들을 식별한다.
모션 추정 유닛 (42) 은 참조 화상의 예측 블록을 식별하는 모션 벡터를 발생하여 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송할 수도 있다. 즉, 모션 추정 유닛 (42) 은 그 식별되는 화상 내에 예측 블록을 로케이트하기 위해 그 예측 블록을 포함하는 참조 화상 리스트, 그 예측 블록의 화상을 식별하는 참조 화상 리스트로의 인덱스, 및 수평 및 수직 성분을 식별하는 모션 벡터 데이터를 발생하여 전송할 수도 있다.
일부 예들에서, 현재의 PU 에 대한 실제 모션 벡터를 전송하는 대신, 모션 추정 유닛 (42) 은 모션 벡터를 예측하여, 모션 벡터를 통신하는데 요구되는 데이터의 양을 추가로 감소시킬 수도 있다. 이 경우, 모션 벡터 자체를 인코딩하여 통신하는 대신, 모션 추정 유닛 (42) 은 기지의 (또는, 인식가능한) 모션 벡터에 대한 모션 벡터 차이 (MVD) 를 발생할 수도 있다. MVD 는 기지의 모션 벡터의 수평 성분, 및 수직 성분에 대응하는 수평 성분 및 수직 성분을 포함할 수도 있다. 이 기지의 모션 벡터는, 현재의 모션 벡터를 정의하기 위해 MVD 와 함께 사용될 수도 있으며, 소위 모션 벡터 예측자 (MVP) 에 의해 정의될 수 있다. 일반적으로, 유효한 MVP 이기 위해서는, 예측에 사용중인 모션 벡터는 현재 코딩중인 모션 벡터와 동일한 참조 화상을 가리켜야 한다.
다수의 모션 벡터 예측자 후보들이 (다수의 후보 블록들로부터) 이용가능할 때, 모션 추정 유닛 (42) 은 미리 결정된 선택 기준들에 따라서 현재의 블록에 대한 모션 벡터 예측자를 결정할 수도 있다. 예를 들어, 모션 추정 유닛 (42) 은 인코딩 레이트 및 왜곡의 분석에 기초하여 (예컨대, 레이트-왜곡 비용 분석 또는 다른 코딩 효율 분석을 이용하여) 후보 세트로부터 가장 정확한 예측자를 선택할 수도 있다. 다른 예들에서, 모션 추정 유닛 (42) 은 모션 벡터 예측자 후보들의 평균을 발생할 수도 있다. 모션 벡터 예측자를 선택하는 다른 방법들이 또한 가능하다.
모션 벡터 예측자를 선택하자 마자, 모션 추정 유닛 (42) 은 MVP 후보 블록들을 포함하는 참조 화상 리스트에서의 MVP 를 로케이트할 장소를 (예컨대, 비디오 디코더 (30) 와 같은) 비디오 디코더에게 통지하는데 사용될 수도 있는 모션 벡터 예측자 인덱스 (mvp_flag) 를 결정할 수도 있다. 모션 추정 유닛 (42) 은 또한 현재의 블록과 선택된 MVP 사이에서 MVD (수평 성분 및 수직 성분) 을 결정할 수도 있다. MVP 인덱스 및 MVD 는 모션 벡터를 재구성하는데 사용될 수도 있다.
일부 예들에서, 모션 추정 유닛 (42) 은 모션 추정 유닛 (42) 이 예측 비디오 블록의 (모션 벡터들, 참조 화상 인덱스들, 예측 방향들, 또는 다른 정보와 같은) 모션 정보를 현재의 비디오 블록과 "병합할" 수도 있는, 소위 "병합 모드" 를 대신 구현할 수도 있다. 따라서, 병합 모드에 대해, 현재의 비디오 블록은 또 다른 기지의 (또는, 인식가능한) 비디오 블록으로부터 모션 정보를 상속한다. 모션 추정 유닛 (42) 은 병합 모드에 대한 후보들로서 공간 및/또는 시간 방향들에서의 여러 이웃하는 블록들을 포함하는 병합 모드 후보 리스트를 형성할 수도 있다. 모션 추정 유닛 (42) 은 병합 후보 블록들을 포함하는 참조 화상 리스트에서의 병합 비디오 블록을 로케이트할 장소를 (예컨대, 비디오 디코더 (30) 와 같은) 비디오 디코더에 통지하는데 사용될 수도 있는 인덱스 값 (예컨대, merge_idx) 을 결정할 수도 있다.
인트라-예측 유닛 (46) 은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행되는 인터-예측에 대한 대안으로서, 수신된 블록을 인트라-예측할 수도 있다. 인트라-예측 유닛 (46) 은 블록들에 대한 좌우, 상하 인코딩 순서를 가정할 때, 이웃하는, 이전에 코딩된 블록들, 예컨대, 현재의 블록의 상부, 상부 및 우측, 상부 및 좌측, 또는 좌측 블록들에 대해 그 수신된 블록을 예측할 수도 있다. 인트라-예측 유닛 (46) 은 다양한 상이한 인트라-예측 모드들로 구성될 수도 있다. 예를 들어, 인트라-예측 유닛 (46) 은 인코딩되는 CU 의 사이즈에 기초하여, 어떤 수의 방향 예측 모드들, 예컨대, 34 개의 방향 예측 모드들로 구성될 수도 있다.
인트라-예측 유닛 (46) 은 인트라-예측 모드를, 예를 들어, 여러 인트라-예측 모드들에 대한 에러 값들을 계산하여 최저 에러 값을 산출하는 모드를 선택함으로써, 선택할 수도 있다. 방향 예측 모드들은 공간적으로 이웃하는 픽셀들의 값들을 결합하여 그 결합된 값들을 PU 내 하나 이상의 픽셀 위치들에 적용하는 기능들을 포함할 수도 있다. 일단 PU 내 모든 픽셀 위치들에 대한 값들이 계산되었으면, 인트라-예측 유닛 (46) 은 PU 와 인코딩되는 수신된 블록 사이의 픽셀 차이들에 기초하여, 예측 모드에 대한 에러 값을 계산할 수도 있다. 인트라-예측 유닛 (46) 은 허용가능한 에러 값을 산출하는 인트라-예측 모드가 발견될 때까지 인트라-예측 모드들을 테스트하는 것을 계속할 수도 있다. 인트라-예측 유닛 (46) 은 그후 PU 를 합산기 (50) 로 전송할 수도 있다.
비디오 인코더 (20) 는 코딩중인 원래 비디오 블록으로부터 모션 보상 유닛 (44) 또는 인트라-예측 유닛 (46) 에 의해 계산된 예측 데이터를 감산함으로써 잔여 블록을 형성한다. 합산기 (50) 는 이 감산 동작을 수행하는 구성요소 또는 구성요소들을 나타낸다. 잔여 블록은 픽셀 차이 값들의 2차원 매트릭스에 대응할 수도 있으며, 여기서, 잔여 블록에서의 값들의 수는 잔여 블록에 대응하는 PU 내 픽셀들의 개수와 동일하다. 잔여 블록에서의 값들은 PU 에, 그리고 코딩되는 원래 블록에서 동일 장소에 배치된 픽셀들의 값들 사이의 차이들, 즉, 에러에 대응할 수도 있다. 그 차이들은 코딩되는 블록의 유형에 따라서 크로마 또는 루마 차이들일 수도 있다.
변환 프로세싱 유닛 (52) 은 잔여 블록으로부터 하나 이상의 변환 유닛들 (TU들) 을 포함할 수도 있다. 변환 프로세싱 유닛 (52) 은 복수의 변환들 중에서 변환을 선택한다. 이 변환은 블록 사이즈, 코딩 모드 등과 같은 하나 이상의 코딩 특성들에 기초하여 선택될 수도 있다. 변환 프로세싱 유닛 (52) 은 그후 그 선택된 변환을 TU 에 적용하여, 변환 계수들의 2차원 어레이를 포함하는 비디오 블록을 발생한다.
변환 프로세싱 유닛 (52) 은 최종 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다. 양자화 유닛 (54) 은 그후 변환 계수들을 양자화할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 그후 매트릭스에서의 양자화된 변환 계수들의 스캐닝을 스캐닝 모드에 따라서 수행할 수도 있다. 본 개시물은 엔트로피 인코딩 유닛 (56) 을 스캐닝을 수행하는 것으로서 기술한다. 그러나, 다른 예들에서, 양자화 유닛 (54) 과 같은, 다른 프로세싱 유닛들이 스캐닝을 수행할 수 있는 것으로 이해되어야 한다.
일단 변환 계수들이 1차원 어레이로 스캐닝되면, 엔트로피 인코딩 유닛 (56) 은 CAVLC, CABAC, 구문-기반의 컨텍스트-적응형 2진 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE), 또는 또 다른 엔트로피 코딩 방법론과 같은 엔트로피 코딩을 계수들에 적용할 수도 있다.
CABAC 을 수행하기 위해, 엔트로피 인코딩 유닛 (56) 은 어떤 컨텍스트에 적용할 컨텍스트 모델을 선택하여, 송신되는 심볼들을 인코딩할 수도 있다. 컨텍스트는 예를 들어, 이웃하는 값들이 비-제로인지 여부에 관련될 수도 있다. 엔트로피 인코딩 유닛 (56) 은 또한 그 선택된 변환을 나타내는 신호와 같은 구문 엘리먼트들을 엔트로피 인코딩할 수도 있다.
엔트로피 인코딩 유닛 (56) 은 예측 데이터를 엔트로피 인코딩할 수도 있다. 비디오 데이터가 인터-예측될 때, 예를 들어, 예측 데이터는 참조 인덱스 값들, 모션 벡터들, 모션 벡터 예측자들, 모션 벡터 차이 값들 등을 나타내는 데이터를 포함할 수도 있다. 즉, 위에서 언급한 바와 같이, (모션 추정 유닛 (42) 에 의한) 모션 추정은 참조 화상들에 대한 하나 이상의 인덱스들 (ref_idx) 및 예측 방향 (pred_dir: 순방향, 역방향 또는 양방향) 을 결정한다. 엔트로피 인코딩 유닛 (56) 은 모션 벡터들 (예컨대, 모션 벡터들의 수평 성분 및 수직 성분), 참조 화상 인덱스들, 및 예측 방향을 나타내는 구문 엘리먼트들을 엔트로피 인코딩할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 인코딩된 구문 엘리먼트들을 인코딩된 비디오 비트스트림에 포함시킬 수도 있으며, 그 인코딩된 비디오 스트림은 그후 비디오 디코딩 프로세스에서의 사용을 위해서 (아래에서 설명되는 비디오 디코더 (30) 와 같은) 비디오 디코더에 의해 그후 디코딩될 수도 있다. 즉, 이들 구문 엘리먼트들은 비디오 디코더 (30) 가 PU 에 의해 정의된 비디오 데이터를 디코딩하여 재생가능하도록 하기 위해 인터-코딩된 PU 에 제공될 수도 있다.
일부 예들에서, 아래에서 도 4 에 대해 더 자세히 설명하는 바와 같이, 엔트로피 인코딩 유닛 (56) (또는, 비디오 인코더 (20) 의 또 다른 코딩 유닛) 은 구문 엘리먼트들을 엔트로피 인코딩하기에 앞서 구문 엘리먼트들을 2진화할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 각각의 코딩되는 구문 엘리먼트의 절대값을 2진수 형태로 변환할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 1진 (unary), 절단형 1진 (truncated unary), 또는 다른 코딩 프로세스를 이용하여, 구문 엘리먼트들을 2진화할 수도 있다. 참조 인덱스 값들에 대해, 예를 들어, 참조 화상 리스트에서 참조 화상들의 최대 개수가 4개이면, 즉, 참조 인덱스 (ref_idx) 가 0 에서 3 까지 범위의 값을 가지면, 표 1 에서 다음 2진화가 적용될 수도 있다:
표 1 에 나타낸 바와 같이, 2진화된 값은 참조 인덱스의 값에 따라서, 범위가 1 비트로부터 3 비트까지이다.
일부 예들에서, 엔트로피 인코딩 유닛 (56) 은 3개의 상이한 컨텍스트들 (예컨대, ctx0, ctx1, 및 ctx2) 을 이용하여 참조 인덱스 값들을 엔트로피 인코딩할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 제 1 빈 (bin0) 및 제 2 빈 (bin1) 을 ctx0 및 ctx1 을 각각 이용하여 엔트로피 인코딩될 수도 있으며, 제 3 빈 (bin2) 및 다른 빈들은 컨텍스트 ctx2 로 코딩된다. 이 예에서, ctx2 는 bin2 로부터 시작해서 포함하는 빈들의 모두, 즉, bin2 및 binb2 이후의 빈들, 예컨대, bin3, bin4 등 간에 공유된다. 일부 예들에서, 예컨대, 참조 화상들의 최대 개수가 4개보다 많으면, bin2 를 넘어서는 추가적인 빈들이 제공될 수도 있다.
위에서 언급한 바와 같이, 빈들 사이에 컨텍스트 ctx2 를 공유하는 것은 컨텍스트 코딩과 연관되는 확률 업데이트들로 인해, 비효율적일 수도 있다. 본 개시물의 양태들에 따르면, 엔트로피 인코딩 유닛 (56) 은 bin2 를 코딩하는데 ctx2 를 전담시키고 바이패스 코딩 모드를 이용하여 bin2 이후의 모든 빈들을 코딩함으로써 참조 인덱스 값을 CABAC 코딩할 수도 있다. 또, 바이패스 코딩은 일반적으로 고정 확률을 이용하여 빈들을 코딩하는 것을 포함한다 (컨텍스트들이 요구되지 않는다). 예를 들어, 엔트로피 인코딩 유닛 (56) 은 골롬 (Golomb) 코딩, 지수 골롬 코딩, 골롬-라이스 (Golomb-Rice) 코딩, 또는 CABAC 코딩 엔진을 바이패스하는 다른 코딩 프로세스들을 이용하여 참조 인덱스 값의 bin2 이후의 빈들을 바이패스 코딩할 수도 있다.
또 다른 예에서, 엔트로피 인코딩 유닛 (56) 은 ctx2 를 제거함으로써 참조 인덱스 값의 더 적은 빈들을 컨텍스트 코딩할 수도 있다. 즉, 본 개시물의 양태들에 따르면, 엔트로피 인코딩 유닛 (56) 은 bin2 및 모든 이후의 빈들을 CABAC 바이패스 모드를 이용하여 인코딩할 수도 있다. 이 예에서, 엔트로피 인코딩 유닛 (56) 은 컨텍스트 ctx0 를 이용하여 bin0 을, 그리고 컨텍스트 ctx1 을 이용하여 bin1 을 CABAC 코딩할 수도 있으며, bin2 및 bin2 다음의 다른 빈들을 CABAC 바이패스 모드를 이용하여 바이패스 코딩할 수도 있다. 이 방법으로 컨텍스트를 제거하는 것은 참조 인덱스 값들을 코딩하는 것과 연관되는 전체 복잡성을 감소시킬 수도 있다.
여전히, 또 다른 예에서, 엔트로피 인코딩 유닛 (56) 은 ctx1 및 ctx2 양쪽을 제거함으로써 참조 인덱스 값의 더 적은 빈들을 코딩할 수도 있다. 즉, 본 개시물의 양태들에 따르면, 엔트로피 인코딩 유닛 (56) 은 bin1 및 모든 이후의 빈들을 CABAC 바이패스 모드를 이용하여 인코딩함으로써, 참조 인덱스 값들을 코딩하는 것과 연관되는 복잡성을 추가로 감소시킨다. 이 예에서, 엔트로피 인코딩 유닛 (56) 은 bin0 을 컨텍스트 ctx0 를 이용하여 CABAC 코딩할 수도 있으며, bin1, bin2, 및 bin2 다음의 다른 빈들을 CABAC 바이패스 모드를 이용하여 바이패스 코딩할 수도 있다.
본 개시물의 다른 양태들은 일반적으로 엔트로피 인코딩 유닛 (56) 이 참조 인덱스 값들을 2진화하는 방법에 관한 것이다. 예를 들어, 위에서 언급한 바와 같이, 엔트로피 인코딩 유닛 (56) 은 참조 인덱스 값들을 1진, 절단형 1진, 또는 다른 코딩 프로세스를 이용하여 2진화할 수도 있다. 또 다른 예에서, 엔트로피 인코딩 유닛 (56) 은 지수-골롬 코딩 프로세스를 이용하여, 참조 인덱스 값을 2진화할 수도 있다.
일부 예들에서, 본 개시물의 양태들에 따르면, 엔트로피 인코딩 유닛 (56) 은 2진화 프로세스들의 결합을 구현할 수도 있다. 예를 들어, 아래에서 도 4 에 대해 더 자세히 설명하는 바와 같이, 엔트로피 인코딩 유닛 (56) 은 1진 (또는, 절단형 1진) 코딩 프로세스를 지수-골롬 코딩 프로세스와 결합하여, 참조 인덱스 값들을 2진화할 수도 있다. 예시의 목적을 위한 예에서, 엔트로피 인코딩 유닛 (56) 은 길이 (4) 의 절단형 1진 코드를 지수-골롬 코드 (예컨대, 0-순서의 지수-골롬 코드) 와 결합할 수도 있다. 이러한 예에서, 엔트로피 인코딩 유닛 (56) 은 참조 인덱스 값의 빈들의 제 1 개수 (예컨대, 2개, 3개, 4개, 또는 기타 등등) 를 1진 코딩을 이용하여 2진화할 수도 있으며, 참조 인덱스의 나머지 빈들을 지수-골롬 코드를 이용하여 2진화할 수도 있다.
어쨌든, 엔트로피 인코딩 유닛 (56) 은 참조 인덱스 값의 하나 이상의 빈들을 컨텍스트 코딩하고 참조 인덱스 값의 하나 이상의 다른 빈들을 임의의 2진화 방식으로 바이패스 코딩하는 기법들을 구현할 수도 있다. 예를 들어, 위에서 언급한 바와 같이, 엔트로피 인코딩 유닛 (56) 은 2진화된 구문 엘리먼트의 빈들의 제 1 개수를 컨텍스트 코딩 (예컨대, CABAC 코딩) 하고, 나머지 빈들을 바이패스 코딩할 수도 있다. 길이 (4) 의 절단형 1진 코드가 0-순서의 지수 골롬 코드와 결합되는 위에서 설명된 예에서, 엔트로피 인코딩 유닛 (56) 은 절단형 1진 코드의 첫번째 2개의 빈들 (또는, 빈들의 임의의 다른 개수) 을 컨텍스트 코딩하고 그후 1진 코드 및 전체 지수 골롬 코드의 두번째 부분을 바이패스 코딩할 수도 있다. 다른 예들에서, 엔트로피 인코딩 유닛 (56) 은 다른 2진화 방식들을 이용할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 상기 예들에서 설명된 지수 골롬 코드 대신, 고정 길이 2진 코드를 이용할 수도 있다.
일부 예들에서, 엔트로피 인코딩 유닛 (56) 은 그 값을 코딩하기에 앞서 2진화된 참조 인덱스 값으로부터 빈들을 절단하거나, 또는 제거할 수도 있다. 이에 추가적으로 또는 대안적으로, 엔트로피 인코딩 유닛 (56) 은 컨텍스트를 이용하여 코딩된 빈들 및 바이패스 모드를 이용하여 코딩된 빈들을 그룹화할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 제 1 참조 인덱스 값의 하나 이상의 빈들을 컨텍스트 코딩하고, 제 2 인덱스 값의 하나 이상의 빈들을 컨텍스트 코딩하고, 제 1 참조 인덱스 값의 하나 이상의 다른 빈들을 바이패스 코딩하고, 그리고 제 2 참조 인덱스 값의 하나 이상의 다른 빈들을 (위에서 제시된 순서로) 바이패스 코딩함으로써 B-화상의 참조 인덱스들을 코딩할 수도 있다. 따라서, 엔트로피 인코딩 유닛 (56) 은 단지 컨텍스트 코딩 모드와 바이패스 코딩 모드 사이에, 예컨대, 컨텍스트 코딩된 빈들과 비-컨텍스트 코딩된 빈들 사이에, 한번에 (single time) 전환한다.
엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 코딩 이후, 최종 인코딩된 비디오는 비디오 디코더 (30) 와 같은 또 다른 디바이스로 송신되거나, 또는 추후 송신 또는 취출을 위해 아카이브될 수도 있다. 역양자화 유닛 (58) 및 역변환 프로세싱 유닛 (60) 은 역양자화 및 역변환을 각각 적용하여, 예컨대, 참조 블록으로 추후 사용을 위해, 픽셀 도메인에서 잔여 블록을 재구성한다.
모션 보상 유닛 (44) 은 잔여 블록을 참조 화상 메모리 (64) 의 화상들 중 하나의 예측 블록에 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한 하나 이상의 내삽 필터들을 그 재구성된 잔여 블록에 적용하여, 모션 추정에 사용하기 위한 서브-정수 픽셀 값들을 계산할 수도 있다.
합산기 (62) 는 재구성된 잔여 블록을 모션 보상 유닛 (44) 에 의해 발생되는 모션 보상된 예측 블록에 가산하여, 참조 화상 메모리 (64) 에의 저장을 위한 재구성된 비디오 블록을 발생한다. 재구성된 비디오 블록은 후속 화상에서 블록을 인터-코딩하기 위해 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 사용될 수도 있다.
도 3 은 인코딩된 비디오 시퀀스를 디코딩하는 비디오 디코더 (30) 의 일 예를 예시하는 블록도이다. 도 3 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (70), 모션 보상 유닛 (72), 인트라-예측 유닛 (74), 역양자화 유닛 (76), 역변환 유닛 (78), 참조 화상 메모리 (82) 및 합산기 (80) 를 포함한다.
백그라운드를 통해서, 비디오 디코더 (30) 는 네트워크를 통한 소위 "네트워크 추상화 계층 유닛들" 또는 NAL 유닛들로의 송신을 위해 압축되어 있는 압축된 비디오 데이터를 수신할 수도 있다. 각각의 NAL 유닛은 NAL 유닛에 저장된 데이터의 종류를 식별하는 헤더를 포함할 수도 있다. NAL 유닛들에 일반적으로 저장되는 2개의 유형의 데이터가 존재한다. NAL 유닛에 저장된 제 1 유형의 데이터는 비디오 코딩 계층 (VCL) 데이터이며, 이 비디오 코딩 계층 데이터는 압축된 비디오 데이터를 포함한다. NAL 유닛에 저장된 제 2 유형의 데이터는 비-VCL 데이터로서 지칭되며, 이 데이터는 다수의 NAL 유닛들에 공통적인 헤더 데이터를 정의하는 파라미터 세트들과 같은 추가 정보 및 보충 강화 정보 (SEI; supplemental enhancement information) 를 포함한다.
예를 들어, 파라미터 세트들은 (예컨대, 시퀀스 파라미터 세트들 (SPS) 에) 시퀀스-레벨 헤더 정보를, 그리고 (예컨대, 화상 파라미터 세트들 (PPS) 에) 드물게 변하는 화상-레벨 헤더 정보를 포함할 수도 있다. 파라미터 세트들에 포함된 드물게 변하는 정보는 각각의 시퀀스 또는 화상에 대해 반복될 필요가 없으므로, 코딩 효율을 향상시킨다. 게다가, 파라미터 세트들의 사용은 헤더 정보의 대역외 송신을 가능하게 하여, 에러 복원을 위한 여분의 송신들의 요구를 회피가능하게 한다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관되는 구문 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 수신한다. 일반적으로, 엔트로피 디코딩 유닛 (70) 은 비트스트림을 엔트로피 디코딩하여, 양자화된 계수들, 모션 벡터들, 및 다른 구문 엘리먼트들을 발생한다. 비디오 디코더 (30) 는 구문 엘리먼트들을 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 수신할 수도 있다.
예를 들어, 비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 인트라 예측 유닛 (74) 은 현재의 화상의 이전에 디코딩된 블록들로부터의 시그널링된 인트라 예측 모드 및 데이터에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 발생할 수도 있다. 그 화상이 인터-코딩된 (즉, B, P 또는 GPB) 슬라이스로서 코딩될 때, 모션 보상 유닛 (72) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들 및 다른 구문 엘리먼트들에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 (또한, 참조 샘플들로서 지칭되는) 예측 블록들을 발생한다. 예측 블록들은 참조 화상 리스트들 중 하나 내 참조 화상들 중 하나로부터 발생될 수도 있다. 비디오 디코더 (30) 는 참조 화상 메모리 (82) 에 저장된 참조 화상들에 기초하여, 디폴트 구성 기법들을 이용하여, 참조 화상 리스트들, 리스트 0 및 리스트 1 를 구성할 수도 있다.
엔트로피 디코딩 유닛 (70) 은 비디오 인코더 (20) 에서 구현된 동일한 프로세스 (예컨대, CABAC, CAVLC 등) 를 이용하여 비트스트림을 디코딩할 수도 있다. 인코더에 의해 사용되는 엔트로피 코딩 프로세스는 인코딩된 비트스트림으로 시그널링될 수도 있거나 또는 미리 결정된 프로세스일 수도 있다. 예를 들어, 엔트로피 디코딩 유닛 (70) 은 인코딩된 2진화된 구문 엘리먼트들을 수신할 수도 있다. 엔트로피 디코딩 유닛 (70) 은 (예컨대, 컨텍스트 적응형 모드 또는 바이패스 모드를 이용하여) 비트스트림을 디코딩하고, 그 디코딩된 값들을 2진화하여, 디코딩된 구문 엘리먼트들을 발생할 수도 있다.
일부의 경우, 엔트로피 디코딩 유닛 (70) 은 예측 데이터를 엔트로피 디코딩할 수도 있다. 비디오 인코더 (20) 에 대해 위에서 언급한 바와 같이, 예측 데이터는 참조 인덱스 값들, 모션 벡터들, 모션 벡터 예측자들, 모션 벡터 차이 값들 등을 나타내는 데이터를 포함할 수도 있다. 즉, 엔트로피 디코딩 유닛 (70) 은 모션 벡터들 (예컨대, 모션 벡터들의 수평 성분 및 수직 성분), 참조 화상 인덱스들, 및 예측 방향들을 나타내는 구문 엘리먼트들을 엔트로피 디코딩할 수도 있다. 이들 구문 엘리먼트들은 비디오 디코더 (30) 가 PU 에 의해 정의된 비디오 데이터를 디코딩하여 재생가능하도록 하기 위해 인터-코딩된 PU 에 제공될 수도 있다.
일부 예들에서, 위에서 언급한 바와 같이, 엔트로피 디코딩 유닛 (70) 은 3개의 상이한 컨텍스트들 (예컨대, ctx0, ctx1, 및 ctx2) 을 이용하여 참조 인덱스 값들을 엔트로피 디코딩할 수도 있다. 예를 들어, 엔트로피 디코딩 유닛 (56) 은 제 1 빈 (bin0) 및 제 2 빈 (bin1) 을 ctx0 및 ctx1 을 각각 이용하여 엔트로피 디코딩하고, 제 3 빈 (bin2) 및 다른 빈들을 컨텍스트 ctx2 로 디코딩할 수도 있다. 빈들 사이에 컨텍스트 ctx2 를 공유하는 것은 컨텍스트 코딩과 연관되는 확률 업데이트들로 인해, 비효율적일 수도 있다.
본 개시물의 양태들에 따르면, 엔트로피 디코딩 유닛 (70) 은 bin2 를 코딩하는데 ctx2 를 전담시키고 바이패스 코딩 모드를 이용하여 bin2 이후의 모든 빈들을 코딩함으로써 참조 인덱스 값을 CABAC 코딩할 수도 있다. 또 다른 예에서, 엔트로피 디코딩 유닛 (70) 은 ctx2 를 제거함으로써 참조 인덱스 값의 더 적은 빈들을 컨텍스트 코딩할 수도 있다. 즉, 본 개시물의 양태들에 따르면, 엔트로피 디코딩 유닛 (70) 은 bin2 및 모든 이후의 빈들을 CABAC 바이패스 모드를 이용하여 디코딩할 수도 있다. 여전히, 또 다른 예에서, 엔트로피 디코딩 유닛 (70) 은 ctx1 및 ctx2 양쪽을 제거함으로써 참조 인덱스 값의 더 적은 빈들을 코딩할 수도 있다. 즉, 본 개시물의 양태들에 따르면, 엔트로피 디코딩 유닛 (70) 은 bin1 및 모든 이후의 빈들을 CABAC 바이패스 모드를 이용하여 인코딩함으로써, 참조 인덱스 값들을 코딩하는 것과 연관되는 복잡성을 추가로 감소시킨다.
본 개시물의 다른 양태들은 일반적으로 엔트로피 디코딩 유닛 (70) 이 참조 인덱스 값들을 2진화하는 방법에 관한 것이다. 일부 예들에서, 엔트로피 디코딩 유닛 (70) 은 참조 인덱스 값들을 1진, 절단형 1진, 또는 다른 코딩 프로세스를 이용하여 2진화할 수도 있다. 또 다른 예에서, 엔트로피 인코딩 유닛 (56) 은 지수-골롬 코딩 프로세스를 이용하여, 참조 인덱스 값을 2진화할 수도 있다.
일부 예들에서, 본 개시물의 양태들에 따르면, 엔트로피 디코딩 유닛 (70) 은 2진화 프로세스들의 결합을 구현할 수도 있다. 예를 들어, 아래에서 도 4 에 대해 더 자세히 설명하는 바와 같이, 엔트로피 디코딩 유닛 (70) 은 1진 (또는, 절단형 1진) 코딩 프로세스를 지수-골롬 코딩 프로세스와 결합하여, 참조 인덱스 값들을 2진화할 수도 있다. 예시의 목적을 위한 예에서, 엔트로피 디코딩 유닛 (70) 은 길이 (4) 의 절단형 1진 코드를 지수-골롬 코드 (예컨대, 0-순서의 지수-골롬 코드) 와 결합할 수도 있다. 이러한 예에서, 엔트로피 디코딩 유닛 (70) 은 참조 인덱스 값의 빈들의 제 1 개수 (예컨대, 2개, 3개, 4개, 또는 기타 등등) 를 1진 코딩을 이용하여 2진화할 수도 있으며, 참조 인덱스의 나머지 빈들을 지수-골롬 코드를 이용하여 2진화할 수도 있다.
어쨌든, 엔트로피 디코딩 유닛 (70) 은 참조 인덱스 값의 하나 이상의 빈들을 컨텍스트 코딩하고 참조 인덱스 값의 하나 이상의 다른 빈들을 임의의 2진화 방식으로 바이패스 코딩하는 기법들을 구현할 수도 있다. 예를 들어, 위에서 언급한 바와 같이, 엔트로피 디코딩 유닛 (70) 은 2진화된 구문 엘리먼트의 빈들의 제 1 개수를 컨텍스트 코딩 (예컨대, CABAC 코딩) 하고 나머지 빈들을 바이패스 코딩할 수도 있다. 길이 (4) 의 절단형 1진 코드가 0-순서의 지수 골롬 코드와 결합되는 위에서 설명된 예에서, 엔트로피 디코딩 유닛 (70) 은 절단형 1진 코드의 첫번째 2개의 빈들 (또는, 빈들의 임의의 다른 개수) 을 컨텍스트 코딩하고 그후 1진 코드 및 전체 지수 골롬 코드의 두번째 부분을 바이패스 코딩할 수도 있다. 다른 예들에서, 엔트로피 디코딩 유닛 (70) 은 다른 2진화 방식들을 이용할 수도 있다. 예를 들어, 엔트로피 디코딩 유닛 (70) 은 상기 예들에서 설명된 지수 골롬 코드 대신, 고정 길이 2진 코드를 이용할 수도 있다.
일부 예들에서, 엔트로피 디코딩 유닛 (70) 은 그 값을 코딩하기에 앞서 2진화된 참조 인덱스 값으로부터 빈들을 절단하거나, 또는 제거할 수도 있다. 이에 추가적으로 또는 대안적으로, 엔트로피 디코딩 유닛 (70) 은 컨텍스트를 이용하여 코딩된 빈들 및 바이패스 모드를 이용하여 코딩된 빈들을 그룹화할 수도 있다. 예를 들어, 엔트로피 디코딩 유닛 (70) 은 제 1 참조 인덱스 값의 하나 이상의 빈들을 컨텍스트 코딩하고, 제 2 인덱스 값의 하나 이상의 빈들을 컨텍스트 코딩하고, 제 1 참조 인덱스 값의 하나 이상의 다른 빈들을 바이패스 코딩하고, 그리고 제 2 참조 인덱스 값의 하나 이상의 다른 빈들을 (위에서 제시된 순서로) 바이패스 코딩함으로써 B-화상의 참조 인덱스들을 코딩할 수도 있다. 따라서, 엔트로피 디코딩 유닛 (70) 은 단지 컨텍스트 코딩 모드와 바이패스 코딩 모드 사이에, 예컨대, 컨텍스트 코딩된 빈들과 비-컨텍스트 코딩된 빈들 사이에, 한번에 (single time) 전환한다.
구문 엘리먼트들 및 변환 계수들을 엔트로피 디코딩한 후, 일부 예들에서, 엔트로피 디코딩 유닛 (70) (또는, 역양자화 유닛 (76)) 은 비디오 인코더 (20) 의 엔트로피 인코딩 유닛 (56) (또는, 양자화 유닛 (54)) 에 의해 사용되는 스캐닝 모드를 미러링하는 스캐닝을 이용하여, 수신된 변환 계수 값들을 스캐닝할 수도 있다. 예시의 용이를 위해 별개의 기능적 유닛들로서 나타내었지만, 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (70), 역양자화 유닛 (76), 및 다른 유닛들의 구조 및 기능은 서로 고도로 통합될 수도 있다.
역양자화 모듈 (76) 은 비트스트림으로 제공되며 엔트로피 디코딩 유닛 (70) 에 의해 디코딩된 양자화된 변환 계수들을 역양자화한다, 즉, 양자화 해제한다. 역양자화 프로세스는 종래의 프로세스, 예컨대, HEVC 에 대해 제안되거나 또는 H.264 디코딩 표준에 의해 정의된 프로세스들과 유사한, 프로세스를 포함할 수도 있다. 역양자화 프로세스는 양자화의 정도를 결정하기 위해, 그리고, 이와 유사하게, 적용되어야 하는 역양자화의 정도를 결정하기 위해, CU 에 대한, 비디오 인코더 (20) 에 의해 계산된 양자화 파라미터 QP 의 사용을 포함할 수도 있다. 역양자화 유닛 (76) 은 계수들이 1차원 어레이로부터 2차원 어레이로 변환되기 전후에 변환 계수들을 역양자화할 수도 있다.
인트라-예측 유닛 (74) 은 현재의 화상의 이전에 디코딩된 블록들로부터의 시그널링된 인트라-예측 모드 및 데이터에 기초하여, 현재의 화상의 현재의 블록에 대한 예측 데이터를 발생할 수도 있다. 모션 보상 유닛 (72) 은 인코딩된 비트스트림으로부터 모션 벡터, 모션 예측 방향 및 참조 인덱스를 취출할 수도 있다. 참조 예측 방향은 인터-예측 모드가 단방향 (예컨대, P-프레임) 또는 양방향 (B-프레임) 인지의 여부를 나타낸다. 참조 인덱스는 모션 벡터가 지향되는 참조 화상을 나타낸다. 취출된 모션 예측 방향, 참조 화상 인덱스, 및 모션 벡터에 기초하여, 모션 보상 유닛은 현재의 부분에 대한 모션 보상되는 블록을 발생한다. 이들 모션 보상되는 블록들은 잔여 데이터를 발생하는데 사용되는 예측 블록을 재생성하는데 사용된다.
모션 보상 유닛 (72) 은 어쩌면, 내삽 필터들에 기초하여 내삽을 수행함으로써 모션 보상되는 블록들을 발생할 수도 있다. 서브-픽셀 정밀도를 갖는 모션 추정에 이용되는 내삽 필터들에 대한 식별자들이 구문 엘리먼트들에 포함될 수도 있다. 모션 보상 유닛 (72) 은 비디오 블록의 인코딩 동안 비디오 인코더 (20) 에 의해 사용되는 것과 같은 내삽 필터들을 이용하여, 참조 블록의 서브-정수 픽셀들에 대해 내삽된 값들을 계산할 수도 있다. 모션 보상 유닛 (72) 은 수신된 구문 정보에 따라서 비디오 인코더 (20) 에 의해 이용된 내삽 필터들을 결정하고 그 내삽 필터들을 이용하여, 예측 블록들을 발생할 수도 있다.
모션 보상 유닛 (72) 은 현재의 블록에 대한 모션 정보를 취출할 장소를 나타내는 예측 데이터를 수신할 수도 있다. 예를 들어, 모션 보상 유닛 (72) 은 MVP 인덱스 (mvp_flag), MVD, 병합 플래그 (merge_flag), 및/또는 병합 인덱스 (merge_idx) 와 같은 모션 벡터 예측 정보를 수신하고, 이런 정보를 이용하여, 현재의 블록을 예측하는데 사용되는 모션 정보를 식별할 수도 있다.
예를 들어, 모션 보상 유닛 (72) 은 MVP 또는 병합 후보들의 리스트를 발생할 수도 있다. 모션 보상 유닛 (72) 은 그후 MVP 또는 병합 인덱스를 이용하여, 현재의 블록의 모션 벡터를 예측하는데 사용되는 모션 정보를 식별할 수도 있다. 즉, 모션 보상 유닛 (72) 은 MVP 인덱스 (mvp_flag) 를 이용하여 참조 화상의 리스트로부터 MVP 를 식별할 수도 있다. 모션 보상 유닛 (72) 은 식별된 MVP 를 수신된 MVD 와 결합하여, 현재의 블록에 대한 모션 벡터를 결정할 수도 있다. 다른 예들에서, 모션 보상 유닛 (72) 은 병합 인덱스 (merge_idx) 를 이용하여 참조 화상들의 리스트로부터 병합 후보를 식별하여, 현재의 블록에 대한 모션 정보를 결정할 수도 있다. 어쨌든, 현재의 블록에 대한 모션 정보를 결정한 후, 모션 보상 유닛 (72) 은 현재의 블록에 대한예측 블록을 발생할 수도 있다.
게다가, 모션 보상 유닛 (72) 및 인트라-예측 유닛 (74) 은, HEVC 예에서, (예컨대, 쿼드트리에 의해 제공되는) 구문 정보의 일부를 이용하여, 인코딩된 비디오 시퀀스의 화상(들)을 인코딩하는데 사용되는 LCU들의 사이즈들을 결정할 수도 있다. 모션 보상 유닛 (72) 및 인트라-예측 유닛 (74) 은 또한 구문 정보를 이용하여, 인코딩된 비디오 시퀀스의 화상의 각각의 CU 가 분할되는 방법 (그리고 유사하게, 서브-CU들이 분할되는 방법) 을 기술하는 분할 정보를 결정할 수도 있다. 구문 정보는 또한 인코딩된 비디오 시퀀스를 디코딩하기 위해, 어떻게 각각의 분할이 인코딩되는지를 나타내는 모드들 (예컨대, 인트라- 또는 인터-예측, 그리고 인트라-예측에 있어, 인트라-예측 인코딩 모드), 각각의 인터-인코딩된 PU 에 대한 하나 이상의 참조 화상들 (및/또는 참조 화상들에 대한 식별자들을 포함하는 참조 리스트들), 및 다른 정보를 포함할 수도 있다.
합산기 (80) 는 잔여 블록들을 모션 보상 유닛 (72) 또는 인트라-예측 유닛 (74) 에 의해 발생된 대응하는 예측 블록들과 결합하여, 디코딩된 블록들을 형성한다. 원할 경우, 블록킹 아티팩트들 (blockiness artifacts) 을 제거하기 위해 디블록킹 필터가 또한 그 디코딩된 블록들을 필터링하는데 적용될 수도 있다. 디코딩된 비디오 블록들은 그후 참조 화상 메모리 (82) 에 저장될 수도 있으며, 그 참조 프레임 버퍼는 후속 모션 보상을 위해 참조 블록들을 제공하며, 또한 (도 1 의 디스플레이 디바이스 (32) 와 같은) 디스플레이 디바이스 상에의 제시를 위해 디코딩된 비디오를 발생한다.
도 4 는 예시적인 산술 코딩 프로세스를 예시하는 블록도이다. 도 4 의 예시적인 산술 코딩 프로세스는 비디오 인코더 (20) 에 의해 수행되는 것으로 일반적으로 설명된다. 그러나, 도 4 에 대해 설명된 기법들은 비디오 디코더 (30) 를 포함한 다양한 다른 비디오 코더들에 의해 수행될 수도 있는 것으로 이해되어야 한다. 예를 들어, 도 3 과 관련하여 위에서 언급한 바와 같이, 비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 수행되는 프로세스와 반대인 디코딩 프로세스를 수행할 수도 있다.
도 4 의 예는 2진화기 (100), 컨텍스트 모델러 (102), 코딩 엔진 (104), 및 바이패스 코더 (106) 를 포함한다. 2진화기 (100) 는 수신된 구문 엘리먼트를 2진화하는 것을 담당한다. 예를 들어, 2진화기 (100) 는 구문 엘리먼트를 다수의 소위 빈들에 맵핑할 수도 있으며, 여기서, 각각의 빈은 2진 값을 나타낸다. 예시의 목적을 위한 예에서, 2진화기 (100) 는 절단형 1진 (TU) 코드를 이용하여 구문 엘리먼트를 빈들에 맵핑할 수도 있다. 일반적으로, 1진 코딩은 길이 N+1 의 빈 스트링을 발생하는 것을 수반할 수도 있으며, 여기서, 제 1 의 N 빈들은 1 이고 최종 빈들이 0 이다. 절단형 1진 코딩은 구문 엘리먼트의 최대 가능한 값 (cMax) 상에서 최대치를 설정함으로써 1진 코딩보다 하나 더 적은 빈을 가질 수도 있다. 절단형 1진 코딩의 일 예가 표 2 에 나타내며, 이때 cMax =10 이다.
비디오 디코더 (30) 에서 수행될 때, 비디오 디코더 (30) 는 0 을 탐색하여, 현재 코딩되는 구문 엘리먼트가 완성되는 때를 결정할 수도 있다. 아래에서 좀더 자세히 설명하는 바와 같이, 절단형 1진 코딩은 단지 예이며, 2진화기 (100) 는 (2진화 프로세스들의 결합들 뿐만 아니라) 다양한 다른 2진화 프로세스들을 수행하여, 구문 엘리먼트들을 2진화할 수도 있다.
컨텍스트 모델러 (102) 는 주어진 빈에 대해 (또한, 확률 모델로 지칭되는) 컨텍스트 모델을 결정하는 것을 담당할 수도 있다. 예를 들어, 컨텍스트 모델러 (102) 는 비디오 데이터의 블록과 연관되는 심볼들을 코딩하기 위해 컨텍스트 상에서 동작하는 확률 모델을 선택할 수도 있다. 일반적으로, 확률 모델은 각각의 빈이 "1" 또는 "0" 일 확률을 저장한다.
컨텍스트 모델러 (102) 는 다수의 가용 확률 모델들로부터 확률 모델을 선택할 수도 있다. 일부 예들에서, 아래에서 더 자세히 설명하는 바와 같이, 컨텍스트 모델러 (102) 에 의해 사용되는 컨텍스트는 코딩되는 빈 개수에 기초하여 결정될 수도 있다. 즉, 컨텍스트는 2진화기 (100) 에 의해 발생된 빈 스트링에서의 빈의 위치에 의존할 수도 있다. 어쨌든, 비디오 인코더 (20) 에서, 목표 심볼은 선택된 확률 모델을 이용함으로써 코딩될 수도 있다. 비디오 디코더 (30) 에서, 목표 심볼은 선택된 확률 모델을 이용함으로써 파싱될 수도 있다.
코딩 엔진 (104) 은 빈을 (컨텍스트 모델러 (102) 로부터의) 결정된 확률 모델을 이용하여 코딩한다. 코딩 엔진 (104) 이 그 빈을 코딩한 후, 코딩 엔진 (104) 은 그 빈을 코딩하는데 사용되는 컨텍스트와 연관되는 확률 모델을 업데이트할 수도 있다. 즉, 선택된 확률 모델은 실제 코딩된 값에 기초하여 업데이트된다 (예컨대, 빈 값이 "1" 이었으면, "1" 의 빈도 카운트가 증가된다). 컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 이용하여 빈들을 코딩하는 것은 빈들을 컨텍스트 코딩 모드를 코딩하는 것으로서 지칭될 수도 있다.
바이패스 코더 (106) 는 고정 확률을 이용하여 빈들을 코딩한다. (컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 통한) 컨텍스트 코딩과는 대조적으로, 바이패스 코더 (106) 는 코딩되는 빈들의 실제 값들에 기초하여, 바이패스 코딩 프로세스를 업데이트하지 않는다. 따라서, 일반적으로, 바이패스 코더 (106) 는 빈들을 컨텍스트 코딩보다 더 빨리 바이패스 코딩할 수도 있다. 바이패스 코더 (106) 를 이용하여 빈들을 코딩하는 것은 빈들을 바이패스 코딩 모드를 이용하여 코딩하는 것으로 지칭될 수도 있다. 예시적인 바이패스 코딩 모드들은 골롬 코딩, 지수 골롬 코딩, 골롬-라이스 코딩, 또는 컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 바이패스하는 임의의 다른 적합한 코딩 프로세스를 포함한다.
(코딩 엔진 (104) 및 바이패스 코더 (106) 로부터의) 코딩된 빈들은 코딩된 비트스트림을 형성하기 위해 결합된다. 인코딩된 비트스트림을 디코딩하기 위해, (비디오 디코더 (30) 와 같은) 비디오 디코더는 도 4 에 나타낸 프로세스를 미러링할 수도 있다. 즉, 비디오 디코더 (30) 는 인코딩된 비트스트림 상에서 (컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 이용한) 컨텍스트 코딩 또는 (바이패스 코더 (106) 를 이용한) 바이패스 코딩을 수행하여, 디코딩된 빈 스트링을 발생할 수도 있다. 비디오 디코더 (30) 는 그후 빈 스트링을 (2진화기 (100) 를 이용하여) 2진화하여, 구문 값들을 발생할 수도 있다.
도 3 에 나타낸 산술 코딩 프로세스가 비디오 데이터를 코딩하는데 이용될 수도 있다. 예를 들어, 도 3 에 나타낸 코딩 프로세스가 참조 인덱스 값들, 모션 벡터들, 모션 벡터 예측자들, 모션 벡터 차이 값들 등을 포함한, 예측 데이터를 인코딩하는데 사용될 수도 있다.
예시의 목적을 위한 예에서, 2진화기 (100) 는 참조 인덱스 (ref_idx) 를 2진화할 수도 있다. 일부 예들에서, 참조 인덱스에 대한 최종 빈 스트링은 참조에 이용가능한 참조 화상들의 개수에 따라서, 길이가 최고 15 개의 빈들일 수도 있다. 위에서 언급한 바와 같이, 일부 예들에서, 참조 인덱스 값의 빈들의 모두는 컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 이용하여 컨텍스트 코딩될 수도 있다. 더욱이, 빈들 중 하나 이상은 컨텍스트를 공유할 수도 있다. 그러나, 빈들의 모두를 컨텍스트 코딩하고 하나 보다 많은 빈 사이에 컨텍스트를 공유하는 것은 컨텍스트 코딩과 연관되는 레이턴시들로 인해, 비효율적일 수도 있다.
본 개시물의 양태들에 따르면, 도 4 에 나타낸 바와 같이, 비디오 인코더 (20) 는 코딩되는 빈의 빈 개수에 기초하여, 참조 인덱스에 대한 빈 스트링을 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 빈 스트링에서의 특정의 빈의 상대적인 위치에 따라서, 참조 인덱스 빈 스트링에서의 특정의 빈을 코딩할 수도 있다. 일 예에서, 비디오 인코더 (20) 는 참조 인덱스의 제 1, 제 2 빈, 및 제 3 빈을 컨텍스트 코딩할 수도 있으며, 참조 인덱스의 나머지 빈들을 바이패스 코딩할 수도 있다. 즉, 비디오 인코더 (20) 는 제 1 빈 (bin0) 을 컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 이용하여 제 1 컨텍스트 ctx0 로, 제 2 빈 (bin1) 을 컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 이용하여 제 2 컨텍스트 ctx1 로, 그리고, 제 3 빈 (bin2) 을 컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 이용하여 제 3 컨텍스트 ctx2 로 코딩할 수도 있다. 그러나, 비디오 인코더 (20) 는 제 4 빈 (bin3) 및 임의의 다른 다음 빈들을 바이패스 코더 (106) 를 이용하여 코딩할 수도 있다.
또 다른 예에서, 비디오 인코더 (20) 는 컨텍스트 코딩되는 빈들의 개수를 감소시킬 수도 있다. 예를 들어, 비디오 인코더 (20) 는 제 1 빈 (bin0) 을 컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 이용하여 제 1 컨텍스트 ctx0 로, 그리고, 제 2 빈 (bin1) 을 컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 이용하여 제 2 컨텍스트 ctx1 로 코딩할 수도 있다. 이 예에서, 그러나, 비디오 인코더 (20) 는 제 3 빈 (bin2) 및 임의의 다른 다음 빈들을 바이패스 코더 (106) 를 이용하여 바이패스 코딩할 수도 있다.
또한 또 다른 예에서, 비디오 인코더 (20) 는 컨텍스트 코딩되는 빈들의 개수를 추가로 감소시킬 수도 있다. 예를 들어, 비디오 인코더 (20) 는 제 1 빈 (bin0) 을 컨텍스트 모델러 (102) 및 코딩 엔진 (104) 을 이용하여 제 1 컨텍스트 ctx0 로 코딩할 수도 있다. 그러나, 비디오 인코더 (20) 는 제 2 빈 (bin1) 및 임의의 다른 다음 빈들을 바이패스 코더 (106) 를 이용하여 코딩할 수도 있다.
본 개시물의 양태들 또한 2진화기 (100) 가 비디오 데이터에 대해 2 진화를 수행하는 방법에 관한 것이다. 예를 들어, 본 개시물의 양태들에 따르면, 2진화기 (100) 는 구문 엘리먼트를 하나 보다 많은 부분으로 분할할 수도 있다. 즉, 2진화기 (100) 는 절단형 1진 코딩을 이용하여, (위에서 설명한 바와 같이, 상대적으로 작은 cMax 로) 접두부를 코딩할 수도 있으며, 또 다른 코딩 방법을 이용하여, 접미부를 코딩할 수도 있다. 일 예에서, 2진화기 (100) 는 k번째 순서 지수-골롬 코드를 이용하여, 접미부를 코딩할 수도 있다.
일부 예들에서, 오직 접두부의 빈들만이 컨텍스트 코딩될 수도 있으며, 반면 접미부의 빈들은 바이패스 코딩할 수도 있다. 표 3 은 지수-골롬 코드와의 절단형 1진 결합되는 코드의 일 예를 나타내며, 여기서, 접두부에 대해 cMax=4 이고 접미부에 대해 0번째 순서 지수 골롬이다. 이들 기법들은 또한 참조 인덱스 값들 뿐만 아니라, 다른 구문 엘리먼트들, 예컨대 모션 벡터 차이 값들 또는 어드밴스드 모션 벡터 예측 (AMVP) 를 통해서 코딩할 때에 사용되는 다른 구문 엘리먼트들에도 적용될 수도 있다.
표 3 에 나타낸 예에서, 절단형 1진 빈들은 컨텍스트 코딩될 수도 있으며, 반면 지수-골롬 빈들은 바이패스 코딩될 수도 있다.
본 개시물의 기법들은 예를 들어, 접두부 부분에서 지수-골롬 2진화를 위해 빈들의 어떤 개수 이후에 그 빈들에 컨텍스트 코딩을 적용하는 것을 포함할 수도 있다. 본 개시물의 기법들은 또한 예를 들어, 컨텍스트 기반의 코딩을 어떤 개수의 빈들 (예컨대, 미리 결정된 개수의 접두부 빈들) 에 적용하고 바이패스 코딩을 나머지 빈들에 적용하는 것을 포함한다. 예를 들어, 접두부 부분에서의 모든 빈들을 컨텍스트를 이용하여 코딩하는 대신, 접두부 부분에서 bin2 및 이후의 빈들은 바이패스 모드로 코딩될 수도 있다. 또 다른 예에서, 바이패스 모드가 bin1 을 포함하여, 및/또는 이후 모든 빈들에 적용될 수도 있다. 또한 또 다른 예에서, 바이패스 모드가 접두부 부분의 모든 빈들에 적용될 수도 있다. 어떤 개수의 컨텍스트 코딩된 빈들 이후에 바이패스 모드 코딩을 이용하는 유사한 접근법이 임의의 2진화 방법에 대해 이용될 수 있다. 즉, 본 개시물은 지수-골롬 및 절단형 1진 코딩 방식들을 이용하여 설명하지만, 다른 2진화 방법들이 사용될 수도 있다.
여전히, 또 다른 예에서, 위에서 설명된 본 개시물의 기법들은 2진화 프로세스들의 결합들을 포함한, 다른 2진화 프로세스들과 함께 구현될 수도 있다. 즉, 일 예에서, 1진 코딩 프로세스가 참조 인덱스 값을 2진화하는데 이용될 수도 있다. 또 다른 예에서, 절단형 1진 코딩 프로세스가 참조 인덱스 값을 2진화하는데 이용될 수도 있다. 또한 또 다른 예에서, 지수-골롬 코딩 프로세스가 참조 인덱스 값을 2진화하는데 이용될 수도 있다. 다른 2진화 프로세스들 및 2진화 프로세스들의 결합들이 또한 가능하다. 즉, 예를 들어, 1진 (또는, 절단형 1진) 코딩 프로세스는 참조 인덱스 값을 2진화하기 위해 지수-골롬 코딩 프로세스와 결합될 수도 있다. 예시의 목적을 위한 예에서, 길이 (4) 의 절단형 1진 코드는 지수-골롬 코드 (예컨대, 0-순서의 지수-골롬 코드) 와 결합될 수 있다. 이러한 예에서, 참조 인덱스 값의 빈들의 제 1 개수 (예컨대, 2개, 3개, 4개, 또는 기타 등등) 는 1진 코딩될 수도 있으며, 반면 참조 인덱스의 나머지 빈들은 지수-골롬 코딩될 수도 있다.
어쨌든, 참조 인덱스 값을 CABAC 및 바이패스 코딩하는 것에 대해 위에서 설명한 기법들은 임의의 2진화된 참조 인덱스 값에 적용될 수도 있다. 즉, 본 개시물의 양태들에 따르면, 2진화된 참조 인덱스 값의 빈들의 제 1 개수는 컨텍스트 코딩될 수도 있으며 (예컨대, CABAC 엔진으로 코딩될 수도 있으며), 반면 나머지 빈들은 바이패스 코딩될 수도 있다. 길이 (4) 의 절단형 1진 코드가 0-순서의 지수 골롬 코드와 결합되는 위에서 설명된 예에서, 절단형 1진 코드의 처음 2개의 빈들 (또는, 빈들의 임의의 다른 개수) 은 컨텍스트 코딩될 수도 있으며, 1진 코드의 제 2 부분 및 전체 지수 골롬 코드는 바이패스 코딩될 수도 있다.
길이 (4) 의 절단형 1진 코드 및 0-순서의 지수 골롬은 단지 예의 목적들을 위해 제공되며, 동일한 또는 유사한 기법들이 다른 절단형 1진 코드 길이들 뿐만 아니라, 지수 골롬 코드의 다른 순서들에도 적용될 수도 있는 것으로 이해되어야 한다. 더욱이, 2진화 위에서 설명한 프로세스들은 단지 예의 목적들을 위해 제공되며, 다른 2진화된 코드들이 사용될 수도 있다. 예를 들어, 고정 길이 2진 코드가 상기 예들에서 설명된 지수 골롬 코드 대신 사용될 수도 있다. 게다가, 절단형 1진 2진화 부분에 대한 2개의 컨텍스트 코딩된 빈들의 예가 예시의 목적을 위해 제공되며, 다른 개수들의 컨텍스트 및 바이패스 코딩된 빈들이 사용될 수도 있다.
어쨌든, 본 개시물의 양태들은 또한 2진화된 값의 부분을 절단하는 것에 관한 것이다. 예를 들어, 참조 인덱스들의 개수가 사전에 알려져 있기 때문에, 본 개시물의 양태들에 따르면, 지수 골롬 또는 고정 길이 코드는 절단될 수 있다. 즉, 순서 k 의 지수 골롬이 2진화기 (100) 에 의해 사용될 수도 있다. 일 예로서, 0-순서의 지수 골롬이 비디오 압축에 적용될 수도 있다. 이 2진화는 1진 코드로 코딩된 지수 접두부 및 길이 (접두부-1) 의 고정 길이 접미부로 이루어지며, 이의 일 예가 아래 표 4 에 나타내어진다:
예를 들어, (예컨대, 표 4 의 제 1 칼럼에서의 값 10 을 가진 엘리먼트에 대응하는) 값 10 은 2진화된 코드워드 0001011 로 표시되며, 여기서, 0001 은 접두부이고 011 은 접미부이다. 엘리먼트는 표 4 의 코드워드들을 이용하거나 또는 아래에 나타내고 설명되는 표들을 이용하여 코딩되는 입력 데이터일 수도 있다. 예를 들어, 비디오 인코더 (20) 는 엘리먼트들을 수신하고, 아래에 나타내고 설명되는 표들에 따라서 그 엘리먼트들을 코드워드들로 변환할 수도 있다. 이와 유사하게, 비디오 디코더 (30) 는 코드워드들을 수신하고, 아래에 나타내고 설명되는 표들에 따라서 그 코드워드들을 구문 엘리먼트들 (예컨대, 입력 데이터) 로 변환할 수도 있다.
재구성된 값은 아래에 나타낸 수식 (1) 에 따라서 얻어질 수도 있다:
값 = 2^(접두부 - 1) + 접미부 - 1 (1)
이 예에서, 위 표 4 에 나타낸 바와 같이, 접두부는 1진 코드로 표시되며 여기서, 0001 은 4 에 대응하고, 접미부는 2진 숫자 시스템으로 표시된 값이며 이때 011 은 3 에 대응한다. 따라서, 이 예에서, 수식 (1) 을 적용하면 다음 값들이 된다: 2^(4-1) + 3 - 1 = 10.
이 코드는 일반적으로 무한수들을 나타낼 수 있으며; 그러나, 일부 시나리오들에서, 엘리먼트들의 개수는 알려져 있을 수 있다. 이 경우, 코드워드는 가능한 엘리먼트들의 최대 개수를 고려하여, 단축될 수 있다.
예를 들어, 엘리먼트들의 최대 개수가 2개 (예컨대, 엘리먼트들 0 및 1) 이면, 1 에 대한 정규 지수 골롬 코드워드는 010 이다. 그러나, 2 보다 큰 어떤 엘리먼트도 존재하지 않는다. 따라서, 정규 코드 010 는 1 까지 단축될 수 있다. 이 2진화의 유형은 절단형 지수 골롬으로서 지칭될 수도 있으며, H.264/AVC 과 같은 비디오 코딩 표준들에 사용될 수도 있다. 그러나, H.264 표준에 대해, 엘리먼트들의 최대 개수가 1 일 때에 절단형 지수 골롬이 단지 사용된다. 다른 경우들에 대해, 정규 지수 골롬 2진화가 사용된다.
본 개시물의 양태들에 따르면, 정규 지수 골롬 코딩은 예를 들어, 엘리먼트들의 최대 개수가 1 인 상기 예와 유사한 방법으로 추가로 절단될 수도 있다. 일반적으로, 엘리먼트들의 최대 개수가 사전에 알려져 있을 때, 지수 골롬 2진화 코드워드의 접미부는 여분의 빈들을 제거함으로써 절단될 수 있다. 예를 들어, 엘리먼트들의 최대 개수가 9 개이면, 아래에 나타낸 표 5 에서 굵은체, 이탤릭체 및 밑줄로 표시된 2개의 빈들이 코드워드들로부터 제거될 수 있다.
즉, 표 5 에 나타낸 엘리먼트 7 에 대해, 접미부의 첫번째 2개의 00들이 제거될 수도 있다. 게다가, 표 5 에 나타낸 엘리먼트 8 에 대해, 접미부의 첫번째 2개의 00들이 제거될 수도 있다. 따라서, 순서 0 의 절단형 지수 골롬은 엘리먼트 7 에 대해 0001 0 및 엘리먼트 8 에 대해 00001 1 을 나타낸다.
위에서 설명한 기법들은 예를 들어, 최종 접두부 (상기 예에서 0001) 에 대한 고정 길이 접미부를 정규 지수 골롬 코드와 비교함으로써, 구현될 수도 있다. 예를 들어, 최종 그룹에서 엘리먼트들의 개수가 정규 지수 골롬 코드에서의 개수보다 더 작으면, 여분의 빈들이 제거될 수 있다. 즉, 2진화기 (100) 는 최종 접두부에 대해 고정 길이 접미부를 비교함으로써 순서 0 의 최종 절단형 지수 골롬 코드를 발생할 수도 있으며, 이 최종 그룹에서 엘리먼트들의 개수가 정규 지수 골롬 코드에서의 개수보다 더 작으면, 여분의 빈들이 제거될 수 있다.
예를 들어, 이 예에서, 2진화기 (100) 는 사전에 알려져 있는 코딩을 위한 엘리먼트들의 최대 개수가 존재할 때 접두부가 최종 엘리먼트의 접두부와 동일한 엘리먼트들의 개수를 결정할 수도 있다. 예를 들어, 표 5 에서, 최종 엘리먼트에 대한 접두부는 0001 이며, 엘리먼트들의 최대 개수 (예컨대, 이 예에서 9개) 가 있을 때 접두부가 최종 엘리먼트의 접두부와 동일한 2개의 엘리먼트들 (예컨대, 엘리먼트 7 및 엘리먼트 8) 이 존재한다.
2진화기는 그후 접두부가 최종 엘리먼트의 접두부와 동일한 엘리먼트들의 개수를 동일한 접두부를 가진 정규 지수 골롬 코드에서의 엘리먼트들의 개수와 비교할 수도 있다. 예를 들어, 위 표 4 에서는, 접두부가 0001 인 (즉, 이전 엘리먼트의 접두부와 동일한) 8개의 엘리먼트들 (즉, 엘리먼트 7 내지 엘리먼트 14) 이 존재한다. 이 예에서, 2진화기 (100) 는 접두부가 최종 엘리먼트의 접두부와 동일한 엘리먼트들의 개수가 동일한 접두부를 가진 정규 지수 골롬 코드에서의 엘리먼트들의 개수 미만이라고 결정할 수도 있다.
이것이 참일 때, 2진화기 (100) 는 접두부가 최종 접두부와 동일한 코드워드들로부터 빈들을 절단하여, 절단된 코드워드들을 발생할 수도 있다. 일부 예들에서, 빈들은 접미부로부터 절단되지만; 본 개시물의 양태들은 그에 제한되지 않는다. 2진화기 (100) 는 접두부가 최종 접두부와 동일한 엘리먼트들의 개수에 기초하여, 절단할 빈들의 개수를 결정할 수도 있다.
예를 들어, 위 표 5 에서는, 최종 접두부와 동일한 접두부를 가진 2개의 엘리먼트들 (예컨대, 엘리먼트들 7 및 8) 이 존재한다. 2진화기 (100) 는 표 5 의 최종 칼럼에 예시된 바와 같이, 엘리먼트들 7 및 8 의 코드워드들로부터 빈들을 절단하여, 절단된 코드워드들을 발생할 수도 있다. 이 예에서는, 최종 접두부와 동일한 접두부를 가진 2개의 엘리먼트들이 존재하기 때문에, 2진화기 (100) 는 2개의 엘리먼트들을 나타내는데 오직 하나의 빈만이 접미부에 필요된다고 결정할 수도 있다. 예를 들어, 접미부에서의 0 은 하나의 엘리먼트 (예컨대, 엘리먼트 7) 를 나타낼 수도 있으며, 접미부에서의 1 은 또 다른 엘리먼트 (예컨대, 엘리먼트 8) 를 나타낼 수도 있다. 따라서, 위 표 5 에서의 엘리먼트 7 에 대해, 2진화기 (100) 는 접미부의 첫번째 2개의 빈들을 절단하여, 절단된 코드워드에 대한 접미부로서 단지 0 을 남길 수도 있다 또한, 위 표 5 에서의 엘리먼트 8 에 대해, 2진화기 (100) 는 접미부의 첫번째 2개의 빈들을 절단하여, 절단된 코드워드에 대한 접미부로서 단지 1 을 남길 수도 있다.
위에서 설명한 기법들은 (비디오 데이터를 인코딩 및/또는 디코딩하는 것과 같이) 매체들을 코딩하기 위해 구현될 수도 있다. 예를 들어, 본 개시물의 양태들에 따르면, 비디오 디코더 (30) 와 같은, 비디오 디코더는, 미디어 데이터를 나타내는 하나 이상의 코드워드들을 수신할 수도 있으며, 거기에는 코딩하는데 사용될 수 있는 엘리먼트들의 최대 개수가 있을 수도 있다. 비디오 디코더 (30) 는 코딩 표에 따라서 코드워드들을 엘리먼트들로 변환할 수도 있다. 코딩 표는, 동일한 접두부가 코딩 표에서 최종 접두부이고 동일한 접두부를 가지는 코드워드들의 개수가 동일한 접두부를 가질 수 있는 고유한 코드워드들의 최대 개수 미만일 때, 동일한 접두부를 가지는 코드워드들의 적어도 일부가 절단되도록, 구성될 수도 있다. 예를 들어, 접두부 0001 에 대해, 표 4 는 코드워드들에 대한 고유의 가능성들을 예시하며, (아래에 나타낸) 표들 5 및 6 은 동일한 접두부를 공유하며 본 개시물의 기법들에 따라서 절단된 코드워드들의 예들을 나타낸다.
이 기법들은 또한 비디오 인코더 (20) 에 의해 수행될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 미디어 데이터를 나타내는 하나 이상의 엘리먼트들을 수신할 수도 있다. 비디오 인코더 (20) 는 코딩 표에 따라서 엘리먼트들을 하나 이상의 코드워드들로 변환할 수도 있으며, 코딩에 사용될 수 있는 엘리먼트들의 최대 개수가 존재할 수도 있다. 코딩 표는, 동일한 접두부가 코딩 표에서 최종 접두부이고 동일한 접두부를 가지는 코드워드들의 개수가 동일한 접두부를 가질 수 있는 고유한 코드워드들의 최대 개수 미만일 때, 동일한 접두부를 가지는 코드워드들의 적어도 일부가 절단되도록, 구성될 수도 있다. 또한, 예를 들어, 접두부 0001 에 대해, 표 4 는 코드워드들에 대한 고유의 가능성들을 예시하며, (아래에 나타낸) 표들 5 및 6 은 동일한 접두부를 공유하며 본 개시물의 기법들에 따라서 절단된 코드워드들의 예들을 나타낸다.
이와 같이, 이 기법들은 코딩되는 엘리먼트들의 최대 개수가 알려져 있을 때 비디오 데이터를 코딩하는데 필요되는 빈들의 개수를 감소시킬 수도 있다. 빈들에서의 감소는, 대역폭 효율을 초래하는, 시그널링되거나 또는 수신될 필요가 있는 더 적은 비트들을 초래한다.
여전히, 또 다른 예에서, 엘리먼트들의 최대 개수가 11 개이면, 절단된 지수 골롬 코드워드들은 아래 표 6 에 나타낸다. 표 6 에 굵은체, 이탤릭체, 및 밑줄로 표시된 빈들은 코드워드들로부터 제거될 수 있다.
표 6 에 나타낸 바와 같이, 엘리먼트들 7, 8, 9, 및 10 에 대한 접미부에서의 제 1 빈들이 절단될 수도 있다 (굵은체, 이탤릭체, 및 밑줄로 나타낼 수도 있다). 이 예에서, 4개의 엘리먼트들이 코드워드에 의해 표현되기 때문에, 접미부로부터의 오직 하나의 빈이 절단될 수도 있다. 이러한 이유로, 절단된 코드워드들에서, 동일한 접두부를 각각 가진 4개의 엘리먼트들을 커버하기 위해, 접미부는 00 에서 시작하고 11 에서 끝난다.
위 표들 5 및 6 에 나타낸 예들은 단지 예들로서 제공하며, 동일한 프로세스가 임의 개수의 최대 엘리먼트들에 대해 적용될 수 있다. 예를 들어, 일부 예들에서, 본 개시물의 양태들은 절단된 코드워드들을 수신하는 것에 관한 것이다. 절단된 코드워드들은 엘리먼트들의 제 1 개수를 결정함으로써 발생될 수도 있다. 엘리먼트들의 제 1 개수는, 코딩에 이용될 수 있는 엘리먼트들의 최대 개수가 있을 때 얼마나 많은 제 1 코딩 표에서의 코드워드들이 제 1 코딩 표에서의 최종 엘리먼트에 대응하는 코드워드의 접두부와 동일한 접두부를 가지는지를 나타낼 수도 있다. 이 예에서, 제 1 코딩 표는 표 5 또는 표 6 일 수도 있다 양태들은 동작 동안 그때 그때 미리 분류되거나 또는 계산된 절단된 코드워드들을 수신하는 것에 관한 것이다.
본 개시물의 양태들은 또한 얼마나 많은 제 2 코딩 표에서의 코드워드들이 제 1 코딩 표에서의 최종 엘리먼트에 대응하는 코드워드들의 접두부와 동일한 접두부를 가지는지를 나타내는 엘리먼트들의 제 2 개수를 결정하는 것에 관한 것이다. 이 예에서, 제 2 코딩 표는 위 표 4 일 수도 있다. 일부 예들에서, 제 1 코딩 표는 코딩에 사용될 수 있는 엘리먼트들의 최대 개수에 기초하는, 제 2 코딩 표의 서브세트일 수도 있다.
일부 예들에서, 엘리먼트들의 제 1 개수가 엘리먼트들의 제 2 개수 미만일 때, 본 개시물의 양태들은 접두부가 제 1 코딩 표에서의 최종 엘리먼트에 대응하는 코드워드의 접두부와 동일한 제 1 코딩 표에서의 코드워드들로부터 빈들을 절단하여 절단된 코드워드들을 발생하고 그 절단된 코드워드들을 이용하여 비디오 데이터를 코딩하는 것에 관한 것이다. 일부 예들에서, 코드워드들을 절단하는 것은 코드워드들의 접미부들 또는 접두부들, 또는 이들의 결합으로부터 빈들을 절단하는 것을 포함한다. 일부 예들에서, 빈들을 절단하는 것은 엘리먼트들의 제 1 개수에 기초하며, 여기서, 엘리먼트들의 제 1 개수는 얼마나 많은 제 1 코딩 표에서의 코드워드들이 제 1 코딩 표에서의 최종 엘리먼트에 대응하는 코드워드의 접두부와 동일한 접두부를 가지는지를 나타낸다. 일부 예들에서, 코딩은 골롬 코딩이다.
대안적으로 또는 추가적으로, 접두부는 또한 절단형 1진 코드를 이용하여 또한 단축될 수도 있다. 예를 들어, 엘리먼트들의 최대 개수가 4 개이면, 접두부 및 접미부는 아래 표 7 에 나타낸 바와 같이 절단될 수 있다.
표 7 의 절단된 빈들은 굵은체, 이탤릭체, 및 밑줄로 표시된다. 표 7 에 나타낸 예에서, 엘리먼트 3 에 대한 코드워드는 엘리먼트들 1 또는 2 에 대한 코드워드들보다 짧다. 절단형 지수 골롬 2진화를 위한 추가적인 재배열하기 또는 맵핑은 예를 들어, 더 짧은 코드워드 00 를 더 빈번하게 발생하는 엘리먼트 1 에, 그리고 010 을 엘리먼트 3 에 할당함으로써, 적용될 수도 있다. 이런 재배열하기 또는 맵핑은 맵핑 표들을 이용하여 수행될 수도 있다.
일부 예들에서, 재배열하기는 또한 특정의 엘리먼트들의 출현 빈도에 기초할 수도 있다. 예를 들어, 더 짧은 코드워드들이 가장 빈번하게 나타나는 엘리먼트들에 할당될 수도 있다. 이 코드워드 맵핑은 엘리먼트들이 출현의 빈도에 따라 순서화되는 경우들에 특히 효율적일 수도 있다.
상기 어떤 예들은 0-순서 코딩의 지수 골롬에 대해 설명되었지만, 본 기법들은 k-순서 코딩의 지수 골롬에도 좀더 일반적으로 적용가능한 것으로 이해되어야 한다. 더욱이, 본 기법들은 HEVC 비디오 표준에 한정되지 않으며, 임의의 비디오 압축 표준에, 또는, 좀더 넓게는, 2진화가 수행되는 임의의 애플리케이션에 대해 적용될 수도 있다.
차기 HEVC 표준 (뿐만 아니라, HEVC 표준에 대한 확장판들, 예컨대 스케일러블 비디오 코딩 (SVC) 또는 멀티-뷰 비디오 코딩 (MVC)) 에 대해, 위에서 설명된 절단형 지수 골롬 2진화 기법들이 다양한 구문 엘리먼트들을 2진화하기 위해서 적용될 수도 있다. 예들은 참조 인덱스 값들, 인트라-모드 모드, 병합 인덱스, 양자화 파라미터들 (또는, delta 양자화 파라미터들), 또는 엘리먼트들의 수가 사전에 알려져 있는 임의의 다른 구문 엘리먼트를 포함한다.
상기 예는 지수 골롬 절단을 기술하지만, 설명된 절단 기법들은 또한 고정 길이 코드에도 적용될 수도 있다. 즉, 구문 엘리먼트 (예컨대, 참조 인덱스) 가 하나 보다 많은 2진화 프로세스 (예컨대, 절단형 1진 및 지수 골롬) 를 이용하여 2 진화되는 예들에서, 빈들의 미리 결정된 개수는 CABAC 코딩될 수도 있으며, 반면 나머지 빈들은 절단되고 바이패스 코딩될 수도 있다.
일부 예들에서, 절단될 수도 있는 (예컨대, 2진화된 구문 엘리먼트의 고정 길이 2진화 부분 또는 지수 골롬으로부터 절단될 수도 있는) 빈들의 개수를 결정하기 위해 알고리즘이 적용될 수도 있다. 일 예에서, 빈들의 미리 결정된 개수는 바이패스 코딩되도록 유지한다고 가정한다. 이 예에서, (비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은) 비디오 코더는 나머지 빈들의 반올림된 log2 을 계산함으로써 절단될 수도 있는 나머지 빈들의 개수를 결정할 수도 있다.
도 5a 및 도 5b 는 예측 데이터와 연관되는 예시적인 빈 스트링들을 예시하는 블록도들이다. 예를 들어, 도 5a 는 일반적으로 단일 참조 화상으로부터 예측되는 화상에 대한, 참조 인덱스 (ref_idx), 모션 벡터 차이 (mvd), 및 모션 벡터 예측자 인덱스 (mvp_idx) 를 예시한다.
도 5b 는 일반적으로 2개의 참조 화상들로부터 예측되는 화상 (B-화상) 에 대한, 제 1 참조 인덱스 (ref_idx_L0), (수평 성분 및 수직 성분을 나타내는) 제 1 모션 벡터 차이 (mvd_L0), 및 제 1 모션 벡터 예측자 인덱스 (mvp_idx_L0) 뿐만 아니라, 제 2 참조 인덱스 (ref_idx_L1), (수평 성분 및 수직 성분을 나타내는) 제 2 모션 벡터 차이 (mvd_L1), 및 제 2 모션 벡터 예측자 인덱스 (mvp_idx_L1) 를 예시한다. 즉, 양방향-예측된 PU 에 대해, 리스트 L0 및 리스트 L1 의 각각의 리스트에 대해 하나의 참조 인덱스로, 2개의 참조 인덱스들이 코딩될 수도 있다. 따라서, 최고 2개의 참조 인덱스들이 PU 당 코딩될 수도 있으며, 최고 8개의 인덱스들이 CU 당 코딩될 수도 있다.
빈 스트링들 (120) (도 5a) 및 (124) (도 5b) 은 어드밴스드 모션 벡터 예측 (AMVP) 기법과 연관되는 예측 데이터를 포함한다. AMVP 에 의해, 현재 코딩중인 블록에 대한 모션 벡터는 공간 또는 시간적으로 이웃하는 블록과 연관되는 모션 벡터와 같은, 또 다른 모션 벡터에 대해, 차이 값 (즉, delta) 으로서 코딩될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 공간 및 시간 방향들에서 하나 이상의 이웃하는 블록들과 연관되는 모션 벡터들을 포함하는 모션 벡터 예측자 후보 리스트를 형성할 수도 있다. 비디오 인코더 (20) 는 예를 들어, 레이트-왜곡 비용 분석에 기초하여, 후보 리스트로부터 가장 정확한 모션 벡터 예측자 (MVP) 를 선택할 수도 있다.
비디오 인코더 (20) 는 참조 인덱스 (ref_idx) 를 이용하여 실제 모션 벡터에 대한 참조 화상을 나타낼 수도 있다. 게다가, 비디오 인코더 (20) 는 후보 리스트에서 MVP 를 식별하는 모션 벡터 예측자 인덱스 (mvp_idx) 를 이용하여, 그 선택된 MVP 를 나타낼 수도 있다. 비디오 인코더 (20) 는 또한 현재의 블록의 모션 벡터 (실제 모션 벡터) 와 MVP 사이의 차이를 모션 벡터 차이 (mvd) 를 이용하여 나타낼 수도 있다. 위에서 언급한 바와 같이, mvd 는 mvp 의 수평 성분 및 수직 성분에 대응하는 수평 성분 및 수직 성분을 포함할 수도 있다.
비디오 디코더 (30) 는 MVP 후보 리스트를 동일한 방법으로 형성할 수도 있다. 비디오 디코더 (30) 는 그후 그 수신된 모션 벡터 예측자 인덱스 (mvp_idx) 를 이용하여, 후보 리스트에서 MVP 를 로케이트할 장소를 결정할 수도 있다. 비디오 디코더 (30) 는 모션 벡터를 재구성할 수 있도록, 모션 벡터 차이 (mvd) 를 (모션 벡터 예측자 인덱스 (mvp_idx) 를 이용하여 결정된) 모션 벡터 예측자와 결합할 수도 있다.
모션 벡터들을 이러한 방법으로 (예컨대, 차이 값으로) 예측하는 것은, 실제 모션 벡터(들)을 코딩하는 것보다 더 적은 비트들이 비트스트림에 포함될 것을 필요로 할 수도 있다. 도 5b 에 대해, 양방향-예측된 화상들은 2개의 상이한 리스트들, 예컨대, 리스트 0 및 리스트 1 로부터의 화상들과 연관되는 예측 데이터를 포함할 수도 있다. 도 5b 의 예에 나타낸 바와 같이, 리스트 0 과 연관되는 예측 데이터는 리스트 1 과 연관되는 예측 데이터보다 선행할 수도 있다. 즉, 빈 스트링 (124) 은 제 1 참조 인덱스 (ref_idx_L0), (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는) 제 1 모션 벡터 차이 (mvd_L0), 및 제 1 모션 벡터 예측자 인덱스 (mvp_idx_L0), 뒤이어서, 제 2 참조 인덱스 (ref_idx_L1), (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는) 제 2 모션 벡터 차이 (mvd_L1), 및 제 2 모션 벡터 예측자 인덱스 (mvp_idx_L1) 를 포함한다.
일부 예들에서, AMVP 에 관련된 구문은 컨텍스트 코딩과 바이패스 코딩의 결합을 이용하여 코딩될 수도 있다. 예를 들어, 도 5a 및 도 5b 의 예들에서 나타낸 바와 같이, 예측 데이터의 빈들의 일부는 컨텍스트 코딩되며, 반면 다른 빈들은 바이패스 코딩된다. 즉, 모션 벡터 차이 값들 (뿐만 아니라, 아래에서 도 7 에 대해 설명되는 바와 같이, 참조 인덱스 값들과 같은, 다른 값들) 의 하나 이상의 빈들은 컨텍스트 코딩될 수도 있으며, 반면 모션 벡터 차이 값들의 하나 이상의 다른 빈들은 바이패스 코딩될 수도 있다.
도 5a 의 예에 있어, 참조 인덱스 (ref_idx) 및 모션 벡터 차이 (mvd) 의 제 1 부분은 컨텍스트 코딩된 빈들 (128) 에 의해 표시된 바와 같이, 컨텍스트 코딩될 수도 있다. 모션 벡터 차이 (mvd) 의 제 2 부분은 바이패스 코딩된 빈들 (130) 에 의해 표시되는 바와 같이, 바이패스 코딩될 수도 있다. 게다가, 모션 벡터 예측자 인덱스 (mpv_idx) 는 컨텍스트 코딩된 빈들 (132) 에 의해 표시되는 바와 같이, 컨텍스트 코딩될 수도 있다.
도 5b 의 예에 있어, 제 1 참조 인덱스 (ref_idx_L0) 및 (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는) 제 1 모션 벡터 차이 (mvd_L0) 의 제 1 부분은 컨텍스트 코딩된 빈들 (136) 에 의해 표시되는 바와 같이, 컨텍스트 코딩될 수도 있다. (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는) 제 1 모션 벡터 차이 (mvd_L0) 의 제 2 부분은 바이패스 코딩된 빈들 (138) 에 의해 표시되는 바와 같이, 바이패스 코딩될 수도 있다. 게다가, 제 1 모션 벡터 예측자 인덱스 (mpv_idx_L0), 제 2 참조 인덱스 (ref_idx_L1), 및 (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는) 제 2 모션 벡터 차이 (mvd_L1) 의 제 1 부분은 컨텍스트 코딩된 빈들 (140) 에 의해 표시되는 바와 같이, 컨텍스트 코딩될 수도 있다. (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는) 제 2 모션 벡터 차이 (mvd_L1) 의 제 2 부분은 또한 바이패스 코딩된 빈들 (142) 에 의해 표시되는 바와 같이, 바이패스 코딩될 수도 있다. 마지막으로, 제 2 모션 벡터 예측자 인덱스 (mpv_idx_L1) 는 컨텍스트 코딩된 빈들 (144) 에 의해 표시되는 바와 같이, 컨텍스트 코딩될 수도 있다.
따라서, 도 5b 의 예는 비디오 코더가 빈들을 프로세싱하기 위해 컨텍스트 코딩과 바이패스 코딩 사이에 4번 스위칭해야 할 수도 있는 양방향-예측에 대한 PU-기반의 인터 모드 구문을 예시한다. 빈들 스트링들 (120 및 124) 을 코딩하기 위한 컨텍스트 코딩과 바이패스 코딩 사이의 스위칭은 비효율적일 수도 있다. 예를 들어, 컨텍스트 코딩과 바이패스 코딩 사이의 스위칭은 하나 이상의 클록 사이클들을 소비할 수도 있다. 따라서, 각각의 엘리먼트에 대한 컨텍스트 코딩과 바이패스 코딩 사이의 스위칭은 컨텍스트 코딩과 바이패스 코딩 사이의 전환으로 인해, 레이턴시를 도입할 수도 있다.
본 개시물의 양태들에 따르면, 아래에서 도 6 및 도 7 에 대해 더 자세히 설명하는 바와 같이, 컨텍스트 빈들 및 바이패스 빈들은 컨텍스트 코딩과 바이패스 코딩 사이의 전환을 감소시키기 위해 그룹화될 수도 있다. 예를 들어, 도 5a 에 대해, 본 개시물의 양태들은 빈들이 바이패스 코딩된 빈들 (130) 에 의해 분리되지 않도록, 컨텍스트 코딩된 빈들 (128 및 132) 을 함께 그룹화하는 것에 관한 것이다. 이와 같이, 단일 전환이 빈 스트링 (120) 의 코딩 동안 컨텍스트 코딩과 바이패스 코딩 사이에 이루어질 수도 있다.
이와 유사하게, 도 5b 에 대해, 본 개시물의 양태들은 빈들이 바이패스 코딩된 빈들 (138 및 142) 에 의해 분리되지 않도록, 컨텍스트 코딩된 빈들 (136, 140, 및 144) 을 그룹화하는 것에 관한 것이다. 또, 이 방법으로 컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들을 그룹화하는 것은, (비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은) 비디오 코더로 하여금, 컨텍스트 코딩과 바이패스 코딩 사이에 단일 전환을 행하는 것을 가능하게 할 수도 있다. 다수의 컨텍스트 코딩과 바이패스 코딩 사이의 전환을 회피하는 것은 전환들과 연관되는 레이턴시를 제한함으로써 효율을 증가시킬 수도 있다.
도 6 은 예측 데이터의 또 다른 예시적인 빈 스트링 (140) 을 예시하는 블록도이다. 빈 스트링 (140) 은 제 1 참조 인덱스 (ref_idx_L0), (예컨대, 수평 및 수직 성분들 양쪽을 나타내는) 제 1 모션 벡터 차이 (mvd_L0), 및 제 1 모션 벡터 예측자 인덱스 (mvp_idx_L0), 뒤이어서, 제 2 참조 인덱스 (ref_idx_L1), (예컨대, 수평 및 수직 성분들 양쪽을 나타내는) 제 2 모션 벡터 차이 (mvd_L1), 및 제 2 모션 벡터 예측자 인덱스 (mvp_idx_L1) 를 포함한다. 빈 스트링 (140) 은 컨텍스트 코딩된 빈들 (144) 및 바이패스 코딩된 빈들 (148) 을 포함한다. 예를 들어, 컨텍스트 코딩된 빈들 (144) 은 컨텍스트 적응형 코딩 프로세스의 컨텍스트 코딩 모드 (예컨대, CABAC) 를 이용하여 코딩될 수도 있지만, 바이패스 코딩된 빈들 (148) 은 고정 확률 (예컨대, CABAC 바이패스 코딩 모드) 를 이용하여 코딩될 수도 있다.
본 개시물의 양태들에 따르면, 컨텍스트 코딩된 빈들 (144) 은 바이패스 빈들 (148) 에 앞서 코딩하기 위해 그룹화된다. 즉, 도 6 에 나타낸 예에서, 컨텍스트 코딩된 빈들 (144) 은 제 1 참조 인덱스 (ref_idx_L0) 의 컨텍스트 코딩된 빈들, 제 2 참조 인덱스 (ref_idx_L1) 의 컨텍스트 코딩된 빈들, 제 1 모션 벡터 예측자 인덱스 (mvp_idx_L0) 의 컨텍스트 코딩된 빈들, 제 2 모션 벡터 예측자 인덱스 (mvp_idx_L1) 의 컨텍스트 코딩된 빈들, 제 1 모션 벡터 차이 (mvd_L0) 의 컨텍스트 코딩된 빈들, 및 제 2 모션 벡터 차이 (mvd_L1) 의 컨텍스트 코딩된 빈들을 포함한다. 게다가, 바이패스 코딩된 빈들 (148) 은 제 1 모션 벡터 차이 (mvd_L0) 의 바이패스 코딩된 빈들 및 제 2 모션 벡터 차이 (mvd_L1) 의 바이패스 코딩된 빈들을 포함한다.
일부 예들에서, 빈들은 코딩되는 구문 엘리먼트들의 빈 개수들에 기초하여 그룹화될 수도 있다. 예시의 목적을 위한 예에서, (비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은) 비디오 코더는 컨텍스트 코딩을 이용하여 모션 벡터 차이 값들의 처음 2개의 빈들을 코딩할 수도 있으며, 바이패스 코딩을 이용하여 나머지 빈들을 코딩할 수도 있다. 따라서, 이 예에서, 컨텍스트 코딩된 빈들 (144) 은 제 1 모션 벡터 차이 (mvd_L0) 및 제 2 모션 벡터 차이 값 (mvd_L1) 양쪽의 처음 2개의 빈들을 포함할 수도 있지만, 바이패스 코딩된 빈들 (148) 은 모션 벡터 차이 값들의 나머지 빈들을 포함할 수도 있다.
도 6 에 나타낸 구문 엘리먼트들의 순서정렬은 단지 예의 목적들을 위해 제공된다. 다른 예들에서, 구문 엘리먼트들은 예컨대, 참조 인덱스 값들, 모션 벡터 예측자들, 및 모션 벡터 차이 값들과는 상이하게, 교대 순서 (alternative order) 로 순서화될 수도 있다 (또는, 인터리브될 수도 있다). 즉, 또 다른 예에서, 비디오 코더는 PU 를 다음과 같이 코딩할 수도 있다: 참조 인덱스 L0 의 컨텍스트 코딩된 빈들, 참조 인덱스 L1 의 컨텍스트 코딩된 빈들, 참조 인덱스 L0 의 바이패스 모드 코딩된 빈들, 참조 인덱스 L1 의 바이패스 모드 코딩된 빈들. 또한 다른 예들에서, 바이패스 빈들 (148) 은 컨텍스트 코딩된 빈들 (144) 에 앞서 코딩될 수도 있다.
어쨌든, 도 6 은 하나 이상의 컨텍스트 코딩된 빈들 (144) 의 그룹 및 하나 이상의 바이패스 코딩 빈들 (148) 의 그룹을 가지는 예측 데이터를 나타낸다. 이 방법으로 컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들을 그룹화하는 것은 위에서 언급한 바와 같이, 빈들을 코딩하는 것과 연관되는 레이턴시를 감소시킬 수도 있다. 예를 들어, 비디오 코더는 컨텍스트 코딩된 빈들 (144) 의 모두를 코딩하고, 컨텍스트 코딩으로부터 바이패스 코딩으로 단일 전환을 행하고, 그리고 바이패스 코딩된 빈들의 모두를 코딩할 수도 있다. 다수의 컨텍스트 코딩과 바이패스 코딩 사이의 전환을 회피하는 것은 컨텍스트 코딩과 바이패스 코딩 사이에 전환하는 것과 연관되는 레이턴시를 제한함으로써 효율을 증가시킬 수도 있다.
일부 예들에서, 도 6 에 나타낸 바와 같이, 컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들은 비디오 데이터의 블록에 대해 (예컨대, PU 단위로) 그룹화될 수도 있다. 다른 예들에서, 컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들은 CU들 (예컨대, LCU 의 하나 이상의 CU들) 에 대해, 전체 LCU 에 대해, 또는 비디오 데이터의 전체 슬라이스에 대해 그룹화될 수도 있다. 이런 예들에서, 컨텍스트 코딩된 빈들은 CU/LCU/슬라이스의 바이패스 코딩된 빈들 앞에서 CU/LCU/슬라이스에 대해 그룹화되어 코딩될 수도 있으며, 또는 반대의 경우일 수도 있다.
도 7 은 예측 데이터의 또 다른 예시적인 빈 스트링 (160) 을 예시하는 블록도이다. 도 7 의 예에서, 빈 스트링 (160) 은 제 1 참조 인덱스 (ref_idx_L0), 제 1 모션 벡터 차이 (mvd_L0) (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는), 및 제 1 모션 벡터 예측자 인덱스 (mvp_idx_L0), 뒤이어서, 제 2 참조 인덱스 (ref_idx_L1), (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는) 제 2 모션 벡터 차이 (mvd_L1), 및 제 2 모션 벡터 예측자 인덱스 (mvp_idx_L1) 를 포함한다. 빈 스트링 (160) 은 컨텍스트 코딩된 빈들 (164) 및 바이패스 코딩된 빈들 (168) 을 포함한다. 예를 들어, 컨텍스트 코딩된 빈들 (164) 은 컨텍스트 적응형 코딩 프로세스의 컨텍스트 코딩 모드 (예컨대, CABAC) 를 이용하여 코딩될 수도 있지만, 바이패스 코딩된 빈들 (168) 은 고정 확률 (예컨대, CABAC 바이패스 코딩 모드) 를 이용하여 코딩될 수도 있다.
본 개시물의 양태들에 따르면, 도 6 에 나타낸 예와 유사하게, 컨텍스트 코딩된 빈들 (164) 은 바이패스 빈들 (168) 에 앞서 코딩하기 위해 그룹화된다. 그러나, 도 7 에 나타낸 예에서, 참조 인덱스들 (ref_idx_L0 및 ref_idx_L1) 는 바이패스 코딩된 빈들 뿐만 아니라, 컨텍스트 코딩된 빈들의 결합을 포함한다. 즉, 참조 인덱스들이 위에서 도 4 에 대해 설명된 예들에 따라서 코딩될 수도 있으며, 하나 이상의 빈들은 컨텍스트 적응형 모드를 이용하여 코딩되고 및 하나 이상의 다른 빈들은 바이패스 모드를 이용하여 코딩된다.
따라서, 도 7 의 예에서, 컨텍스트 코딩된 빈들 (164) 은 제 1 참조 인덱스 (ref_idx_L0) 의 컨텍스트 코딩된 빈들, 제 2 참조 인덱스 (ref_idx_L1) 의 컨텍스트 코딩된 빈들, 제 1 모션 벡터 예측자 인덱스 (mvp_idx_L0) 의 컨텍스트 코딩된 빈들, 제 2 모션 벡터 예측자 인덱스 (mvp_idx_L1) 의 컨텍스트 코딩된 빈들, (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는) 제 1 모션 벡터 차이 (mvd_L0) 의 컨텍스트 코딩된 빈들, 및 (예컨대, 수평 성분 및 수직 성분 양쪽을 나타내는) 제 2 모션 벡터 차이 (mvd_L1) 의 컨텍스트 코딩된 빈들을 포함한다. 게다가, 바이패스 코딩된 빈들 (168) 은 제 1 참조 인덱스 (ref_idx_L0) 의 바이패스 코딩된 빈들, 제 2 참조 인덱스 (ref_idx_L1) 의 바이패스 코딩된 빈들, 제 1 모션 벡터 차이 (mvd_L0) 의 바이패스 코딩된 빈들 및 제 2 모션 벡터 차이 (mvd_L1) 의 바이패스 코딩된 빈들을 포함한다.
도 6 에 대해 위에서 설명한 바와 같이, 빈들은 코딩되는 구문 엘리먼트들의 빈 개수들에 기초하여 그룹화될 수도 있다. 예시의 목적을 위한 예에서, (비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은) 비디오 코더는 컨텍스트 코딩을 이용하여 모션 벡터 차이 값들의 처음 2개의 빈들을 코딩할 수도 있으며, 바이패스 코딩을 이용하여 나머지 빈들을 코딩할 수도 있다. 게다가, 비디오 코더는 컨텍스트 코딩을 이용하여 참조 인덱스들의 처음 2개의 빈들을 코딩할 수도 있으며, 바이패스 코딩을 이용하여 나머지 빈들을 코딩할 수도 있다. 따라서, 이 예에서, 컨텍스트 코딩된 빈들 (144) 은 제 1 모션 벡터 차이 (mvd_L0) 및 제 2 모션 벡터 차이 값 (mvd_L1) 양쪽의 처음 2개의 빈들, 및 제 1 참조 인덱스 (ref_idx_L0) 및 제 2 참조 인덱스 (ref_idx_L1) 양쪽의 처음 2개의 빈들을 포함할 수도 있다. 바이패스 코딩된 빈들 (148) 은 참조 인덱스들 및 모션 벡터 차이 값들의 나머지 빈들을 포함할 수도 있다.
컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들을 그룹화하는 것은 빈들을 코딩하는 것과 연관되는 레이턴시를 감소시킬 수도 있다. 예를 들어, 비디오 코더는 컨텍스트 코딩된 빈들 (144) 의 모두를 코딩하고, 컨텍스트 코딩으로부터 바이패스 코딩으로 단일 전환을 행하고, 그리고 바이패스 코딩된 빈들의 모두를 코딩할 수도 있다. 다수의 컨텍스트 코딩과 바이패스 코딩 사이의 전환을 회피하는 것은 컨텍스트 코딩과 바이패스 코딩 사이에 전환하는 것과 연관되는 레이턴시를 제한함으로써 효율을 증가시킬 수도 있다.
도 6 및 도 7 과 관련하여 설명되는 기법은 임의의 2진화 방식을 이용하여 수행될 수도 있는 것으로 이해되어야 한다. 더욱이, 위에서 언급한 바와 같이, 구문 엘리먼트들의 순서정렬은 단지 예의 목적들을 위해 제공된다. 게다가, 컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들은 비디오 데이터의, PU 에 대해, 하나 이상의 CU들에 대해, 전체 LCU 에 대해, 또는 전체 슬라이스에 대해 그룹화될 수도 있다. 이런 예들에서, 컨텍스트 코딩된 빈들은 PU/CU/LCU/슬라이스의 바이패스 코딩된 빈들에 앞서 PU/CU/LCU/슬라이스에 대해 그룹화되고 코딩될 수도 있으며, 또는 반대의 경우일 수도 있다.
도 8a 및 도 8b 는 일반적으로 인터-예측 방향 구문 엘리먼트를 코딩하는 것을 예시한다. 예를 들어, 위에서 언급한 바와 같이, 모션 벡터를 계산하는 것에 추가하여, 모션 추정은 또한 B-슬라이스들에 대한 참조 프레임의 인덱스 (ref_idx) 및 예측 방향 (inter_pred_idc: L0 로부터의 순방향, L1 으로부터의 역방향, 또는 양방향, 또는 inter_pred_flag: LC 로부터의 단방향 또는 L0 및 L1 로부터의 양방향) 을 결정한다. 모션 벡터 (예컨대, 모션 벡터의 수평 성분 및 수직 성분), 참조 프레임 인덱스, 및 예측 방향은 인코더에 의해 구문 엘리먼트들로서 일반적으로 엔트로피 인코딩되며, 그리고, 비디오 디코딩 프로세스에서의 사용을 위해 비디오 디코더에 의해 디코딩되도록 그 인코딩된 비디오 비트스트림에 배치된다. 이들 구문 엘리먼트들은, 디코더로 하여금 PU 에 의해 정의된 비디오 데이터를 디코딩하여 재생가능하도록 하기 위해서, 인터-코딩된 PU 에 대해 제공될 수도 있다.
일부의 경우, 리스트 L0 및 리스트 L1 참조들 인덱스들이 양방향 예측 모드 (Pred_BI) 에 대한 참조 인덱스들을 시그널링하는데 사용될 수도 있으며, 결합된 리스트 (LC) 참조 인덱스가 단방향 예측 모드 (Pred_LC) 에 대한 참조 인덱스를 시그널링하는데 이용된다. LC 참조 인덱스는 미리 정의된 규칙 (또는, 명시적인 시그널링) 에 따라서 제거된 중복된 참조 화상들과의 리스트들 L0 및 L1 로부터의 참조 화상들의 결합을 포함하는 결합된 참조 화상 리스트의 참조 인덱스이다. LC 참조 인덱스는, 따라서, 리스트 L0 또는 L1 중 하나에 대한 참조 인덱스에 맵핑한다.
이런 경우들에서, 인터-예측 방향 구문 엘리먼트 (inter_pred_flag) 는 2개의 가능한 값들 (양방향 또는 LC 로부터의 단방향) 을 오직 갖는다. 인터-예측 방향 구문 엘리먼트가 2진화될 때, 오직 하나의 빈이 인터-예측 방향을 양방향 또는 단방향으로 나타내기 위해 코딩될 필요가 있을 수도 있다. 아래에 나타낸 표 8 은 인터-예측 방향 구문 엘리먼트를 예시한다:
다른 예들에서, 2012년 4월, 제네바, JCTVC-I0125, T. Lee 및 J. Park, "On Reference List Combination" 에 의한 제안서에서 제안된 바와 같이, 결합된 리스트 (LC) 는 제거될 수도 있다. 이런 예들에서, 대신 3개의 가능한 값들 (양방향, L0 로부터의 단방향, 또는 L1 으로부터의 단방향) 을 가진 인터-예측 방향 구문 엘리먼트 (inter_pred_flag 또는 inter_pred_idc) 를 이용한다. 예측 모드가 단방향 예측 모드일 때, Pred_L0 또는 Pred_L1 를 나타내는 추가적인 빈이 코딩될 필요가 있을 수도 있다.
표 9 는 (위 표 8 에 대한) 인터-예측 방향 구문 엘리먼트 코딩에서의 변화를 예시한다:
도 8a 는 표 9 와 관련하여 위에서 설명된 코딩 구조를 예시한다. 도 8a 에 나타낸 바와 같이, 인터-예측 방향 구문 엘리먼트 (inter_pred_flag) 는 CABAC 프로세스로 2개의 빈들을 이용하여 코딩될 수도 있다. 제 1 빈 (bin(0)) 은 인터-예측 모드가 단방향 (bin(0) = 0) 또는 양방향 (pred_BI) (bin(0) = 1) 인지를 나타낸다. 제 2 빈은 오직 제 1 빈이 단방향 예측 모드를 나타내는 경우에만 조건부로 코딩된다. 제 2 빈 (bin(1)) 은 단방향 예측 모드가 List0 (pred_L0) (bin(1) = 0) 로부터 또는 List1 (pred_L1) (bin(1) = 1) 로부터 유래하는지를 나타낸다.
오직 2개의 가능한 값들 (양방향 또는 LC 로부터의 단방향) 을 갖는 인터-예측 방향을 위한 컨텍스트 모델 인덱스 유도는 아래 수식에서 나타내는 바와 같이, 제 1 빈 (bin0) 에 대해 범위 0..3 에서의 값들을 가질 수 있는 CU 깊이에 기초하여 결정될 수도 있다:
ctxIdx = cuDepth
도 8a 의 예에서, 제 2 빈 (bin(1)) 은 추가적인 컨텍스트로 코딩될 수도 있거나, 또는 제 1 빈 (bin(0)) 의 하나의 컨텍스트를 재사용함으로써 코딩될 수도 있다. 그러나, 추가적인 컨텍스트를 도입하는 것은 인터-예측 방향 구문 엘리먼트를 코딩하는 것과 연관되는 복잡성을 증가시킬 수도 있다. 더욱이, 제 1 빈의 컨텍스트들 중 하나를 재사용하는 것은 bin0 을 코딩하는데 사용되는 컨텍스트들의 개수를 감소시킬 수도 있으며, 비디오 코더는 이 조건에 대해 여분의 체크를 수행해야 한다.
도 8b 는 본 개시물의 양태들에 따른, 인터-예측 방향 구문 엘리먼트를 바이패스 코딩하는 것을 예시하는 블록도이다. 도 8b 에 나타낸 바와 같이, 인터-예측 방향 구문 엘리먼트 (inter_pred_flag) 의 제 1 빈 (bin(0)) 은 CABAC 프로세스로 컨텍스트 코딩될 수도 있으며, 제 2 빈 (bin(1)) 은 CABAC 프로세스의 바이패스 모드로 코딩될 수도 있다. 제 1 빈 (bin(0)) 은 인터-예측 모드가 단방향 (bin(0) = 0) 또는 양방향 (pred_BI) (bin(0) = 1) 인지를 나타낸다. 이 예에서, bin(0) 은 4개의 가능한 컨텍스트들 중 하나, ctxIdx = 0..3 중 하나를 이용하여 코딩될 수도 있다. 제 2 빈 (bin(1) 은 오직 제 1 빈이 단방향 예측 모드를 나타내는 경우에만 조건부로 코딩될 수도 있다. 제 2 빈 (bin(1)) 은 단방향 예측 모드가 List0 (pred_L0) (bin(1) = 0) 로부터 또는 List1 (pred_L1) (bin(1) = 1) 로부터 유래하는지를 나타낸다. 본 개시물의 양태들에 따르면, bin(1) 은 어떤 컨텍스트들도 이용하지 않고 코딩될 수도 있다 (예컨대, CABAC 프로세스의 바이패스 모드를 이용하여 코딩될 수도 있다).
이와 같이, 본 개시물의 양태들에 따르면, 비디오 코더 (예컨대, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는, 인터-예측 방향 값을 2진화할 수도 있으며, 코드 2진화된 인터-예측 방향 값의 적어도 하나의 빈을 바이패스 모드로 코딩할 수도 있다. 좀더 구체적으로는, 비디오 코더는 인터-예측 방향 값에 대한 제 1 빈 (bin(0)) 을 CABAC 프로세스로 컨텍스트 코딩하기 위해 컨텍스트를 선택하고, 제 2 빈 (bin(1)) 을 CABAC 프로세스의 바이패스 모드로 코딩할 수도 있다. 대안적으로, 본 기법들은 비디오 코더로 하여금, 인터-예측 방향 값에 대한 제 1 빈 (bin(0)) 을 바이패스 모드로 코딩가능하게 하며, 또한 제 2 빈 (bin(1)) 을 바이패스 모드로 코딩가능하게 한다. 따라서, bin(0) 에 이용가능한 4개의 컨텍스트들, ctxIdx = 0..3 이 절약될 수도 있다.
본 기법들은 임의의 여분의 컨텍스트를 필요로 하거나 또는 컨텍스트 (예컨대, bin0 의 컨텍스트) 를 재사용함이 없이, 3개의 가능한 값들 (양방향, L0 로부터의 단방향, 또는 L1 로부터의 단방향) 을 가진 인터-예측 방향 구문 엘리먼트의 코딩을 가능하게 한다. 더욱이, 본 기법들은 어떤 컨텍스트들도 요구됨이 없이, 컨텍스트 코딩보다 수치적으로 덜 복잡할 수도 있는 바이패스 모드를 이용한다.
도 9 는 본 개시물의 양태들에 따른, 참조 인덱스 값을 엔트로피 인코딩하는 일 예를 예시하는 플로우차트이다. 설명의 목적들을 위해 비디오 인코더 (20) 의 구성요소들 (도 1 및 도 2) 에 의해 수행되는 것으로 일반적으로 설명되었지만, 다른 비디오 코딩 유닛들, 프로세서들, 프로세싱 유닛들, 하드웨어-기반의 코딩 유닛들, 예컨대 인코더/디코더들 (코덱들), 및 기타 등등이, 또한 도 9 의 프로세스를 수행하도록 또한 구성될 수도 있는 것으로 이해되어야 한다.
도 9 의 예에서, 비디오 인코더 (20) 는 수신된 구문 엘리먼트를 2진화한다 (180). 비디오 인코더 (20) 는 본 개시물에서 설명되는 2진화 프로세스들 중 임의의 프로세스에 따라서 구문 엘리먼트를 2진화할 수도 있다. 예시적인 2진화 프로세스들은 1진, 절단형 1진, 지수-골롬, 또는 기타 등등을 포함한다.
비디오 인코더 (20) 는 2진화된 구문 엘리먼트가 참조 인덱스 값인지의 여부를 결정한다 (182). 또, 참조 인덱스 값은 일반적으로 인터-예측의 목적들을 위해 참조 화상 리스트에서 참조 화상을 식별한다. 2진화된 구문 엘리먼트가 참조 인덱스 값이면 (단계 (182) 의 "예" 분기), 비디오 인코더 (20) 는 CABAC 과 같은, 컨텍스트 적응형 코딩을 이용하여, 2진화된 참조 인덱스 값의 적어도 하나의 빈을 인코딩할 수도 있다 (184). 게다가, 비디오 인코더 (20) 는 (코딩될 추가적인 빈들이 존재하는 경우) 2진화된 참조 인덱스 값의 적어도 다른 빈을, 컨텍스트 적응형 코딩 엔진을 바이패스하는 바이패스 코딩을 이용하여, 인코딩할 수도 있다 (186).
도 4 에 대해 위에서 설명한 바와 같이, 비디오 인코더 (20) 는 일부 예들에서, 하나의, 2개의, 또는 3개의 빈들을 컨텍스트 코딩을 이용하여 코딩할 수도 있다. 컨텍스트 코딩된 빈들에 대해, 비디오 인코더 (20) 는 빈 스트링에서의 빈의 상대적인 위치에 기초하여 컨텍스트를 선택할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 제 2 빈에 대한 컨텍스트와는 상이한 제 1 빈에 대한 컨텍스트를 선택할 수도 있다.
어쨌든, 비디오 인코더 (20) 는 컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들을 결합하여, 인코딩된 비트스트림을 형성할 수도 있다 (188). 일부 예들에서, 코딩되는 구문 엘리먼트가 참조 인덱스 값이 아니면 (단계 (182) 의 "아니오" 분기), 비디오 인코더 (20) 는 구문 엘리먼트를 코딩하기 위해 특정의 코딩 모드 (예컨대, 바이패스 또는 컨텍스트 적응형) 를 선택할 수도 있다 (190). 비디오 인코더 (20) 는 그 선택된 모드를 이용하여 구문 엘리먼트를 인코딩할 수도 있으며 (192), 인코딩된 비트스트림을 형성할 수도 있다 (188).
또한, 도 9 에 관하여 도시 및 설명한 단계들은 단지 일 예로서 제공되는 것으로 이해되어야 한다. 즉, 도 9 의 방법의 단계들은 반드시 도 9 에 나타낸 순서로 수행될 필요는 없으며, 더 적거나, 추가적이거나, 또는 대안적인 단계들이 수행될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 일부 경우, 구문 엘리먼트를 2진화하기에 앞서 (단계 180), 구문 엘리먼트가 참조 인덱스인지의 여부를 결정할 수도 있다 (단계 182).
도 10 은 본 개시물의 양태들에 따른, 참조 인덱스 값을 엔트로피 디코딩하는 일 예를 예시하는 플로우차트이다. 설명의 목적들을 위해 비디오 디코더 (30) 의 구성요소들 (도 1 및 도 3) 에 의해 수행되는 것으로 일반적으로 설명되었지만, 다른 비디오 코딩 유닛들, 프로세서들, 프로세싱 유닛들, 하드웨어-기반의 코딩 유닛들, 예컨대 인코더/디코더들 (코덱들), 및 기타 등등이, 도 12 의 프로세스를 수행하도록 또한 구성될 수도 있는 것으로 이해되어야 한다.
비디오 디코더 (30) 는 인코딩된 비트스트림으로부터 코딩된 구문 엘리먼트를 먼저 파싱할 수도 있다 (200). 예를 들어, 비디오 디코더 (30) 는 특정의 파싱 프로세스 (예컨대, 파두 파싱 (wavefront parsing)) 에 따라서 인코딩된 비트스트림으로부터 코딩된 구문 엘리먼트를 판독하여 세그먼트화할 수도 있다. 코딩된 구문 엘리먼트는 복수의 코딩된 빈들, 즉, 2진 값들을 포함할 수도 있다.
비디오 디코더 (30) 는 또한 현재 디코딩되는 비트스트림의 부분이 참조 인덱스 값인지의 여부를 결정할 수도 있다 (202). 비디오 디코더 (30) 가 참조 인덱스 값을 디코딩하면 (단계 (202) 의 "예" 분기), 비디오 디코더 (30) 는 컨텍스트 적응형 코딩을 이용하여 적어도 하나의 빈을 디코딩할 수도 있다 (204). 게다가, 비디오 디코더 (30) 는 (코딩될 추가적인 빈들이 존재하는 경우) 바이패스 코딩을 이용하여 적어도 다른 빈을 디코딩할 수도 있다 (206). 도 9 와 관련하여 위에서 언급한 바와 같이, 비디오 디코더 (30) 는 일부 예들에서, 컨텍스트 코딩을 이용하여 하나의, 2개의, 또는 3개의 빈들을 코딩할 수도 있다. 컨텍스트 코딩된 빈들에 대해, 비디오 디코더 (30) 는 빈 스트링에서의 빈의 상대적인 위치에 기초하여 컨텍스트를 선택할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 제 2 빈에 대한 컨텍스트와는 상이한 제 1 빈에 대한 컨텍스트를 선택할 수도 있다.
디코딩된 2진 값들을 발생하기 위해 그 빈들을 디코딩한 후, 비디오 디코더 (30) 는 디코딩된 빈 스트링을 2진화하여, 디코딩된 구문 엘리먼트를 발생할 수도 있다 (208). 예를 들어, 비디오 디코더 (30) 는 미리 결정된 프로세스를 이용하여, 디코딩된 빈 스트링을 구문 엘리먼트에 맵핑할 수도 있다. 즉, 일부 경우, 비디오 디코더 (30) 는 특정의 빈이 구문 엘리먼트에 대한 최종 빈이라는 표시를 수신할 수도 있다. 구문 엘리먼트를 완료하자 마자, 비디오 디코더 (30) 는 2진화 표을 이용하여 빈 스트링을 구문 엘리먼트에 맵핑할 수도 있다.
일부 예들에서, 코딩되는 구문 엘리먼트가 참조 인덱스 값이 아니면 (단계 (202) 의 "아니오" 분기), 비디오 디코더 (30) 는 구문 엘리먼트를 코딩하기 위해 특정의 코딩 모드 (예컨대, 바이패스 또는 컨텍스트 적응형) 를 선택할 수도 있다 (210). 비디오 디코더 (30) 는 선택된 모드를 이용하여 구문 엘리먼트를 디코딩할 수도 있으며 (212), 디코딩된 빈 스트링을 2진화할 수도 있다 (208).
또한, 도 10 에 관하여 도시 및 설명한 단계들은 단지 일 예로서 제공되는 것으로 이해되어야 한다. 즉, 도 10 의 방법의 단계들은 반드시 도 10 에 나타낸 순서로 수행될 필요는 없으며, 더 적거나, 추가적이거나, 또는 대안적인 단계들이 수행될 수도 있다.
도 11 은 본 개시물의 양태들에 따른, 예측 데이터를 엔트로피 인코딩하는 일 예를 예시하는 플로우차트이다. 설명의 목적들을 위해 비디오 인코더 (20) 의 구성요소들 (도 1 및 도 2) 에 의해 수행되는 것으로 일반적으로 설명되었지만, 다른 비디오 코딩 유닛들, 프로세서들, 프로세싱 유닛들, 하드웨어-기반의 코딩 유닛들, 예컨대 인코더/디코더들 (코덱들), 및 기타 등등이, 도 9 의 프로세스를 수행하도록 또한 구성될 수도 있는 것으로 이해되어야 한다.
도 11 의 예에서, 비디오 인코더 (20) 는 현재 코딩중인 하나 이상의 구문 엘리먼트들을 2진화할 수도 있다 (220). 예를 들어, 비디오 인코더 (20) 는 하나 이상의 참조 인덱스들, 모션 벡터들, 모션 벡터 예측자들, 모션 벡터 예측자 인덱스들, 모션 벡터 차이 값들 등을 포함하는 예측 데이터를 2진화할 수도 있다.
어쨌든, 비디오 인코더 (20) 는 코딩되는 구문 엘리먼트들이 컨텍스트 코딩을 위한 빈들 및 바이패스 코딩을 위한 빈들을 포함하는지 여부를 결정할 수도 있다 (222). 즉, 비디오 인코더 (20) 는 구문 엘리먼트의 빈들이 컨텍스트 적응형 코딩과 바이패스 코딩의 혼합을 이용하여 코딩되는지의 여부를 결정할 수도 있다. 컨텍스트 코딩과 바이패스 코딩 양쪽의 혼합이 존재하면 (단계 (222) 의 "예" 분기), 비디오 인코더 (20) 는 컨텍스트 코딩된 빈들, 및 바이패스 코딩된 빈들을 그룹화할 수도 있다 (224). 예를 들어, 비디오 인코더 (20) 는 바이패스 코딩된 빈들로부터 컨텍스트 코딩된 빈들을 분리할 수도 있다.
비디오 인코더 (20) 는 그후 예를 들어, (예컨대, CABAC 과 같은) 컨텍스트 적응형 코딩 프로세스를 이용하여 컨텍스트 코딩된 빈들을 인코딩할 수도 있다 (226). 게다가, 비디오 인코더 (20) 는 바이패스 모드를 이용하여 바이패스 코딩된 빈들을 인코딩할 수도 있다 (228). 바이패스 모드는 컨텍스트 적응형 코딩 엔진을 바이패스할 수도 있으며, 고정 확률을 이용하여 그 빈들을 코딩할 수도 있다.
코딩되는 구문 엘리먼트가 컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들 양쪽을 포함하지 않으면 (단계 (222) 의 "아니오" 분기), 비디오 인코더 (20) 는 구문 엘리먼트를 코딩하기 위해 특정의 코딩 모드 (예컨대, 바이패스 또는 컨텍스트 적응형) 를 선택할 수도 있다 (230). 비디오 인코더 (20) 는 그후 선택된 모드를 이용하여 구문 엘리먼트를 인코딩할 수도 있다 (234).
일부의 경우, 도 11 과 관련하여 설명된 빈 그룹화는 2개보다 많은 구문 엘리먼트들에 대해 수행될 수도 있다. 예를 들어, 도 7 과 관련하여 위에서 설명한 바와 같이, PU 와 연관되는 컨텍스트 코딩된 빈들의 모두는, PU 의 컨텍스트 코딩된 빈들이 함께 코딩되고 PU 의 바이패스 코딩된 빈들이 함께 코딩되도록, 그룹화될 수도 있다. 게다가, 그룹화는 CU, LCU, 또는 슬라이스 레벨 상에서 수행될 수도 있다. 즉, 일부 예들에서, CU/LCU/슬라이스에 대한 컨텍스트 코딩된 빈들의 모두는 함께 그룹화되어 코딩됨으로써, 비디오 인코더 (20) 로 하여금, 컨텍스트 코딩과 바이패스 코딩 사이에 단일 전환을 가능하게 할 수도 있다.
또한, 도 11 에 관하여 도시 및 설명한 단계들은 단지 일 예로서 제공되는 것으로 이해되어야 한다. 즉, 도 11 의 방법의 단계들은 반드시 도 11 에 나타낸 순서로 수행될 필요는 없으며, 더 적거나, 추가적이거나, 또는 대안적인 단계들이 수행될 수도 있다. 예를 들어, 도 11 은 바이패스 코딩된 빈들에 앞서 컨텍스트 코딩된 빈들을 인코딩하는 비디오 인코더 (20) 를 나타내지만, 다른 예들에서, 비디오 인코더 (20) 는 컨텍스트 코딩된 빈들에 앞서 바이패스 코딩된 빈들을 코딩할 수도 있다.
도 12 는 본 개시물의 양태들에 따른, 예측 데이터를 엔트로피 디코딩하는 일 예를 예시하는 플로우차트이다. 설명의 목적들을 위해 비디오 디코더 (30) 의 구성요소들 (도 1 및 도 3) 에 의해 수행되는 것으로 일반적으로 설명되었지만, 다른 비디오 코딩 유닛들, 프로세서들, 프로세싱 유닛들, 하드웨어-기반의 코딩 유닛들, 예컨대 인코더/디코더들 (코덱들), 및 기타 등등이, 도 12 의 프로세스를 수행하도록 또한 구성될 수도 있는 것으로 이해되어야 한다.
도 12 의 예에서, 비디오 디코더 (30) 는 디코딩될 구문 엘리먼트 (또는, 엘리먼트들) 을 결정할 수도 있다 (240). 일 예에서, 비디오 디코더 (30) 는 디코딩을 위해 예측 데이터와 연관되는 구문 엘리먼트들을 식별할 수도 있다. 비디오 디코더 (30) 는 또한 구문 엘리먼트(들)의 빈들이 컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들을 포함하는지 여부를 결정할 수도 있다 (242). 컨텍스트 코딩과 바이패스 코딩 양쪽의 혼합이 존재하면 (단계 (242) 의 "예" 분기), 비디오 디코더 (30) 는 컨텍스트 코딩된 빈들을 디코딩할 수도 있다 (244). 비디오 디코더 (30) 는 또한 컨텍스트 코딩된 빈들과는 별개로, 바이패스 코딩된 빈들을 디코딩할 수도 있다 (246). 즉, 컨텍스트 코딩된 빈들이 디코딩되는 비트스트림에서 바이패스 코딩된 빈들과는 별개로 그룹화되는 경우들에서, 비디오 디코더 (30) 는 바이패스 코딩된 빈들을 디코딩하는 것과는 별개로 코딩된 모든 컨텍스트를 디코딩할 수도 있다. 그 빈들을 디코딩한 후, 비디오 디코더 (30) 는 디코딩된 빈들을 2진화하여, 디코딩된 구문 엘리먼트를 형성할 수도 있다 (248). 예를 들어, 비디오 디코더 (30) 는 2진화 표 또는 다른 2진화 프로세스를 이용하여, 디코딩된 빈 스트링을 구문 엘리먼트에 맵핑할 수도 있다.
코딩되는 구문 엘리먼트가 컨텍스트 코딩된 빈들 및 바이패스 코딩된 빈들 양쪽을 포함하지 않으면 (단계 (242) 의 "아니오" 분기), 비디오 디코더 (30) 는 구문 엘리먼트를 코딩하기 위해 특정의 코딩 모드 (예컨대, 바이패스 또는 컨텍스트 적응형) 를 선택할 수도 있다 (250). 비디오 디코더 (30) 는 그후 선택된 모드를 이용하여 인코딩된 빈들을 디코딩하고 (252), 디코딩된 빈 스트링을 2진화하여, 디코딩된 구문 엘리먼트를 형성할 수도 있다 (248).
도 11 에 대해 위에서 설명한 바와 같이, 일부 경우, 빈 그룹화는 2개보다 많은 구문 엘리먼트들에 대해 수행될 수도 있다. 예를 들어, 그룹화는 PU, CU, LCU, 또는 슬라이스 레벨 상에서 수행될 수도 있다. 즉, 일부 예들에서, PU/CU/LCU/슬라이스에 대한 컨텍스트 코딩된 빈들의 모두는 함께 그룹화되어 코딩됨으로써, 비디오 디코더 (30) 로 하여금, 컨텍스트 코딩과 바이패스 코딩 사이에 단일 전환을 가능하게 할 수도 있다.
또한, 도 12 에 관하여 도시 및 설명한 단계들은 단지 일 예로서 제공되는 것으로 이해되어야 한다. 즉, 도 12 의 방법의 단계들은 반드시 도 12 에 나타낸 순서로 수행될 필요는 없으며, 더 적거나, 추가적이거나, 또는 대안적인 단계들이 수행될 수도 있다. 예를 들어, 도 12 는 바이패스 코딩된 빈들에 앞서 컨텍스트 코딩된 빈들을 디코딩하는 비디오 디코더 (30) 를 나타내지만, 다른 예들에서, 비디오 디코더 (30) 는 컨텍스트 코딩된 빈들에 앞서 바이패스 코딩된 빈들을 디코딩할 수도 있다.
또한, 이 예에 따라서, 본원에서 설명하는 방법들 중 임의의 방법의 어떤 행위들 또는 이벤트들은 상이한 시퀀스로 수행될 수 있으며, 모두 함께 추가하거나, 병합하거나, 또는 삭제할 수도 있는 (예컨대, 모든 설명된 행위들 또는 이벤트들이 방법의 실시에 필요한 것은 아닌) 것으로 이해되어야 한다. 더욱이, 어떤 예들에서, 행위들 또는 이벤트들은 순차적으로 보다는, 동시에, 예컨대, 멀티-쓰레드된 프로세싱, 인터럽트 프로세싱, 또는 다수의 프로세서들을 통해서 수행될 수도 있다. 게다가, 본 개시물의 어떤 양태들이 명료성의 목적들을 위해 단일 모듈 또는 유닛에 의해 수행되는 것으로 설명되지만, 본 개시물의 기법들은 비디오 코더와 연관되는 유닛들 또는 모듈들의 결합에 의해 수행될 수도 있는 것으로 이해되어야 한다.
비디오 인코더 (20) 는 비디오 인코딩 프로세스에서 참조 인덱스 및 다른 구문 엘리먼트들을 코딩하는 본 개시물의 기법들 중 임의의 기법 또는 모두를 구현할 수도 있다. 이와 유사하게, 비디오 디코더 (30) 는 비디오 코딩 프로세스에서 참조 인덱스 및 다른 구문 엘리먼트들을 코딩하는 이들 기법들 중 임의의 기법 또는 모두를 구현할 수도 있다. 비디오 코더는, 본 개시물에서 설명하는 바와 같이, 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 이와 유사하게, 비디오 코딩 유닛은 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 이와 유사하게, 비디오 코딩은 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다.
하나 이상의 예들에서, 본 개시물에서 설명되며 비디오 인코더 (20), 비디오 디코더 (30), 또는 임의의 다른 프로세싱 유닛에 속하는 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 결합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터-판독가능 저장 매체 상에 저장되거나 또는 컴퓨터-판독가능 통신 매체를 통해서 송신될 수도 있으며, 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체는 컴퓨터-판독가능 저장 매체들을 포함할 수도 있으며, 이 컴퓨터-판독가능 매체들은 데이터 저장 매체와 같은 유형의 매체, 또는 예컨대, 통신 프로토콜에 따라서 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 통신 매체를 포함한 통신 매체들에 대응한다. 이와 같이, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비-일시적 유형의 컴퓨터-판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시물에서 설명하는 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 저장 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
일 예로서, 이에 한정하지 않고, 이런 컴퓨터-판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 스토리지, 자기디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 저장 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터-판독가능 통신 매체로 적절히 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 무선 기술들 예컨대 적외선, 무선, 및 마이크로파를 이용하여 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 무선 기술들, 예컨대 적외선, 무선, 및 마이크로파가 통신 매체의 정의에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체 및 데이터 저장 매체는 접속부들, 반송파들, 신호들, 또는 다른 일시성 통신 매체를 포함하지 않고, 그 대신, 비-일시성 유형의 저장 매체로 해석되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용할 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 Blu-ray 디스크를 포함하며, 디스크들 (disks) 은 데이터를 자기적으로 보통 재생하지만, 디스크들 (discs) 은 레이저로 데이터를 광학적으로 재생한다. 앞에서 언급한 것들의 결합들이 또한 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 주문형 집적회로들 (ASICs), 필드 프로그래밍가능 로직 어레이들 (FPGAs), 또는 다른 등가의 통합 또는 이산 로직 회로, 또는 이들의 임의의 결합과 같은, 하나 이상의 프로세서들에 의해 실행될 수도 있다. 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 본 개시물에서 설명되는 기능들을 수행하도록 구성된 다양한 이런 하나 이상의 프로세서들 중 임의의 프로세서를 포함할 수도 있다. 따라서, 용어 "프로세서" 는, 본원에서 사용될 때 전술한 구조 중 임의의 구조 또는 본원에서 설명하는 기법들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 게다가, 일부 양태들에서, 본원에서 설명하는 기능은 인코딩 및 디코딩을 위해 구성되는 소프트웨어 모듈들 및/또는 전용 하드웨어 내에 제공되거나, 또는 결합된 코덱에 포함될 수도 있다. 또한, 이 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 전적으로 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예컨대, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 개시한 기법들을 수행하도록 구성되는 디바이스들의 기능적 양태들을 강조하기 위해서 여러 구성요소들, 모듈들, 또는 유닛들이 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하지는 않는다. 오히려, 위에서 설명한 바와 같이, 여러 유닛들이 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명한 바와 같은 하나 이상의 프로세서들을 포함한, 상호작용하는 하드웨어 유닛들의 컬렉션으로 제공될 수도 있다.
여러 예들이 설명되었다. 이들 및 다른 예들은 다음 청구항들의 범위 이내이다.
Claims (91)
- 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법으로서,
참조 픽처 인덱스 값을 2진화하는 단계;
2진화된 상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 인코딩하는 단계;
상기 2진화된 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하는 단계; 및
상기 2진화된 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하는 것에 응답하여, 상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 CABAC 프로세스의 바이패스 코딩 모드로 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 1 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 단계는,
상기 2진화된 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 인코딩하는 단계,
2진화된 참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 인코딩하는 단계를 포함하고,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계는,
제 3 빈 (bin2) 및 상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 2 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하는 단계는,
상기 참조 픽처 인덱스 값을 결합된 절단형 1진 코드 및 지수 골롬 코드를 이용하여 2진화하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 1 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계는,
상기 적어도 다른 빈을 1진, 절단형 1진, 골롬 (Golomb), 지수 골롬, 또는 골롬-라이스 (Golomb-Rice) 코딩 프로세스 중 적어도 하나로 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 1 항에 있어서,
제 1 참조 픽처 인덱스와 연관되는 제 1 모션 벡터 차이 값의 성분들 및 제 2 참조 픽처 인덱스와 연관되는 제 2 모션 벡터 차이 값의 성분들을 2진화하는 단계;
상기 제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을 상기 컨텍스트 코딩 모드로 인코딩하는 단계; 및
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을 상기 바이패스 코딩 모드로 인코딩하는 단계를 더 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 5 항에 있어서,
상기 제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을, 상기 컨텍스트 코딩 모드로 코딩하기 위한 제 1 그룹으로 그룹화하는 단계, 및
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을, 상기 바이패스 코딩 모드로 코딩하기 위한 제 2 그룹으로 그룹화하는 단계를 더 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 1 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 단계는,
상기 2진화된 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 인코딩하는 단계,
2진화된 참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 인코딩하는 단계,
상기 2진화된 참조 픽처 인덱스의 제 3 빈 (bin2) 을 제 3 컨텍스트 (ctx2) 로 인코딩하는 단계를 포함하며,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계는,
상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 1 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 단계는,
상기 2진화된 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 인코딩하는 단계를 포함하며,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계는,
상기 제 1 빈 (bin0) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 1 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하는 단계는 상기 참조 픽처 인덱스 값을 1진 코딩하는 단계를 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 단계는,
상기 1진 코딩된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 단계를 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계는,
상기 1진 코딩된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 9 항에 있어서,
상기 참조 픽처 인덱스 값을 1진 코딩하는 단계는, 상기 참조 픽처 인덱스 값을 절단형 1진 코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 1 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하는 단계는 상기 참조 픽처 인덱스 값을 1진 코딩 및 지수-골롬 코딩하는 단계를 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 단계는,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 단계를 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계는,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분 및 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 11 항에 있어서,
상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 인코딩하기에 앞서 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 절단하는 단계를 더 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 1 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하는 단계는, 상기 참조 픽처 인덱스 값을 1진 코딩 및 고정 길이 코딩하는 단계를 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 단계는, 상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 단계를 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계는, 1진 코딩된 부분 참조 픽처 인덱스 값 및 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 13 항에 있어서,
상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 코딩하기에 앞서 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 절단하는 단계를 더 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 제 1 항에 있어서,
상기 컨텍스트 코딩 모드로 인코딩하는 단계는, 2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 코딩하기 위한 하나 이상의 확률 모델들을 선택하는 단계, 및 상기 2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 상기 선택된 하나 이상의 확률 모델들을 이용하여 인코딩하는 단계를 포함하며;
상기 바이패스 코딩 모드로 인코딩하는 단계는, 고정 확률을 결정하는 단계, 및 상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 고정 확률을 이용하여 인코딩하는 단계를 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 방법. - 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치로서,
하나 이상의 참조 픽처들을 저장하도록 구성된 디코딩된 픽처 버퍼; 및
하나 이상의 프로세서들을 포함하고,
상기 하나 이상의 프로세서들은,
상기 하나 이상의 참조 픽처들의 참조 픽처에 대한 참조 픽처 인덱스 값을 2진화하고;
2진화된 상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 인코딩하고;
상기 2진화된 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하고; 그리고
상기 2진화된 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하는 것에 응답하여, 상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 CABAC 프로세스의 바이패스 코딩 모드로 인코딩하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 16 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 2진화된 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 인코딩하고,
2진화된 참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 인코딩하도록 구성되며,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
제 3 빈 (bin2) 및 상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 인코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 17 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 하나 이상의 프로세서들은, 상기 참조 픽처 인덱스 값을 결합된 절단형 1진 코드 및 지수 골롬 코드를 이용하여 2진화하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 16 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은, 상기 적어도 다른 빈을 1진, 절단형 1진, 골롬, 지수 골롬, 또는 골롬-라이스 코딩 프로세스 중 적어도 하나로 인코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 16 항에 있어서,
상기 하나 이상의 프로세서들은 추가로,
제 1 참조 픽처 인덱스와 연관되는 제 1 모션 벡터 차이 값의 성분들 및 제 2 참조 픽처 인덱스와 연관되는 제 2 모션 벡터 차이 값의 성분들을 2진화하고;
상기 제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을 상기 컨텍스트 코딩 모드로 인코딩하고; 그리고
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을 상기 바이패스 코딩 모드로 인코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 20 항에 있어서,
상기 하나 이상의 프로세서들은 추가로,
상기 제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을, 상기 컨텍스트 코딩 모드로 코딩하기 위한 제 1 그룹으로 그룹화하고, 그리고
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을, 상기 바이패스 코딩 모드로 코딩하기 위한 제 2 그룹으로 그룹화하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 16 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 2진화된 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 인코딩하고,
2진화된 참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 인코딩하고,
상기 2진화된 참조 픽처 인덱스의 제 3 빈 (bin2) 을 제 3 컨텍스트 (ctx2) 로 인코딩하도록 구성되며,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하기 위해, 하나 이상의 프로세서들은,
상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 인코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 16 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하기 위해, 하나 이상의 프로세서들은,
상기 2진화된 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 인코딩하도록 구성되며,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하기 위해, 하나 이상의 프로세서들은,
상기 제 1 빈 (bin0) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 인코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 16 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 하나 이상의 프로세서들은 상기 참조 픽처 인덱스 값을 1진 코딩하도록 구성되며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 1진 코딩된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하도록 구성되며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 1진 코딩된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 24 항에 있어서,
상기 참조 픽처 인덱스 값을 1진 코딩하기 위해, 상기 하나 이상의 프로세서들은, 상기 참조 픽처 인덱스 값을 절단형 1진 코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 16 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 하나 이상의 프로세서들은, 상기 참조 픽처 인덱스 값을 1진 코딩 및 지수-골롬 코딩하도록 구성되며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하도록 구성되며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분 및 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 26 항에 있어서,
상기 하나 이상의 프로세서들은 추가로,
상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 인코딩하기에 앞서, 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 절단하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 16 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값을 1진 코딩 및 고정 길이 코딩하도록 구성되며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하도록 구성되며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
1진 코딩된 부분 참조 픽처 인덱스 값 및 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 28 항에 있어서,
상기 하나 이상의 프로세서들은 추가로,
상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 코딩하기에 앞서 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 절단하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 16 항에 있어서,
상기 컨텍스트 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 코딩하기 위한 하나 이상의 확률 모델들을 선택하도록, 그리고, 상기 2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 상기 선택된 하나 이상의 확률 모델들을 이용하여 인코딩하도록 구성되며;
상기 바이패스 코딩 모드로 인코딩하기 위해, 상기 하나 이상의 프로세서들은,
고정 확률을 결정하고, 그리고 상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 고정 확률을 이용하여 인코딩하도록 구성되는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치로서,
참조 픽처 인덱스 값을 2진화하는 수단;
2진화된 상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 인코딩하는 수단;
상기 2진화된 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하는 수단; 및
상기 2진화된 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하는 것에 응답하여, 상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 CABAC 프로세스의 바이패스 코딩 모드로 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 31 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 수단은,
상기 2진화된 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 인코딩하는 수단, 및
2진화된 참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 인코딩하는 수단을 포함하며,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단은,
제 3 빈 (bin2) 및 상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 32 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하는 수단은,
상기 참조 픽처 인덱스 값을 결합된 절단형 1진 코드 및 지수 골롬 코드를 이용하여 2진화하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 31 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단은,
상기 적어도 다른 빈을 1진, 절단형 1진, 골롬, 지수 골롬, 또는 골롬-라이스 코딩 프로세스 중 적어도 하나로 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 31 항에 있어서,
제 1 참조 픽처 인덱스와 연관되는 제 1 모션 벡터 차이 값의 성분들 및 제 2 참조 픽처 인덱스와 연관되는 제 2 모션 벡터 차이 값의 성분들을 2진화하는 수단;
상기 제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을 상기 컨텍스트 코딩 모드로 인코딩하는 수단; 및
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을 상기 바이패스 코딩 모드로 인코딩하는 수단을 더 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 35 항에 있어서,
상기 제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을, 상기 컨텍스트 코딩 모드로 코딩하기 위한 제 1 그룹으로 그룹화하는 수단, 및
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을, 상기 바이패스 코딩 모드로 코딩하기 위한 제 2 그룹으로 그룹화하는 수단을 더 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 31 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 수단은,
상기 2진화된 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 인코딩하는 수단,
2진화된 참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 인코딩하는 수단, 및
상기 2진화된 참조 픽처 인덱스의 제 3 빈 (bin2) 을 제 3 컨텍스트 (ctx2) 로 인코딩하는 수단을 포함하며,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단은,
상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 31 항에 있어서,
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 수단은,
상기 2진화된 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 인코딩하는 수단을 포함하며,
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단은,
상기 제 1 빈 (bin0) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 31 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하는 수단은, 상기 참조 픽처 인덱스 값을 1진 코딩하는 수단을 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 수단은,
상기 1진 코딩된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 수단을 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단은,
상기 1진 코딩된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 39 항에 있어서,
상기 참조 픽처 인덱스 값을 1진 코딩하는 수단은,
상기 참조 픽처 인덱스 값을 절단형 1진 코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 31 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하는 수단은, 상기 참조 픽처 인덱스 값을 1진 코딩 및 지수-골롬 코딩하는 수단을 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 수단은,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 수단을 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단은,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분 및 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 41 항에 있어서,
상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 인코딩하기에 앞서 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 절단하는 수단을 더 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 31 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하는 수단은, 상기 참조 픽처 인덱스 값을 1진 코딩 및 고정 길이 코딩하는 수단을 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 수단은, 상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 인코딩하는 수단을 포함하며;
상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단은, 1진 코딩된 부분 참조 픽처 인덱스 값 및 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 43 항에 있어서,
상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 코딩하기에 앞서 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 절단하는 수단을 더 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 제 31 항에 있어서,
상기 컨텍스트 코딩 모드로 인코딩하는 수단은,
2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 코딩하기 위한 하나 이상의 확률 모델들을 선택하는 수단, 및 상기 2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 상기 선택된 하나 이상의 확률 모델들을 이용하여 인코딩하는 수단을 포함하며;
상기 바이패스 코딩 모드로 인코딩하는 수단은,
고정 확률을 결정하는 수단, 및 상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 고정 확률을 이용하여 인코딩하는 수단을 포함하는, 비디오 인코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 인코딩하는 장치. - 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법으로서,
참조 픽처 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 디코딩하는 단계;
이진화된 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하는 단계;
상기 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하는 것에 응답하여, 상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 CABAC 프로세스의 바이패스 코딩 모드로 디코딩하는 단계; 및
상기 참조 픽처 인덱스 값을 2진화하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 46 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하는 단계는,
상기 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 디코딩하는 단계, 및
참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 디코딩하는 단계를 포함하며,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계는,
제 3 빈 (bin2) 및 상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 디코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 47 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하는 단계는,
상기 참조 픽처 인덱스 값을 결합된 절단형 1진 코드 및 지수 골롬 코드를 이용하여 2진화하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 46 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계는,
상기 적어도 다른 빈을 1진, 절단형 1진, 골롬, 지수 골롬, 또는 골롬-라이스 코딩 프로세스 중 적어도 하나로 디코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 46 항에 있어서,
제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을 상기 컨텍스트 코딩 모드로 디코딩하는 단계;
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을 상기 바이패스 코딩 모드로 디코딩하는 단계; 및
제 1 참조 픽처 인덱스와 연관되는 상기 제 1 모션 벡터 차이 값의 성분들 및 제 2 참조 픽처 인덱스와 연관되는 상기 제 2 모션 벡터 차이 값의 성분들을 2진화하는 단계를 더 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 50 항에 있어서,
상기 제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을, 상기 컨텍스트 코딩 모드로 코딩하기 위한 제 1 그룹으로 그룹화하는 단계, 및
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을, 상기 바이패스 코딩 모드로 코딩하기 위한 제 2 그룹으로 그룹화하는 단계를 더 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 46 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하는 단계는,
상기 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 디코딩하는 단계,
참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 디코딩하는 단계, 및
상기 참조 픽처 인덱스의 제 3 빈 (bin2) 을 제 3 컨텍스트 (ctx2) 로 디코딩하는 단계를 포함하며,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계는,
상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 디코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 46 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하는 단계는,
상기 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 디코딩하는 단계를 포함하며,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계는,
상기 제 1 빈 (bin0) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 디코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 46 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하는 단계는,
1진 코딩된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하는 단계를 포함하며;
인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계는,
상기 1진 코딩된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계를 포함하며;
상기 참조 픽처 인덱스 값을 2진화하는 단계는,
상기 참조 픽처 인덱스 값을 1진 코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 54 항에 있어서,
상기 참조 픽처 인덱스 값을 1진 코딩하는 단계는,
상기 참조 픽처 인덱스 값을 절단형 1진 코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 46 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하는 단계는,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하는 단계를 포함하며;
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계는,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분 및 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계를 포함하며;
상기 참조 픽처 인덱스 값을 2진화하는 단계는,
상기 참조 픽처 인덱스 값을 1진 코딩 및 지수-골롬 코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 56 항에 있어서,
상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 디코딩하기에 앞서, 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 절단하는 단계를 더 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 46 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하는 단계는,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하는 단계를 포함하며;
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계는,
1진 코딩된 부분 참조 픽처 인덱스 값 및 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하는 단계를 포함하며;
상기 참조 픽처 인덱스 값을 2진화하는 단계는,
상기 참조 픽처 인덱스 값을 1진 코딩 및 고정 길이 코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 58 항에 있어서,
상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 코딩하기에 앞서 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 절단하는 단계를 더 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 제 46 항에 있어서,
상기 컨텍스트 코딩 모드로 디코딩하는 단계는,
2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 코딩하기 위한 하나 이상의 확률 모델들을 선택하는 단계, 및 상기 2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 상기 선택된 하나 이상의 확률 모델들을 이용하여 디코딩하는 단계를 포함하며;
상기 바이패스 코딩 모드로 디코딩하는 단계는,
고정 확률을 결정하는 단계, 및 상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 고정 확률을 이용하여 디코딩하는 단계를 포함하는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 방법. - 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치로서,
하나 이상의 참조 픽처들을 저장하도록 구성된 디코딩된 픽처 버퍼; 및
하나 이상의 프로세서들을 포함하고,
상기 하나 이상의 프로세서들은,
참조 픽처 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 디코딩하는 것으로서, 상기 참조 픽처 인덱스 값은 상기 하나 이상의 참조 픽처들의 참조 픽처와 연관되는, 상기 컨텍스트 코딩 모드로 디코딩하고;
이진화된 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하고;
상기 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하는 것에 응답하여, 상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 CABAC 프로세스의 바이패스 코딩 모드로 디코딩하고; 그리고
상기 참조 픽처 인덱스 값을 2진화하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 61 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 디코딩하고, 그리고
참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 디코딩하도록 구성되며,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
제 3 빈 (bin2) 및 상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 디코딩하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 62 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값을 결합된 절단형 1진 코드 및 지수 골롬 코드를 이용하여 2진화하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 61 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 적어도 다른 빈을 1진, 절단형 1진, 골롬, 지수 골롬, 또는 골롬-라이스 코딩 프로세스 중 적어도 하나로 디코딩하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 61 항에 있어서,
상기 하나 이상의 프로세서들은 추가로,
제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을 상기 컨텍스트 코딩 모드로 디코딩하고;
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을 상기 바이패스 코딩 모드로 디코딩하고; 그리고
제 1 참조 픽처 인덱스와 연관되는 상기 제 1 모션 벡터 차이 값의 성분들 및 제 2 참조 픽처 인덱스와 연관되는 상기 제 2 모션 벡터 차이 값의 성분들을 2진화하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 65 항에 있어서,
상기 하나 이상의 프로세서들은 추가로,
상기 제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을, 상기 컨텍스트 코딩 모드로 코딩하기 위한 제 1 그룹으로 그룹화하고, 그리고
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을, 상기 바이패스 코딩 모드로 코딩하기 위한 제 2 그룹으로 그룹화하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 61 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 디코딩하고,
참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 디코딩하고, 그리고
상기 참조 픽처 인덱스의 제 3 빈 (bin2) 을 제 3 컨텍스트 (ctx2) 로 디코딩하도록 구성되며,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 디코딩하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 61 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 디코딩하도록 구성되며,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 제 1 빈 (bin0) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 디코딩하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 61 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
1진 코딩된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하도록 구성되며;
인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 1진 코딩된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하도록 구성되며;
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 하나 이상의 프로세서들은 상기 참조 픽처 인덱스 값을 1진 코딩하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 69 항에 있어서,
상기 참조 픽처 인덱스 값을 1진 코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값을 절단형 1진 코딩하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 61 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하도록 구성되며;
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분 및 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하도록 구성되며;
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값을 1진 코딩 및 지수-골롬 코딩하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 71 항에 있어서,
상기 하나 이상의 프로세서들은 추가로,
상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 디코딩하기에 앞서 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 절단하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 61 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하도록 구성되며;
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
1진 코딩된 부분 참조 픽처 인덱스 값 및 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하도록 구성되며;
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 하나 이상의 프로세서들은,
상기 참조 픽처 인덱스 값을 1진 코딩 및 고정 길이 코딩하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 73 항에 있어서,
상기 하나 이상의 프로세서들은 추가로,
상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 코딩하기에 앞서 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 절단하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 제 61 항에 있어서,
상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 코딩하기 위한 하나 이상의 확률 모델들을 선택하고 그리고, 상기 2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 상기 선택된 하나 이상의 확률 모델들을 이용하여 디코딩하도록 구성되며;
상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 하나 이상의 프로세서들은,
고정 확률을 결정하고, 그리고, 상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 고정 확률을 이용하여 디코딩하도록 구성되는, 비디오 디코딩 프로세스에서 참조 픽처 인덱스 구문 엘리먼트를 디코딩하는 장치. - 명령들을 저장한 비-일시적 컴퓨터-판독가능 저장 매체로서,
상기 명령들은, 실행될 경우, 하나 이상의 프로세서들로 하여금,
참조 픽처 인덱스 값의 적어도 하나의 빈을 컨텍스트-적응형 2진 산술 코딩 (CABAC) 프로세스의 컨텍스트 코딩 모드로 디코딩하게 하고;
이진화된 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하게 하고;
상기 참조 픽처 인덱스 값이 상기 컨텍스트 코딩 모드로 코딩된 상기 적어도 하나의 빈보다 더 많은 빈들을 포함하는 것을 결정하는 것에 응답하여, 상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 CABAC 프로세스의 바이패스 코딩 모드로 디코딩하게 하고; 그리고
상기 참조 픽처 인덱스 값을 2진화하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 디코딩하게 하고, 그리고
참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 디코딩하게 하며,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
제 3 빈 (bin2) 및 상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 디코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 77 항에 있어서,
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 참조 픽처 인덱스 값을 결합된 절단형 1진 코드 및 지수 골롬 코드를 이용하여 2진화하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 적어도 다른 빈을 1진, 절단형 1진, 골롬, 지수 골롬, 또는 골롬-라이스 코딩 프로세스 중 적어도 하나로 디코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 하나 이상의 프로세서들로 하여금,
제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을 상기 컨텍스트 코딩 모드로 디코딩하게 하고;
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을 상기 바이패스 코딩 모드로 디코딩하게 하고; 그리고
제 1 참조 픽처 인덱스와 연관되는 상기 제 1 모션 벡터 차이 값의 성분들 및 제 2 참조 픽처 인덱스와 연관되는 상기 제 2 모션 벡터 차이 값의 성분들을 2진화하게 하는
명령들을 더 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 80 항에 있어서,
상기 하나 이상의 프로세서들로 하여금,
상기 제 1 모션 벡터 차이 값의 성분들의 제 1 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 1 부분을, 상기 컨텍스트 코딩 모드로 코딩하기 위한 제 1 그룹으로 그룹화하게 하고, 그리고
상기 제 1 모션 벡터 차이 값의 성분들의 제 2 부분 및 상기 제 2 모션 벡터 차이 값의 성분들의 제 2 부분을, 상기 바이패스 코딩 모드로 코딩하기 위한 제 2 그룹으로 그룹화하게 하는
명령들을 더 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 디코딩하게 하고,
참조 픽처 인덱스의 제 2 빈 (bin1) 을 제 2 컨텍스트 (ctx1) 로 디코딩하게 하고, 그리고
상기 참조 픽처 인덱스의 제 3 빈 (bin2) 을 제 3 컨텍스트 (ctx2) 로 디코딩하게 하며,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 제 3 빈 (bin2) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 디코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값의 제 1 빈 (bin0) 을 제 1 컨텍스트 (ctx0) 로 디코딩하게 하며,
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 제 1 빈 (bin0) 이후의 모든 나머지 빈들을 상기 바이패스 코딩 모드로 디코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
1진 코딩된 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하게 하며;
인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 1진 코딩된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하게 하며;
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값을 1진 코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 84 항에 있어서,
상기 참조 픽처 인덱스 값을 1진 코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값을 절단형 1진 코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하게 하며;
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분 및 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하게 하며;
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값을 1진 코딩 및 지수-골롬 코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 86 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 디코딩하기에 앞서 상기 참조 픽처 인덱스 값의 지수-골롬 코딩된 부분을 절단하게 하는 명령들을 더 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 참조 픽처 인덱스 값의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값의 1진 코딩된 부분의 적어도 하나의 빈을 상기 컨텍스트 코딩 모드로 디코딩하게 하며;
상기 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
1진 코딩된 부분 참조 픽처 인덱스 값 및 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분의 적어도 다른 빈을 상기 바이패스 코딩 모드로 디코딩하게 하며;
상기 참조 픽처 인덱스 값을 2진화하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
상기 참조 픽처 인덱스 값을 1진 코딩 및 고정 길이 코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 88 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 코딩하기에 앞서 상기 참조 픽처 인덱스 값의 고정 길이 코딩된 부분을 절단하게 하는 명령들을 더 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 컨텍스트 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 코딩하기 위한 하나 이상의 확률 모델들을 선택하고, 그리고, 상기 2진화된 참조 픽처 인덱스의 적어도 하나의 빈을 상기 선택된 하나 이상의 확률 모델들을 이용하여 디코딩하게 하며;
상기 바이패스 코딩 모드로 디코딩하기 위해, 상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
고정 확률을 결정하고, 그리고, 상기 2진화된 참조 픽처 인덱스 값의 적어도 다른 빈을 상기 고정 확률을 이용하여 디코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 제 76 항에 있어서,
상기 하나 이상의 프로세서들로 하여금,
인터-예측 방향 구문 엘리먼트의 제 1 빈을 상기 CABAC 프로세스의 컨텍스트 코딩 모드로 디코딩하게 하고; 그리고
상기 인터-예측 방향 구문 엘리먼트의 제 2 빈을 상기 CABAC 프로세스의 바이패스 코딩 모드로 디코딩하게 하는
명령들을 더 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체.
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261623043P | 2012-04-11 | 2012-04-11 | |
US61/623,043 | 2012-04-11 | ||
US201261637218P | 2012-04-23 | 2012-04-23 | |
US61/637,218 | 2012-04-23 | ||
US201261640568P | 2012-04-30 | 2012-04-30 | |
US61/640,568 | 2012-04-30 | ||
US201261647422P | 2012-05-15 | 2012-05-15 | |
US61/647,422 | 2012-05-15 | ||
US201261665151P | 2012-06-27 | 2012-06-27 | |
US61/665,151 | 2012-06-27 | ||
US13/828,173 | 2013-03-14 | ||
US13/828,173 US9264706B2 (en) | 2012-04-11 | 2013-03-14 | Bypass bins for reference index coding in video coding |
PCT/US2013/034968 WO2013154866A1 (en) | 2012-04-11 | 2013-04-02 | Bypass bins for reference index coding in video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150003299A KR20150003299A (ko) | 2015-01-08 |
KR101706838B1 true KR101706838B1 (ko) | 2017-02-14 |
Family
ID=49325049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147031475A KR101706838B1 (ko) | 2012-04-11 | 2013-04-02 | 비디오 코딩에서 참조 인덱스 코딩을 위한 바이패스 빈들 |
Country Status (21)
Country | Link |
---|---|
US (1) | US9264706B2 (ko) |
EP (1) | EP2837178B1 (ko) |
JP (1) | JP6215304B2 (ko) |
KR (1) | KR101706838B1 (ko) |
CN (1) | CN104205830B (ko) |
AU (1) | AU2013246275B2 (ko) |
BR (1) | BR112014025419B1 (ko) |
CA (1) | CA2867756C (ko) |
DK (1) | DK2837178T3 (ko) |
ES (1) | ES2742027T3 (ko) |
HK (1) | HK1201111A1 (ko) |
HU (1) | HUE044738T2 (ko) |
IL (1) | IL234648A (ko) |
MY (1) | MY171168A (ko) |
PH (1) | PH12014502204A1 (ko) |
RU (1) | RU2643655C2 (ko) |
SG (1) | SG11201405754VA (ko) |
TW (1) | TWI520619B (ko) |
UA (1) | UA115142C2 (ko) |
WO (1) | WO2013154866A1 (ko) |
ZA (1) | ZA201407859B (ko) |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012134246A2 (ko) | 2011-04-01 | 2012-10-04 | 엘지전자 주식회사 | 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치 |
US9379736B2 (en) * | 2011-06-03 | 2016-06-28 | Qualcomm Incorporated | Context-adaptive coding video data |
WO2012172811A1 (ja) * | 2011-06-17 | 2012-12-20 | パナソニック株式会社 | 動画像復号化装置および動画像復号化方法 |
US9258565B1 (en) * | 2011-06-29 | 2016-02-09 | Freescale Semiconductor, Inc. | Context model cache-management in a dual-pipeline CABAC architecture |
WO2013067435A1 (en) * | 2011-11-04 | 2013-05-10 | Huawei Technologies Co., Ltd. | Differential pulse code modulation intra prediction for high efficiency 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 |
US9621909B2 (en) * | 2012-07-02 | 2017-04-11 | Lg Electronics Inc. | Method for decoding image and apparatus using same |
RU2647674C1 (ru) * | 2012-07-02 | 2018-03-16 | Самсунг Электроникс Ко., Лтд. | Способ и устройство для кодирования видео и способ и устройство для декодирования видео, определяющие список опорных изображений внешнего прогнозирования в зависимости от размера блока |
CN104717512B (zh) * | 2013-12-16 | 2019-07-23 | 浙江大学 | 一种前向双假设编码图像块的编解码方法和装置 |
US9900625B2 (en) * | 2014-03-17 | 2018-02-20 | Mediatek Inc. | Method and apparatus for efficient information coding |
US9842115B2 (en) * | 2014-05-30 | 2017-12-12 | Apple Inc. | Media asset proxies |
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 |
GB2530312B (en) * | 2014-09-19 | 2016-09-14 | Imagination Tech Ltd | Data compression |
CN107113442B (zh) * | 2014-10-31 | 2020-08-07 | 三星电子株式会社 | 用于对运动矢量进行编码/解码的方法和装置 |
US9942551B2 (en) * | 2015-01-30 | 2018-04-10 | Qualcomm Incorporated | Palette index grouping for video coding |
US11233998B2 (en) | 2015-05-29 | 2022-01-25 | Qualcomm Incorporated | Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design |
US10708164B2 (en) | 2016-05-03 | 2020-07-07 | Qualcomm Incorporated | Binarizing secondary transform index |
EP3264763A1 (en) * | 2016-06-29 | 2018-01-03 | Thomson Licensing | Method and apparatus for improved significance flag coding using simple local predictor |
CN113905238B (zh) * | 2016-07-05 | 2024-06-04 | 株式会社Kt | 对视频进行解码或编码的方法和计算机可读介质 |
US10412390B2 (en) | 2016-07-12 | 2019-09-10 | Mediatek Inc. | Video processing system using low-cost video encoding/decoding architecture |
US10827186B2 (en) * | 2016-08-25 | 2020-11-03 | Intel Corporation | Method and system of video coding with context decoding and reconstruction bypass |
KR20180031944A (ko) | 2016-09-21 | 2018-03-29 | 삼성전자주식회사 | 비디오 디코더 및 이를 포함하는 전자 시스템 |
US10264264B2 (en) * | 2016-09-24 | 2019-04-16 | Apple Inc. | Multi-bin decoding systems and methods |
EP3306924A1 (en) | 2016-10-05 | 2018-04-11 | Thomson Licensing | Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to picture data |
TWI604323B (zh) * | 2016-11-10 | 2017-11-01 | 財團法人工業技術研究院 | 視訊索引建立方法及應用其之裝置 |
KR102414164B1 (ko) * | 2017-03-31 | 2022-06-29 | 한국전자통신연구원 | 향상된 산술부호화를 제공하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치 |
US10560723B2 (en) | 2017-05-08 | 2020-02-11 | Qualcomm Incorporated | Context modeling for transform coefficient coding |
CN107300909A (zh) * | 2017-06-30 | 2017-10-27 | 电子科技大学 | 一种基于mvc框架的无人机地面维护***及方法 |
US10506242B2 (en) * | 2018-01-30 | 2019-12-10 | Google Llc | Efficient context model computation design in transform coefficient coding |
US10869060B2 (en) * | 2018-01-30 | 2020-12-15 | Google Llc | Efficient context model computation design in transform coefficient coding |
US11528490B2 (en) * | 2018-04-13 | 2022-12-13 | Zhejiang University | Information preserving coding and decoding method and device |
EP3562162A1 (en) | 2018-04-27 | 2019-10-30 | InterDigital VC Holdings, Inc. | Method and apparatus for video encoding and decoding based on neural network implementation of cabac |
WO2019235366A1 (ja) * | 2018-06-06 | 2019-12-12 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
KR102648120B1 (ko) | 2018-06-29 | 2024-03-18 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 슬라이스/타일/lcu 행마다의 룩업 테이블 리셋 |
CN110662043B (zh) | 2018-06-29 | 2021-12-21 | 北京字节跳动网络技术有限公司 | 一种用于处理视频数据的方法、装置和计算机可读介质 |
CN114900694A (zh) | 2018-06-29 | 2022-08-12 | 抖音视界(北京)有限公司 | 哪个查找表需要更新或不更新 |
WO2020003270A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Number of motion candidates in a look up table to be checked according to mode |
JP7137008B2 (ja) | 2018-06-29 | 2022-09-13 | 北京字節跳動網絡技術有限公司 | 1つまたは複数のルックアップテーブルを使用して、以前コーディングされた動き情報を順に記憶させてそれらを後続のブロックのコーディングに使用する概念 |
CN110662052B (zh) | 2018-06-29 | 2022-07-08 | 北京字节跳动网络技术有限公司 | 更新查找表(lut)的条件 |
EP3791588A1 (en) | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Checking order of motion candidates in lut |
EP3791585A1 (en) | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Partial/full pruning when adding a hmvp candidate to merge/amvp |
AU2019293670B2 (en) | 2018-06-29 | 2023-06-08 | Beijing Bytedance Network Technology Co., Ltd. | Update of look up table: FIFO, constrained FIFO |
CN110677667B (zh) * | 2018-07-02 | 2022-06-07 | 北京字节跳动网络技术有限公司 | 查找表的使用 |
CN117651149A (zh) | 2018-09-10 | 2024-03-05 | 华为技术有限公司 | 视频解码方法及视频解码器 |
WO2020053800A1 (en) | 2018-09-12 | 2020-03-19 | Beijing Bytedance Network Technology Co., Ltd. | How many hmvp candidates to be checked |
GB2577318B (en) | 2018-09-21 | 2021-03-10 | Canon Kk | Video coding and decoding |
EP3857882A1 (en) * | 2018-09-24 | 2021-08-04 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Efficient coding of transform coefficients using or suitable for a combination with dependent scalar quantization |
US11006150B2 (en) | 2018-09-24 | 2021-05-11 | Tencent America LLC | Method and apparatus for video coding |
US11197017B2 (en) * | 2018-12-06 | 2021-12-07 | Tencent America LLC | Methods and apparatuses for video coding |
US10798397B2 (en) * | 2019-01-02 | 2020-10-06 | Tencent America LLC | Method and apparatus for video coding |
JP7275286B2 (ja) | 2019-01-10 | 2023-05-17 | 北京字節跳動網絡技術有限公司 | Lut更新の起動 |
CN113273207A (zh) * | 2019-01-10 | 2021-08-17 | 北京字节跳动网络技术有限公司 | 基于几何分区的具有运动矢量差(MVD)的Merge |
CN113383554B (zh) | 2019-01-13 | 2022-12-16 | 北京字节跳动网络技术有限公司 | LUT和共享Merge列表之间的交互 |
CN113330739A (zh) | 2019-01-16 | 2021-08-31 | 北京字节跳动网络技术有限公司 | Lut中的运动候选的***顺序 |
CN113316934B (zh) * | 2019-01-25 | 2024-03-08 | 寰发股份有限公司 | 带有变换块级别约束的变换系数编码的方法和设备 |
WO2020171644A1 (ko) * | 2019-02-22 | 2020-08-27 | 엘지전자 주식회사 | 영상 코딩 시스템에서 cclm 예측에 기반한 영상 디코딩 방법 및 그 장치 |
CN111726632B (zh) * | 2019-03-18 | 2022-08-26 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN113615193B (zh) | 2019-03-22 | 2024-06-25 | 北京字节跳动网络技术有限公司 | Merge列表构建和其他工具之间的交互 |
US11604767B2 (en) | 2019-04-05 | 2023-03-14 | Comcast Cable Communications, Llc | Systems and methods for data distillation |
KR20210142008A (ko) * | 2019-06-17 | 2021-11-23 | 엘지전자 주식회사 | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 |
CN111742552B (zh) * | 2019-06-25 | 2021-08-31 | 北京大学 | 环路滤波的方法与装置 |
US11330298B2 (en) * | 2019-06-25 | 2022-05-10 | Qualcomm Incorporated | Simplified intra chroma mode coding in video coding |
WO2021054776A1 (ko) * | 2019-09-18 | 2021-03-25 | 삼성전자 주식회사 | 움직임 정보의 부호화 장치 및 방법, 및 복호화 장치 및 방법 |
US11431688B2 (en) | 2019-12-13 | 2022-08-30 | TripleBlind, Inc. | Systems and methods for providing a modified loss function in federated-split learning |
US11973743B2 (en) | 2019-12-13 | 2024-04-30 | TripleBlind, Inc. | Systems and methods for providing a systemic error in artificial intelligence algorithms |
US11363002B2 (en) | 2019-12-13 | 2022-06-14 | TripleBlind, Inc. | Systems and methods for providing a marketplace where data and algorithms can be chosen and interact via encryption |
US11599671B1 (en) * | 2019-12-13 | 2023-03-07 | TripleBlind, Inc. | Systems and methods for finding a value in a combined list of private values |
MX2022010889A (es) * | 2020-03-05 | 2022-10-27 | Lg Electronics Inc | Metodo y dispositivo de codificacion/decodificacion de imagen basado en el tipo de unidad nal combinada, y metodo para trasmitir flujo de bits. |
CN114467133A (zh) * | 2020-03-11 | 2022-05-10 | 深圳云英谷科技有限公司 | 压缩和解压缩显示补偿亮度不匀的补偿数据的方法和*** |
WO2023091688A1 (en) * | 2021-11-19 | 2023-05-25 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and devices for decoder-side intra mode derivation |
WO2023114155A1 (en) * | 2021-12-13 | 2023-06-22 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and devices for decoder-side intra mode derivation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7088271B2 (en) | 2003-07-17 | 2006-08-08 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Method and apparatus for binarization and arithmetic coding of a data value |
US20130272389A1 (en) | 2012-04-13 | 2013-10-17 | Texas Instruments Incorporated | Reducing Context Coded and Bypass Coded Bins to Improve Context Adaptive Binary Arithmetic Coding (CABAC) Throughput |
WO2013154939A1 (en) | 2012-04-11 | 2013-10-17 | Qualcomm Incorporated | Grouping bypass coded syntax elements in video coding |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473376A (en) * | 1994-12-01 | 1995-12-05 | Motorola, Inc. | Method and apparatus for adaptive entropy encoding/decoding of quantized transform coefficients in a video compression system |
WO1998000977A1 (en) * | 1996-07-03 | 1998-01-08 | Motorola Inc. | Method and apparatus for bound-based adaptive entropy encoding/decoding |
US5994123A (en) * | 1996-08-09 | 1999-11-30 | Regents Of University Of Minnesota | Sugarcane bacilliform virus promoter |
EP1809044B1 (en) * | 1997-02-14 | 2008-10-01 | Nippon Telegraph and Telephone Corporation | Predictive decoding method of video data |
BR9806152A (pt) * | 1997-09-02 | 2000-01-11 | Koninkl Philips Electronics Nv | Processo e arranjo para detectar uma "marca d'água" multi-bit em um sinal, e, processo e arranjo para embutir uma "marca d'água" multi-bit em uma imagem de vìdeo |
US5978494A (en) * | 1998-03-04 | 1999-11-02 | Sensar, Inc. | Method of selecting the best enroll image for personal identification |
KR100796176B1 (ko) * | 1999-08-27 | 2008-01-21 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 신호 코딩 방법 및 장치, 인코더, 카메라 시스템, 디코딩 방법, 스케일가능 디코더 및 수신기 |
US20020157116A1 (en) * | 2000-07-28 | 2002-10-24 | Koninklijke Philips Electronics N.V. | Context and content based information processing for multimedia segmentation and indexing |
FR2825538A1 (fr) * | 2001-05-31 | 2002-12-06 | Cit Alcatel | Procede de codage consistant a coder un mot binaire selon une pluralite de tables de codage |
US7142675B2 (en) * | 2002-02-12 | 2006-11-28 | City University Of Hong Kong | Sequence generator and method of generating a pseudo random sequence |
CN1198635C (zh) * | 2002-07-30 | 2005-04-27 | 孙新刚 | 中药痔疮药膏 |
CN1525354A (zh) * | 2003-02-24 | 2004-09-01 | 王雅量 | 利用互联网资源进行语言词汇学习的方法和*** |
US7630440B2 (en) | 2003-05-28 | 2009-12-08 | Broadcom Corporation | Context adaptive binary arithmetic code decoding engine |
US7599435B2 (en) * | 2004-01-30 | 2009-10-06 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video frame encoding and decoding |
US7469070B2 (en) * | 2004-02-09 | 2008-12-23 | Lsi Corporation | Method for selection of contexts for arithmetic coding of reference picture and motion vector residual bitstream syntax elements |
US7804903B2 (en) * | 2005-06-27 | 2010-09-28 | Intel Corporation | Hardware-based CABAC decoder |
US8320453B2 (en) * | 2005-07-08 | 2012-11-27 | Lg Electronics Inc. | Method for modeling coding information of a video signal to compress/decompress the information |
US7894523B2 (en) * | 2005-09-05 | 2011-02-22 | Lg Electronics Inc. | Method for modeling coding information of a video signal for compressing/decompressing coding information |
KR100714706B1 (ko) * | 2005-09-26 | 2007-05-04 | 삼성전자주식회사 | 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치 |
KR100644713B1 (ko) | 2005-10-31 | 2006-11-10 | 삼성전자주식회사 | 컨텍스트 기반 적응적 이진 산술 코딩 복호기에서 원소구문을 복호화하는 방법 및 이를 위한 복호화 장치 |
US7983343B2 (en) * | 2006-01-12 | 2011-07-19 | Lsi Corporation | Context adaptive binary arithmetic decoding for high definition video |
RU2407218C2 (ru) * | 2006-07-13 | 2010-12-20 | Квэлкомм Инкорпорейтед | Видеокодирование с высокодетализированной масштабируемостью с использованием выровненных с циклом фрагментов |
EP2232874B1 (en) * | 2008-01-08 | 2012-12-05 | Telefonaktiebolaget L M Ericsson (publ) | Adaptive filtering |
CN101668202A (zh) * | 2008-09-01 | 2010-03-10 | 中兴通讯股份有限公司 | 帧内预测模式的选择方法和装置 |
TWI403170B (zh) * | 2010-05-21 | 2013-07-21 | Univ Nat Chiao Tung | 背景調適性二進制算術解碼裝置及其解碼方法 |
WO2012134246A2 (ko) * | 2011-04-01 | 2012-10-04 | 엘지전자 주식회사 | 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치 |
US20130003829A1 (en) * | 2011-07-01 | 2013-01-03 | Kiran Misra | System for initializing an arithmetic coder |
-
2013
- 2013-03-14 US US13/828,173 patent/US9264706B2/en active Active
- 2013-04-02 WO PCT/US2013/034968 patent/WO2013154866A1/en active Application Filing
- 2013-04-02 ES ES13717116T patent/ES2742027T3/es active Active
- 2013-04-02 MY MYPI2014702628A patent/MY171168A/en unknown
- 2013-04-02 BR BR112014025419-2A patent/BR112014025419B1/pt active IP Right Grant
- 2013-04-02 EP EP13717116.1A patent/EP2837178B1/en active Active
- 2013-04-02 AU AU2013246275A patent/AU2013246275B2/en active Active
- 2013-04-02 CN CN201380019062.0A patent/CN104205830B/zh active Active
- 2013-04-02 HU HUE13717116 patent/HUE044738T2/hu unknown
- 2013-04-02 SG SG11201405754VA patent/SG11201405754VA/en unknown
- 2013-04-02 DK DK13717116.1T patent/DK2837178T3/da active
- 2013-04-02 RU RU2014145207A patent/RU2643655C2/ru active
- 2013-04-02 UA UAA201412158A patent/UA115142C2/uk unknown
- 2013-04-02 CA CA2867756A patent/CA2867756C/en active Active
- 2013-04-02 KR KR1020147031475A patent/KR101706838B1/ko active IP Right Grant
- 2013-04-02 JP JP2015505786A patent/JP6215304B2/ja active Active
- 2013-04-11 TW TW102112895A patent/TWI520619B/zh active
-
2014
- 2014-09-15 IL IL234648A patent/IL234648A/en active IP Right Grant
- 2014-09-30 PH PH12014502204A patent/PH12014502204A1/en unknown
- 2014-10-28 ZA ZA2014/07859A patent/ZA201407859B/en unknown
-
2015
- 2015-02-12 HK HK15101566.5A patent/HK1201111A1/xx unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7088271B2 (en) | 2003-07-17 | 2006-08-08 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Method and apparatus for binarization and arithmetic coding of a data value |
WO2013154939A1 (en) | 2012-04-11 | 2013-10-17 | Qualcomm Incorporated | Grouping bypass coded syntax elements in video coding |
US20130272389A1 (en) | 2012-04-13 | 2013-10-17 | Texas Instruments Incorporated | Reducing Context Coded and Bypass Coded Bins to Improve Context Adaptive Binary Arithmetic Coding (CABAC) Throughput |
Non-Patent Citations (1)
Title |
---|
D. Marpe, et al., ‘Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard’, IEEE Trans. on Circuits and Systems for Video Technology, Vol.13, Issue: 7, pp620-636 |
Also Published As
Publication number | Publication date |
---|---|
CA2867756A1 (en) | 2013-10-17 |
SG11201405754VA (en) | 2014-10-30 |
UA115142C2 (uk) | 2017-09-25 |
CN104205830A (zh) | 2014-12-10 |
AU2013246275A1 (en) | 2014-10-23 |
TW201408073A (zh) | 2014-02-16 |
TWI520619B (zh) | 2016-02-01 |
DK2837178T3 (da) | 2019-08-19 |
MY171168A (en) | 2019-09-30 |
CN104205830B (zh) | 2018-01-12 |
US9264706B2 (en) | 2016-02-16 |
BR112014025419B1 (pt) | 2023-02-28 |
JP2015513290A (ja) | 2015-04-30 |
US20130272377A1 (en) | 2013-10-17 |
IL234648A (en) | 2016-08-31 |
HUE044738T2 (hu) | 2019-11-28 |
WO2013154866A1 (en) | 2013-10-17 |
AU2013246275B2 (en) | 2016-09-15 |
RU2643655C2 (ru) | 2018-02-02 |
PH12014502204B1 (en) | 2014-12-10 |
PH12014502204A1 (en) | 2014-12-10 |
RU2014145207A (ru) | 2016-05-27 |
JP6215304B2 (ja) | 2017-10-18 |
KR20150003299A (ko) | 2015-01-08 |
ES2742027T3 (es) | 2020-02-12 |
EP2837178B1 (en) | 2019-05-15 |
EP2837178A1 (en) | 2015-02-18 |
BR112014025419A2 (ko) | 2017-06-20 |
ZA201407859B (en) | 2017-04-26 |
CA2867756C (en) | 2018-07-10 |
BR112014025419A8 (pt) | 2021-06-22 |
HK1201111A1 (en) | 2015-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101706838B1 (ko) | 비디오 코딩에서 참조 인덱스 코딩을 위한 바이패스 빈들 | |
EP2666292B1 (en) | Combined reference picture list construction for video coding | |
TWI666916B (zh) | 在一視訊寫碼處理中之係數階寫碼 | |
KR101677356B1 (ko) | 최종 유의 계수 위치 코딩을 위한 컨텍스트 최적화 | |
US9736489B2 (en) | Motion vector determination for video coding | |
US20130272412A1 (en) | Common motion information candidate list construction process | |
US20130188715A1 (en) | Device and methods for merge list reordering in video coding | |
US20130272409A1 (en) | Bandwidth reduction in video coding through applying the same reference index | |
EP4336834A2 (en) | Sub-slices in video decoding | |
WO2013155428A1 (en) | Common spatial candidate blocks for parallel motion estimation | |
EP2777161A1 (en) | Number of contexts reduction for context adaptive binary arithmetic coding | |
US9674527B2 (en) | Implicit derivation of parallel motion estimation range size |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |