KR20130048180A - 인코딩 및 디코딩을 위한 멀티레벨 유의성 맵 - Google Patents

인코딩 및 디코딩을 위한 멀티레벨 유의성 맵 Download PDF

Info

Publication number
KR20130048180A
KR20130048180A KR1020120122364A KR20120122364A KR20130048180A KR 20130048180 A KR20130048180 A KR 20130048180A KR 1020120122364 A KR1020120122364 A KR 1020120122364A KR 20120122364 A KR20120122364 A KR 20120122364A KR 20130048180 A KR20130048180 A KR 20130048180A
Authority
KR
South Korea
Prior art keywords
flag
group
coefficient
significance
significant coefficient
Prior art date
Application number
KR1020120122364A
Other languages
English (en)
Other versions
KR101407755B1 (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 KR20130048180A publication Critical patent/KR20130048180A/ko
Application granted granted Critical
Publication of KR101407755B1 publication Critical patent/KR101407755B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

멀티레벨 유의성 맵이 인코딩 및 디코딩 프로세스에 사용되는 비디오 데이터를 인코딩 및 디코딩하는 방법이 기재된다. 유의성 맵을 형성하는 유의 계수 플래그는 연속적인 그룹으로 그룹핑되고, 유의 계수 그룹 플래그는 각각의 그룹에 대하여 그 그룹이 넌-제로 유의 계수 플래그를 포함하지 않는지를 나타난다. 그룹 내에 넌-제로 유의 계수 플래그가 없으면, 유의 계수 그룹 플래그는 제로로 설정된다. 유의 계수 그룹 플래그의 세트는 비트스트림으로 인코딩된다. 넌-제로인 유의 계수 그룹 플래그를 갖는 그룹 내에 속하는 임의의 유의 계수 플래그는 비트스트림으로 인코딩되지만, 제로인 유의 계수 그룹 플래그를 갖는 그룹 내에 속하는 유의 계수 플래그는 비트스트림으로 인코딩되지 않는다.

Description

인코딩 및 디코딩을 위한 멀티레벨 유의성 맵{MULTI-LEVEL SIGNIFICANCE MAPS FOR ENCODING AND DECODING}
저작권 공고
본 문서 및 첨부 자료의 개시물의 일부는 저작권에 대한 청구범위가 만들어진 자료를 포함한다. 이는 특허청 파일 또는 기록에 나타나기 때문에 저작권 소유자는 특허 문서 또는 특허 개시물의 누군가에 의한 복사에 대한 이의가 없지만, 다른 모든 저작권은 보유한다.
본 출원은 일반적으로 데이터 압축에 관한 것으로, 특히 멀티레벨+ 유의성 맵을 이용한 비디오 인코딩 및 디코딩 방법 및 장치에 관한 것이다.
데이터 압축은 다수의 컨텍스트에서 발생한다. 이는 정보를 효율적으로 저장하고, 전송하고 재생하기 위하여 통신 및 컴퓨터 네트워킹에서 통상 사용된다. 특히 이미지, 오디오 및 비디오의 인코딩에서 특정한 애플리케이션에서 찾을 수 있다. 비디오는 인코딩 및 디코딩이 자주 발생할 필요가 있는 각 비디오 프레임 및 속도를 위해 필요한 많은 양의 데이터 때문에 데이터 압축에 중요한 도전을 제시한다. 비디오 인코딩을 위한 현재의 최신식은 ITU-T H.264/AVC 비디오 코딩 표준이다. 이것은 메인 프로파일, 베이스라인 프로파일 및 기타를 포함하는 상이한 애플리케이션에 대한 다수의 상이한 프로파일을 정의한다. 차세대 비디오 인코딩 표준은 현재 MPEG-ITU의 조인트 계획(joint-initiative): 고효율 비디오 코딩(HEVC)를 통해 개발 하에 있다.
블록 기반 코딩 프로세스를 이용하는, H.264를 포함하는 이미지 및 비디오를 인코딩/디코딩하는 다수의 표준이 존재한다. 이들 프로세스에서, 이미지 또는 프레임은 블록, 일반적으로, 4×4 또는 8×8로 분리되고, 블록은 스펙트럼으로 계수로 변환되고, 양자화되고, 엔트로피 인코딩된다. 많은 경우, 변환되는 데이터는 실제 픽셀 데이터가 아니지만, 예측 동작을 따르는 잔여 데이터이다. 예측은 인트라 프레임, 즉, 프레임/이미지 내의 블록-투-블록, 또는 인터 프레임, 즉, 프레임간(또한 이동 예측이라 함)일 수 있다. HEVC(또한 H.265라 함)는 이들 특징을 가질 것으로 기대된다.
스펙트럼으로 잔여 데이터를 변환할 때, 이들 표준의 대부분은 DCT(discrete cosine transform) 또는 그 임의의 변형의 사용을 규정한다. 결과적인 DCT 계수는 양자화기를 이용하여 양자화되어 양자화된 변환 도메인 계수 또는 인덱스를 생성한다.
양자화된 변환 도메인 계수의 블록 또는 매트릭스(때때로 "변환 유닛"이라 함)는 특정한 컨텍스트 모델을 이용하여 엔트로피 인코딩된다. H.264/AVC 및 HEVC에 대한 현재의 개발 작업에서, 양자화된 변환 계수는 (a) 블록 내의 마지막 넌-제로 계수의 위치를 지시하는 마지막 유의성 계수 위치를 인코딩하고, (b) 넌-제로 계수를 포함하는 (마지막 유의성 계수 위치 이외의) 블록 내의 위치를 지시하는 유의성 맵을 인코딩하고, (c) 넌-제로 계수의 크기를 인코딩하고, (d) 넌-제로 계수의 부호를 인코딩함으로써 인코딩된다. 양자화된 변환 계수의 인코딩은 종종 비트스트림 내의 인코딩된 데이터의 30 내지 80%를 차지한다.
변환 유닛은 일반적으로 N×N이다. 다른 사이즈가 가능하지만, 공통 사이즈는 4×4, 8×8, 16×16, 및 32×32를 포함한다. 유의성 맵 내의 심볼의 엔트로피 인코딩은 컨텍스트 모델에 기초한다. 4×4 루마(luma) 또는 크로마(chroma) 블록 또는 변환 유닛(TU)의 경우, 개별 컨텍스트는 TU 내의 각각의 계수 위치와 연관된다. 즉, 인코더 및 디코더는 4×4 루마 및 크로마 TU에 대한 총 30개(우측 하부 코너 위치 제외)의 개별 컨텍스트를 트랙킹한다. 8×8 TU는 (개념적으로 컨텍스트 연관의 목적으로) 2×2 블록으로 분할되어 하나의 개별 컨텍스트는 8×8 TU 내에서 각각 2×2 블록과 연관된다. 따라서, 인코더 및 디코더는 8×8 루마 및 크로마 TU에 대하여 총 16+16=32 컨텍스트를 트랙킹한다. 이것은 인코더 및 디코더가 유의성 맵의 인코딩 및 디코딩시 62개의 상이한 컨텍스트를 기록하고 검색한다는 것을 의미한다. 16×16 TU 및 32×32 TU가 고려될 때, 포함되는 개별 컨텍스트의 총수는 88이다. 추가의 26개의 컨텍스트 중에서, 13개는 루마 TU를 위한 것이고, 13개는 크로마 TU를 위한 것이다. 16×16 또는 32×32 TU 내의 계수 위치로의 13개의 컨텍스트의 할당은 다음과 같다. (r, c)는 TU 내의 위치이고, 여기서, TU의 사이즈가 16×16이면 0<=r, c<=15이고, TU의 사이즈가 32×32이면 0<=r, c<=31이다. 그 후, 3개의 개별 컨텍스트가 DC 위치(0, 0)를 포함하는 좌측 상부 코너에서 3개의 위치(0, 0), (0, 1), (1, 0)에 할당되고, 5개의 개별 컨텍스트가 영역{(r, c): 2<=r+c<5} 내의 위치에 할당되고, 마지막 5개의 개별 컨텍스트가 나머지 모든 위치에 할당된다. (0, 0), (0, 10), 및 (1,0)에 대한 처음 3개의 컨텍스트를 제외하고, 영역{(r, c): 2<=r+c<5} 내의 위치에 대한 컨텍스트의 파생은 우측 하부의 이웃에 의존한다. 계수가 제로가 아닌 경우 s(r, c)는 위치(r, c)에서의 계수의 유의성 플래그, 즉, s(r, c)=1이고, 그렇지 않은 경우, s(r, c)=1이다. 위치(r, c)에 대한 컨텍스트는 min(s(r+1, c)+s(r, c+1)+s(r+2, c)+s(r, c+2)+s(r+1, c+1), 4)와 동일하고, 여기서, min(a, b)는 a와 b 중 더 작은 값이다. 나머지 영역{(r, c): r+c>=5} 내의 위치(r, c)의 컨텍스트는 유사하게 도출된다.
4×4 및 8×8 유의성 맵에 대한 컨텍스트는 비트 위치에 의해 결정된다. 16×16 및 32×32 유의성 맵에 대한 컨텍스트은 대부분 이웃 비트의 값에 의해 결정된다. 대부분의 경우, 프로세서는 고가의 메모리 액세스 동작을 포함하는 이웃 유의 플래그의 값을 확인함으로써 컨텍스트를 결정하기 때문에, 16×16 및 32×32 유의성 맵에 대한 컨텍스트의 결정은 매우 계산적으로 심하다.
본 출원은 컨텍스트 적응 인코딩 또는 디코딩으로 유의성 맵을 인코딩 및 디코딩하는 방법 및 인코더/디코더를 기재한다. 인코더 및 디코더는 멀티레벨 유의성 맵을 사용한다. 적어도 하나의 경우, 멀티레벨 맵은 16×16 및 32×32 TU 등의 더 큰 변환 유닛과 함께 사용된다.
일 형태에서, 본 출원은 인코딩된 데이터의 비트스트림으로부터 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법을 기재한다. 방법은 유의 계수 그룹 플래그를 재구성하는 단계 - 각각의 유의 계수 그룹 플래그는 유의 계수 플래그의 각각의 그룹에 대응함 -; 및 그 유의 계수 플래그가 넌-제로인 해당 유의 계수 그룹 플래그를 갖는 그룹 내에 있으면 상기 비트스트림으로부터 상기 유의 계수 플래그를 디코딩하고 그 유의 계수 플래그가 제로인 해당 유의 계수 그룹 플래그를 갖는 그룹 내에 있으면 상기 유의 계수 플래그를 제로로 설정함으로써 각 유의 계수 플래그를 재구성하는 단계를 포함한다.
다른 형태에 있어서, 본 출원은 변환 유닛에 대한 유의 계수 플래그를 인코딩하는 방법을 기재한다. 방법은 유의 계수 그룹 플래그를 인코딩하는 단계 - 각각의 유의 계수 그룹 플래그는 유의 계수 플래그의 각각의 그룹에 대응하고, 상기 유의 계수 그룹 플래그는 제로로 설정되어 해당 그룹이 넌-제로 유의 계수 플래그를 포함하지 않는 것을 지시함 -; 및, 상기 유의 계수 플래그의 각각에 대하여, 그 유의 계수 플래그가 해당 유의 계수 그룹 플래그가 넌-제로인 그룹 중의 하나 내에 있으면 상기 유의 계수 플래그를 인코딩하고 그 유의 계수 플래그가 해당 유의 계수 그룹 플래그가 제로인 그룹 중의 하나 내에 있으면 상기 유의 계수 플래그를 인코딩하지 않는 단계를 포함한다.
일 형태에 있어서, 유의 계수 플래그의 재구성은 순방향(forward) 또는 역방향(reverse) 스캔 순서 등의 소정의 순서로 수행된다. 다른 형태에 있어서, 유의 계수 그룹 플래그의 재구성은 순방향 또는 역방향 스캔 순서 등의 유의 계수 플래그의 재구성에서 사용되는 것과 동일한 소정의 순서일 수 있는 소정의 순서으로 수행된다.
일 형태에 있어서, 해당 그룹 내의 모든 유의 계수 플래그가 제로이면, 유의 계수 그룹 플래그는 제로로 설정된다. 다른 형태에 있어서, 해당 그룹 내의 적어도 하나의 유의 계수 플래그가 넌-제로이면, 유의 계수 그룹 플래그는 넌-제로이다. 또 다른 형태에 있어서, 해당 그룹 내의 모든 유의 계수 그룹이 제로인 경우에도 특수한 경우 유의 계수 그룹 플래그가 넌-제로일 수 있고, 이 경우, 디코더는 비트스트림으로부터 그 해당 그룹에 대한 모든 제로 값 유의 계수 플래그를 디코딩한다.
또 다른 형태에 있어서, 본 출원은 인코딩된 데이터의 비트스트림으로부터 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법을 기재한다. 방법은 비트스트림으로부터 유의 계수 그룹 플래그를 디코딩하는 단계 - 각각의 유의 계수 그룹 플래그는 유의 계수 플래그의 각각의 그룹에 대응하고 그 해당 그룹이 넌-제로 유의 계수 플래그를 포함하지 않으면 각각의 유의 계수 그룹 플래그는 제로임 -; 및, 각각의 유의 계수 그룹 플래그에 대하여, 그 유의 계수 그룹 플래그가 넌-제로인 경우 상기 비트스트림으로부터 유의 계수 플래그의 그 해당 그룹에 대한 유의 계수 플래그를 디코딩하고, 그렇지 않은 경우 유의 계수 플래그의 그 해당 그룹 내의 모든 유의 계수 플래그를 제조로 설정하는 단계를 포함한다.
또 다른 형태에 있어서, 본 출원은 인코딩된 데이터의 비트스트림으로부터 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법을 기재하고, 여기서, 변환 수단은 유의 계수 플래그의 비중첩 그룹으로 분할된다. 방법은 적어도 하나의 유의 계수 그룹 플래그의 값을 1로 설정함으로써, 유의 계수 그룹 플래그를 재구성하는 단계 - 각각의 유의 계수 그룹 플래그는 유의 계수 플래그의 각각의 그룹에 대응함 -; 및 그 유의 계수 플래그가 넌-제로인 해당 유의 계수 그룹 플래그를 갖는 그룹 내에 있으면 상기 비트스트림으로부터 상기 유의 계수 플래그를 디코딩하고, 그 유의 계수 플래그가 제로인 해당 유의 계수 그룹 플래그를 갖는 그룹 내에 있으면 상기 유의 계수 플래그를 제로로 설정함으로써, 각 유의 계수 플래그를 재구성하는 단계를 포함한다.
또 다른 형태에 있어서, 본 출원은 변환 유닛에 대한 유의 계수 플래그를 인코딩하는 방법을 기재하고, 여기서, 변환 수단은 유의 계수 플래그의 비중첩 그룹으로서 분할된다. 방법은 유의 계수 그룹 플래그를 인코딩하는 단계를 포함하고, 각각의 유의 계수 그룹 플래그는 유의 계수 플래그의 그룹의 각각에 대응하고, 상기 유의 계수 그룹 플래그는 제로로 설정되어 해당 그룹이 넌-제로 유의 계수 플래그를 포함하지 않는 것을 지시하고, 상기 인코딩은 그 해당 그룹이 넌-제로 유의 계수 플래그를 포함하는지에 관계없이 1로 추론되는 적어도 하나의 유의 계수 그룹 플래그를 배제한다. 방법은, 상기 유의 계수 플래그의 각각에 대하여, 그 유의 계수 플래그가 해당 유의 계수 그룹 플래그가 넌-제로인 그룹 중의 하나 내에 있으면 상기 유의 계수 플래그를 인코딩하고 그 유의 계수 플래그가 해당 유의 계수 그룹 플래그가 제로인 그룹 중의 하나 내에 있으면 상기 유의 계수 플래그를 인코딩하지 않는 단계를 더 포함한다.
또 다른 형태에 있어서, 본 출원은 이러한 인코딩 및 디코딩 방법을 구현하도록 구성되는 인코더 및 디코더를 기재한다.
또 다른 형태에 있어서, 본 발명은 실행될 때 하나 이상의 프로세서가 인코딩 및/또는 디코딩 방법을 수행하도록 구성하는 프로세서 실행가능 명령을 저장하는 비일시적 프로세서 판독가능 매체를 기재한다.
본 출원의 다른 형태 및 특징은 첨부된 도면을 참조하여 다음의 에의 설명을 검토함으로써 당업자에 의해 이해도리 것이다.
본 발명에 따르면, 컨텍스트 적응 인코딩 또는 디코딩으로 유의성 맵을 인코딩 및 디코딩하는 방법 및 인코더/디코더을 제공한다.
본 출원의 예시적인 실시예를 나타내는 첨부된 도면을 참조한다.
도 1은 비디오를 인코딩하는 인코더의 블록도.
도 2는 비디오를 디코딩하는 디코더의 블록도.
도 3은 양자화된 변환 도메인 계수를 포함하는 예시적인 변환 유닛을 나타내는 도면.
도 4는 도 3의 변환 유닛에 대한 유의 계수 플래그를 포함하는 예시적인 유의성 맵을 나타내는 도면.
도 5는 도 4의 유의성 맵에 대한 유의 계수 그룹 플래그를 포함하는 예시적인 L1 유의성 맵을 나타내는 도면.
도 6은 유의 계수 플래그를 인코딩하는 예시적인 방법의 플로우챠트.
도 7은 인코딩된 데이터로부터 유의성 맵을 재구성하는 예시적인 방법의 플로우챠트.
도 8은 유의 계수 그룹 플래그를 디코딩 및 재구성하는 예시적인 프로세스의 플로우챠트.
도 9는 멀티레벨 유의성 맵 인코딩을 위한 예시적인 레이트 왜곡 최적화 양자화 프로세스의 플로우챠트.
도 10은 L1 RDOQ의 적용 후의 도 4의 예시적인 L0 유의성 맵을 나타내는 도면.
도 11은 L1 RDOQ 후의 도 10의 L0 유의성 맵에 대응하는 L1 유의성 맵을 나타내는 도면.
도 12는 인코더의 예시적인 실시예의 간략화된 블록도.
도 13은 디코더의 예시적인 실시예의 간략화된 블록도.
유사한 참조 번호는 상이한 도면에서 유사한 구성요소를 지칭하는데 사용된다.
다음의 설명에서, 임의의 예시적인 실시예는 비디오 코딩에 대한 H.264 표준 및/또는 개발중인 HEVC 표준을 참조하여 설명한다. 당업자는 본 발명이 H.264/AVC 또는 HEVC에 제한되지 않고 가능한 미래 표준, 멀티뷰 코딩 표준, 스케일러블 비디오 코딩 표준 및 재구성가능 비디오 코딩 표준을 포함하는 다른 비디오 코딩/디코딩 표준에 적용될 수 있음을 이해할 것이다.
다음의 설명에서, 비디오 또는 이미지를 참조할 때, 프레임, 픽쳐, 슬라이스, 타일 및 사각 슬라이스 그룹은 혼용될 수 있다. 당업자는, H.264 표준의 경우, 프레임이 하나 이상의 슬라이스를 포함할 수 있는 것을 인식할 것이다. 또한, 소정의 인코딩/디코딩 동작은 프레임별로 수행되고, 적용가능한 이미지 또는 비디오 코딩 표준의 용어 또는 특정한 요구 사항에 따라 어떤 것은 슬라이스 별로, 픽쳐별로, 타일별로, 및 사각 슬라이스 그룹 별로 수행된다. 임의의 특정한 실시예에서, 적용가능한 이미지 또는 비디오 코딩 표준은 경우에 따라 프레임 및/또는 슬라이스 및/또는 픽쳐 및/또는 타일 및/또는 사각 슬라이스 그룹과 연결하여 후술하는 동작이 수행되는지를 결정할 수 있다. 따라서, 당업자는, 본 개시물의 관점에서, 여기에 기재된 특정한 동작 또는 프로세스 및 프레임, 슬라이스, 픽쳐, 타일, 사각 슬라이스 그룹에 대한 특정한 참조는 프레임, 슬라이스, 픽쳐, 타일, 사각 슬라이스 그룹, 주어진 실시예에 대한 일부 및 전부에 적용될 수 있다. 이것은 또한 하기 설명에 명백한 바와 같이 변환 유닛, 코딩 유닛, 코딩 유닛의 그룹 등에 적용된다.
본 출원은 유의성 맵에 관한 것이다. 유의성 맵은 변환 유닛에 맵핑되거나 대응하는 블록, 매트릭스 또는 그룹이다. 각각의 플래그는 변환 유닛 내의 해당 해당 위치가 넌-제로 계수를 포함하는지의 여부를 지시한다. 기존의 표준에서, 이들 플래그는 유의 계수 플래그라 할 수 있다. 기존의 표준에서, 계수마다 하나의 플래그가 존재하고 플래그는 해당 계수가 제로이면 제로의 비트이고 해당 계수가 넌-제로이면 1로 설정된다. 여기에 사용되는 "유의성 맵"이라는 용어는 하기 설명에서 이해되는 바와 같이 변환 유닛에 대한 유의 계수 플래그의 매트릭스 또는 순차 세트를 지칭하는 것으로 의도된다.
비디오를 인코딩하는 인코더(10)의 블록도인 도 1을 참조한다. 또한 비디오를 디코딩하는 디코더(50)의 블록도인 도 2를 참조한다. 여기에 기재된 인코더(10) 및 디코더(50)는 각각 하나 이상의 프로세싱 엘리먼트 및 메모리를 포함하는 애플리케이션 특정 또는 범용 컴퓨팅 장치 상에서 구현될 수 있다. 인코더(10) 또는 디코더(50)에 의해 수행되는 동작은 경우에 따라 애플리케이션 특정 집적 회로 또는 예를 들어 범용 프로세서에 의해 실행가능한 저장된 프로그램 명령에 의해 구현될 수 있다. 장치는 예를 들어 기본 장치 기능을 제어하는 오퍼레이팅 시스템을 포함하는 추가의 소프트웨어를 포함할 수 있다. 인코더(10) 또는 디코더(50)가 구현될 수 있는 장치 및 플랫폼의 범위는 다음의 설명을 고려한 당업자에 의해 인식될 것이다.
인코더(10)는 비디오 소스(12)를 수신하고 인코딩된 비트스트림(14)을 생성한다. 디코더(50)는 인코딩된 비트스트림(14)을 수신하고 디코딩된 비디오 프레임(16)을 출력한다. 인코더(10) 및 디코더(50)는 다수의 비디오 압축 표준에 따라 동작하도록 구성된다. 예를 들어, 인코더(10) 및 디코더(50)는 H.264/AVC을 따를 수 있다. 다른 실시예에서, 인코더(10) 및 디코더(50)는 HEVC 등의 H.264/AVC 표준의 진화를 포함하는 다른 비디오 압축 표준을 따를 수 있다.
인코더(10)는 공간 예측기(21), 코딩 모드 선택기(20), 변환 프로세서(22), 양자화기(24), 및 엔트로피 인코더(26)를 포함한다. 당업자에 의해 인식되는 바와 같이, 코딩 모드 선택기(20)는 비디오 소스에 대한 적절한 코딩 모드, 예를 들어, 서브젝트 프레임/슬라이스가 I, P 또는 B 타입인지 및 프레임/슬라이스 내의 특정 코딩 유닛(예를 들어, 매크로블록, 코딩 유닛 등)이 인터 코딩되는지 인트라 코딩되는지를 결정한다. 변환 프로세서(22)는 공간 도메인 데이터에 대하여 변환을 수행한다. 특히, 변환 프로세서(22)는 블록 기반 변환을 적용하여 공간 도메인 데이터를 스펙트럼 컴포넌트로 변환한다. 예를 들어, 많은 실시예에서, DCT(discrete cosine transform)가 사용된다. 이산 사인 변환(discrete sine transform) 등의 다른 변환이 임의의 경우 사용될 수 있다. 블록 기반 변환은 매크로블록 또는 코딩 유닛의 사이즈에 따라 코딩 유닛, 매크로블록 또는 서브 블록 단위로 수행된다. H.264 표준에서, 예를 들어, 일반적인 16×16 매크로블록은 16개의 4×4 변환 블록을 포함하고, DCT 프로세스는 4×4 블록 상에서 수행된다. 임의의 경우, 변환 블록은 8×8일 수 있고, 이는 매크로블록당 4개의 변환 블록이 있다는 것을 의미한다. 다른 경우에, 변환 블록은 다른 사이즈일 수 있다. 이의의 경우, 16×16 매크로블록은 4×4 및 8×8 변환 블록의 비중첩 조합을 포함할 수 있다.
픽셀 데이터의 블록에 블록 기반 변환을 적용하는 것은 변환 도메인 계수의 세트를 초래한다. 이 컨텍스트 내의 "세트"는 계수가 계수 위치를 갖는 순차적인 세트이다. 임의의 경우, 변환 도메인 계수의 세트는 계수의 "블록" 또는 매트릭스로 간주될 수 있다. 본 설명에서, "변환 도메인 계수의 세트 또는 "변환 도메인 계수의 블록"이 혼용될 수 있고 이는 변환 도메인 계수의 순차 세트를 지시하는 것을 의미한다.
변환 도메인 계수의 세트는 양자화기(24)에 의해 양자화된다. 양자화된 계수 및 연관된 정보는 엔트로피 인코더(26)에 의해 인코딩된다.
양자화된 변환 도메인 계수의 블록 또는 매트릭스는 "변환 유닛"이라 할 수 있다.
인트라 코딩 프레임/슬라이스(즉, 타입 I)는 다른 프레임/슬라이스를 참조하지 않고 인코딩된다. 즉, 이들은 시간적 예측을 채용하지 않는다. 그러나, 인트라 코딩 프레임은 도 1에서 공간 예측기(21)에 의해 도시된 바와 같이 프레임/슬라이스 내의 공간 예측에 의존한다. 즉, 특정 블록을 인코딩할 때, 블록 내의 데이터는 그 프레임/슬라이스에 대하여 이미 인코딩된 블록 내의 이웃 픽셀의 데이터와 비교될 수 있다. 예측 알고리즘을 이용하여, 블록의 소스 데이터는 잔여 데이터로 변환될 수 있다. 변환 프로세서(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 또는 블루레이 플레이어 및/또는 이동 핸드헬드 장치 등의 비디오 재생 머신은 출력 장치 상에서의 디스플레이 전에 메모리에 디코딩된 프레임을 버퍼링할 수 있다.
HEVC 순응 인코더 및 디코더는 많은 동일 또는 유사한 특징을 가질 것으로 기대된다.
유의성 맵 인코딩
상술한 바와 같이, 양자화된 변환 도메인 계수의 블록 또는 세트의 엔트로피 코딩은 그 양자화된 변환 도메인 계수의 블록 또는 세트에 대한 유의성 맵(예를 들어, 유의 계수 플래그의 세트)을 인코딩하는 것을 포함한다. 유의성 맵은 넌-제로 계수가 (마지막 위치 이외의) 어느 위치에서 나타나는지를 나타내는 블록의 이진(binary) 맵핑이다. 블록은 연관된 소정의 특성을 가질 수 있다. 예를 들어, 블록은 인트라 코딩 슬라이스 또는 인터 코딩 슬라이스로부터 올 수 있다. 블록은 루마 블록 또는 크로마 블록일 수 있다. 슬라이스에 대한 QP 값은 슬라이스에서 슬라이스로 다양할 수 있다. 이들 모든 팩터는 유의성 맵을 엔트로피 인코딩하는 최상의 방법에 영향을 줄 수 있다.
유의성 맵은 스캔 순서(수직, 수평, 대각선, 지그재그 또는 적용가능한 코딩 표준에 의해 정의된 임의의 다른 스캔 순서)에 따라 벡터로 변환된다. 스캔은 일반적으로 "역"순으로, 즉, 마지막 유의 계수로 시작하여 유의성 맵을 통해 [0, 0]의 플래그에 도달할때까지 역방향 스캔 순서으로 동작한다. 각각의 유의 계수 플래그는 적용가능한 컨텍스트 적응 코딩 방식을 이용하여 엔트로피 인코딩된다. 예를 들어, 많은 애플리케이션에서, 컨텍스트 적응 바이너리 산술 코딩(context-adaptive binary arithmetic coding; CABAC) 방식이 사용될 수 있다. 다른 구현예는 이진화를 갖는 다른 컨텍스트 적응 코드를 사용할 수 있다. 예는 이진 산술 코딩(binary arithmetic coding: BAC), V2V(variable-to-variable) 코딩, 및 V2F(variable-to-fixed) 길이 코딩을 포함한다. 4×4 및 8×8 맵으로, 컨텍스트는 각 비트 위치에 할당된다. 그 비트 위치의 비트(유의 계수 플래그)를 인코딩할 때, 할당된 컨텍스트 및 그 포인트에 대한 컨텍스트의 히스토리는 LPS(least probable symbol)(또는 임의의 구현예에서, MPS(most probable symbol))의 추정 확률을 결정한다.
기존의 비디오 코더에서, 컨텍스트 할당은 인코더 및 디코더에 대하여 미리 결정된다. 예를 들어, 4×4 루마 블록으로, 현재 드래프트 HEVC 표준은 4×4 유의성 맵 내의 각 비트 위치가 고유 컨텍스트를 갖는 것으로 정의한다. 마지막 위치를 제외하고, 이는 15개의 컨텍스트는 4×4 루마 유의성 맵의 인코딩을 위하여 트랙킹되는 것을 의미한다. 각 비트 위치에 대하여, 그 위치에 할당된 컨텍스트는 그 위치의 LPS와 연관된 추정 확률을 결정한다. 그 후, 실제 비트 값은 추정 확률을 이용하여 인코딩된다. 마지막으로, 그 위치에 할당된 컨텍스트는 실제 비트 값에 기초하여 업데이트된다. 디코더에서, 인코딩된 데이터가 동일한 컨텍스트 모델을 이용하여 디코딩된다. 각 비트 위치에 대한 컨텍스트가 트랙킹되고 데이터를 디코딩하기 위한 추정 확률을 결정하는데 사용되어 그 위치에 대한 비트를 회복한다.
16×16 및 32×32 유의성 맵으로, 유의에 대한 컨텍스트는 (대부분) 이웃 유의 계수 플래그 값에 기초한다. 16×16 및 32×32 유의성 맵에 사용되는 13개의 컨텍스트 중에서, [0, 0]에서의 비트 위치 및 이웃 비트 위치에 전용인 소정의 컨텍스트가 존재하지만, 유의 계수 플래그의 대부분은 이웃 유의 계수 플래그의 누적 값에 의존하는 5개의 컨텍스트 중의 하나를 취한다. 이들의 경우, 유의 계수 플래그에 대한 정확한 컨텍스트의 결정은 이웃 위치(일반적으로 5개의 위치이지만, 때때로, 더 많거나 적을 수 있다)에서의 유의 계수 프래그의 값을 결정하고 합산하는 것에 의존한다. 이것은 메모리 대역폭 요구사항에 있어서 비쌀 수 있는 다수의 메모리 액세스를 포함한다. 또한, 많은 경우, 16×16 및 32×32 유의성 맵은 많은 수의 제로를 포함한다. 따라서, 더 적은 계수 값을 갖는 큰 맵을 인코딩하고 송신하는데 수반되는 실질적인 비용이 있다.
본 출원의 일 형태에 따르면, 인코더 및 디코더는 소정의 변환 유닛에 대한 멀티레벨 유의성 맵을 사용한다. 이하에서 설명하는 예에서, 멀티레벨 유의성 맵은 16×16 및 32×32 사이즈 변환 유닛에 사용되지만, 임의의 실시예에서, 8×8 또는 64×64 또는 다른 사이즈의 변환 유닛에 사용될 수 있다.
유의 계수 플래그는 그룹핑된다. 각각의 유의 계수 플래그는 그룹 중의 하나로 속한다. 간략화를 위하여, 많은 실시예에서, 그룹은 (개념적으로) 변환 유닛 구조를 블록으로 나누거나 분할함으로써 형성된다. 예를 들어, 16×16 맵은 각각 16개의 계수 위치를 포함하는 4×4 블록으로 분리될 수 있다. 32×32 맵은 각각 64개의 계수 위치를 갖는 8×8 블록으로 분리될 수 있다. 유의 계수 플래그는 매트릭스 구조 내의 정의된 블록에 속하는 기준으로 그룹핑된다.
도 3은 예시적인 16×16 변환 유닛(100)(양자화된 변환 도메인 계수의 매트릭스)을 나타낸다. 인덱싱 목적으로, 변환 유닛 내의 비트 위치는 [xC, yC}로 특정될 수 있고, 여기서, xC=0, 1, 2, ... 15이고 yC=0, 1, 2, ... 15이다. (예를 들어, 대각선 스켄 순서를 이용하여, 참조 번호(112)로 지시된 바와 같이, 이 예의 마지막 유의 계수가 [12, 10]에 있다.
예시적인 유의성 맵(102)을 나타내는 도 4를 참조한다. 유의성 맵(102)은 도 4에 도시된 예시적인 변환 유닛으로부터 생성된 유의 계수 플래그를 포함한다. 유의 계수 플래그는 [0, 0]으로부터 마지막 유의 계수를 제외한 [12, 10}에서의 마지막 유의 계수까지의 스캔 순서로 모든 비트 위치에 나타난다. 변환 유닛(100) 내에 넌-제로 계수가 있는 각 비트 위치에서의 유의 계수 플래그는 1로 설정되지만, 제로 계수가 있는 각 비트 위치에서의 각 유의 계수 플래그는 0으로 설정된다.
유의성 맵(102), 즉, 유의 계수 플래그의 세트는 일 실시예에서 연속적인 블록으로의 변환 유닛 구조의 균일한 분리에 기초하여 그룹핑될 수 있다. 변환 유닛의 사이즈는 블록의 사이즈를 결정할 수 있다. 16×16 변환 유닛의 경우, 임의의 실시예에서, 블록은 4×4일 수 있다. 그룹핑은 도 4에서 4×4 블록의 경계를 표시하는 선에 의해 도시된다. 32×32 변환 유닛 등의 더 큰 변환 유닛은 4×4 블록, 8×8 블록 또는 다른 사이즈의 연속 블록으로 그룹핑된 유의 계수 플래그를 가질 수 있다.
여기에 주어지는 예는 간략화를 위하여 연속적인 정사각 블록으로 정의된 그룹을 사용하지만, 본 출원은 정사각 그룹에 한정되지 않는다. 그룹은 임의의 실시예에서 직사각 블록으로서 형성될 수 있다. 또 다른 실시예에서, 다른 형상이 사용될 수 있다. 예를 들어, 대각선 스캔 순서로, 그룹의 일부가 사다리꼴 형상일 수 있는 변환 유닛의 대각 슬라이스로부터 형성된 그룹을 사용하는 것이 유리할 수 있다.
그 후, 그룹의 매트릭스에 대응하는 하이 레벨 유의성 맵이 생성된다. 하이 레벨 유의성 맵은 유의 계수 그룹 플래그의 순차 세트이다. 적어도 하나의 유의 계수 플래그를 포함하는 각 그룹에 대하여 하나의 유의 계수 그룹 플래그가 존재한다. 마지막 유의 계수를 포함하는 그룹은, 적어도 하나의 넌-제로 계수, 즉, 마지막 유의 계수를 포함하는 것을 이미 알고 있기 때문에, 하이 레벨 유의 맵 내에 포함될 필요 없다. 유의성 맵은 레벨 0 또는 L0 맵이라 할 수 있다. 더 높은 레벨 유의 맵(즉, 유의 계수 그룹 플래그를 포함)은 레벨 1 또는 L1 맵이라 할 수 있다.
도 5는 도 4에 도시된 예시적인 유의성 맵(102)에 대응하는 L1 하이 레벨 유의성 맵(104)을 나타낸다. L1 맵(104)은 적어도 하나의 유의 계수 플래그를 포함하는 각 그룹에 대한 유의 계수 그룹 플래그를 포함한다. 그룹 내의 유의 계수 플래그의 임의의 것이 넌-제로인 경우 유의 계수 그룹 플래그는 1로 설정된다. 그렇지 않은 경우 0으로 설정된다.
그룹의 인덱싱은 [xCG, yCG]로 특정되고, 이 예에서, xCG=0, 1, 2, 3이고, yCG=0, 1, 2, 3이다. 마지막 유의 계수를 포함하는 그룹은 [3, 2]에 있다. [3, 3]의 그룹은 임의의 유의 계수 플래그를 포함하지 않아 L1 맵에 포함되지 않는다.
유의 계수 그룹 플래그는 임의의 실시예에서 역방향 스캔 순서로 벡터 형태로 변환될 수 있다. 스캔 순서는 변환 유닛에 일반적으로 사용되기 위하여 특정된 스캔 순서와 동일할 수 있다. 일 실시예에서, 유의 계수 그룹 플래그는 변환 유닛에 대한 선택된 스캔 순위와 다른 미리 정의된 스캔 순서를 사용할 수 있다. 임의의 경우, L1 맵은 이하에서 설명하는 바와 같이 추정된 플래그 그룹을 갖는 [0, 0] 그룹 또는 마지막 유의 계수 그룹처럼 소정의 그룹을 배제할 수 있다.
L1 맵은 L0 맵으로부터 직접 도출될 필요가 없고, 오히려 스캔 순서로 변환 유닛 내의 계수의 스캔으로부터 도출될 수 있음을 인식할 것이다.
임의의 실시예에서 더 높은 레벨 맵이 사용될 수 있음을 인식할 것이다. 예를 들어, 변환 유닛이 64×64 변환 유닛이면, L1 맵은 변환 유닛을 256 4×4 그룹으로 분리하는 것에 기초할 수 있다. 따라서, L1 맵은 L1 그룹 플래그를 포함하는 16×16 맵일 수 있다. 추가의 L2 맵은 L1 플래그를 4×4 블록(이 블록의 각각은 변환 유닛으로부터 16×16 계수의 그룹에 대응할 수 있다)의 추가 세트로 그룹핑함으로써 생성될 수 있다. 앱스트랙션(abstraction) 및/또는 그래뉼러티(granularity)의 추가의 레벨이 다른 실시예에서 채용될 수 있다.
유의 계수 플래그를 인코딩하는 예시적인 프로세스(200)의 플로우챠트를 나타내는 도 6을 참조한다. 프로세스(200)는 인코더가 유의 계수 플래그 및 유의 계수 그룹 플래그를 결정하는 단계(202)에서 시작한다. 일 실시예에서, 인더더는 역방향 스캔 순서로 변환 유닛을 스캔하여 마지막 유의 계수 및 유의 계수 플래그의 세트를 결정한다. 유의 계수 그룹 플래그는 동일한 스캔시 결정될 수 있다(스캔 순서가 일반적으로 다수의 블록을 통해 교차하는 것을 수반함에 따라 소정량의 값의 버퍼링이 실제 구현에서 사용될 수 있지만, 임의의 경우, 유의 계수 그룹 플래그의 결정은 인코더가 그 그룹에 대한 마지막 계수, 예를 들어, 출구 계수를 스캔했다고 결정했을 때 이루어진다). 임의의 구현예에서, 인코더는 L0 유의성 맵 또는 변환 유닛의 제2 스캔을 수행하여 유의 계수 그룹 플래그를 결정할 수 있다.
단계(204)에서, 각각의 유의 계수 그룹 플래그에 대하여, 인코더는 사용될 컨텍스트를 결정하고 결정된 컨텍스트에 기초하여 그 유의 계수 그룹 플래그를 인코딩한다. 유의 계수 그룹 플래그는 소정의 순서로 프로세싱될 수 있다. 임의의 실시예에서, 소정의 순서는 변환 유닛에 대한 스캔 순서(또는 역방향 스캔 순서)와 동일할 수 있다. 컨텍스트의 수 및 그 결정은 임의의 적절한 방식으로 구성될 수 있다. 컨텍스트의 예시적인 세트 및 유의 계수 그룹 플래그에 대한 컨텍스트를 결정하는 방법은 후술한다.
유의 계수 그룹 플래그의 세트를 인코딩하면, 인코더는 유의 계수 플래그를 인코딩한다. 단계(206)에서, (역방향 스캔 순서로 동작하는) 인코더는 그 컨텍스트를 결정하고 그 유의 계수 플래그가 유의 계수 그룹 플래그가 1로 설정된 그룹에 속하면 각 유의 계수 플래그를 인코딩한다. 해당하는 유의 계수 그룹 플래그가 제로로 설정되면, 그 그룹 내의 유의 계수 플래그 중의 임의의 것은 엔트로피 인코딩 프로세스시 인코딩되지 않는다, 즉, 스킵된다.
따라서, 프로세스(200) 후에, 인코더는 인코딩된 유의 계수 그룹 플래그를 포함하는 인코딩된 데이터의 비트스트림 및 적어도 하나의 넌-제로 유의 계수 플래그를 갖는 그룹에 속하는 인코딩된 유의 계수 플래그를 생성한다. 비트스트림은 적어도 하나의 넌-제로 유의 계수 플래그를 갖지 않는 임의의 그룹으로부터의 임의의 유의 계수 플래그를 포함하지 않는다.
디코더에서, 유의 계수 플래그는 비트스트림의 인코딩된 데이터로부터 재구성될 필요가 있다. 인코딩된 데이터의 비트스트림으로부터 유의 계수 플래그를 재구성하는 예시적인 프로세스(300)의 플로우챠트를 나타내는 도 7을 참조한다. 비트스트림은 네트워크 접속을 통해 수신, 즉, 메모리(예를 들어, 플래시 메모리, 등) 또는 저장 디스크(예를 들어 DVD, 블루레이, CD-ROM 등) 등의 컴퓨터 판독가능 매체로부터 스트리밍 또는 판독될 수 있다. 프로세스(302)는 디코더에서 변환 유닛을 재구성하는 프로세스에 적용된다. (사용되는 비디오 코딩 표준의 신택스에 따라) 시퀀스 및 각 슬라이스 또는 픽쳐에 대한 헤더의 정보의 디코딩은 도시되지 않는다.
단계(302)에서, 마지막 유의 계수의 위치는 비트스트림으로부터 디코딩된다. 이 정보는 임의의 적용가능한 신택스로 나타낼 수 있다. 임의의 표준은 마지막 유의 계수가 매트릭스 표기, 예를 들어, 변환 유닛 내의 x 및 y 기반 위치를 이용하여 특정되는 것을 제공할 수 있고, 임의의 표준은 마지막 유의 계수가 마지막 유의 계수 위치에서 1을 갖는 0의 벡터를 이용하여 시그널링될 수 있고, 이 벡터는 스캔 순서에 의해 변환 유닛에 맵핑된다. 마지막 유의 계수를 특정하는 임의의 적절한 신택스가 단계(302)에서 이용될 수 있다.
단계(304)에서, 유의 계수 그룹 플래그는 비트스트림으로부터 디코딩된다. 유의 계수 그룹 플래그는 적용가능한 이진화 방식이 표준에 의해 특정되거나 헤더 정보에서 특정되는 것을 이용하여 엔트로피 인코딩될 수 있다. 예를 들어, 컨텍스트 적응 이진 산술 코딩이 임의의 경우에 사용될 수 있다. 유의 계수 그룹 플래그는, 각 플래그 위치(더 높은 레벨 유의 맵 내의 비트 위치, 예를 들어, L1 유의성 맵)에 대한 컨텍스트를 결정하고 비트스트림으로부터 플래그 값을 디코딩하고 플래그 값에 기초하여 컨텍스트를 업데이트함으로으로써 디코딩된다. 스캔 순서가 기지(known)이고 마지막 유의 계수가 단계(302)에서 확인되었기 때문에, 유의 계수 그룹 플래그의 세트의 사이즈가 기지이며, 따라서, L1 유의성 맵의 사이즈가 결정된다. 고르지 않게 분할된 그룹의 경우, 그룹 사이즈 및 위치의 적절한 시그널링이 신택스에서 제공될 수 있다.
상술한 바와 같이, 각각의 유의 계수 그룹 플래그는 변환 유닛에 대하여 정의된 연속 그룹 중의 하나에 대응한다. 유의 계수 플래그 중의 하나 이상이 유의 계수 그룹 플래그를 갖는 이들 그룹의 각각에 속한다. 따라서, 각 유의 계수 그룹 플래그는 유의 계수 플래그의 각 그룹에 대응한다.
유의 계수 그룹 플래그의 세트를 디코딩한 후에, 유의 맵, 즉, 유의 계수 플래그의 세트를 재구성하는 나머지 동작이 소정의 스캔 순서로 수행된다. 역방향 스캔 순서의 경우, 프로세싱은 (마지막 유의 계수 위치는 이미 넌-제로 계수를 포함하는 것으로 이미 알고 있기 때문에 제외한다) 마지막 유의 계수로부터 시작한다. 단계(305)에서, 각 유의 계수 플래그에 대하여, 디코더는 자신의 해당 유의 계수 그룹 플래그가 제로인지를 결정한다. 해당 유의 계수 그룹 플래그가 넌-제로이면, 유의 계수 플래그는 단계(306)에 의해 지시된 바와 같이 비트스트림으로부터 디코딩된다. 즉, 연관 또는 해당 유의 계수 그룹 플래그가 그룹이 적어도 하나의 넌-제로 계수를 포함할 수 있는 것을 지시하면, 디코더는 현재의 위치에 대한 비트스트림으로부터 유의 계수 플래그를 디코딩한다.
연관 또는 해당 유의 계수 그룹 프래그가 제로이면, 즉, 그룹 내에 넌-제로 계수가 없는 것을 나타내면, 단계(308)에 의해 지시된 바와 같이, 디코더는 현재의 유의 계수 플래그를 제로로서 설정 또는 재구성한다. 비트스트림으로부터 디코딩하지 않는다.
단계(310)에서, 디코더는 역방향 스캔 순의 끝에 도달했는지, 즉, 변환 수단의 좌측 상단 코너의 계수, 예를 들어 [0, 0]에 도달했는지를 결정한다. 그런 경우, 프로세스(300)는 종료하고, 그렇지 않은 경우 디코더는 단계(312)의 역방향 스캔 순서로 다음의 위치로 이동하고 단계(306 및 308)을 반복하여 다음 위치에 대한 유의 계수 플래그를 재구성한다.
스캔 순서는 통상 다음 그룹으로 이동하기 전에 그룹의 모든 유의 계수 플래그를 재구성하지 않음을 인식할 것이다. 오히려, (스캔 순서 및 그룹 기하학 구조에 따른) 스캔 순서는 통상 그룹 경계를 가로질러 스캔하여 디코더가 역방향 스캔 순서로 [0, 0] 위치로 되돌아가는 방식으로 동작하는 하나의 그룹으로부터 몇개의 플래그, 인접 그룹으로부터 몇개의 플래그 등을 재구성한다.
비트를 절약하는 인코딩 및 디코딩 프로세스에서 처리되는 특수 경우가 존재할 수 있다. 예를 들어, 상기에서 설명한 바와 같이, 마지막 유의 계수를 포함하는 그룹은 항상 넌-제로 계수를 지시하는 유의 계수 그룹 플래그를 가져, 유의 계수 그룹 플래그는 인코딩되어 디코더로 전송될 필요가 없다. 인코더는 항상 그 그룹에 대한 유의 계수 플래그를 인코딩하고, 디코더는 항상 그 그룹에 대한 유의 계수 플래그를 디코딩하도록 구성된다.
임의의 실시예에 포함될 수 있는 다른 특수 경우는 제1 그룹을 항상 인코딩 및 디코딩하는 것이다. 이 그룹은 변환 유닛 내의 [0, 0]에 DC 계수를 포함한다. 이 그룹이 넌-제로 계수를 포함할 가능성은 매우 낮다. 따라서, 그 [0, 0] 그룹에 대한 유의 계수 그룹 플래그를 송신하는 대신, 인코더는 그 그룹의 유의 계수 플래그를 항상 인코딩하도록 구성될 수 있고, 디코더는 그 그룹의 유의 계산 플래그를 항상 디코딩하도록 구성될 수 있다.
임의의 실시예에 포함될 수 있는 또 다른 특수 경우는 또한 확률에 기초한다. 우측의 그룹 및 특정 그룹 아래의 그룹이 넌-제로 계수를 포함하면, 특정 그룹이 넌-제로 계수를 포함하는 확률은 매누 높다. 그러므로, 임의의 실시예에서, 인코더 및 디코더는 임의의 그룹이 넌-제로 계수를 포함하는 우측 이웃 그룹 및 하측 이웃 그룹을 갖는 것으로 추정하고, 그 그룹은 넌-제로 계수를 갖는다. 따라서, 소정의 그룹에 대하여, 우측의 그룹에 대한 유의 계수 그룹 플래그가 1로 설정되면, 하측의 그룹에 대한 유의 계수 그룹 플래그가 1로 설정되면, 인코더는 소정 그룹에 대한 유의 계수 플래그를 인코딩하지 않고 소정의 그룹에 대한 유의 계수 플래그를 항상 인코딩한다. 디코더는 우측 및 하부 이웃이 넌-제로 계수를 지시하는 유의 계수 그룹 플래그를 갖는 것으로 인식하여 소정의 그룹이 넌-제로 계수를 갖는 것으로 자동으로 가정하고 유의 계수 플래그를 디코딩한다.
상술한 특수 경우의 처리의 예시적인 실시예를 반영하기 위하여 추가의 세부사항을 갖는 도 7로부터의 단계(304)를 나타내는 도 8을 참조한다. 단계(304)는 마지막 유의 계수를 포함하는 그룹에 대한 유의 계수 그룹 플래그가 1로 설정된 단계(304-1)를 포함한다. 마지막 유의 계수의 위치는 이전의 단계(미도시)에서 비트스트림으로부터 디코딩된다.
디코더는 역방향 스캔 순서로 그룹을 통해 이동한다. 단계(304-2)에 나타낸 바와 같이, 디코더는 마지막 유의 계수를 포함하는 그룹으로부터 역방향 스캔 순서로 다음 그룹으로 이동한다. 이 그룹에 대하여, 디코더는 그우측의 그룹에 대한 유의 계수 그룹 플래그 및 현재 그룹 하부의 그룹에 대한 유의 계수 그룹 플래그가 1과 동일한지를 평가한다. 초기에, 디코더는 방금 시작했기 때문에 우측 및 하부에 플래그를 갖지 않지만, 나중에, 스캔 순서(수평, 수직, 또는 대각선)으로, 디코더는 때때로 현재의 그룹에 대하여 이들 위치의 유의 계수 그룹 플래그를 재구성할 수 있다(변환 유닛의 하부 에지에 위치하는 그룹에 대하여, 디코더는 하부의 그룹에 대한 플래그를 갖지 않을 수 있다). 이들 인접하는 2개의 그룹이 1로 설정되면, 현재의 그룹이 1로 설정될 확률이 충분히 높아 인코더 및 디코더는 1로 설정된 것으로 추정한다. 따라서, 단계(304-6)에서, 특수 경우 조건이 충족되면 디코더는 유의 계수 그룹 플래그를 1로 설정한다. 충족되지 않으면, 디코더는 단계(304-4)로 이동한다. 다른 실시예에서, 이 특수 경우는 다른 인접한 그룹 또는 다른 모든 그룹의 유의 계수 그룹 플래그에 기초하여 변경될 수 있다.
단계(304-4)에서, 디코더는 비트스트림으로부터 현재의 그룹에 대한 유의 계수 그룹 플래그를 디코딩한다. 디코딩은 컨텍스트를 결정하는 것과 결정된 컨텍스트에 따라 디코딩하는 것을 포함한다. 디코딩은 이진 산술 코딩(BAC) 또는 다른 이진 코딩/디코딩 프로세스에 기초할 수 있다.
단계(304-5)에서, 디코더는 역방향 스캔 순서로 이것이 끝에서 두번째인지를 결정한다. 그렇지 않으면, 디코딩은 아직 완료되지 않은 것이므로, 디코더는 단계(304-2)로 되돌아가 역방향 스캔 순서로 다음 그룹으로 진행한다. 역방향 스캔 순서로 끝에서 두번째 그룹이면, 디코더는 디코더가 마지막 그룹, 즉, 그룹 [0, 0]에 대한 유의 계수 그룹 플래그를 1로 설정하는 단계(304-7)로 이동한다. 이것은 그 특정 그룹이 인코더 및 디코더에 의해 적어도 하나의 넌-제로 계수를 갖는 것으로 추정되는 특수 경우에 기초하여, 유의 계수 그룹 플래그는 항상 1로 미리 설정되어 그 그룹에 대한 유의 계수 플래그가 항상 인코딩되고 디코딩된다. 이 단계 후에, 디코더는 단계(306 또는 308)로 진행한다(도 7).
도 7 및 8에 도시된 상기 예시적인 프로세스는 L1 유의성 맵이 완전히 디코딩된 후 L0 유의성 맵이 디코딩되는 2단계 프로세스로서 L1 유의성 맵(유의 계수 그룹 플래그)의 디코딩 및 L0 유의성 맵(유의성 계스 플래그)의 디코딩을 포함한다. 임의의 실시예에서, 이는 그 경우일 수 있지만, 임의의 다른 실시예에서, 디코딩 프로세스는 부분적으로 뒤얽힐 수 있다. 즉, L0 맵의 디코딩은 L1 맵이 완전히 맵핑되기 전에 시작할 수 있다. 임의의 실시예에서, L0 유의성 맵의 디코딩은 제1 유의 계수 그룹 플래그가 재구성되자마자 시작할 수 있음을 인식할 것이다.
임의의 실시예에서, 멀티레벨 유의성 맵 코딩은 예를 들어 픽쳐 타입에 따라 온 및 오프된다. 예를 들어, 멀티레벨 유의성 맵 코딩은 I 및 P 픽쳐에 대하여 인에이블링될 수 있지만 B 픽쳐에 대해서는 디스에이블링될 수 있다.
컨텍스트 모델링
코딩 효율을 개선하기 위하여, BAC 엔진(또는 다른 엔트로피 코딩/디코딩 엔진)은 컨텍스트를 사용한다. 본 출원은 유의 계수 그룹 플래그를 인코딩하는 새로운 4개의 컨텍스트를 이용하는 것을 제안한다. 2개의 컨텍스트는 루마 인코딩/디코딩을 위한 것이고 2개의 컨텍스트는 크로마 인코딩/디코딩을 위한 것이다.
역방향 스캔 순서가 사용되는 것으로 가정한다(다른 소정의 순서가 다른 구현예에서 사용될 수 있다). 2개의 콘텍스트 중의 어느 것이 주어진 유의 계수 그룹 플래그에 적용되는지의 결정이 다음과 같이 이루어질 수 있다. 현재의 그룹의 우측의 인접 그룹에 대한 유의 계수 그룹 플래그가 제로이고 현재의 그룹의 하측의 인접 그룹에 대한 유의 계수 그룹 플래그가 제로인 경우 현재의 그룹의 유의 계수 그룹 플래그를 인코딩하는 컨텍스트는 0이다. 그렇지 않은 경우 컨텍스트는 1이다. 2개의 인접하는 그룹에 대한 플래그가 이용가능하지 않으면, 이용가능하지 않은 플래그는 컨텍스트 결정의 목적으로 0으로 추정된다.
순방향 스캔 순서가 사용되면, 컨텍스트 모델이 변경되어 현재 그룹의 좌측의 인접 그룹에 대한 유의 계수 그룹 플래그 및 현재 그룹의 상부의 인접 그룹에 대한 유의 계수 그룹 플래그를 이용하여 컨텍스트를 결정한다.
컨텍스트 결정 프로세스는 또한 특수 경우를 포함할 수 있다. 예를 들어, 좌측 상부 그룹에는 항상 컨텍스트 1이 할당될 수 있다.
다른 가능한 컨텍스트 모델 및 사용될 수 있는 컨텍스트를 결정하는 방법이 존재한다. 임의의 예는 다음에 주어진다.
표기를 정의하기 위하여, L[i]는 레벨(L)에서 계수 그룹의 유의성 플래그를 나타내고, N은 레벨(L)에서 계수 그룹의 수를 나타낸다. 일반적으로, 주어진 L 및계수 그룹(i)에 대하여, 우리는 i의 함숯(*) 및 모든 이용가능한 L[j]를 이용하여 L[i]에 대한 컨텍스트(C_i)를 결정한다. 컨텍스트는 다음과 같이 주어진다.
Figure pat00001
여기서, j!=i이다. L[j]를 이용하여 L[i]에 대한 컨텍스트를 결정하기 위하여 L[j]가 이용가능해야 한다. 그러므로, 선택된 스캔 순서는 c(*) 내에 사용되는 임의의 L[j]가 이전에 결정되었다는 것을 보증해야 한다.
상술한 컨텍스트 결정 모드와 유사한 실시예에서, 컨텍스트는
Figure pat00002
에 의해 결정될 수 있다.
여기서, j=0, 1, ..., N이고 j!=i, 계수 그룹(j)가 계수 그룹(i)의 우측 또는 하측 이웃인 경우 bj=1이고, 그렇지 않은 경우 bj=0이다. 이 특정한 실시예는 3개의 컨텍스트를 갖는다(개별 3개의 컨텍스트가 크로마에 사용되면, 6).
c(*)의 다른 실시예는
Figure pat00003
에 의해 주어진다.
여기서, j=0, 1, ..., N이고 j!=i, 계수 그룹(j)가 이미 결정된 i의 임의의 이웃 계수 그룹인 경우 넌-제로이고, 그렇지 않은 경우 bj=0이다. 이 실시예에서, 가중 계수(bj)는 반드시 일정하지 않을 수 있다.
c(*)의 또 다른 실시예는 L에서 다른 계수 그룹의 유의 계수 그룹 플래그를 무시하고 현재의 계수 그룹의 위치(i)에 기초하여서만 컨텍스트를 결정한다. 이것은 다음과 같이 표현될 수 있다.
Figure pat00004
다른 컨텍스트 모델 및 컨텍스트를 결정하는 프로세스는 멀티레벨 유의성 맵과 함께 사용될 수 있다.
레이트 왜곡 최적화 양자화
임의의 인코딩 프로세스는 레이트 왜곡 최적화 양자화(RDOQ)를 채용하거나 때때로 "소프트 양자화"라 불리운다. RDOQ는 레이트 왜곡 최적화 표현에 기초하여 최적의 양자화된 변환 도메인 계수를 결정하는 프로세스이다. 따라서, RDOQ로부터 발생한 양자화된 변환 도메인 계수는 정상 변환 및 양자화 프로세스를 통해 도달한 양자화된 변환 도메인 계수와 동일하거나 동일하지 않을 수 있다. 임의의 경우, 결과적인 왜곡은 송신 비용의 결과적인 절약보다 비용이 적게 드는 것으로 결정되기 때문에 계수 값은 RDOQ 프로세스에 의해 변경될 수 있다.
RDOQ 프로세스는 레이트 컴포넌트를 결정하는데 있어서 4가지 비용을 정상적으로 평가한다. 4개의 레이트 비용은 마지막 위치 레이트, 유의성 레이트(L0 레이트), 계수 레이트 및 코딩된 블록 파라미터(CBP) 레이트를 포함한다. 멀티레벨 유의성 맵을 구현하기 위하여 RDOQ를 변경하여 RDOQ 산출에 하이 레벨 유의성 레이트(예를 들어, L1 레이트)를 또한 포함시키는 것이 유리하다.
일 실시예에서, RDOQ 프로세스는 변경되어 유의성 맵에 대하여 2단계 RDOQ를 수행할 수 있다. 먼저, RDOQ 프로세스가 적용되어 최선의 마지막 위치 및 계수 값을 결정하고, 따라서, L1 유의 계수 플래그를 결정한다. 제2 단계에서, 고정된 마지막 위치로, RDOQ 프로세스가 L1 레이트에 대하여 다시 적용되어 임의의 계수를 제로로 맞추는 레이트 왜곡(RD) 비용 타당성이 있는지를 결정한다.
도 9는 멀티레벨 유의성 맵의 인코딩을 위한 예시적인 RDOQ 프로세스(400)의 플로우챠트이다. 프로세스(400)는 RDOQ를 이용하여 최적의 양자화된 변환 계수를 얻고 마지막 유의 계수의 위치, 즉, L0 RDOQ를 결정한다. 그 후, 프로세스(400)는 마지막 위치를 고정하고 현재의 RD 비용을 조절하여 유의성 맵의 추가의 레벨의 효과를 처리한다. 그 후, 그리디(greedy) 어프로치를 이용하여 변환 계수를 더 최적화한다.
단계(402)는 RDOQ의 사용을 반영하여 마지막 유의 계수 위치를 제공하는 최적의 양자화된 변환 도메인 계수를 얻는다. 단계(402)는 마지막 위치, 최적의 계수에 대응하는 유의성 맵, 계수 값 및 CBP를 송신하는 레이트에 기초하여 소정의 RD 비용을 야기한다.
단계(404)에서, 마지막 유의 위치가 고정된다. 즉, 마지막 그룹은 넌-제로 계수를 포함한다. 즉, 마지막 유의 계수 그룹 플래그는 1에서 고정된다. 인코더는 다른 그룹에서 계수를 제로로 맞춤으로써 비용 절약이 되는지를 욕심내어(greedily) 결정한다. 프로세스(400)는 다른 순으로 처리될 수 있지만 임의의 실시예에서 역방향 스캔 순서로 수행될 수 있다.
단계(406)에서, 현재의 그룹으로서 끝에서 두번째 그룹으로 시작하여, 인코더는 현재의 그룹이 유의 계수 그룹 플래그 = 1을 갖는지를 결정한다. 그렇지 않으면, 그룹은 이미 제로만을 포함하고 인코더는 다음 그룹으로 스킵한다. 유의 계수 그룹 플래그 = 1이면, 인코더는 현재의 그룹 내의 모든 계수가 제로이면 발생할 수 있는 RD 비용을 산출한다. 단계(408)에서, 인코더는 새롭게 산출된 RD 비용이 현재의 RD 비용보다 나은지(예를 들어, 적은지)를 평가한다. 그러면, 단계(410)에서, 현재의 그룹 내의 모든 계수는 제로로 맞추어지고, 현재의 RD 비용은 업데이트되어 변화를 반영한다. 단계(412)에서, 인코더는 L1 RDOQ로 수행되었는지, 예를 들어, [0, 0] 그룹 직전에 그룹에 도달하였는지를 평가한다(인코더 및 디코더가 상기 특수 경우에 기재된 바와 같이 그 그룹 내에 적어도 하나의 넌-제로 계수가 있는지를 추정하도록 구성되면, [0, 0] 그룹은 제로가 되지 않는다.). 평가할 추가의 그룹이 있으면, 프로세스(400)는 인코더가 (임의의 실시예에서 역방향 스캔 순서를 이용하여) 다음의 그룹으로 이동하는 단계(414)에서 계속된다.
이하, RDOQ 프로세스가 예로서 기재된다. 도 3, 4 및 5와 연결하여 상술한 예를 참조한다. L1 RDOQ 이전 및 L0 RDOQ 후에, 최적의 양자화된 변환 도메인 계수는 도 3에 도시된다. 해당 L0 유의성 맵은 도 4에 도시되고, L1 유의성 맵은 도 5에 도시된다.
L1 RDOQ 프로세스는 예를 들어 도 10에 도시된 최적화된 L0 유의성 맵(500)및 도 11에 도시된 연관 또는 해당 L1 유의성 맵(502)을 유발할 수 있다.
마지막 유의 그룹, 즉, [3, 2] 그룹 내의 유의 계수 플래그는 변경되지 않는다. 그러나, [3, 0] 그룹, [0, 3] 그룹 및 [1, 3] 그룹은 모두 제로로 맞추어진다. 결과적으로, 이들 3개의 그룹에 대한 해당 유의 계수 그룹 플래그는 도 11에 지시된 바와 같이 제로로 변경되었다. 그 결과, 인코더가 이들 3개의 그룹을 인코딩할 필요가 없다. 이들 그룹 내에서 찾은 몇 개의 계수를 제로로 맞추는 것으로부터 발생하는 왜곡은 RDOQ 평가에 의해 결정된 바와 같이 인코딩된 비트의 수를 감소시키는데 있어서 비용 절약만큼 크다.
하나의 가능한 실시예에서, RDOQ 프로세스는 현재의 TU에 대한 최적의 계수 그룹 사이즈를 결정하기 위하여 확장될 수 있다. 이 실시예에서, 프로세스(400)는 다수의 라운드에 대하여 반복되고, 각 라운드는 상이한 계수 그룹 사이즈를 갖고, 단계(410)는 변경되어 변환 계수는 실제로 0으로 설정되지 않는다. 특히, 각 라운드에서, 이 변경된 RDOQ 프로세스는 특정한 계수 그룹 사이즈에 대한 RD 비용을 산출한다. 모든 라운드가 완료한 후에, RDOQ는 최소 RD 비용을 산출하는 계수 그룹 사이즈를 선택하고, 최종적으로 요구된 바와 같이 임의의 변환 계수를 0으로 설정한다. 인코더는 최적의 계수 그룹 사이즈의 값을 비트스트림으로 인코딩하여 디코더에 의해 얻어져 사용될 수 있다.
테스트되는 계수 그룹 사이즈는 변환 유닛 사이즈에 기초할 수 있다. 예를 들어, 32×32 변환 유닛은 그룹 사이즈 8×8, 4×4 및 2×2를 테스트할 수 있다. 테스트될 그룹은 선택가능하고, 인코더는 (예를 들어, 시퀀스 헤더에서) 어떤 그룹 사이즈가 각 변환 유닛 사이즈에 대하여 테스트되는지를 지시한다. 예를 들어, 인코더 및 디코더는, 16×16 TU에 대하여, 변경된 RDOQ가 1 및 0으로 지시된 2×2 및 4×4의 2개의 상이한 계수 그룹 사이즈를 테스트하는 것을 동의한 것으로 가정한다. 변경된 RDOQ가 2×2가 최적인 것으로 결정하면, 인코더는 significant_coeffgroup_flag's 전에 빈(bin) 1을 비트스트림으로 인코딩한다. 디코더는 significant_coeffgroup_flag's 전에 이 빈을 디코딩하고 현재의 TU에 대한 계수 그룹 사이즈가 2×2인 것을 안다.
예시적인 신택스
멀티레벨 유의성 맵을 구현하는 예시적인 신택스가 이하에 제공된다. 이 예시적인 신택스는 하나의 가능한 구현예이다.
유의 계수 그룹 플래그는
Figure pat00005
로 지시되고 정의된다.
이 플래그는 현재의 16×16 또는 32×32 변환 블록 내의 계수 그룹 위치(xCG, yCG)에 대하여 위치(xCG, yCG)에서의 해당 위치 그룹은 다음과 같이 넌-제로 계수를 갖는지를 특정한다.
- significant_coeffgroup_flag[xCG][yCG]이 0과 같은 경우, 위치(xCG, yCG)에서의 계수 그룹 내의 넌-제로 계수의 수는 0과 동일하다.
- 그렇지 않은 경우, (significant_coeffgroup_flag[xCG][yCG]이 1과 같으면), 위치(xCG, yCG)에서의 계수 그룹 내의 넌-제로 계수의 수는 이하에서 정의된 특수 경우를 제외하고 넌-제로이다.
특수 경우는 다음과 같이 정의된다.
1. 스캔 순서의 제1 계수 그룹 위치(0, 0)에서의 significant_coeffgroup_ flag[0][0]는 1과 동일한 것으로 추론된다.
2. significant_coeffgroup_flag[xCG][yCG+1]=1이고 significant_coeffgroup _flag[xCG+1][yCG]=1인 경우, 스캔 순서의 계수 그룹 위치(xCG, yCG)에서의 significant_coeffgroup_flag[xCG][yCG]는 1과 동일한 것으로 추론된다.
significant_coeffgroup_flag[xCG][yCG]이 존재하지 않으면, 0과 동일한 것으로 추론된다.
임의의 실시예에서, significant_coeffgroup_flag[xCG][yCG]는 4×4 및 8×8 변환 블록에 적용되지 않는다.
다음의 의사 코드는 양자화된 도메인 계수(잔여물)을 재구성하는 디코딩 프로세스 내의 멀티레벨 유의성 맵의 예시적인 일 구현예를 나타낸다.
의사 코드의 제1 부분은 마지막 유의 계수 위치를 디코딩하는 것을 포함한다. 변환 유닛이 (if (log2TrafoSize>3)에 의해 지시된 바와 같이) 16×16 보다 크면, 그룹의 수가 결정된다.
Figure pat00006
Figure pat00007
상술한 의사 코드는 도 7과 연결하여 상술한 예시적인 프로세스(300)의 예시적인 일 구현예를 나타낸다.
인코더(900)의 예시적인 실시예의 간략화된 블록도를 나타내는 도 12를 참조한다. 인코더(900)는 프로세서(902), 메모리(904), 및 인코딩 애플리케이션(906)을 포함한다. 인코딩 애플리케이션(906)은 메모리(904)에 저장되고 여기에 기재된 것 등의 동작을 수행하기 위하여 프로세서(902)를 구성하는 명령을 포함하는 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있다. 예를 들어, 인코딩 애플리케이션(906)은 여기에 기재된 멀티레벨 유의성 맵 프로세스에 따라 인코딩된 비트스트림을 인코딩하고 출력할 수 있다. 인코딩 애플리케이션(906)은 컴팩트 디스크, 플래시 메모리 장치, 랜덤 액세스 메모리, 하드 드라이브 등의 컴퓨터 판독가능 매체 상에 저장될 수 있다.
디코더(1000)의 예시적인 실시예의 간략화된 블록도를 나타내는 도 13을 참조한다. 디코더(1000)는 프로세서(1002), 메모리(1004) 및 디코딩 애플리케이션(1006)를 포함한다. 디코딩 애플리케이션(1006)은 메모리(1004)에 저장되고 여기에 기재된 것 등의 동작을 수행하기 위하여 프로세서(1002)를 구성하는 명령을 포함하는 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있다. 예를 들어, 디코딩 애플리케이션(1006)은 여기에 기재된 멀티레벨 유의성 맵 프로세스에 기초하여 잔여물을 재구성하도록 구성되는 엔트로피 디코더를 포함할 수 있다. 디코딩 애플리케이션(1006)은 컴팩트 디스크, 플래시 메모리 장치, 랜덤 액세스 메모리, 하드 드라이브 등의 컴퓨터 판독가능 매체 상에 저장될 수 있다.
본 출원에 따른 디코더 및/또는 인코더는, 제한없이, 서버, 적절하게 프로그래밍된 범용 컴퓨터, 오디오/비디오 인코딩 및 재생 장치, 셋탑 텔레비전 박스, 텔레비전 방송 장치 및 이동 장치를 포함하는 다수의 컴퓨팅 장치에서 구현될 수 있다. 디코더 또는 인코더는 여기에 기재된 기능을 수행하기 위하여 프로세서를 구성하는 명령을 포함하는 소프트웨어에 의해 구현될 수 있다. 소프트웨어 명령은 CD, RAM, ROM, 플래시 메모리를 포함하는 임의의 적절한 비일시적 컴퓨터 판독가능 메모리에 저장될 수 있다.
여기에 기재된 인코더 및 인코더를 구성하는 기재된 방법/프로세스를 구현하는 모듈, 루틴, 프로세스, 스레드(thread), 또는 다른 소프트웨어 컴포넌트는 표준 컴퓨터 프로그래밍 기술 및 언어를 이용하여 실현될 수 있음을 이해할 것이다. 본 출원은 특정 프로세서, 컴퓨터 언어, 컴퓨터 프로그래밍 컨벤션(conventions), 데이터 구조, 다른 구현 세부사항로 제한되지 않는다. 기재된 프로세스는 휘발성 또는 비휘발성 메모리에 저장된 컴퓨터 실행가능 코드의 일부로서, ASIC(application-specific integrated chip)의 일부로서 구현될 수 있다.
기재된 실시예의 소정의 적응 및 변경이 가능하다. 그러므로, 상술한 실시예는 설명하기 위한 것이며 제한적이지 않다.

Claims (20)

  1. 인코딩된 데이터의 비트스트림으로부터 변환 유닛 - 상기 변환 유닛은 유의 계수 플래그의 비중첩 그룹으로 분할됨 - 에 대한 유의 계수 플래그를 재구성하는 방법에 있어서,
    적어도 하나의 유의 계수 그룹 플래그의 값을 1로 설정함으로써, 유의 계수 그룹 플래그를 재구성하는 단계 - 각 유의 계수 그룹 플래그는 유의 계수 플래그의 각자의 그룹에 대응함 -; 및
    유의 계수 플래그가 넌-제로인 해당 유의 계수 그룹 플래그를 갖는 그룹 내에 있는 경우 상기 비트스트림으로부터 상기 유의 계수 플래그를 디코딩하고,
    유의 계수 플래그가 제로인 해당 유의 계수 그룹 플래그를 갖는 그룹 내에 있는 경우 상기 유의 계수 플래그를 제로로 설정함으로써,
    각 유의 계수 플래그를 재구성하는 단계
    를 포함하는, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  2. 제1항에 있어서, 상기 유의 계수 그룹 플래그를 재구성하는 단계는 상기 적어도 하나의 유의 계수 그룹 플래그 이외의 유의 계수 그룹 플래그 중의 적어도 하나를 상기 비트스트림으로부터 디코딩하는 단계를 포함하는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  3. 제1항에 있어서, 상기 적어도 하나의 유의 계수 그룹 플래그의 값을 1로 설정하는 것은 마지막 유의 계수에 대한 유의 계수 플래그를 포함하는 그룹에 대한 유의 계수 그룹 플래그를 1로 설정하는 것을 포함하는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  4. 제1항에 있어서, 상기 적어도 하나의 유의 계수 그룹 플래그의 값을 1로 설정하는 것은 DC 계수에 대한 유의 계수 플래그를 포함하는 그룹에 대한 유의 계수 그룹 플래그를 1로 설정하는 것을 포함하는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  5. 제1항에 있어서, 상기 적어도 하나의 유의 계수 그룹 플래그의 값을 1로 설정하는 것은 유의 계수 그룹 플래그가 1의 재구성된 값을 갖는 해당 유의 계수 그룹 플래그를 갖는 2개의 이웃 그룹을 갖는 그룹에 대응하는 경우 유의 계수 그룹 플래그를 1로 설정하는 것을 포함하는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  6. 제5항에 있어서, 상기 그룹은 연속적인 블록이고, 상기 2개의 이웃 그룹은 우측 이웃 블록 및 하측 이웃 블록을 포함하는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  7. 제1항에 있어서, 상기 유의 계수 그룹 플래그를 재구성하는 단계는 순방향 스캔 순서(forward scan order)로 마지막 유의 계수를 포함하는 그룹 후의 각 유의 계수 그룹 플래그에 대하여 유의 계수 그룹 플래그의 값을 제로로 설정하는 단계를 더 포함하는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  8. 제2항에 있어서, 상기 유의 계수 그룹 플래그 중의 적어도 하나를 상기 비트스트림으로부터 디코딩하는 것은 설정되지 않은 변환 유닛에 대한 모든 유의 계수 그룹 플래그를 디코딩하는 것을 포함하는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  9. 제1항에 있어서, 상기 변환 유닛은 16×16이고, 각 그룹은 4×4블록인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  10. 제1항에 있어서, 상기 변환 유닛은 32×32이고, 각 그룹은 8×8블록인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  11. 제1항에 있어서, 상기 유의 계수 그룹 플래그 중의 하나를 재구성하는 단계는 2개의 이웃 그룹에 대하여 재구성된 유의 계수 그룹 플래그에 기초하여 유의 계수 그룹 플래그에 대한 컨텍스트를 결정하는 단계를 포함하는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  12. 제11항에 있어서, 상기 2개의 이웃 그룹은 우측 이웃 및 하측 이웃을 포함하고, 상기 2개의 이웃 그룹에 대한 유의 계수 그룹 플래그가 모두 0인 경우 컨텍스트는 0이고, 그렇지 않은 경우 컨텍스트는 1인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  13. 제1항에 있어서, 그룹에 대한 해당 유의 계수 그룹 플래그는 1로 설정되지만, 상기 비트스트림으로부터 디코딩된 그룹들 중의 하나의 내의 모든 유의 계수 플래그의 값은 제로인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  14. 제1항에 있어서, 비디오 스트림은 스케일러블 비디오 코딩 표준, 멀티뷰 코딩 표준, 재구성가능 비디오 코딩 표준 및 고효율 비디오 코딩 표준 중의 하나를 따르는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  15. 제1항에 있어서, 각 그룹은 그 폭과는 다른 높이를 갖는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  16. 제1항에 있어서, 각 그룹은 16개의 유의 계수 플래그를 포함하고, 상기 유의 계수 플래그가 넌-제로인 해당 유의 계수 그룹 플래그를 갖는 그룹 내에 있는 경우 상기 비트스트림으로부터 상기 유의 계수 플래그를 디코딩하는 것은 그 그룹에 대하여 디코딩된 처음 15개의 유의 계수 플래그가 제로인 경우 그 그룹 내의 제16 유의 계수 플래그를 1로 설정하는 것을 포함하는 것인, 변환 유닛에 대한 유의 계수 플래그를 재구성하는 방법.
  17. 인코딩된 데이터의 비트스트림을 디코딩하여 변환 유닛에 대한 유의 계수 플래그를 재구성하는 디코더에 있어서,
    프로세서;
    메모리; 및
    상기 메모리에 저장되고 상기 프로세서를 제1항 내지 제16항 중 어느 한 항에 따른 방법을 수행하도록 구성하는 명령을 포함하는 디코딩 애플리케이션
    을 포함하는 디코더.
  18. 유의 계수 플래그의 비중첩 그룹으로 분할된 변환 유닛에 대한 유의 계수 플래그를 인코딩하는 방법에 있어서,
    유의 계수 그룹 플래그를 인코딩하는 단계 - 각 유의 계수 그룹 플래그는 유의 계수 플래그의 그룹 중 각자의 그룹에 대응하고, 상기 유의 계수 그룹 플래그는 제로로 설정되어 해당 그룹이 넌-제로 유의 계수 플래그를 포함하지 않는 것을 지시하고, 상기 인코딩은 해당 그룹이 넌-제로 유의 계수 플래그를 포함하는지에 관계없이 1로 추론되는 적어도 하나의 유의 계수 그룹 플래그를 배제함 -; 및
    상기 유의 계수 플래그의 각각에 대하여,
    해당 유의 계수 그룹 플래그가 넌-제로인 그룹 중의 하나의 그룹 내에 유의 계수 플래그가 있는 경우 상기 유의 계수 플래그를 인코딩하고, 해당 유의 계수 그룹 플래그가 제로인 그룹 중의 하나 그룹 내에 유의 계수 플래그가 있는 경우 상기 유의 계수 플래그를 인코딩하지 않는 단계
    를 포함하는, 변환 유닛에 대한 유의 계수 플래그를 인코딩하는 방법.
  19. 변환 유닛에 대한 유의 계수 플래그를 인코딩하는 인코더에 있어서,
    프로세서;
    유의성 맵을 저장하는 메모리; 및
    상기 메모리에 저장되고 상기 프로세서를 제18항에 따른 방법을 수행하도록 구성하는 명령을 포함하는 인코딩 애플리케이션
    을 포함하는 인코더.
  20. 실행될 때 하나 이상의 프로세서를 제1항 내지 16항 또는 제19항 중의 어느 한 항에 따른 방법을 수행하도록 구성하는 프로세서 실행가능 명령을 저장하는 비일시적 프로세서 판독가능 매체.
KR1020120122364A 2011-11-01 2012-10-31 인코딩 및 디코딩을 위한 멀티레벨 유의성 맵 KR101407755B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11187410.3A EP2590409B1 (en) 2011-11-01 2011-11-01 Multi-level significance maps for encoding and decoding
EP11187410.3 2011-11-01

Publications (2)

Publication Number Publication Date
KR20130048180A true KR20130048180A (ko) 2013-05-09
KR101407755B1 KR101407755B1 (ko) 2014-06-17

Family

ID=45033756

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120122364A KR101407755B1 (ko) 2011-11-01 2012-10-31 인코딩 및 디코딩을 위한 멀티레벨 유의성 맵

Country Status (13)

Country Link
EP (4) EP3754989A1 (ko)
JP (1) JP2013098988A (ko)
KR (1) KR101407755B1 (ko)
CN (2) CN103096065B (ko)
AU (1) AU2012244144B2 (ko)
BR (1) BR102012027968B1 (ko)
CA (1) CA2793068C (ko)
ES (1) ES2728529T3 (ko)
HK (2) HK1182243A1 (ko)
HU (1) HUE043461T2 (ko)
PL (1) PL2876883T3 (ko)
SG (1) SG189658A1 (ko)
TW (1) TWI510031B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140120909A (ko) * 2012-01-13 2014-10-14 퀄컴 인코포레이티드 비디오 코딩에서 변환 계수 데이터를 코딩하기 위한 콘텍스트들의 결정

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9538175B2 (en) * 2012-09-26 2017-01-03 Qualcomm Incorporated Context derivation for context-adaptive, multi-level significance coding
CA2917419C (en) * 2013-07-24 2020-07-14 Microsoft Technology Licensing, Llc Scanning orders for non-transform coding
JP2020072277A (ja) * 2017-03-03 2020-05-07 シャープ株式会社 動画像符号化装置及び動画像復号装置
AU2019201653A1 (en) * 2019-03-11 2020-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
CN116489374A (zh) * 2020-03-16 2023-07-25 北京达佳互联信息技术有限公司 对视频数据进行编码的方法、装置和介质
US20220239923A1 (en) * 2021-01-26 2022-07-28 Meta Platforms, Inc. Dynamically biasing mode selection in video encoding

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3017745B2 (ja) * 1989-03-14 2000-03-13 ソニー株式会社 データ伝送方法
US7596279B2 (en) * 2002-04-26 2009-09-29 Ntt Docomo, Inc. Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, and image decoding program
JP4230188B2 (ja) * 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
CA2457988A1 (en) * 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
US20060078049A1 (en) * 2004-10-13 2006-04-13 Nokia Corporation Method and system for entropy coding/decoding of a video bit stream for fine granularity scalability
US20070071331A1 (en) * 2005-09-24 2007-03-29 Xiteng Liu Image compression by economical quaternary reaching method
KR101356733B1 (ko) * 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
TWI341657B (en) * 2007-04-03 2011-05-01 Nat Univ Tsing Hua Cabac decoding method
EP2154894A1 (en) * 2008-08-15 2010-02-17 Thomson Licensing Video coding with coding of the locations of significant coefficients in a block of coefficients
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
US8942282B2 (en) * 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140120909A (ko) * 2012-01-13 2014-10-14 퀄컴 인코포레이티드 비디오 코딩에서 변환 계수 데이터를 코딩하기 위한 콘텍스트들의 결정

Also Published As

Publication number Publication date
EP2590409A1 (en) 2013-05-08
EP3499892A1 (en) 2019-06-19
HUE043461T2 (hu) 2019-08-28
CN105872550A (zh) 2016-08-17
TWI510031B (zh) 2015-11-21
CN105872550B (zh) 2020-03-06
BR102012027968A2 (pt) 2015-09-15
JP2013098988A (ja) 2013-05-20
CN103096065B (zh) 2016-06-15
SG189658A1 (en) 2013-05-31
AU2012244144A1 (en) 2013-05-16
CA2793068A1 (en) 2013-05-01
EP2590409B1 (en) 2015-01-07
EP2876883A1 (en) 2015-05-27
EP2876883B1 (en) 2019-05-01
TW201328363A (zh) 2013-07-01
EP3754989A1 (en) 2020-12-23
BR102012027968B1 (pt) 2021-12-21
HK1211155A1 (en) 2016-05-13
PL2876883T3 (pl) 2019-10-31
CA2793068C (en) 2016-07-26
HK1182243A1 (en) 2013-11-22
ES2728529T3 (es) 2019-10-25
KR101407755B1 (ko) 2014-06-17
CN103096065A (zh) 2013-05-08
AU2012244144B2 (en) 2015-05-07
EP3499892B1 (en) 2020-08-12

Similar Documents

Publication Publication Date Title
US10911758B2 (en) Multi-level significance maps for encoding and decoding
KR101538832B1 (ko) 다중-레벨 유효성 맵 스캐닝
KR101538837B1 (ko) 변환 유닛 내의 다수 부호 비트 은폐
KR101407755B1 (ko) 인코딩 및 디코딩을 위한 멀티레벨 유의성 맵
CA3068762A1 (en) Improvement on boundary forced partition
TWI493945B (zh) 使用分割區選擇之重要地圖編碼及解碼
TWI533705B (zh) 用於內容脈絡集選擇之方法及裝置

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: 20170529

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180528

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190607

Year of fee payment: 6