KR101455501B1 - 컨텍스트 세트 선택을 위한 방법 및 장치 - Google Patents

컨텍스트 세트 선택을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101455501B1
KR101455501B1 KR1020130005252A KR20130005252A KR101455501B1 KR 101455501 B1 KR101455501 B1 KR 101455501B1 KR 1020130005252 A KR1020130005252 A KR 1020130005252A KR 20130005252 A KR20130005252 A KR 20130005252A KR 101455501 B1 KR101455501 B1 KR 101455501B1
Authority
KR
South Korea
Prior art keywords
significant coefficient
flag
context
block
coefficient
Prior art date
Application number
KR1020130005252A
Other languages
English (en)
Other versions
KR20130086169A (ko
Inventor
응우옌 응우옌
티안잉 지
다케 헤
Original Assignee
블랙베리 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 블랙베리 리미티드 filed Critical 블랙베리 리미티드
Publication of KR20130086169A publication Critical patent/KR20130086169A/ko
Application granted granted Critical
Publication of KR101455501B1 publication Critical patent/KR101455501B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

멀티레벨 시그니피컨스 맵(significace map)을 인코딩 또는 디코딩하기 위하여 비디오 데이터를 인코딩 및 디코딩하는 방법이 기재된다. 변환 유닛의 상이한 영역에서 중요 계수 플래그(significant coefficient flags)를 인코딩하는데 개별 컨텍스트 세트가 사용될 수 있다. 고정된 경우, 영역은 계수 그룹 경계에 의해 정의된다. 일 예에서, 상부 좌측 계수 그룹은 제1 영역이고 다른 계수 영역은 제2 영역이다. 동적인 경우, 영역은 계수 그룹 경계에 의해 정의되지만, 인코더 및 디코더는 각각의 계수 그룹이 속하는 영역을 동적으로 결정할 수 있다. 계수 그룹은 예를 들어 각각의 중요 계수 그룹 플래그가 추론되었는지의 여부에 기초하여 하나의 영역 또는 다른 영역에 할당될 수 있다.

Description

컨텍스트 세트 선택을 위한 방법 및 장치{METHODS AND DEVICES FOR CONTEXT SET SELECTION}
저작권 공고
본 문서 및 첨부된 자료의 개시물의 일부는 저작권에 대한 청구가 이루어지는 자료를 포함한다. 저작권 소유자는 이것이 특허청 파일 또는 기록에 나타나기 때문에 특허 문서 또는 특허 개시물 중의 어느 것에 의해 팩시밀리 재생에 대하여 반대할 수 없지만, 다른 저작권은 보유한다.
본 출원은 일반적으로 데이터 압축에 관한 것으로, 특히 시그니피컨스 맵(significance map)을 이용하여 비디오를 인코딩 및 디코딩하는 방법 및 장치에 관한 것이다.
데이터 압축이 다수의 컨텍스트에서 발생한다. 이는 정보를 효율적으로 저장, 송신 및 재생하기 위하여 통신 및 컴퓨터 네트워크에서 공통으로 사용된다. 이는 이미지, 오디오 및 비디오의 인코딩에서 특정한 애플리케이션을 찾는다. 비디오는 각 비디오 프레임에 요구되는 많은 양의 데이터 및 인코딩 및 디코딩이 종종 발생할 필요가 있는 속도 때문에 데이터 압축에 큰 문제를 제공한다. 비디오 인코딩을 위한 현재의 최신식 기술은 ITU-T H.264/AVC 비디오 코딩 표준이다. 이는 메인 프로파일, 베이스라인 프로파일 등을 포함하는 상이한 애플리케이션을 위한 다수의 상이한 프로파일을 정의한다. 차세대 비디오 인코딩 표준은 HEVC(high efficiency video coding)이라 불리우는 MPEG-IUT의 공동 시작을 통해 현재 개발되고 있다. 시작은 궁극적으로 MPEG-H라 불리우는 비디오 코딩 표준을 유발할 수 있다.
블록 기반 코딩 프로세스를 이용하는 H.264를 포함하는 이미지 및 비디오를 인코딩/디코딩하는 다수의 표준이 존재한다. 이들 프로세스에서, 이미지 또는 프레임은 블록, 일반적으로 4×4 또는 8×8로 분할되고, 블록은 스펙트럼으로 계수로 변환되고, 양자화되고, 엔트로피 인코딩된다. 많은 경우, 변환되는 데이터는 실제 픽셀 데이터가 아니지만 예측 동작을 따르는 잔여 데이터이다. 예측은 프레임/이미지 내의 인트라 프레임, 즉, 블록-대-블록, 또는 인터 프레임, 즉, 프레임 사이(움직임 예측이라 함)일 수 있다. MPEG-H는 또한 이들 특징을 갖는 것으로 예측된다.
잔여 데이터를 스펙트럼으로 변환하면, 이들 표준의 많은 것은 DCT(discrete cosine transform) 또는 그 임의의 변형의 사용을 규정한다. 그 결과적인 DCT 계수는 양자화기를 이용하여 양자화되어 양자화된 변환 도메인 계수 또는 인덱스를 생성한다.
양자화된 변환 도메인 계수의 블록 또는 매트릭스(때때로 "변환 유닛"이라 함)가 특정한 컨텍스트 모델을 이용하여 엔트로피 인코딩된다. H.264/AVC 및 MPEG-H에 대한 현재의 개발 동작에서, 양자화된 변환 계수는, (a) 변환 유닛에서 마지막 넌-제로 계수의 위치를 지시하는 마지막 중요 계수 위치를 인코딩하고, (b) 넌-제로 계수를 포함하는 (마지막 중요 계수 위치 이외의) 변환 유닛 내의 위치를 지시하는 시그니피컨스 맵을 인코딩하고, (c) 넌-제로 계수의 크기를 인코딩하고, 및 (d) 넌-제로 계수의 부호를 인코딩함으로써 인코딩된다. 양자화된 변환 계수의 인코딩은 종종 비트스트림 내의 인코딩 데이터의 30-80%를 차지한다.
변환 유닛은 일반적으로 N×N이다. 임의의 실시예에서, 16×4, 4×16, 8×32, 및 32×8 등의 비정사각형 사이즈를 포함하는 다른 사이즈가 가능하지만, 일반적인 사이즈는 4×4, 8×8, 16×16, 및 32×32를 포함한다. 시그니피컨스 맵 내의 심볼의 엔트로피 인코딩은 컨텍스트 모델에 기초한다. 4×4 또는 8×8 루마(luma) 또는 크로마(chroma) 블록 또는 변환 유닛(TU)의 경우에, 개별 컨텍스트는 TU 내의 각 계수 위치와 연관된다. 인코더 및 디코더는 시그니피컨스 맵의 인코딩 및 디코딩시 다수의 상이한 컨텍스트를 기록하고 검색한다. 더 큰 TU의 경우, 중요 플래그(significant flag)를 인코딩하기 위한 컨텍스트는 이웃 시그니피컨스 플래그의 값에 의존할 수 있다. 예를 들어, 플래그는 이웃 플래그의 값에 따라 4개 또는 5개의 컨텍스트로부터 선택된 컨텍스트를 가질 수 있다. 임의의 경우, TU 내의 특정 플래그 또는 TU의 서브 블록은 상부 좌측(DC) 위치 등의 위치에 기초한 컨텍스트를 가질 수 있다.
본 출원은 컨텍스트 적응 인코딩 또는 디코딩으로 시그니피컨스 맵을 인코딩 및 디코딩하는 방법 및 인코더/디코더를 기재한다. 인코더 및 디코더는 멀티레벨 시그니피컨스 맵을 사용한다. 적어도 하나의 경우에서, 멀티레벨 맵은 16×16 및 32×32 TU 등의 더 큰 변환 유닛과 함께 사용된다.
일 형태에서, 본 출원은 변환 유닛에 대한 중요 계수 플래그(significant coefficient flags)를 재구성함으로써 인코딩된 비디오의 비트스트림을 디코딩하는 방법으로서, 상기 변환 유닛은 블록의 시퀀스를 포함하고, 상기 비트스트림은 중요 계수 플래그의 세트를 인코딩하고, 각 세트는 각각의 블록에 대응하는 방법을 기재한다. 방법은, 중요 계수 플래그의 세트 중의 하나에 대하여, 중요 계수 플래그의 세트에 대응하는 블록의 변환 유닛 내의 위치에 기초하여 그 세트의 중요 계수 플래그를 디코딩하는데 사용되는 컨텍스트 세트를 선택하는 단계; 및 선택된 컨텍스트 세트를 이용하여 그 세트의 중요 계수 플래그를 디코딩하는 단계를 포함한다.
다른 형태에서, 본 출원은 변환 유닛에 대한 중요 계수 플래그(significant coefficient flags)를 재구성함으로써 인코딩된 비디오의 비트스트림을 디코딩하는 방법으로서, 상기 변환 유닛은 블록의 시퀀스를 포함하고, 상기 비트스트림은 중요 계수 플래그의 세트를 인코딩하고, 각 세트는 각각의 블록에 대응하는 방법을 기재한다. 방법은, 중요 계수 플래그의 세트 중의 하나에 대하여, 상기 세트에 대한 중요 계수 그룹 플래그를 결정하는 단계; 중요 계수 그룹 플래그가 비트스트림으로부터 디코딩되면 제1 컨텍스트 세트를 선택함으로써 그 세트의 중요 계수 플래그를 디코딩하는데 사용되는 컨텍스트 세트를 선택하고 중요 계수 그룹 플래그가 중요 계수 플래그의 적어도 2개의 이웃 세트의 중요 계수 그룹 플래그에 기초하여 결정되면 상이한 컨텍스트 세트를 선택하는 단계; 및 선택된 컨텍스트 세트를 이용하여 그 세트의 중요 계수 플래그를 디코딩하는 단계를 포함한다.
일 실시예에서, 결정하는 단계는 중요 계수 그룹 플래그가 1과 동일하다는 것을 결정하는 단계를 포함한다.
또 다른 실시예에서, 결정하는 단계는 1과 동일한 중요 계수 그룹 플래그를 갖는 중요 계수 플래그의 우측 이웃 세트 및 1과 동일한 중요 계수 플래그의 하부 이웃 세트에 기초하여 중요 계수 그룹 플래그가 1과 동일하다는 것을 추론하는 단계를 포함한다. 임의의 구현예에서, 이 방법은 또한 디코딩후에 그 세트가 모두 제로 계수를 포함하는지를 결정하는 단계, 및, 그러면, 중요 계수 플래그의 인접 세트의 중요 계수 그룹 플래그를 추론할지를 추후에 결정하는데 사용되도록 그 세트에 대한 중요 계수 그룹 플래그를 0으로 변경하는 단계를 포함한다.
또 다른 실시예에서, 결정하는 단계는, 중요 계수 플래그의 우측 이웃 세트가 0과 동일한 중요 계수 그룹 플래그 또는 0과 동일한 중요 계수 플래그의 하부 이웃 세트를 갖기 때문에 비트스트림으로부터 중요 계수 그룹 플래그를 디코딩하는 단계를 포함한다.
또 다른 실시예에서, 제1 컨텍스트 세트는 다수의 컨텍스트를 포함하고, 상기 제1 컨텍스트 세트를 선택하는 단계는 컨텍스트 인덱스 변수를 소정의 값으로 설정하는 단계를 포함하고, 상기 제2 컨텍스트 세트를 설정하는 단계는 컨텍스트 인덱스 변수를 소정의 값 + 컨텍스트의 수로 설정하는 단계를 포함한다.
또 다른 형태에서, 본 출원은 변환 유닛에 대한 중요 계수 플래그를 인코딩하여 중요 계수 플래그의 인코딩된 세트의 비트스트림을 생성함으로써 비디오를 인코딩하는 방법으로서, 상기 변환 유닛은 블록의 시퀀스를 포함하고, 중요 계수 플래그의 각 세트는 각각의 블록에 대응하는 방법을 기재한다. 방법은, 중요 계수 플래그의 세트 중의 하나에 대하여, 그 세트에 대한 중요 계수 그룹 플래그를 결정하는 단계; 중요 계수 그룹 플래그가 비트스트림으로의 삽입을 위해 인코딩되면 제1 컨텍스트 세트를 선택함으로써 그 세트의 중요 계수 플래그를 인코딩하는데 사용되는 컨텍스트 세트를 선택하는 단계; 중요 계수 그룹 플래그가 중요 계수 플래그의 적어도 2개의 이웃 세트의 중요 계수 그룹 플래그에 기초하여 결정되면 상이한 컨텍스트 세트를 선택하는 단계; 및 선택된 컨텍스트 세트를 이용하여 그 세트의 중요 계수 플래그를 인코딩하는 단계를 포함한다.
또 다른 형태에서, 본 출원은 이러한 인코딩 및 디코딩을 구현하도록 구성되는 인코더 및 디코더를 기재한다.
또 다른 형태에서, 본 출원은, 컴퓨터 실행가능 명령을 저장하는 비일시적 프로세서 판독가능 매체로서, 실행될 때 프로세서가 기재된 인코딩 또는 디코딩 방법을 수행하도록 구성하는 비일시적 프로세서 판독가능 매체를 기재한다.
다른 형태에서, 본 출원은 변환 유닛에 대한 중요 계수 플래그를 재구성함으로써 인코딩된 비디오의 비트스트림을 디코딩하는 방법으로서, 상기 변환 유닛은 블록의 시퀀스를 포함하고, 상기 비트스트림은 중요 계수 플래그의 세트를 인코딩하고, 각 세트는 각각의 블록에 대응하는 방법을 기재한다. 방법은, 제1 블록에 대응하는 중요 계수 플래그의 세트에 대하여, 상기 제1 블록의 우측에 있는 블록과 관련된 중요 계수 그룹 플래그 및 상기 제1 블록의 하부에 있는 블록과 관련된 중요 계수 그룹 플래그에 기초하여 그 세트의 중요 계수 플래그를 디코딩하는데 사용되는 복수의 컨텍스트 세트로부터 컨텍스트 세트를 선택하는 단계; 및 상기 선택된 컨텍스트 세트를 이용하여 상기 세트의 중요 계수 플래그를 디코딩하는 단계를 포함한다.
또 다른 형태에서, 본 출원은 변환 유닛에 대한 중요 계수 플래그를 인코딩하여 중요 계수 플래그의 인코딩된 세트의 비트스트림을 생성함으로써 비디오를 인코딩하는 방법으로서, 상기 변환 유닛은 블록의 시퀀스를 포함하고, 중요 계수 플래그의 각 세트는 각각의 블록에 대응하는 방법을 기재한다. 방법은, 제1 블록에 대응하는 중요 계수 플래그의 세트에 대하여, 상기 제1 블록의 우측에 있는 블록과 관련된 중요 계수 그룹 플래그 및 상기 제1 블록의 하부에 있는 블록과 관련된 중요 계수 그룹 플래그에 기초하여 상기 세트의 중요 계수 플래그를 인코딩하는데 사용되는 복수의 컨텍스트 세트로부터 컨텍스트 세트를 선택하는 단계; 및 상기 선택된 컨텍스트 세트를 이용하여 그 세트의 중요 계수 플래그를 인코딩하는 단계를 포함한다.
본 출원의 다른 형태 및 특징은 첨부된 도면을 참조하여 다음의 예의 설명을 통해 당업자에 의해 이해될 것이다.
본 출원의 실시예를 나타내는 첨부된 도면을 참조하여 설명한다.
도 1은 비디오를 인코딩하는 인코더의 블록도.
도 2는 비디오를 디코딩하는 디코더의 블록도.
도 3은 16×16 변환 유닛에 대한 멀티레벨 스캔 순서의 예를 나타내는 도면.
도 4는 정의된 대각선을 이용하여 2개의 고정 영역으로의 16×16 변환 유닛의 분할을 나타내는 도면.
도 5는 정의된 대각선을 이용하여 2개의 고정 영역으로의 32×32 변환 유닛의 분할을 나타내는 도면.
도 6은 컨텍스트 세트를 선택하는 영역으로의 16×16 변환 유닛의 계수 그룹 기반 분할을 나타내는 도면.
도 7은 연속적인 계수 그룹으로 분할된 예시적인 변환 유닛 및 이들 계수 그룹에 대한 예시적인 중요 계수 그룹 플래그를 나타내는 도면.
도 8은 도 7의 예에 기초한 영역으로의 16×16 변환 유닛의 동적으로 결정된 분할의 예를 나타내는 도면.
도 9는 추론 정정을 갖는 도 7의 예를 나타내는 도면.
도 10은 도 9의 예에 기초한 영역으로의 변환 유닛의 동적 분할을 나타내는 도면.
도 11은 시그니피컨스 맵을 인코딩하는 예시적인 방법의 플로우챠트.
도 12는 인코딩된 데이터의 비트스트림으로부터 시그니피컨스 맵을 재구성하는 예시적인 방법의 플로우챠트.
도 13은 인코더의 예시적인 실시예의 간략화된 블록도.
도 14는 디코더의 예시적인 실시예의 간략화된 블록도.
유사한 참조 번호는 상이한 도면에서 유사한 구성요소를 지칭하는데 사용된다.
다음의 설명에서, 임의의 예시적인 실시예가 비디오 코딩을 위한 H.264 표준 및 개발중인 MPEG-H 표준을 참조하여 설명한다. 당업자는 본 출원이 H.264/AVC 또는 MPEG-H에 제한되지 않고 가능한 미래 표준, 멀티뷰 코딩 표준, 스케일러블 비디오 코딩 표준 및 재구성가능한 비디오 코딩 표준을 포함하는 다른 비디오 코딩/디코딩 표준에 적용가능함을 이해할 것이다.
다음의 설명에서, 비디오 또는 이미지를 참조할 때, 프레임, 픽쳐, 슬라이스, 타일 및 사각 슬라이스 그룹 등의 용어는 혼용될 수 있다. 당업자는, H.264 표준의 경우, 프레임이 하나 이상의 슬라이스를 포함할 수 있다는 것을 인식할 것이다. 소정의 인코딩/디코딩 동작은 적용가능한 이미지 또는 비디오 코딩 표준의 특정 요구사항 또는 용어에 따라, 프레임별로 수행되고, 일부는 슬라이스 별로 수행되고, 일부는 픽쳐별로 수행되고, 일부는 타일별로 수행되고, 일부는 사각 슬라이스 그룹별로 수행될 수 있다는 것을 인식할 것이다. 임의의 특정한 실시예에서, 적용가능한 이미지 또는 비디오 코딩 표준은 후술하는 동작이 경우에 따라 프레임 및/또는 슬라이스 및/또는 픽쳐 및/또는 타일 및/또는 사각 슬라이스 그룹과 관련하여 수행되는지를 결정할 수 있다. 따라서, 당업자는 본 개시물에 비추어, 여기에 기재된 특정 동작 또는 프로세스 및 프레임, 슬라이스, 픽쳐, 타일, 사각 슬라이스 그룹에 대한 특정한 참조는 프레임, 슬라이스, 픽쳐, 타일, 사각 슬라이스 그룹 또는 주어진 실시예에 대한 것 중의 일부 또는 모두에 적용될 수 있다. 이것은 이하의 설명에 비추어 명백한 바와 같이 변환 유닛, 코딩 유닛, 코딩 유닛의 그룹 등에 적용된다.
본 출원은 시그니피컨스 맵을 인코딩하고 디코딩하는 예시적인 프로세스 및 장치를 기재한다. 시그니피컨스 맵은 계수의 변환 유닛 또는 정의 유닛(예를 들어 몇개의 변환 유닛, 변환 유닛의 일부 또는 코딩 유닛)에 맵핑 또는 대응하는 블록, 매트릭스 또는 플래그의 그룹이다. 각각의 플래그는 변환 유닛 또는 특정 유닛 내의 대응 위치가 넌-제로 계수를 포함하는지의 여부를 지시한다. 기존의 표준에서, 이들 플래그는 중요 계수 플래그라 할 수 있다. 기존의 표준에서, 계수당 하나의 플래그가 존재하고, 플래그는, 대응하는 계수가 제로이면 제로이고 대응하는 계수가 넌-제로이면 1로 설정되는 비트이다. 여기에 사용되는 용어"시그니피컨스 맵"은 이하의 설명으로부터 이해되는 바와 같이 변환 유닛에 대한 중요 계수 플래그의 매트릭스 또는 정렬 세트 또는 애플리케이션의 컨텍스트로부터 명백한 계수의 정의 유닛을 지칭하는 것으로 의도된다.
다음의 설명을 비추어 보면, 멀티레벨 인코딩 및 디코딩 구조는 소정의 상황에서 적용될 수 있고, 이들 상황은 비디오 콘텐츠 타입(시퀀스, 픽쳐 또는 슬라이스 헤드로 식별되는 자연 비디오 또는 그래픽)과 같은 사이드 정보로부터 결정될 수 있다. 예를 들어, 2레벨은 자연 비디오에 사용되고, 3레벨은 (일반적으로 더 드문) 그래픽에 사용될 수 있다. 또 다른 가능성은 시퀀스, 픽쳐, 또는 슬라이스 헤더 중의 하나 내의 플래그를 제공하여 구조가 1, 2, 3 레벨을 갖는지를 지시하여 본 콘텐츠에 대한 가장 적절한 구조를 선택할 유연성을 인코더에 허용하는 것이다. 또 다른 실시예에서, 플래그는 레벨의 수와 연관될 수 있는 콘텐츠 타입을 나타낼 수 있다. 예를 들어, 콘텐츠 타입"그래픽"은 3레벨을 포함할 수 있다.
본 출원은 용어"계수 그룹" 및 "중요 계수 플래그의 세트"를 혼용할 수 있다. 이들 용어는 동일한 의미를 갖는 것으로 의도된다.
도 1을 참조하면, 비디오를 인코딩하는 인코더(10)의 블록도가 도시된다. 도 2를 참조하면, 비디오를 디코딩하는 디코더(50)의 블록도가 도시된다. 여기에 기재된 인코더(10) 및 디코더(50)는 각각 하나 이상의 처리 소자 및 메모리를 포함하는 애플리케이션 특정 또는 범용 컴퓨팅 장치 상에서 구현될 수 있다. 인코더(10) 또는 디코더(50)에 의해 수행되는 동작은 경우에 따라 예를 들어 애플리케이션 특정 집적 회로 또는 범용 프로세서에 의해 실행가능한 저장된 프로그램 명령에 의해 구현될 수 있다. 장치는 예를 들어 기본 장치 기능을 제어하는 오퍼레이팅 시스템을 포함하는 추가의 소프트웨어를 포함할 수 있다. 인코더(10) 또는 디코더(50)가 구현될 수 있는 장치 및 플랫폼의 범위는 다음의 설명을 유념한 당업자에 의해 인식될 것이다.
인코더(10)는 비디오 소스(12)를 수신하고, 인코딩된 비트스트림(14)을 생성한다. 디코더(50)는 인코딩된 비트스트림(14)을 수신하고 디코딩된 비디오 프레임(16)을 출력한다. 인코더(10) 및 디코더(50)는 다수의 비디오 압축 표준에 따라 동작하도록 구성될 수 있다. 예를 들어, 인코더(10) 및 디코더(50)는 H.264/AVC를 따를 수 있다. 다른 실시예에서, 인코더(10) 및 디코더(50)는 MPEG-H와 같은 H.264/AVC 표준의 진화를 포함하는 다른 비디오 압축 표준을 따를 수 있다.
인코더(10)는 공간 예측기(21), 코딩 모드 선택기(20), 변환 프로세서(22), 양자화기(24) 및 엔트로피 인코더(26)를 포함한다. 당업자에 의해 인식되는 바와 같이, 코딩 모드 선택기(20)는 대상 프레임/슬라이스가 I, P 또는 B 타입인지 및 프레임/슬라이스 내의 특정 코딩 유닛(예를 들어, 매크로블록, 코딩 유닛, 등)이 인터 또는 인트라 코딩되는지간에 비디오 소스에 대한 적절한 코딩 모드를 결정한다. 변환 프로세서(22)는 공간 도메인 데이터에 대한 변환을 수행한다. 특히, 변환 프로세서(22)는 블록 기반 변환을 적용하여 공간 도메인 데이터를 공간 성분으로 변환한다. 예를 들어, 많은 실시예에서, DCT(discrete cosine transform)가 사용된다. DST(discrete sine transform) 또는 다른 것 등의 다른 변환이 임의의 경우에 사용될 수 있다. 블록 기반 변환은 매크로블록 또는 코딩 유닛의 사이즈에 따라 코딩유닛, 매크로블록 또는 서브블록별로 수행된다. H.264 표준에서, 예를 들어, 일반적인 16×16 매크로블록은 16개의 4×4 변환 블록을 포함하고, DCT 프로세스는 4×4 블록에 대하여 수행된다. 임의의 경우, 변환 블록은 8×8일 수 있고, 이는 매크로블록당 4개의 변환 블록이 있다는 것을 의미한다. 다른 경우에, 변환 블록은 다른 사이즈일 수 있다. 임의의 경우, 16×16 매크로블록은 4×4 및 8×8 변환 블록의 비중첩 조합을 포함할 수 있다.
블록 기반 변환을 픽셀 데이터의 블록으로 적용하면 변환 도메인 계수의 세트를 유발한다. 이 컨텍스트 내의 "세트"는 계수가 계수 위치를 갖는 정렬된 세트이다. 임의의 경우, 변환 도메인 계수의 세트는 계수의 "블록" 또는 매트릭스로서 간주될 수 있다. 본 설명에서, "변환 도메인 계수의 세트" 또는 "변환 도메인 계수의 블록"의 구는 혼용되며 변환 도메인 계수의 정렬된 세트를 지시하는 것을 의미한다.
변환 도메인 계수의 세트는 양자화기(24)에 의해 양자화된다. 양자화된 계수 및 관련 정보는 엔트로피 인코더(26)에 의해 인코딩된다.
양자화된 변환 도메인 계수의 블록 또는 매트릭스는 "변환 유닛"(TU)이라 할 수 있다. 임의의 경우, TU는 넌-스퀘어, 예를 들어, NSQT(non-square quadrature transform)일 수 있다.
인트라 코딩 프레임/슬라이스(즉, 타입 I)는 다른 프레임/슬라이스를 참조하지 않고 인코딩된다. 즉, 이들은 시간 예측을 채용하지 않는다. 그러나, 인트라 코딩 프레임은 공간 예측기(21)에 의해 도 1에 도시된 바와 같이 프레임/슬라이스 내의 공간 예측에 의존한다. 즉, 특정 블록을 인코딩할 때, 블록 내의 데이터는 그 프레임/슬라이스에 대하여 이미 인코딩된 블록 내의 인근의 픽셀의 데이터와 비교될 수 있다. 예측 알고리즘을 이용하여, 블록의 소스 데이터는 잔여 데이터로 변환될 수 있다. 변환 프로세서(22)는 잔여 데이터를 인코딩한다. 예를 들어, H.264는 4×4 변환 블록을 위한 9개의 공간 예측 모드를 규정한다. 임의의 실시예에서, 9개의 모드의 각각은 블록을 독립적으로 처리하는데 사용될 수 있고, 레이트 왜곡 최적화는 최상의 모드를 선택하는데 사용된다.
H.264 표준은 또한 움직임 예측/보상의 사용을 규정하여 시간 예측의 이점을 취한다. 따라서, 인코더(10)는 역양자화기(28), 역변환 프로세서(30) 및 디블록킹 프로세서(32)를 포함하는 피드백 루프를 갖는다. 디블록킹 프로세서(32)는 디블록킹 프로세서 및 필터링 프로세서를 포함할 수 있다. 이들 소자는 디코더(50)에 의해 구현되는 디코딩 프로세스를 미러링하여 프레임/슬라이스를 재생한다. 프레임 스토어(34)는 재생된 프레임을 저장하는데 사용된다. 이 방식에서, 움직임 예측은 디코더(50)에서 재구성되는 프레임이 무엇인지에 기초하지만, 인코딩/디코딩에 수반되는 손실있는 압축 때문에 재구성된 프레임과는 다를 수 있는 본래의 프레임에 기초하지 않는다. 움직임 예측기(36)는 유사한 블록을 식별할 목적으로 현재의 프레임에 대한 비교를 위하여 소스 프레임/소스로서 프레임 스토어(34)에 저장된 프레임/슬라이스를 이용한다. 따라서, 움직임 예측이 적용되는 매크로 블록 또는 코딩 블록을 위하여, 변환 프로세서(22)가 인코딩하는 "소스 데이터"는 움직임 예측 프로세스에서 나오는 잔여 데이터이다. 이는, 예를 들어, 기준 프레임에 관한 정보, 공간 변위 또는 "움직임 벡터", 및 기준 블록 및 현재 블록 간의 차(있다면)를 나타내는 잔여 픽셀 데이터를 포함할 수 있다. 기준 프레임 및/또는 움직임 벡터에 관한 정보는 변환 프로세서(22) 및/또는 양자화기(24)에 의해 처리되지 않을 수 있지만, 대신에, 양자화된 계수와 함께 비트스트림의 일부로서 인코딩을 위한 엔트로피 인코더(26)로 공급될 수 있다.
당업자는 비디오 인코더를 구현하는 세부사항 및 가능한 변형을 인식할 것이다.
디코더(50)는 엔트로피 디코더(52), 역양자화기(54), 역변환 프로세서(56), 공간 보상기(57) 및 디블록킹 프로세서(60)를 포함한다. 디블록킹 프로세서(60)는 디블록킹 및 필터링 프로세서를 포함할 수 있다. 프레임 버퍼(58)는 움직임 보상의 적용에서 움직임 보상기(62)에 의해 사용될 재구성된 프레임을 공급한다. 공간 보상기(57)는 이전에 디코딩된 블록으로부터 특정 인트라 코딩 블록에 대한 비디오 데이터를 회복하는 동작을 나타낸다.
비트스트림(14)이 엔트로피 디코더(52)에 의해 수신되고 디코딩되어 양자화된 계수를 회복한다. 사이드 정보는 또한 엔트로피 디코딩 프로세스시 회복될 수 있고, 그 일부는 적용가능하다면, 움직임 보상에 사용하기 위하여 움직임 보상 루프로 공급될 수 있다. 예를 들어, 엔트로피 디코더(52)는 인터 코딩 매크로블록을 위한 기준 프레임 정보 및/또는 움직임 벡터를 회복할 수 있다.
양자화된 계수는 역양자화기(54)에 의해 역양자화되어 변화 도메인 계수를 생성하고, 이 변환 도메인 계수는 역변환 프로세서(56)에 의해 역변환되어 "비디오 데이터"를 재생성한다. 인트라 코딩 매크로블록 또는 코딩 유닛 등의 임의의 경우, 재생성된 "비디오 데이터"는 프레임 내의 이전에 디코딩된 블록에 대하여 공간 보상에 사용하기 위한 잔여 데이터이다. 공간 보상기(57)는 잔여 데이터로부터 비디오 데이트를 생성하고 이전에 디코딩된 블록으로부터 픽셀 데이터를 생성한다. 인터 코딩 매크로블록 또는 코딩 유닛 등의 다른 경우에, 역변환 프로세서(56)로부터 재생성된 "비디오 데이터"는 상이한 프레임으로부터 기준 블록에 대하여 움직임 보상에 사용하기 위한 잔여 데이터이다. 공간 및 이동 보상은 여기에서 "예측 동작"이라 할 수 있다.
움직임 보상기(62)는 특정 인터 코딩 매크로블록 또는 코딩 유닛을 위해 특정된 프레임 버퍼(58) 내에 기준 블록을 위치시킨다. 이것은 인터 코딩 매크로블록 또는 코딩 유닛을 위해 특정된 기준 프레임 정보 및 움직임 벡터에 기초한다. 그 후, 잔여 데이터와의 조합을 위하여 기준 블록 픽셀 데이터를 공급하여 그 코딩 유닛/매크로블록을 위해 재구성된 비디오 데이터에 도달한다.
디블록킹/필터링 프로세스는 디블록킹 프로세서(60)에 의해 지시된 바와 같이 재구성된 프레임/슬라이스에 적용될 수 있다. 디블록킹/필터링 후에, 프레임/슬라이스는 예를 들어 디스플레이 장치 상의 디스플레이를 위하여 디코딩된 비디오 프레임(16)으로서 출력된다. 컴퓨터, 셋탑 박스, DVD, 또는 블루레이 플레이어 등의 비디오 재생 머신 및/또는 모바일 핸드헬드 장치는 출력 장치 상에 디스플레이하기 전에 메모리 내에 디코딩된 프레임을 버퍼링할 수 있다.
MPEG-H 순응 인코더 및 디코더는 이들 동일 또는 유사한 특징 중의 많은 것을 가질 것으로 기대된다.
시그니피컨스 맵 인코딩
상술한 바와 같이, 양자화된 변환 도메인 계수의 블록 또는 세트의 엔트로피 인코딩은 양자화된 변환 도메인 계수의 블록 또는 세트에 대한 시그니피컨스 맵(예를 들어, 중요 계수 플래그의 세트)을 인코딩하는 것을 포함한다. 시그니피컨스 맵은 넌-제로 계수가 (마지막 위치 이외의) 어떤 위치에서 나타나는지를 지시하는 블록의 바이너리 맵핑이다. 시그니피컨스 맵은 (수직, 수평, 대각선, 지그재그, 또는 임의의 다른 스캔 순서일 수 있는) 스캔 순서에 따라 벡터로 변환될 수 있다. 스캔은 일반적으로 "역"순으로 수행한다, 즉, 마지막 중요 계수로 시작하여 [0, 0]에서의 상부 좌측 코너의 플래그에 도달될 때까지 역방향으로 중요 맵을 통해 역으로 작동한다. 본 설명에서, 용어 "스캔 순서"는 경우에 따라 플래그, 계수 또는 그룹이 처리되는 순서를 의미하는 것으로 의도되며 구어체로 "역 스캔 순서"라 할 수 있는 순서를 포함할 수 있다.
각 중요 계수 플래그는 적용가능한 컨텍스트 적응 코딩 방식을 이용하여 엔트로피 인코딩된다. 예를 들어, 많은 애플리케이션에서, CABAC(context-adaptive binary arithmetic coding) 방식이 사용될 수 있다.
16×16 및 32×32 시그니피컨스 맵으로, 중요 컨텍스트는 (대부분) 이웃 중요 계수 플래그 값에 기초한다. 16×16 및 32×32 시그니피컨스 맵에 사용되는 컨텍스트 중에서, [0, 0]에서 비트 위치 및 (임의의 예시적인 구현예에서) 이웃 비트 위치에 전용인 소정의 컨텍스트가 존재하지만, 중요 계수 플래그의 대부분은 이웃 중요 계수 플래그의 누적 값에 의존하는 4개 또는 5개의 컨텍스트 중의 하나를 취한다. 이 경우, 중요 계수 플래그에 대한 정확한 컨텍스트의 결정은 이웃 위치(일반적으로 5개의 위치이지만, 임의의 경우 더 많거나 작을 수 있다)에서의 중요 계수 플래그의 값을 결정하고 합산하는 것에 의존한다.
이전의 작업에서, 본 출원인은 멀티레벨 시그니피컨스 맵의 사용을 설명하고, 여기서, 변환 유닛의 시그니피컨스 맵은 계수 그룹으로 분할되고, 각각의 계수 그룹은 미리 정의된 순서 또는 시퀀스로 인코딩된다. (블록/서브블록일 수 있는) 각각의 계수 그룹 내에서, 중요 계수 플래그는 스캔 순서로 처리된다. 각각의 계수 그룹은 계수 그룹이 넌-제로 중요 계수 플래그를 포함하는 것으로 간주될 수 있는지를 지시하는 중요 계수 그룹 플래그와 연관된다. 발명의 명칭이 "Multi-level Significance Maps for Encoding and Decoding"이고 2011년 11월 1일에 제출된 미국 특허 출원 번호 13/286,336 및 발명의 명칭이 "Multi-level Significance Map Scanning"이고 2011년 11월 19일 제출된 미국 특허 출원 번호 61/561,872를 참조할 수 있다. 이들 출원의 내용은 참고로 여기에 포함된다.
상술한 출원에 기재된 기술 중의 하나는 단일 패스 스캔 프로세스, 즉, 그룹 기반 또는 멀티레벨 스캔 순서의 구현이다. 도시된 멀티레벨 대각선 스캔 순서를 갖는 16×16 변환 유닛(100)을 나타내는 도 3을 참조한다. 변환 유닛(100)은 16개의 연속적인 4×4 계수 그룹 또는 "중요 계수 플래그의 세트"로 분할된다. 각각의 계수 그룹 내에서, 대각선 스캔 순서는 전체 변환 유닛(100)에 걸쳐서라기보다 그룹 내에 적용된다. 세트 또는 계수 그룹은 이 예시적인 구현예에서 대각선 스캔 순서인 스캔 순서로 처리된다. 이 예의 스캔 순서는 "역"스캔 순으로 도시되며, 즉, 스캔 순서는 좌측 하향 대각선 방향으로 하부 우측 계수 그룹으로부터 상부 좌측 계수 그룹을 향하여 진행하는 것으로 도시된다. 임의의 구현예에서, 동일한 스캔 순서가 다른 방향으로 정의될 수 있고, 즉, 우측 상향 대각선 방향의 진행은 인코딩 또는 디코딩시의 적용될 때 "역" 스캔 순으로 적용될 수 있다.
멀티레벨 시그니피컨스 맵의 사용은 어떤 계수 그룹이 넌-제로 중요 계수 플래그를 포함할 것으로 기대될 수 있는지 및 어떤 계수 그룹이 모든 제로 중요 계수 플래그를 포함할지를 나타내는 L1 또는 더 높은 레벨 시그니피컨스 맵의 인코딩을 수반한다. 넌-제로 중요 계수 플래그를 포함하는 것으로 기대될 수 있는 계수 그룹은 인코딩된 자신의 중요 계수 플래그를 갖지만, (이들이 적어도 하나의 넌-제로 중요 계수 플래그를 포함하는 것으로 추정되기 때문에, 이들이 특별한 경우의 예외 때문에 인코딩되는 그룹이 아니면)모든 제로 중요 계수 플래그를 포함하는 계수 그룹은 인코딩되지 않는다. 각각의 계수 그룹은 (그 계수 그룹이 마지막 중요 계수, 상부 좌측 그룹 등을 포함하는 그룹 등의 추청 값의 플래그를 갖는 특별한 경우가 적용되지 않으면) 중요 계수 그룹 플래그를 갖는다.
계수 그룹 플래그는 계수 그룹의 콘텐츠에 기초하여, 즉, 계수 그룹 내의 임의의 넌-제로 계수가 있는지 또는 계수 그룹 플래그가 추론되는지에 기초하여 결정된다. 예를 들어, 적어도 하나의 실시예에서, 계수 그룹 내에 넌-제로 계수가 없으면, 계수 그룹 플래그는 제로로 설정되고, 계수 그룹 내의 적어도 하나의 넌-제로 계수가 존재하면 1로 설정되지만, 임의의 경우에 비트를 절약하기 위하여, 계수 그룹 플래그는 인코딩 및 디코딩되지 않고, 오히려 이웃 계수 그룹 플래그의 값에 기초하여 추론된다. 예를 들어, 일 실시예에서, 더 낮은 이웃 계수 그룹 플래그 및 우측 이웃 계수 그룹 플래그가 1과 동일하면 계수 그룹 플래그는 1로 추론된다.
중요 계수 플래그의 컨텍스트 기반 처리
중요 계수 플래그의 인코딩 및 디코딩은 컨텍스트 기반이다. 즉, 인코딩 및 디코딩은 인코딩된 빈(bin)이 MPS(most-probable symbol)인 추정 확률을 결정하는 것에 의존한다. 추정된 확률의 결정은 현재 심볼에 대한 컨텍스트의 결정에 의존한다. 일반적으로, 컨텍스트 기반 인코더 및 디코더는 특정한 타입의 데이터에 대하여 컨텍스트가 어떻게 결정되는지를 지정하고 컨텍스트의 세트를 정의하는 컨텍스트 모델에 따라 동작한다.
중요 계수 플래그의 경우, 컨텍스트 모델은 ([0, 0]에서의 DC 값과 같은 특정한 예외를 제외하고) 이웃 중요 계수 플래그의 값에 의한 컨텍스트 결정에 기초한다. 예를 들어, 16×16 및 32×32 변환 유닛의 사이즈로, 중요 계수 플래그 "x"의 컨텍스트는 다음과 같이 5개의 이웃 플래그에 의존한다.
x o o
o o
o
5개의 이웃 플래그의 값의 누적합은 위치(x)에서의 중요 계수 플래그에 대한 컨텍스트를 지시하는데 사용될 수 있다. 따라서, 컨텍스트가 6개 까지 존재할 수 있다. 임의의 경우에, 컨텍스트의 수는 예를 들어 4로 정해질 수 있다. 예시적인 컨텍스트 결정 모델은 다음과 같다.
컨텍스트_x(합_이웃_플래그+1)/2
상기 컨텍스트_x는 중요 계수 플래그를 인코딩하기 위한 "컨텍스트 세트"로의 컨텍스트 인덱스이다. 즉, 특정한 중요 계수 플래그를 인코딩하기 위한 컨텍스트를 결정할 때, 컨텍스트는 컨텍스트 세트에 정의된 컨텍스트 중의 하나로부터 선택된다.
임의의 예시적인 구현예에서, 1보다 많은 컨텍스트 세트가 중요 계수 플래그를 인코딩하기 위한 모델에 의해 정의될 수 있다. 예를 들어, 인코더 및 디코더는 변환 유닛의 제1 영역에 있는 중요 계수 플래그를 인코딩하기 위한 하나의 컨텍스트 세트 및 변환 유닛의 제2 영역(또는 제3 영역 등)에 있는 중요 계수 플래그를 인코딩하기 위한 제2 개별 컨텍스트 세트를 사용할 수 있다.
상기 예의 동작에서, 제2 세트로부터의 컨텍스트는 컨텍스트 4, 5, 6, 7을 포함하고, 제2 영역 내의 특정 중요 계수 플래그에 대한 적절한 컨텍스트의 선택은 다음의 컨텍스트 결정 모델에 기초할 수 있다.
오프셋=0
영역=영역 2이면, 오프셋=4를 설정
합_이웃_플래그=0 컨텍스트_x=0+오프셋
합_이웃_플래그=1 컨텍스트_x=1+오프셋
합_이웃_플래그=2 컨텍스트_x=2+오프셋
합_이웃_플래그≥3 컨텍스트_x=3+오프셋
임의의 현재 구현예에서, 변환 유닛은 고정 대각선 정의를 이용한 컨텍스트 결정의 목적으로 제1 영역 및 제2 영역으로 파티션(partition)된다. 예를 들어, 16×16 변환 유닛으로, 대각선은 x+y=4에 의해 정의된다. 이것은 예시적인 16×16 변환 유닛(110)을 나타내는 도 4에 도시된 영역을 야기한다. 예시적인 변환 유닛(110)은 x+y<4 대각선 정의에 따라 분할된 제1 영역(112) 및 제2 영역(114)을 포함한다. 즉, x+y<4에 대한 모든 중요 계수 플래그가 제1 영역(112) 내에 있다. 이 경우, [0, 0]에서의 DC 값은 자신의 컨텍스트를 갖는다. 어떤 의미에서, DC 위치는 컨텍스트 세트 내에 단일 컨텍스트가 있는 "제3 영역"으로 간주될 수 있다.
32×32 변환 유닛(120)의 예를 나타내는 도 5를 참조한다. 변환 유닛(120)은 x+y<8의 대각선 정의에 따라 제1 영역(122) 및 제2 영역(124)으로 분할 또는 파티션된다. 즉, DC 중요 계수 플래그(126)를 제외하고, x+y<8에 대한 모든 중요 계수 플래그는 제1 영역(122) 내에 있고, 이들 중요 계수 플래그는 제1 컨텍스트 세트를 이용하여 인코딩된다. x+y≥8에 대한 모든 다른 중요 계수 플래그는 제2 세트 내에 있고 제2 컨텍스트 세트를 이용하여 인코딩된다. DC 중요 계수 플래그(126)는 자신의 컨텍스트를 이용하여 인코딩된다. 이런 의미에서, DC 위치는 제3 영역으로 간주될 수 있다.
본 출원은 변환 유닛의 중요 계수 플래그를 인코딩하기 위한 컨텍스트 세트를 선택하는 다른 접근법을 제공한다.
제1 실시예에서, 상술한 대각선 정의 예처럼 컨텍스트 세트 선택은 고정된다. 그러나, 제1 실시예에서, 제1 영역은 대각선에 의해 정의되지 않는다. 대신에, 제1 영역은 계수 그룹 정의에 대응하도록 정의된다. 이 방식으로, 컨텍스트 세트 선택은 계수 그룹 기반이고, 이는 멀티레벨 시그니피컨스 맵 실시예에서 중요 계수 인코딩의 모듈성을 개선한다. 다수의 영역이 정의될 수 있고, 이들 영역의 각각은 계수 그룹 경계에 의해 한계가 정해진다. DC 위치는 영역으로서 간주될 수 있다.
도 6은 계수 그룹 정의에 기초하여 컨텍스트 영역으로 분할 또는 파티션된 16×16 변환 유닛(200)의 예를 나타낸다. 이 예에서, 제1 영역(202)은 DC 중요 계수 플래그(206)를 제외하고 (역스캔 순으로 마지막 계수 그룹으로 간주될 수 있는) 제1 계수 그룹 내에 모든 중요 계수 플래그를 포함한다. 즉, 제1 영역(202)은 [0, 0]을 제외하고, x<4 및 y<4에 대한 모든 중요 계수 플래그를 포함한다. 변환 유닛(200)의 다른 계수 그룹 내의 모든 중요 계수 플래그는 제2 영역(204) 내에 있다. 제2 영역(202) 내의 중요 계수 플래그는 제1 컨텍스트 세트를 이용하여 인코딩되지만, 제2 영역(204) 내의 중요 계수 플래그는 제2 컨텍스트 세트를 이용하여 인코딩된다. 하나의 예시적인 구현예에서, 인코더 및/또는 디코더는 플래그의 x 좌표 및 y 좌표가 각각 변환 유닛의 상부 좌측 코너의 4개의 위치 내에 있는지를 결정함으로써 중요 계수 플래그가 제1 영역 내, 즉, 상부 좌측 계수 그룹 내에 있는지를 결정한다.
다른 변형예에서, 제1 영역은 1보다 많은 계수 그룹을 포함할 수 있다. 예를 들어, 32×32 변환 유닛에서, 계수 그룹이 4×4이면, 제1 영역은 변환 유닛의 상부 좌측 코너에 3개 또는 4개의 계수 그룹을 포함할 수 있다. 또는, 다른 예에서, 16×16 변환 유닛(200)은 제1 영역(202) 내에 3개 이상의 계수 그룹을 포함할 수 있다. 본 설명을 비추어 다른 변형예가 인식될 것이다.
이 제1 실시예에서, 인코더 및 디코더는 중요 계수 플래그가 속하는 계수 그룹에 기초하여 선택된 컨텍스트 세트를 이용하여 그들의 컨텍스트를 결정함으로써 중요 계수 플래그를 처리한다. 변환 유닛 내의 계수 그룹의 위치는 선택된 컨텍스트 세트를 결정한다. 즉, 변환 유닛 내의 각 계수 그룹이 소정의 컨텍스트 세트와 연관되고, 즉, 각각의 계수 그룹이 정의된 영역 중의 하나의 멤버이고, 각각의 영역은 연관된 컨텍스트 세트를 갖는다.
제2 실시예에서, 영역은 여전히 계수 그룹 기반이지만, 제1 및 제2 영역 간의 경계는 동적으로 결정된다. 이 제2 실시예의 일 예에서, 분할은 특정 계수 그룹의 계수 그룹 플래그가 1로 추론되는지의 여부에 기초한다. 즉, 계수 그룹은 우측 및 하부 이웃 계수 그룹의 계수 그룹 플래그에 기초하여 영역에 할당된다.
중요 계수 플래그의 4×4 연속 세트, 즉, 계수 그룹으로 분할된 16×16 변환 유닛(220)을 나타내는 도 7을 참조한다. 계수 그룹은 도시된 x-y 좌표(x=0, ..., 3; y=0, ..., 3)를 이용하여 인덱싱될 수 있다. 계수 그룹의 각각에 대하여 결정된 중요 계수 그룹 플래그(SCG 플래그)는 각각의 계수 그룹 내의 도면에 도시된다.
상기 설명으로부터 인식되는 바와 같이, 변환 유닛(220)은 계수 그룹 중의 하나 내에 LSC(last significant coefficient)를 포함한다. 이 예의 목적으로, LSC는 계수 그룹 [2, 2] 내에 있는 것으로 추정된다. 스캔 순서로 계수 그룹 [2, 2] 이전의 모든 그룹은 제로를 반드시 포함한다.
계수 그룹 [2, 2]에 대한 중요 계수 그룹 플래그는 적어도 하나의 넌-제로 계수를 포함하는 것을 의미하는 LSC를 포함하기 때문에 반드시 1이다.
도시된 예에서, 역스캔 순서의 다음의 계수 그룹은 모두 제로 계수를 포함하는 계수 그룹 [1, 3]이다. 따라서, 그 중요 계수 그룹 플래그는 0이다.
역스캔 순서의 다음 계수 그룹, 그룹 [3, 0], [2, 1] 및 [1, 2]은 모두 적어도 하나의 넌-제로 계수를 포함한다. 따라서, 이들의 각각은 1의 중요 계수 그룹 플래그를 갖는다. 계수 그룹 [0, 3]은 모두 제로 계수를 포함하여 그 중요 계수 그룹 플래그는 0으로 결정된다.
역스캔 순서의 다음의 그룹은 계수 그룹 [2, 0]이다. 그 우측 이웃 계수 그룹 및 그 좌측 이웃 계수 그룹은 SCG플래그=1을 갖기 때문에, 계수 그룹 [2, 0] 내에 임의의 넌-제로 계수가 있는지의 여부에 관계없이 계수 그룹 [2, 0]에 대한 중요 계수 그룹 플래그는 1로 추론되거나 가정된다. 계수 그룹 [1, 1]에 대하여 동일한 추론이 이루어진다. 계수 그룹 [0, 2]은 제로의 중요 계수 그룹 플래그를 갖는 더 낮은 이웃을 가져, 추론이 이루어지지 않는다. 계수 그룹 [0, 2]의 경우, 넌-제로 계수를 포함하여 그 중요 계수 그룹 플래그는 1로 설정된다. 역스캔 순서의 모든 나머지 계수 그룹은 1로 추론되는 중요 계수 그룹 플래그를 갖는다.
추론된 중요 계수 그룹 플래그의 임의의 것은 비트스트림으로 인코딩되거나 디코더에서 디코딩될 필요 없다. 이들은 1과 동일한 것으로 가정허고, 이들 중의 하나가 모두 제로 계수를 포함하더라도, 인코더 및 디코더는 이들 계수 그룹의 중요 계수 플래그를 자동으로 인코딩한다.
도 7에 도시된 변환 유닛(220)에 기초한 제2 실시예의 예에 대한 동적 영역 분할을 나타내는 도 8을 참조한다. 제2 실시예에서, 중요 계수 플래그를 인코딩하는 (제1 영역에 속하는 계수 그룹 내의 심볼 "1"에 의해 지시된) 제1 영역은 중요 계수 그룹 플래그가 1로 추론되는 이들 계수 그룹을 포함하는 것으로 정의된다. (제2 영역에 속하는 계수 그룹 내의 심볼 "2"에 의해 지시된) 제2 영역은 추론되지 않은 중요 계수 그룹을 갖는 이들 계수 그룹을 포함한다. 이들 그룹의 중요 계수 플래그가 인코딩되지 않기 때문에, 중요 계수 그룹 플래그가 제로인 이들 계수 그룹이 영역 내에 포함될 필요가 없음을 이해할 것이다. DC 위치(226)는 여전히 자신의 컨텍스트를 가질 수 있고, 따라서, 반드시 제1 영역의 일부로서 간주되지 않는다.
상기 설명으로부터, 제1 및 제2 영역은 계수 그룹 가장자리를 따라 경계를 갖지만, 그 위치는 논의가 되고 있는 변환 유닛의 콘텐츠에 의존하여 변환 유닛으로부터 변환 유닛으로 동적으로 변한다. 계수 그룹 경계를 따라 영역의 분리를 유지함으로써, 모듈 처리 및 코드 간략화의 임의의 효율이 달성될 수 있다. 경계의 동적 이동은 2개의 영역과 연관된 각각의 컨텍스트 세트가 실제 통계 데이터를 나타내는 확률 분포를 향해 수렴하여, 코딩 효율이 개선되는 레이트를 개선한다.
상기 영역 결정 프로세스를 구현하는 하나의 메카니즘은 그 우측 및 하부 이웃 계수 그룹의 중요 계수 그룹 플래그에 기초하여 각각의 계수 그룹을 영역에 할당하는 것이다. 즉, 우측 및 하부 이웃 계수 그룹의 중요 계수 그룹 플래그 중의 어느 것이 0과 동일하면, 영역에 속하는 계수의 그룹이 2개이고, 그렇지 않으면 영역에 속하는 계수 그룹이 하나이다. 상부 좌측 코너 계수 그룹은 항상 임의의 실시예에서 하나의 영역으로 분류된다.
이하, 제2 실시예의 변형 또는 개선으로서 간주될 수 있는 제3 실시예를 설명한다. 제3 실시예에서, 영역 간의 경계는 여전히 중요 계수 그룹이 1로 추론되는지의 여부에 기초하여 동적으로 결정되고, 경계는 계속 계수 그룹 경계를 따라 위치하지만, 제3 실시예는 추론이 정확한지를 평가하고 부정확한 추론의 재분류에 기초하여 나중의 계수 그룹의 카테고리를 조정하는 것을 포함한다.
예시적인 변환 유닛(250)을 나타내는 도 9를 참조한다. 이 경우, 다양한 계수 그룹에 대한 중요 계수 그룹 플래그의 결정은 도 7과 연관하여 상술한 바와 같이 발생한다. 그러나, 이 경우, 인코더 및 디코더는 추론이 정확한지를 평가한다. 예를 들어, 계수 그룹 [1, 1]은 모두 제로 계수를 포함할 수 있다. 비록 부정확한 추론 또는 가정에 의하더라도, 중요 계수 그룹 플래그가 1로 설정되기 때문에, 이들 계수는 실제로 비트스트림에서 인코딩되고 디코더에 의해 디코딩된다. 도 9에서, 이것은 "부정확한 추론(inferred incorrect)"이라 지시된다.
계수 그룹 [1, 1]에 대한 중요 계수 플래그를 디코딩할 때, 디코더는 추론이 부정확한지를 알지 못하고, 따라서, 추론된 중요 계수 그룹 플래그를 갖기 때문에 이 계수 그룹이 제1 영역의 일부인 것으로 이해한다. 따라서, 인코더 및 디코더는 계수 그룹 [1, 1]의 중요 계수 플래그를 인코딩 및 디코딩할 때 제1 영역과 연관된 컨텍스트 세트를 이용한다. 그러나, 후속의 계수 그룹을 처리하게 될 때, 인코더 및 디코더는 부정확한 추론을 알 수 있다. 예를 들어, 계수 그룹 [1, 0] 및 [0, 1]에 대한 중요 계수 그룹 플래그를 결정할 때, 1과 동일한 추론된 플래그를 실제로 이용하였고 그 중요 계수 플래그가 인코딩되었지만, [1, 1]에서의 이웃 계수 그룹이 0과 동일한 중요 계수 그룹 플래그를 갖는 것으로 간주할 수 있다. 도 9에 도시된 바와 같이, 계수 그룹 [1, 0] 및 [0, 1]은 자신이 적어도 하나의 넌-제로 계수를 포함한다는 사실에 기초하여 1로 설정된 자신의 중요 계수 그룹 플래그를 갖는다.
후속의 계수 그룹을 처리하기 위한 부정확한 추론의 "정정"은 계수 그룹을 영역에만 할당할 목적으로 추론을 정정하는 것에 제한될 수 있고, 또 다른 추론을 하는데 있어서 부정확한 추론에 의존할 수 있는 이들 후속의 계수 그룹에 대한 중요 계수 그룹을 실제로 결정할 목적으로 정정될 수 있다.
결과적으로, 추론이 중요 계수 그룹 플래그를 결정하는데 사용되는 계수 그룹의 수는 3으로 변경된다. 이것은 중요 계수 플래그를 인코딩하기 위한 컨텍스트 세트를 선택하는데 사용되는 영역의 형상에 영향을 준다. 도 10은 그 위에 지시된 제1 및 제2 영역을 갖는 변환 유닛(250)을 나타낸다. 영역을 형성하는 계수 그룹은 이 경우 연속적이거나 인접할 필요없다.
중요 계수 플래그를 인코딩하기 위한 컨텍스트 세트를 선택하는 프로세스의 제2 실시예를 채용하는 비디오를 인코딩하는 예시적인 방법(300)을 나타내는 도 11을 참조한다.
방법(300)은 계수 그룹에 대하여, 즉, 중요 계수 플래그의 세트에 대하여, 단계(302)에서 중요 계수 그룹 플래그가 추론되어야 하는지를 결정하는 것을 포함한다. 상술한 바와 같이, 이 예의 컨텍스트 모델은 우측 이웃 계수 그룹 및 하부 이웃 계수 그룹의 중요 계수 그룹 플래그가 1과 동일하면 중요 게수 그룹 플래그가 1로 추론되는 것을 제공한다. 그러면, 단계(304)에서, 현재 계수 그룹의 중요 계수 그룹 플래그는 1로 설정된다. 그렇지 않으면, 인코더는 계수 그룹 내의 데이터를 확인하여 단계(306)에 의해 지시되는 바와 같이 임의의 넌-제로 계수가 있는지를 결정한다. 현재 계수 그룹의 모든 중요 계수 플래그가 제로이면, 단계(308)에서 중요 계수 그룹 플래그는 제로로 설정된다. 단계(308)는 중요 계수 그룹 플래그를 인코딩하는 것을 포함한다. 그 후, 단계(310)에서, 인코더는 스캔 순서로 다음 계수 그룹으로 이동하고 프로세스를 시작하는 단계(302)로 복귀한다.
계수 그룹이 적어도 하나의 넌-제로 중요 계수 플래그를 포함하는 것을 발견하면, 단계(307)에서, 중요 계수 그룹 플래그는 1로 설정된다. 단계(307)는 또한 중요 계수 그룹 플래그를 인코딩하는 것을 포함한다.
중요 계수 그룹 플래그가 단계(304)에서 추론되면, 단계(314)에서 제1 컨텍스트 세트가 선택된다. 많은 수의 정의된 컨텍스트가 존재하고 제1 컨텍스트 세트가 소정 수의 정의된 컨텍스를 포함하는 실시예에서, 제1 컨텍스트 세트를 선택하는 것은 컨텍스트 인덱스를 제1 컨텍스트 세트 내의 정의된 컨텍스트 중의 소정의 컨텍스트로의 포인트로 결정함으로써 구현될 수 있다.
중요 계수 그룹 플래그가 단계(307)에서 계수 그룹 내에 넌-제로 계수가 있는지에 기초하여 결정되면, 단계(316)에서, 제2 계수 컨텍스트 세트가 선택된다. 임의의 구현예에서, 제2 컨텍스트 세트의 선택은 컨텍스트 인덱스 변수를 제2 컨텍스트 세트 내의 정의된 컨텍스트 중의 하나로의 포인트로 설정하는 것을 포함한다.
제1 컨텍스트 세트 또는 제2 컨텍스트 세트를 이용하든지 간에, 단계(318)에서, 선택된 컨텍스트 세트는 현재 컨텍스트 그룹의 중요 계수 플래그를 인코딩하는데 사용된다. 마지막 계수 그룹에 대하여, 이것은 자신의 할당된 컨텍스트를 이용하여 DC 중요 계수 플래그를 인코딩하는 것을 포함하고, 임의의 다른 이러한 플래그는 변환 유닛 내의 자신의 위치에 기초하여 자신의 컨텍스트를 가질 수 있다. 단계(320)는 변환 유닛 내에 마지막 계수 그룹이 있는지를 결정한다. 그러면, 인코더는 (계수 레벨 및/또는 부호를 인코딩하는 것을 포함할 수 있는) 변환 유닛에 대하여 다음의 인코딩 단계로 나아갈 수 있다. 그렇지 않으면, 인코더는 역스캔 순서로 다음의 계수 그룹으로 이동하고 프로세스를 반복한다.
인코딩된 비디오 데이터의 비트스트림을 디코딩하여 변환 유닛에 대한 시그니피컨스 맵을 재구성하는 예시적인 방법을 나타내는 도 12를 참조한다. 시그니피컨스 맵은 중요 계수 플래그, 즉, 계수 그룹의 인접 세트로 파티션된다.
단계(402)에서, 디코더는 현재 계수 그룹에 대한 중요 계수 그룹 플래그가 추론되어야 하는지를 결정한다. 그러면, 단계(412)에서, 1로 설정된다. 그렇지 않으면, 단계(404)에서 중요 계수 그룹 플래그는 비트스트림으로부터 디코딩된다. 상술한 바와 같이, 이 예에서, 우측 이웃 계수 그룹 및 하부 이웃 계수 그룹에 대한 중요 계수 그룹 플래그가 1과 같으면, 중요 계수 그룹 플래그가 추론된다.
단계(408)에서, 디코딩된 중요 계수 그룹 플래그가 0과 동일하면, 단계(408)에서, 그 계수 그룹의 모든 중요 계수 플래그가 0으로 설정된다. 그 후, 디코더는 단계(410)에 의해 지시되는 바와 같이 역스캔 순서로 다음의 계수 그룹으로 이동하고, 단계(402)로부터 프로세스를 반복한다.
디코딩된 중요 계수 그룹 플래그가 제로가 아니면, 동작(414)에서, 제2 컨텍스트 세트가 선택된다. 중요 계수 그룹 플래그가 1로 추론되면, 단계(416)에서, 제1 컨텍스트 세트가 선택된다. 어느 경우에도, 동작(418)에서, 선택된 컨텍스트 세트는 그 계수 그룹의 중요 계수 플래그를 디코딩하는데 사용된다. 단계(420)는 마지막 계수 그룹이 있는지를 결정하는 것을 포함하고, 그러면, 디코딩의 다음 페이즈로 이동한다. 그렇지 않으면, 디코더는 역스캔 순서로 다음의 계수 그룹으로 이동하고 중요 계수 플래그에 대한 디코딩 프로세스를 계속하는 단계(402)로 복귀한다.
이하에서는 의사 코드를 이용한 디코딩 프로세스의 제1 실시예의 일 예가 기재된다. 디코딩 프로세스의 제1 실시예는 영역이 계수 그룹 경계를 따라 고정되는 것이다. 이 예시적인 의사 코드는 변환 유닛을 영역으로 분할하는 가능한 구현예이다.
이하의 의사 코드에 의해 예시된 신택스에서, 변환 유닛 사이즈가 16×16 또는 32×32 (예를 들어, log2TrafoSize>3)이면, 예시적인 프로세스가 수행된다. 인덱스 변수 sigCtx에 대하여 이하에서 사용되는 특정 정수 값은 많은 수의 정의된 컨텍스트에 대한 소정의 인덱스의 단지 예이다.
이 프로세스로의 입력은 색 성분 인덱스 cIdx, 현재 계수 스캔 위치(xC, yC), 변환 블록 폭(log2TrafoWidth) 및 변환 블록 높이(log2TrafoHeight)이다. 이 프로세스의 출력은 ctxIdxInc이다.
변수(sigCtx)는 현재 위치(xC, yC), 변환 블록 사이즈, 및 신택스 요소 significant_coeff_flag 및 significant_coeffgroup_flag의 이전에 디코딩된 빈에 의존한다. sigCtx의 도출을 위하여 다음이 적용된다.
log2TrafoWidth가 log2TrafoHeight와 동일하고 log2TrafoWidth가 2와 동일하면, sigCtx는 다음과 같이 ctxIdxMap4x4[]를 이용하여 도출된다.
sigCtx = ctxIdxMap4x4[ ((cIdx > 0) ? 15 : 0) + (yC << 2) + xC ]
그렇지 않으면, log2TrafoWidth가 log2TrafoHeight와 동일하고 log2TrafoWidth가 3와 동일하면, sigCtx는 다음과 같이 ctxIdxMap8x8[]를 이용하여 도출된다.
sigCtx = ((xC + yC) = = 0) ? 10 : ctxIdxMap8x8[ ((yC >> 1 ) << 2) + (xC >> 1) ]
sigCtx += ( cIdx > 0) ? 6: 9
그렇지 않으면, xC + yC가 0과 동일하면, sigCtx는 다음과 같이 도출된다.
sigCtx = ( cIdx > 0) ? 17: 20
그렇지 않으면, (xC + yC가 0보다 크면), sigCtx은 다음과 같이 신택스 요소 significant_coeff_flag의 이전에 디코딩된 빈을 이용하여 도출된다.
변수(sigCtx)는 0으로 초기화된다.
xC가 ( 1 << log2TrafoWidth ) - 1보다 작으면, 다음이 적용된다.
sigCtx = sigCtx + significant_coeff_flag[ xC + 1 ][ yC ]
xC가 ( 1 << log2TrafoWidth ) - 1보다 작고 yC가 ( 1 << log2TrafoHeight ) - 1보다 작으면, 다음이 적용된다.
sigCtx = sigCtx + significant_coeff_flag[ xC + 1 ][ yC + 1 ]
xC가 ( 1 << log2Width ) - 2보다 작으면, 다음이 적용된다.
sigCtx = sigCtx + significant_coeff_flag[ xC + 2 ][ yC ]
다음의 조건이 모두 참이면,
·yC가 ( 1 << log2TrafoHeight ) - 1보다 작고,
·xC % 4가 0과 같지 않거나 yC % 4가 0과 같지 않고,
·xC % 4가 3과 같지 않거나 yC % 4가 2과 같지 않으면,
다음이 적용된다.
sigCtx = sigCtx + significant_coeff_flag[ xC ][ yC + 1 ]
yC가 ( 1 << log2TrafoHeight ) - 2 보다 작고 sigCtx가 4보다 작으면, 다음이 적용된다.
sigCtx = sigCtx + significant_coeff_flag[ xC ][ yC + 2 ]
변수(sigCtx)는 다음과 같이 변경된다.
cIdx가 0과 동일하고 양 xC 및 yC가 1 << (max(log2TrafoWidth, log2TrafoHeight) -2) 동일하거나 크면, 다음이 적용된다.
sigCtx = ( (sigCtx + 1) >> 1 ) + 24
그렇지 않으면, 다음이 적용된다.
sigCtx = ( (sigCtx + 1) >> 1 ) + ( (cIdx > 0) ? 18 : 21 )
컨텍스트 인덱스 증분(ctxIdxInc)은 다음과 같이 색성분 인덱스(cIdx 및 sigCtx)를 이용하여 도출된다.
cIdx가 0과 동일하면, ctxIdxInc는 다음과 같이 도출된다.
ctxIdxInc = sigCtx
그렇지 않으면, (cIdx가 0보다 크면), ctxIdxInc는 다음과 같이 도출된다.
ctxIdxInc = 27 + sigCtx
디코딩 프로세스의 제2 실시예를 구현하는 예시적인 신택스가 또한 기재될 수 있다. 제2 실시예는 영역이 계수 그룹 플래그가 얻어진 방식, 즉, 디코딩을 통해 또는 추론에 의한 것인지에 기초하여 동적으로 결정된다.
제2 실시예의 예시적인 신택스는 ctxIdxInc의 도출 직전에 도시된 sigCtx로의 변경이 다음으로 대체되는 것을 제외하고 제1 실시예에 대하여 위에서 도시된 신택스와 실질적으로 동일할 수 있다.
cIdxrk 0과 동일하고 다음의 조건 중의 적어도 하나가 참이면,
·(xC >> 2) + (yC >> 2)는 0과 동일하고,
·(xC << 2)이 (1 << log2TrafoWidth - 2) -1보다 작고, (yC >> 2)이 (1 << log2TrafoHeight -2) -1보다 작고, 및 significant_coeffgroup_flag[(xC >> 2) + 1][yC >> 2] + significant_coeffgroup_flag[xC >> 2][(yC >> 2) + 1]이 2와 동일하면, 다음이 적용된다.
sigCtx = ( (sigCtx + 1) >> 1 ) + 24 그렇지 않으면, 다음이 적용된다.
sigCtx = ( (sigCtx + 1) >> 1 ) + ( (cIdx > 0) ? 18 : 21 )
인코더(900)의 예시적인 실시예의 간략화된 블록도를 나타내는 도 13을 참조한다. 인코더(900)는 프로세서(902), 메모리(904), 인코딩 애플리케이션(906)을 포함한다. 인코딩 애플리케이션(906)은, 메모리(904)에 저장되고 프로세서(902)가 여기에 기재된 것 등의 동작을 수행하도록 구성하는 명령을 포함하는 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있다. 예를 들어, 애플리케이션(906)은 여기에 기재된 프로세스에 따라 인코딩된 비트스트림을 인코딩하고 출력할 수 있다. 인코딩 애플리케이션(906)은 콤팩트 디스크, 플래쉬 메모리 장치, 랜덤 액세스 메모리, 하드 드라이브 등의 컴퓨터 판독가능 매체에 저장될 수 있다.
디코더(1000)의 예시적인 실시예의 간략화된 블록도를 나타내는 도 14를 참조한다. 디코더(1000)는 프로세서(1002), 메모리(1004) 및 디코딩 애플리케이션(1006)을 포함한다. 디코딩 애플리케이션(1006)은, 메모리(1004)에 저장되고 프로세서(1002)가 여기에 기재된 것 등의 동작을 수행하도록 구성하는 명령을 포함하는 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있다. 디코딩 애플리케이션(1006)은 여기에 기재된 바와 같이 적어도 부분적으로 중요 계수 플래그의 재구성에 기초하여 잔여물을 재구성하도록 구성되는 엔트로피 디코더를 포함할 수 있다. 디코딩 애플리케이션(1006)은 콤팩트 디스크, 플래쉬 메모리 장치, 랜덤 액세스 메모리, 하드 드라이브 등의 컴퓨터 판독가능 매체에 저장될 수 있다.
본 출원에 따른 디코더 및/인코더는 제한없이 서버, 적절하게 프로그래밍된 범용 컴퓨터, 오디오/비디오 인코딩 및 재생 장치, 셋탑 텔레비전 박스, 텔레비전 방송 장치 및 모바일 장치를 포함하는 많은 컴퓨팅 장치에서 구현될 수 있다. 디코더 또는 인코더는 프로세서가 여기에 기재된 기능을 수행하도록 구성하는 명령을 포함하는 소프트웨어에 의해 구현될 수 있다. 소프트웨어 명령은 CD, RAM, ROM, 플래쉬 메모리 등을 포함하는 임의의 적절한 비일시적 컴퓨터 판독가능 메모리에 저장될 수 있다.
여기에 기재된 인코더 및 모듈, 루틴, 프로세스, 스레드(thread) 또는 인코더를 구성하기 위한 기재된 방법/프로세스를 구현하는 다른 소프트웨어 컴포넌트는 표준 컴퓨터 프로그래밍 기술 및 언어를 이용하여 실현될 수 있다. 본 출원은 특정한 프로세서, 컴퓨터 언어, 컴퓨터 프로그래밍 컨벤션, 데이터 구조, 다른 이러한 구현 세부사항에 제한되지 않는다. 당업자는 기재된 프로세스가 휘발성 또는 비휘발성 메모리에 저장된 컴퓨터 실행가능 코드의 일부, ASIC(application-specific integrated chip)의 일부로서 구현될 수 있음을 인식할 것이다.
기재된 실시예의 소정의 응용 및 변형이 가능하다. 그러므로, 상술한 실시예는 설명하기 위한 것으로 제한적이지 않다.

Claims (15)

  1. 변환 유닛에 대한 중요 계수 플래그(significant coefficient flags)를 재구성함으로써 인코딩된 비디오의 비트스트림을 디코딩하는 방법으로서, 상기 변환 유닛은 블록들로 분할되고, 상기 비트스트림은 중요 계수 플래그의 세트를 인코딩하고, 각 세트는 각각의 블록에 대응하고, 상기 방법은,
    상기 블록들 중 하나인 제1 블록에 대응하는 중요 계수 플래그의 세트에 대하여, 상기 제1 블록의 우측에 있는 블록과 관련된 중요 계수 그룹 플래그 및 상기 제1 블록의 하부에 있는 블록과 관련된 중요 계수 그룹 플래그에 기초하여 상기 세트의 중요 계수 플래그를 인코딩하는데 사용되는 복수의 컨텍스트 세트로부터 컨텍스트 세트를 선택하는 단계; 및
    상기 선택된 컨텍스트 세트를 이용하여 상기 세트의 중요 계수 플래그를 엔트로피 디코딩하는 단계
    를 포함하고,
    각각의 중요 계수 그룹 플래그는 그 관련 블록이 적어도 하나의 넌-제로 중요 계수 플래그를 포함하는 것으로 추정되는지 여부를 지시하며,
    상기 엔트로피 디코딩 단계는 컨텍스트 적응 디코딩하는 단계를 포함하며, 상기 복수의 컨텍스트 세트는 상기 중요 계수 플래그의 세트의 중요 계수 플래그를 컨텍스트 적응 디코딩하는데 사용될 컨텍스트를 식별하는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  2. 제1항에 있어서,
    상기 컨텍스트 세트를 선택하는 단계는, 상기 양 중요 계수 그룹 플래그가 넌-제로이면 제1 컨텍스트 세트를 선택하고, 그렇지 않으면 제2 컨텍스트 세트를 선택하는 단계를 포함하는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  3. 제1항에 있어서,
    상기 컨텍스트 세트를 선택하는 단계는 또한 상기 제1 블록이 상기 변환 유닛의 상부 좌측 블록인 경우, 상기 제1 블록의 DC 위치에서 중요 계수 플래그를 디코딩하기 위한 특정한 컨텍스트를 선택하는 단계를 포함하는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  4. 제1항에 있어서,
    상기 컨텍스트 세트를 선택하는 단계는 또한 상기 제1 블록이 상기 변환 유닛의 상부 좌측 코너인지 아닌지 여부에 기초하는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  5. 제1항에 있어서,
    상기 컨텍스트 세트를 선택하는 단계는 또한 상기 변환 유닛의 사이즈에 기초하는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  6. 제1항에 있어서,
    상기 컨텍스트 세트를 선택하는 단계는 또한 상기 변환 유닛의 컴포넌트(component)가 루마 컴포넌트(luma component) 또는 크로마 컴포넌트(chroma component)인지에 기초하는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  7. 변환 유닛에 대한 중요 계수 플래그를 재구성하기 위해 인코딩된 데이터의 비트스트림을 디코딩하는 디코더로서,
    프로세서;
    메모리; 및
    상기 메모리에 저장되고, 제1항 내지 제6항 중 어느 한 항에 따른 방법을 수행하도록 상기 프로세서를 구성하는 명령을 포함하는, 디코딩 애플리케이션
    을 포함하는,
    디코더.
  8. 인코딩된 중요 계수 플래그의 세트의 비트스트림을 생성하기 위해 변환 유닛에 대한 중요 계수 플래그를 인코딩함으로써 비디오를 인코딩하는 방법으로서, 상기 변환 유닛은 블록들로 분할되고, 중요 계수 플래그의 각 세트는 각각의 블록에 대응하고, 상기 방법은,
    상기 블록들 중 하나인 제1 블록에 대응하는 중요 계수 플래그의 세트에 대하여, 상기 제1 블록의 우측에 있는 블록과 관련된 중요 계수 그룹 플래그 및 상기 제1 블록의 하부에 있는 블록과 관련된 중요 계수 그룹 플래그에 기초하여 상기 세트의 중요 계수 플래그를 인코딩하는데 사용되는 복수의 컨텍스트 세트로부터 컨텍스트 세트를 선택하는 단계; 및
    상기 선택된 컨텍스트 세트를 이용하여 상기 세트의 중요 계수 플래그를 엔트로피 인코딩하는 단계
    를 포함하고,
    각각의 중요 계수 그룹 플래그는 그 관련 블록이 적어도 하나의 넌-제로 중요 계수 플래그를 포함하는 것으로 추정되는지 여부를 지시하며,
    상기 엔트로피 인코딩 단계는 컨텍스트 적응 인코딩하는 단계를 포함하고, 상기 복수의 컨텍스트 세트는 상기 세트의 중요 계수 플래그를 컨텍스트 적응 인코딩하는데 사용될 컨텍스트를 식별하는,
    비디오 인코딩 방법.
  9. 제8항에 있어서,
    상기 컨텍스트 세트를 선택하는 단계는, 상기 양 중요 계수 그룹 플래그가 넌-제로이면 제1 컨텍스트 세트를 선택하고, 그렇지 않으면 제2 컨텍스트 세트를 선택하는 단계를 포함하는,
    비디오 인코딩 방법.
  10. 인코딩된 데이터의 비트스트림을 생성하기 위해 변환 유닛에 대한 중요 계수 플래그를 인코딩하는 인코더로서,
    프로세서;
    메모리; 및
    상기 메모리에 저장되고, 제8항 또는 제9항에 따른 방법을 수행하도록 상기 프로세서를 구성하는 명령을 포함하는 인코딩 애플리케이션
    을 포함하는,
    인코더.
  11. 실행시에, 제1항 내지 제6항, 제8항 및 제9항 중 어느 한 항에 따른 방법을 수행하도록 하나 이상의 프로세서를 구성하는 프로세서 실행가능 명령을 저장하는, 비일시적 프로세서 판독가능 매체.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020130005252A 2012-01-20 2013-01-17 컨텍스트 세트 선택을 위한 방법 및 장치 KR101455501B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12151965.6 2012-01-20
EP12151965.6A EP2618570B1 (en) 2012-01-20 2012-01-20 Method and devices for context set selection

Publications (2)

Publication Number Publication Date
KR20130086169A KR20130086169A (ko) 2013-07-31
KR101455501B1 true KR101455501B1 (ko) 2014-10-30

Family

ID=45491485

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130005252A KR101455501B1 (ko) 2012-01-20 2013-01-17 컨텍스트 세트 선택을 위한 방법 및 장치

Country Status (10)

Country Link
EP (2) EP2618578B1 (ko)
JP (1) JP5526246B2 (ko)
KR (1) KR101455501B1 (ko)
CN (1) CN103220516B (ko)
AU (1) AU2013200291B2 (ko)
BR (1) BR102013001517B1 (ko)
CA (1) CA2802285C (ko)
MX (1) MX2013000712A (ko)
SG (1) SG192352A1 (ko)
TW (1) TWI533705B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2786575A4 (en) 2012-01-20 2016-08-03 Sony Corp REDUCTION OF CODING COMPLEXITY ON CARD OF IMPORTANCE
CN109417638B (zh) * 2016-05-28 2022-02-08 世宗大学校产学协力团 视频信号的编码或解码方法及装置
KR102302797B1 (ko) 2017-04-13 2021-09-16 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
CN114071140B (zh) * 2019-12-03 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及机器可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080082147A (ko) * 2007-03-07 2008-09-11 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
KR20110046016A (ko) * 2009-10-28 2011-05-04 삼성전자주식회사 레지듀얼 블록의 부호화 방법 및 장치, 복호화 방법 및 장치
WO2011128303A2 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding of significance maps and transform coefficient blocks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231830B (zh) * 2010-11-23 2013-04-17 浙江大学 用于上下文算术编解码的运算单元
CN102088603B (zh) * 2010-12-31 2013-12-04 北京大学深圳研究生院 用于视频编码器的熵编码器及其实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080082147A (ko) * 2007-03-07 2008-09-11 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
KR20110046016A (ko) * 2009-10-28 2011-05-04 삼성전자주식회사 레지듀얼 블록의 부호화 방법 및 장치, 복호화 방법 및 장치
WO2011128303A2 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding of significance maps and transform coefficient blocks

Also Published As

Publication number Publication date
EP2618578B1 (en) 2015-07-15
MX2013000712A (es) 2014-01-09
JP5526246B2 (ja) 2014-06-18
BR102013001517A2 (pt) 2015-01-13
EP2618570B1 (en) 2017-12-13
JP2013150322A (ja) 2013-08-01
CA2802285C (en) 2017-08-22
TWI533705B (zh) 2016-05-11
SG192352A1 (en) 2013-08-30
CN103220516B (zh) 2016-05-18
EP2618578A1 (en) 2013-07-24
BR102013001517B1 (pt) 2020-12-15
CA2802285A1 (en) 2013-07-20
AU2013200291B2 (en) 2015-07-16
EP2618570A1 (en) 2013-07-24
TW201347546A (zh) 2013-11-16
CN103220516A (zh) 2013-07-24
KR20130086169A (ko) 2013-07-31

Similar Documents

Publication Publication Date Title
KR101538837B1 (ko) 변환 유닛 내의 다수 부호 비트 은폐
KR101538832B1 (ko) 다중-레벨 유효성 맵 스캐닝
US11778191B2 (en) Methods and devices for context set selection
US20130195200A1 (en) Methods and devices for context modeling to enable modular processing
KR101407755B1 (ko) 인코딩 및 디코딩을 위한 멀티레벨 유의성 맵
US20130235940A1 (en) Methods and devices for context modeling to enable modular processing
TWI493945B (zh) 使用分割區選擇之重要地圖編碼及解碼
KR101455501B1 (ko) 컨텍스트 세트 선택을 위한 방법 및 장치
CA2801095C (en) Methods and devices for context modeling to enable modular processing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171013

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181011

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191010

Year of fee payment: 6