KR101671381B1 - 샘플 적응 오프셋 코딩 및/또는 시그널링을 위한 장치들 및 방법들 - Google Patents

샘플 적응 오프셋 코딩 및/또는 시그널링을 위한 장치들 및 방법들 Download PDF

Info

Publication number
KR101671381B1
KR101671381B1 KR1020147014994A KR20147014994A KR101671381B1 KR 101671381 B1 KR101671381 B1 KR 101671381B1 KR 1020147014994 A KR1020147014994 A KR 1020147014994A KR 20147014994 A KR20147014994 A KR 20147014994A KR 101671381 B1 KR101671381 B1 KR 101671381B1
Authority
KR
South Korea
Prior art keywords
sao
type
offset
types
blocks
Prior art date
Application number
KR1020147014994A
Other languages
English (en)
Other versions
KR20140090652A (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 KR20140090652A publication Critical patent/KR20140090652A/ko
Application granted granted Critical
Publication of KR101671381B1 publication Critical patent/KR101671381B1/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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
    • 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/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

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

Abstract

일 실시예에서, 비디오 비트스트림을 디코딩하는 방법은 (a) 비디오 비트스트림을 수신하는 단계; (b) 비트스트림으로부터 처리된 비디오 데이터를 유도하는 단계; (c) 처리된 비디오 데이터를 블록들로 파티셔닝하는 단계 - 블록들 각각은 픽처보다 작거나 같음 - ; (d) 블록들 각각에 대해 비디오 비트스트림으로부터 SAO 타입을 유도하는 단계 - SAO 타입은 바이어싱되지 않은 특정 코딩 방식과 연관됨 - ; (e) 블록들 각각 내의 픽셀들 각각에 대해 SAO 타입과 연관되는 SAO 서브 클래스를 결정하는 단계; (f) SAO 타입과 연관되는 서브 클래스에 대해 비디오 비트스트림으로부터 강도 오프셋을 유도하는 단계; 및 (g) SAO 보상을 처리된 비디오 블록 내의 픽셀들 각각에 적용하는 단계 - SAO 보상은 단계 (f)의 강도 오프셋에 기초함 - 를 포함한다.

Description

샘플 적응 오프셋 코딩 및/또는 시그널링을 위한 장치들 및 방법들{DEVICES AND METHODS FOR SAMPLE ADAPTIVE OFFSET CODING AND/OR SIGNALING}
본 개시는 일반적으로 비디오 코딩 분야에 관한 것으로, 특히 샘플 적응 오프셋(SAO) 코딩 및/또는 시그널링을 위한 시스템들, 장치들 및 방법들에 관한 것이다.
관련 출원들에 대한 상호 참조
본 출원은 발명의 명칭이 "Coding and Selection of SAO Parameters"이고 2011년 11월 8일자로 출원된 미국 가특허 출원 제61/557,409호, 발명의 명칭이 "Coding and Selection of SAO Parameters"이고 2011년 11월 14일자로 출원된 미국 가특허 출원 제61/559,714호, 및 발명의 명칭이 "SAO Type Coding Syntax"이고 2012년 4월 25일자로 출원된 미국 가특허 출원 제61/638,480호의 이익을 주장하며, 미국 가특허 출원들은 참조로서 본 명세서에 전체적으로 통합되어 있다.
비디오 압축은 많은 동작들을 위해 블록 처리를 사용한다. 블록 처리에서, 인접 픽셀들의 블록은 코딩 유닛으로 그룹화되고 압축 동작들은 코딩 유닛 내의 인접 픽셀들 사이의 상관들을 이용하기 위해 이러한 픽셀들의 그룹을 하나의 유닛으로서 취급한다. 블록 기반 처리는 종종 예측 코딩 및 변환 코딩을 포함한다. 양자화를 갖는 변환 코딩은, 소스 픽처로부터 취해진 변환 블록의 양자화가 종종 소스 픽처 내의 변환 블록과 연관되는 데이터를 폐기하고 이로써 그 대역폭 요건을 낮추지만 종종 또한 소스 픽처로부터 원래 변환 블록의 재생 시에 품질 손실을 야기하므로, 통상 "손실"되는 일 타입의 데이터 압축이다.
또한 H.264로 알려져 있는 MPEG-4 AVC는 블록 처리에서 변환 코딩을 사용하는 설정된 비디오 압축 표준이다. H.264에서, 픽처는 16x16 픽셀들의 매크로블록들(MBs)로 분할된다. 각각의 MB는 종종 더 작은 블록들로 더 분할된다. 크기에 있어서 MB보다 작거나 같은 블록들은 인트라/인터 픽처 예측을 사용하여 예측되고, 양자화와 함께 공간 변환이 예측 잔차(residuals)에 적용된다. 잔차의 양자화된 변환 계수들은 통상 엔트로피 코딩 방법들(예를 들어, 가변 길이 코딩 또는 산술 코딩)을 사용하여 인코딩된다. 문맥 적응 이진 산술 코딩(CABAC)은 적응 이진 산술 코딩 기술을 문맥 모델 세트와 결합함으로써 실질적인 무손실 압축 효율을 제공하기 위해 H.264에 도입되었다. 문맥 모델 선택은 CABAC에서 적응 및 리던던시 감소의 정도를 제공하는 역할을 한다. H.264는 2D 블록들에 대해 두 종류의 스캔 패턴들을 지정한다. 지그재그 스캔(zigzag scan)은 혁신적인 비디오 압축 기술들로 코딩된 픽처들에 사용되고 대안적인 스캔은 인터레이스(interlaced) 비디오 압축 기술들로 인코딩된 픽처들에 사용된다.
H.264를 계승하기 위해 개발된 고효율 비디오 코딩(HEVC), 내부 비디오 코딩 표준은 고선명(HD) 비디오 코딩에 도움이 되도록 변환 블록 크기들을 16x16 및 32x32 픽셀들로 확장한다.
본 개시의 상세들은 그의 구조 및 동작 둘 다에 관해서, 동일한 참조 번호들이 동일한 부분들을 지칭하는 첨부 도면들의 연구에 의해 부분적으로 이해될 수 있다. 도면들은 반드시 축척에 따라 도시되는 것은 아니며, 그 대신에 본 개시의 원리들을 예시하는 것이 강조된다.
도 1a는 본 개시의 다양한 실시예들이 사용될 수 있는 비디오 시스템이다.
도 1b는 본 개시의 실시예들이 구현될 수 있는 컴퓨터 시스템이다.
도 2a, 도 2b, 도 3a 및 도 3b는 본 개시의 실시예들에 따른 어떤 비디오 인코딩 원리들을 예시한다.
도 4a 및 도 4b는 본 개시의 실시예들에 따른 인코더 및 디코더에 대한 가능한 아키텍처들을 도시한다.
도 5a 및 도 5b는 본 개시의 일 실시예들에 따른 추가 비디오 코딩 원리들을 예시한다.
도 6은 본 개시의 실시예들에 따른 에지 오프셋/밴드 오프셋(EO/BO) 샘플 적응 오프셋(SAO) 타입의 예시적 VLC(variable length coding) 시그널링을 도시한다.
도 7은 본 개시의 실시예들에 따른 EO/BO SAO 타입의 예시적 CABAC 시그널링을 도시한다.
도 8은 본 개시의 실시예들에 따른 예시적 밴드 오프셋 사양을 도시한다.
도 9는 본 개시의 실시예들에 따른 오프셋들의 코딩에 대한 예시적 아키텍처를 도시한다.
따라서, 샘플 적응 오프셋(SAO) 프로세스에서 파라미터들의 선택, 코딩, 및 시그널링에 의해 비디오 품질을 개선하는 시스템들 및 방법들이 본 명세서에 제공된다. 본 명세서에 설명되는 방법들 및 시스템들은 일반적으로 비디오 인코더들 및 디코더들과 같은 비디오 처리와 관계된다.
제1 양태에서, 복수의 픽처들을 갖는 비디오 비트스트림을 디코딩하는 방법 - 비트스트림은 샘플 적응 오프셋(SAO)을 갖는 비디오 코딩 시스템에 의해 생성됨 - 이 제공되며, 방법은 (a) 비디오 비트스트림을 수신하는 단계; (b) 비트스트림으로부터 처리된 비디오 데이터를 유도하는 단계; (c) 처리된 비디오 데이터를 블록들로 파티셔닝하는 단계 - 블록들 각각은 픽처보다 작거나 같음 - ; (d) 블록들 각각에 대해 비디오 비트스트림으로부터 SAO 타입을 유도하는 단계 - SAO 타입은 바이어싱되지 않은 특정 코딩 방식과 연관됨 - ; (e) 블록들 각각 내의 픽셀들 각각에 대해 SAO 타입과 연관되는 SAO 서브 클래스를 결정하는 단계; (f) SAO 타입과 연관되는 서브 클래스에 대해 비디오 비트스트림으로부터 강도 오프셋을 유도하는 단계; 및 (g) SAO 보상을 처리된 비디오 블록 내의 픽셀들 각각에 적용하는 단계 - SAO 보상은 단계 (f)의 강도 오프셋에 기초함 - 를 포함한다. 제1 양태의 일 실시예에서, SAO 코딩 타입은 하나 이상의 에지 오프셋(EO) 타입들 및 하나 이상의 밴드 오프셋(BO) 타입들을 포함하는 그룹으로부터 선택된다. 제1 양태의 일 실시예에서, EO 타입들은 적어도 4개의 에지 오프셋 타입들을 포함한다. 제1 양태의 일 실시예에서, BO 타입들은 적어도 하나의 밴드 오프셋 타입을 포함한다. 제1 양태의 일 실시예에서, SAO 타입들과 연관되는 바이어싱되지 않은 특정 코딩 방식은 각각의 코드워드 내에 적어도 2개의 유닛들을 갖는 이진 코딩 방식을 포함한다. 제1 양태의 일 실시예에서, 각각의 코드워드는 개별 SAO 타입과 연관된다. 제1 양태의 일 실시예에서, 코드워드는 SAO 타입이 온 또는 오프되는지를 식별하기 위한 별개의 제1 유닛을 포함한다. 제1 양태의 일 실시예에서, 코드워드는 SAO 타입이 BO 타입 또는 EO 타입인지를 식별하기 위한 별개의 제2 유닛을 더 포함한다. 제1 양태의 일 실시예에서, 코드워드는 EO 타입의 어느 타입인지를 식별하기 위한 별개의 제3 유닛을 더 포함한다. 제1 양태의 일 실시예에서, 코드워드 내의 유닛들 중 적어도 하나는 문맥 기반 적응 이진 산술 코딩(CABAC)을 사용하여 인코딩된다. 제1 양태의 일 실시예에서, 별개의 제3 유닛은 4개의 EO 타입 중 하나를 식별하기 위해 2개의 이진 숫자로 구성된다. 제1 양태의 일 실시예에서, SAO 타입들과 연관되는 바이어싱되지 않은 특정 코딩 방식은 SAO 코딩 타입들 각각과 연관되는 하나 이상의 플래그들을 포함한다. 제1 양태의 일 실시예에서, BO 타입 및 EO 타입은 SAO 밴드 플래그를 사용하여 시그널링될 수 있다. 제1 양태의 일 실시예에서, SAO 서브 클래스 타입은 SAO 에지 타입 플래그를 사용하여 시그널링될 수 있다. 제1 양태의 일 실시예에서, SAO 코딩 타입은 컬러 코딩 성분에 대해 시그널링될 수 있다. 제1 양태의 일 실시예에서, 방법은 프로세서 및 상기 프로세서에 결합된 메모리를 갖는 컴퓨터 상에 구현되며, 단계들 (a) 내지 (g)의 적어도 일부는 상기 프로세서를 사용하여 수행된다.
제2 양태에서, 복수의 픽처들을 갖는 비디오 비트스트림을 디코딩하는 장치 - 비트스트림은 샘플 적응 오프셋(SAO)을 갖는 비디오 코딩 시스템에 의해 생성됨 - 가 제공되며, 장치는 (a) 비디오 비트스트림을 수신하고; (b) 비트스트림으로부터 처리된 비디오 데이터를 유도하고; (c) 처리된 비디오 데이터를 블록들로 파티셔닝하며 - 블록들 각각은 픽처보다 작거나 같음 -; (d) 블록들 각각에 대해 비디오 비트스트림으로부터 SAO 타입을 유도하며 - SAO 타입은 바이어싱되지 않은 특정 코딩 방식과 연관됨 -; (e) 블록들 각각 내의 픽셀들 각각에 대해 SAO 타입과 연관되는 SAO 서브 클래스를 결정하고; (f) SAO 타입과 연관되는 서브 클래스에 대해 비디오 비트스트림으로부터 강도 오프셋을 유도하며; (g) SAO 보상을 처리된 비디오 블록 내의 픽셀들 각각에 적용하도록 - SAO 보상은 단계 (f)의 강도 오프셋에 기초함 - 구성된 비디오 디코더를 포함한다. 제2 양태의 일 실시예에서, 장치는 집적 회로; 마이크로프로세서; 및 비디오 디코더를 포함하는 무선 통신 장치 중 적어도 하나를 포함한다. 제2 양태의 일 실시예에서, SAO 코딩 타입은 하나 이상의 에지 오프셋(EO) 타입들 및 하나 이상의 밴드 오프셋(BO) 타입들을 포함하는 그룹으로부터 선택된다. 제2 양태의 일 실시예에서, SAO 타입들과 연관되는 바이어싱되지 않은 특정 코딩 방식은 각각의 코드워드 내에 적어도 2개의 유닛들을 갖는 이진 코딩 방식을 포함한다. 제2 양태의 일 실시예에서, EO 타입들 및 BO 타입들은 거의 균등 크기인 코드워드들에 의해 표현된다.
제3 양태에서, 샘플 적응 오프셋(SAO)을 사용하여 복수의 픽처들을 갖는 비디오 데이터를 인코딩하는 방법이 제공되며, 방법은 (a) 비디오 데이터를 블록들로 파티셔닝하는 단계 - 블록들 각각은 픽처보다 작음 - ; (b) 블록들 각각에 대해 비디오 데이터의 SAO 타입을 선택하는 단계 - SAO 타입은 바이어싱되지 않은 특정 코딩 방식과 연관됨 - ; (c) 블록들 각각 내의 픽셀들 각각에 대해 SAO 타입과 연관되는 SAO 서브 클래스를 선택하는 단계; (d) SAO 타입과 연관되는 서브 클래스에 대해 비디오 데이터의 강도 오프셋을 결정하는 단계; 및 (e) SAO 보상을 처리된 비디오 블록 내의 픽셀들 각각에 적용하는 단계 - SAO 보상은 단계 (d)의 강도 오프셋에 기초함 - 를 포함한다. 제3 양태의 일 실시예에서, 방법은 프로세서 및 상기 프로세서에 결합된 메모리를 갖는 컴퓨터 상에 구현되며, 단계들 (a) 내지 (e)의 적어도 일부는 상기 프로세서를 사용하여 수행된다.
본 개시에서, "코딩"의 용어는 인코더에서 발생하는 인코딩 또는 디코더에서 발생하는 디코딩을 지칭한다. 유사하게, 코더의 용어는 인코더, 디코더, 또는 CODEC(combined encoder/decoder)를 지칭한다. 코더, 인코더, 디코더 및 CODEC의 용어들은 본 개시에 따른 비디오 데이터의 코딩(인코딩 및/또는 디코딩)을 위해 설계된 특정 머신들을 모두 지칭한다.
본 개시는 디지털 이미지 압축 기술에 공지되어 있는 일부 용어들 및 기술들의 매우 짧은 개요로 시작한다. 이러한 개요는 공지된 기술을 상세하게 교시하는 것으로 의미되지 않는다. 당업자들은 교과서들 및 관련된 표준들에서 보다 많은 상세들을 발견하는 법을 알고 있다.
본 개시의 일 실시예가 사용될 수 있는 비디오 시스템의 일 예가 이제 설명될 것이다. 도면들에서 기능 블록들로 도시된 요소들은 하드웨어, 소프트웨어, 또는 그것의 결합으로 구현될 수 있다는 점이 이해된다. 더욱이, 본 개시의 실시예들은 다른 시스템들, 예를 들어 개인용 컴퓨터, 스마트폰 또는 태블릿 컴퓨터 상에 이용될 수도 있다.
도 1a를 참조하면, 일반적으로 10으로 라벨링된 비디오 시스템은 케이블 텔레비전 네트워크의 헤드엔드(100)를 포함할 수 있다. 헤드엔드(100)는 비디오 콘텐츠를 이웃들(129, 130 및 131)에게 전달하도록 구성될 수 있다. 헤드엔드(100)는 헤드엔드들의 계층 내에서 동작할 수 있으며, 계층에서 더 높은 헤드엔드들은 일반적으로 더 큰 기능성을 갖는다. 헤드엔드(100)는 위성 안테나(112)에 통신 연결되고 그것으로부터 논-로컬 프로그래밍에 대한 비디오 신호들을 수신할 수 있다. 헤드엔드(100)는 로컬 프로그래밍을 헤드엔드(100)에 전달하는 로컬 스테이션(114)에 통신 연결될 수도 있다. 헤드엔드(100)는 위성 안테나(112)로부터 수신된 비디오 신호들을 디코딩하는 디코더(104), 로컬 스테이션(114)으로부터 로컬 프로그래밍을 수신하는 오프 에어 수신기(106), 헤드엔드(100)의 다양한 구성요소들 사이에서 데이터 트래픽을 라우팅하는 스위처(102), 고객들에게 전달되는 비디오 신호들을 인코딩하는 인코더들(116), 고객들에 전달되는 신호들을 변조하는 변조기들(118), 및 다양한 신호들을 단일 멀티 채널 송신으로 결합하는 결합기(120)를 포함할 수 있다.
헤드엔드(100)는 HFC(hybrid fiber cable) 네트워크(122)에 통신 연결될 수도 있다. HFC 네트워크(122)는 복수의 노드들(124, 126, 및 128)에 통신 연결될 수 있다. 노드들(124, 126, 및 128) 각각은 동축 케이블에 의해 이웃들(129, 130 및 131) 중 하나에 연결되고 케이블 텔레비전 신호들을 그 이웃에게 전달할 수 있다. 도 1a의 이웃들(130) 중 하나는 더 상세히 도시된다. 이웃(130)은 도 1a에 도시된 집(132)을 포함하는 다수의 주택을 포함할 수 있다. 집(132) 내에 비디오 디스플레이(136)에 통신 연결되는 셋톱 박스(134)가 있을 수 있다. 셋톱 박스(134)는 제1 디코더(138) 및 제2 디코더(140)를 포함할 수 있다. 제1 및 제2 디코더들(138 및 140)은 사용자 인터페이스(142) 및 대용량 저장 장치(144)에 통신 연결될 수 있다. 사용자 인터페이스(142)는 비디오 디스플레이(136)에 통신 연결될 수 있다.
동작 동안, 헤드엔드(100)는 위성 안테나(112) 및 로컬 스테이션(114)으로부터 로컬 및 논-로컬 프로그래밍 비디오 신호들을 수신할 수 있다. 논-로컬 프로그래밍 비디오 신호들은 디지털 비디오 스트림의 형태로 수신될 수 있는 한편, 로컬 프로그래밍 비디오 신호들은 아날로그 비디오 스트림으로 수신될 수 있다. 일부 실시예들에서, 로컬 프로그래밍은 디지털 비디오 스트림으로 수신될 수도 있다. 디지털 비디오 스트림은 디코더(104)에 의해 디코딩되고 고객 요청들에 응답하여 스위처(102)에 송신될 수 있다. 헤드엔드(100)는 대용량 저장 장치(110)에 통신 연결된 서버(108)를 포함할 수도 있다. 대용량 저장 장치(110)는 서버(108)가 검색하여 스위처(102)에 제공할 수 있는, VOD(video on demand)를 포함하는 다양한 타입들의 비디오 콘텐츠를 저장할 수 있다. 스위처(102)는 로컬 프로그래밍을 변조기들(118)에 직접 라우팅할 수 있으며, 변조기들은 로컬 프로그래밍을 변조하고, 논-로컬 프로그래밍(임의의 VOD를 포함함)을 인코더들(116)에 라우팅한다. 인코더들(116)은 논-로컬 프로그래밍을 디지털 인코딩할 수 있다. 그 다음, 인코딩된 논-로컬 프로그래밍은 변조기들(118)에 송신될 수 있다. 결합기(120)는 변조된 아날로그 비디오 데이터 및 변조된 디지털 비디오 데이터를 수신하며, 비디오 데이터를 결합하고 그것을 다수의 무선 주파수(RF) 채널들을 통해 HFC 네트워크(122)에 송신하도록 구성될 수 있다.
HFC 네트워크(122)는 결합된 비디오 데이터를 노드들(124, 126 및 128)에 송신할 수 있으며, 노드들은 데이터를 그러한 각각의 이웃들(129, 130 및 131)에 재송신할 수 있다. 집(132)은 이러한 비디오 데이터를 셋톱 박스(134)에서, 더 구체적으로 제1 디코더(138) 및 제2 디코더(140)에서 수신할 수 있다. 제1 및 제2 디코더들(138 및 140)은 비디오 데이터의 디지털 부분을 디코딩하고 디코딩된 데이터를 사용자 인터페이스(142)에 제공할 수 있으며, 사용자 인터페이스는 이 때 디코딩된 데이터를 비디오 디스플레이(136)에 제공할 수 있다.
도 1a의 인코더들(116) 및 디코더들(138 및 140)(뿐만 아니라 본 명세서에 설명되는 다른 단계들 및 기능들 모두)은 메모리 또는 다른 타입의 저장 장치와 같은 컴퓨터 판독가능 저장 장치 상에 저장된 컴퓨터 판독가능 명령들을 포함하는 컴퓨터 코드로 구현될 수 있다. 컴퓨터 코드는 ASIC(application-specific integrated circuit), 또는 다른 타입의 회로와 같은 프로세서에 의해 컴퓨터 시스템 상에 실행될 수 있다. 예를 들어, 인코더들(116)을 구현하는 컴퓨터 코드는 헤드엔드(100)에 상주하는 컴퓨터 시스템(예컨대 서버) 상에 실행될 수 있다. 다른 한편, 디코더들(138 및 140)에 대한 컴퓨터 코드는 셋톱 박스(134) 상에 실행될 수 있으며, 셋톱 박스는 일 타입의 컴퓨터 시스템을 구성한다. 코드는 프로그램 명령들로 구성된 소프트웨어 프로그램들로서 소스 코드, 목적 코드, 실행가능 코드 또는 다른 포맷들로 존재할 수 있다. 도 1a에 도시된 다양한 구성요소들에 대한 컴퓨터 코드는 바람직하거나 유리한 것으로 결정되는 시스템(10)의 어디든 또는 다른 곳에(예컨대 클라우드 네트워크에) 상주할 수 있다는 점이 이해되어야 한다. 더욱이, 컴퓨터 코드는 명령들이 하나 이상의 구성요소들에 의해 효과적으로 수행될 수 있으면, 하나 이상의 구성요소들에 위치될 수 있다.
도 1b는 인코더들(116) 및 디코더들(138 및 140)에 대한 컴퓨터 코드가 실행될 수 있는 컴퓨터 시스템의 일 예를 도시한다. 일반적으로 400으로 라벨링된 컴퓨터 시스템은 본 명세서에 설명되는 방법들, 기능들, 및 다른 단계들의 일부 또는 전부를 수행하는 소프트웨어 명령들을 구현하거나 실행할 수 있는 프로세서(401), 또는 처리 회로를 포함한다. 프로세서(401)로부터의 커맨드들 및 데이터는 예를 들어 통신 버스(403)를 통해 통신될 수 있다. 컴퓨터 시스템(400)은 또한 RAM(random access memory)과 같은 컴퓨터 판독가능 저장 장치(402)를 포함할 수도 있으며, 프로세서(401)에 대한 소프트웨어 및 데이터는 런타임 동안 상주할 수 있다. 저장 장치(402)는 비휘발성 데이터 스토리지를 포함할 수도 있다. 컴퓨터 시스템(400)은 네트워크에 연결하기 위한 네트워크 인터페이스(404)를 포함할 수 있다. 다른 공지된 전자 구성요소들이 추가되거나 컴퓨터 시스템(400)에 도시된 구성요소들을 대체할 수 있다. 컴퓨터 시스템(400)은 헤드엔드(100)에 상주하고 인코더들(116)을 실행할 수 있고, 디코더들(138 및 140)을 실행하기 위해 셋톱 박스(134)에 구체화될 수도 있다. 게다가, 컴퓨터 시스템(400)은 헤드엔드(100) 및 셋톱 박스(134)와 다른 위치들에 상주할 수 있고, 스마트폰 또는 태블릿 컴퓨터에 통합되도록 소형화될 수 있다.
비디오 인코딩 시스템들은 비디오 데이터에서 리던던시를 제거함으로써, 예를 들어 재생 충실도에 악영향을 주는 것 없이 폐기될 수 있는 그러한 요소들을 제거함으로써 압축을 달성한다. 비디오 신호들은 시간 및 공간에서 발생하기 때문에, 대부분의 비디오 인코딩 시스템들은 이러한 신호들에 존재하는 시간 및 공간 리던던시 둘 다를 이용한다. 전형적으로, 연속적 프레임들 사이에 높은 시간 상관이 존재한다. 이것은 또한 서로 가까운 픽셀들에 대한 공간 도메인에서 참이다. 따라서, 높은 압축 이득들은 이러한 공간 시간 상관들을 주의깊게 이용함으로써 달성된다.
비디오 데이터가 본 개시의 일 실시예에서 인코더들(116) 및 디코더들(138 및 140)에 의해 어떻게 인코딩되고 디코딩되는지의 고급 설명이 이제 제공될 것이다. 이러한 실시예에서, 인코더들 및 디코더들은 고효율 비디오 코딩(HEVC) 방법에 따라 동작한다. HEVC는 블록 기반 혼합 공간 및 시간 예측 코딩 방법이다. HEVC에서, 입력 픽처는 우선 도 2a에 도시된 바와 같이, LCU들(가장 큰 코딩 유닛들) 또는 CTU들(코딩 트리 유닛들)로 칭해지는 정사각형 블록들로 분할된다. 기본 코딩 유닛이 16x16 픽셀들의 매크로블록인 다른 비디오 코딩 표준들과 달리, HEVC에서, LCU는 128x128 픽셀들만큼 클 수 있다. LCU는 LCU의 크기의 1/4인 CU들(코딩 유닛들)로 칭해지는 4개의 정사각형 블록으로 분할될 수 있다. 각각의 CU는 원래 CU의 크기의 1/4인 4개의 더 작은 CU로 더 분리될 수 있다. 분리 프로세스는 특정 기준들이 충족될 때까지 반복될 수 있다. 도 3a는 CU들로 파티셔닝되는 LCU의 일 예를 도시한다.
특정 LCU가 CU들로 어떻게 분리되는지가 쿼드트리에 의해 표현될 수 있다. 쿼드트리의 각각의 노드에서, 플래그는 노드가 서브 노드들로 더 분리되면 "1"에 설정된다. 그렇지 않으면, 플래그는 "0"에 비설정된다. 예를 들어, 도 3a의 LCU 파티션은 도 3b의 쿼드트리에 의해 표현될 수 있다. 이러한 "분리된 플래그들"은 스킵 모드 플래그, 병합 모드 플래그, 및 예측 유닛(PU) 모드 플래그 등을 포함하는 비디오 비트스트림 내의 다른 플래그들과 함께 공동으로 코딩될 수 있다. 도 3b의 쿼드트리의 경우에, 분리된 플래그들(10100)은 다른 플래그들과 함께 오버헤드로서 코딩될 수 있다. 주어진 CU에 대한 신택스 정보는 회귀적으로 정의될 수 있고, CU가 서브 CU들로 분리되는지에 의존할 수 있다.
분리되지 않는 CU(예를 들어, 단말, 또는 주어진 쿼드트리 내의 "리프(leaf)" 노드에 상응하는 CU)는 하나 이상의 예측 유닛들(PU들)을 포함할 수 있다. 일반적으로, PU는 상응하는 CU의 전부 또는 일부를 나타내고, CU에 대한 예측을 수행할 목적들로 PU에 대한 참조 샘플을 검색하는 데이터를 포함한다. 따라서, 쿼드트리의 각각의 리프에서, 2Nx2N의 최종 CU는 도 2b에 도시된 바와 같이, 4개의 가능한 패턴(NxN, Nx2N, 2NxN 및 2Nx2N) 중 하나를 소유할 수 있다. 2Nx2N CU에 대해 도시되지만, 상이한 치수들 및 상응하는 패턴들(예를 들어, 정사각형 또는 직사각형)을 갖는 다른 PU들이 사용될 수 있다. CU는 공간적으로 또는 시간적으로 예측 코딩될 수 있다. CU가 인트라 모드에서 코딩되면, CU의 각각의 PU는 그 자체의 공간 예측 방향을 가질 수 있다. CU가 인터 모드에서 코딩되면, CU의 각각의 PU는 그 자체의 모션 벡터(들) 및 연관된 참조 픽처(들)를 가질 수 있다. 모션 벡터를 정의하는 데이터는 예를 들어 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터에 대한 분해능(예를 들어, 1/4 픽셀 정확도 또는 1/8 픽셀 정확도), 모션 벡터가 가리키는 참조 프레임, 및/또는 모션 벡터에 대한 참조 리스트(예를 들어, 리스트 0 또는 리스트 1)를 설명할 수 있다. CU의 하나 이상의 PU들을 정의하는 CU에 대한 데이터는 예를 들어 CU를 하나 이상의 PU들로 파티셔닝하는 것을 설명할 수도 있다. 파티셔닝 모드들은 CU가 코딩되지 않는지, 인트라 예측 모드 인코딩되는지, 또는 인터 예측 모드 인코딩되는지 사이에서 다를 수 있다.
일반적으로, 인트라 예측 코딩에서, 고레벨의 공간 상관은 프레임 내의 인접 블록들 사이에 존재한다. 따라서, 블록은 인근에 인코딩되고 재구성된 블록들로부터 예측되어, 인트라 예측을 일으킬 수 있다. 일부 실시예들에서, 예측은 현재 블록의 위 및 좌측에 위치되는 이전에 인코딩된 샘플들의 가중 평균에 의해 형성될 수 있다. 인코더는 원형과 예측 사이에서 차이 또는 비용을 최소화하는 모드를 선택하고 이러한 선택을 제어 데이터로 시그널링할 수 있다.
일반적으로, 인터 예측 코딩에서, 비디오 시퀀스들은 프레임들 사이에 높은 시간 상관을 가져서, 현재 프레임 내의 블록이 참조 프레임들로 알려져 있는 이전에 코딩된 프레임들 내의 영역에 의해 정확히 설명될 수 있게 한다. 인터 예측은 블록 기반 모션 추정 및 보상 기술을 사용하는 예측을 전개하기 위해 이전에 인코딩되고 재구성된 참조 프레임들을 이용한다.
예측 데이터 및 잔여 데이터를 생성하는 인트라 예측 또는 인터 예측 인코딩 후에, 그리고 변환 계수들을 생성하는 임의의 변환들(예컨대 H.264/AVC에 사용되는 4x4 또는 8x8 정수 변환 또는 이산 코사인 변환(DCT)) 후에, 변환 계수들의 양자화가 수행될 수 있다. 양자화는 일반적으로 예를 들어 높은 정확도 변환 계수들을 유한 수의 가능한 값들로 변환함으로써 계수들을 표현하는데 사용되는 데이터의 양을 가능한 한 감소시키기 위해 변환 계수들이 양자화되는 프로세스를 지칭한다. 이러한 단계들은 아래에 더 상세히 논의될 것이다.
각각의 CU는 블록 변환 동작의 적용에 의해 변환 유닛들(TU들)로 분할될 수도 있다. 블록 변환 동작은 블록 내의 픽셀들을 상관해제하고 블록 에너지를 낮은 차수의 계수들의 변환 블록으로 콤팩트화하는 경향이 있다. 일부 실시예들에서, 8x8 또는 4x4의 하나의 변환이 적용될 수 있다. 다른 실시예들에서, 상이한 크기들의 블록 변환 세트는 좌측 블록이 PU들로 파티셔닝된 CU이고 우측 블록이 변환 유닛들(TU들)의 연관된 세트인 도 5a에 도시된 바와 같이, CU에 적용될 수 있다. CU 내의 각각의 블록 변환의 크기 및 위치는 RQT로 칭해지는 개별 쿼드트리에 의해 설명된다. 도 5b는 도 5a의 예에서의 CU에 대한 TU들의 쿼드트리 표현을 도시한다. 이러한 예에서, 11000은 코딩되고 오버헤드의 일부로 송신된다.
임의의 주어진 CU의 TU들 및 PU들은 상이한 목적들에 사용될 수 있다. TU들은 전형적으로 변환, 양자화 및 코딩 동작들에 사용되는 한편, PU들은 전형적으로 공간 및 시간 예측에 사용된다. 주어진 CU에 대한 PU들의 수와 TU들의 수 사이에 반드시 직접적인 관계가 존재하는 것은 아니다.
비디오 블록들은 예를 들어, 주어진 비디오 블록에 대해 잔여 데이터에 이산 코사인 변환(DCT), 정수 변환, 웨이브렛 변환, 또는 개념적으로 유사한 변환과 같은 변환의 적용 후에 픽셀 도메인 내의 픽셀 데이터의 블록들, 또는 변환 도메인 내의 변환 계수들의 블록들을 포함할 수 있으며, 잔여 데이터는 블록에 대한 비디오 데이터와 블록에 대해 발생된 예측 데이터 사이의 픽셀 차이들을 표현한다. 일부 경우들에서, 비디오 블록들은 변환 도메인 내의 양자화된 변환 계수들의 블록들을 포함할 수 있으며, 주어진 비디오 블록에 대해 잔여 데이터에의 변환의 적용 후에, 최종 변환 계수들이 또한 양자화된다. 비디오 인코딩에서, 양자화는 손실을 도입하는 단계이므로, 비트율과 재구성 품질 사이의 균형이 설정될 수 있다. 이러한 단계들은 아래에 더 논의될 것이다.
블록 파티셔닝은 블록 기반 비디오 코딩 기술들에서 중요한 목적을 제공한다. 비디오 데이터를 코딩하기 위해 더 작은 블록들을 사용하는 것은 높은 레벨의 상세를 제공하는 비디오 프레임의 위치들에 대한 데이터의 더 좋은 예측을 야기할 수 있고, 따라서 잔여 데이터로 표현되는 최종 에러(예를 들어, 소스 비디오 데이터로부터의 예측 데이터의 편차)를 감소시킬 수 있다. 일반적으로, 예측은 다양한 치수들의 샘플 블록들 사이의 상관을 모델링함으로써 비디오 시퀀스 내의 공간 또는 시간 리던던시를 이용하여, 실제 및 예측된 신호 사이의 작은 차이만이 인코딩될 필요가 있다. 현재 블록에 대한 예측은 이미 인코딩된 샘플들로부터 생성된다. 그러나, 잔여 데이터를 잠재적으로 감소시킬지라도, 그러한 기술들은 더 작은 블록들이 비디오 프레임에 대해 어떻게 파티셔닝되는지를 표시하기 위해 부가 신택스 정보를 필요로 할 수 있고, 증가된 코딩된 비디오 비트율을 야기할 수 있다. 따라서, 일부 기술들에서, 블록 파티셔닝은 부가 신택스 정보로 인한 코딩된 비디오 데이터의 비트율의 최종 증가와 비교하여 잔여 데이터의 바람직한 감소를 밸런싱하는 것에 의존할 수 있다.
일반적으로, 블록들 및 그것의 다양한 파티션들(예를 들어, 서브 블록들)은 비디오 블록들로 간주될 수 있다. 게다가, 슬라이스는 복수의 비디오 블록들(예를 들어, 매크로블록들, 또는 코딩 유닛들), 및/또는 서브 블록들(매크로블록들, 또는 서브 코딩 유닛들의 파티션들)인 것으로 간주될 수 있다. 각각의 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수 있다. 대안으로, 프레임들 자체는 디코딩가능 유닛들일 수 있거나, 프레임의 다른 부분들은 디코딩가능 유닛들로 정의될 수 있다. 더욱이, 또한 픽처 그룹으로 지칭되는 GOP는 디코딩가능 유닛으로 정의될 수 있다.
인코더들(116)(도 1a)은 본 개시의 일 실시예에 따르면, 도 4a에 도시된 수개의 기능 모듈로 구성될 수 있다. 이러한 모듈들은 하드웨어, 소프트웨어, 또는 2개의 임의의 결합으로 구현될 수 있다. 현재 PU(x)가 주어지면, 예측 PU(x')는 우선 공간 예측 또는 시간 예측을 통해 획득될 수 있다. 이러한 공간 또는 시간 예측은 공간 예측 모듈(129) 또는 시간 예측 모듈(130) 각각에 의해 수행될 수 있다.
공간 예측 모듈(129)이 PU 당 수행할 수 있으며, 수평, 수직, 45도 대각선, 135도 대각선, DC, 평면 등을 포함하는 수개의 가능한 공간 예측 방향이 존재한다. 루마 인트라 모드들을 포함하며, IntraFromLuma로 칭해지는 부가 모드는 크로마 인트라 예측 모드에 사용될 수 있다. 신택스는 PU 당 공간 예측 방향을 나타낸다.
인코더(116)(도 1a)는 모션 추정 동작을 통해 시간 예측을 수행할 수 있다. 구체적으로, 시간 예측 모듈(130)(도 4a)은 참조 픽처들을 통해 현재 PU에 대한 최상의 일치 예측을 검색할 수 있다. 최상의 일치 예측은 모션 벡터(MV) 및 연관된 참조 픽처(refIdx)에 의해 설명될 수 있다. 일반적으로, B 픽처들 내의 PU는 2개까지의 MV를 가질 수 있다. MV 및 refIdx 둘 다는 비트스트림 내의 신택스의 일부일 수 있다.
그 다음, 예측 PU는 현재 PU로부터 감산되어, 잔여 PU(e)를 야기할 수 있다. 그 다음, 잔여 PU(e)는 변환 모듈(117)에 의해, 한 번에 하나의 변환 유닛(TU)으로 변환되어, 변환 도메인(E) 내의 잔여 PU를 야기할 수 있다. 이러한 업무를 달성하기 위해, 변환 모듈(117)은 예를 들어 정사각형 또는 비정사각형 블록 변환을 사용할 수 있다.
그 다음, 도 4a를 다시 참조하면, 변환 계수들(E)은 양자화기 모듈(118)에 의해 양자화되어, 높은 정확도 변환 계수들을 유한 수의 가능한 값들로 변환할 수 있다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관되는 비트 심도를 감소시킬 수 있다. 예를 들어, n 비트 값은 양자화 동안 m 비트 값으로 라운드 다운(round down)될 수 있으며, n은 m보다 더 크다. 일부 실시예들에서, 외부 경계 조건들은 수정된 하나 이상의 변환 계수들을 생성하기 위해 사용된다. 예를 들어, 더 낮은 범위 또는 값은 변환 계수가 논-제로 값으로 주어지거나 단지 제로아웃되는지를 판단할 시에 사용될 수 있다. 이해되어야 하는 바와 같이, 양자화는 손실 동작이고 양자화에 의한 손실은 일반적으로 복구될 수 없다.
그 다음, 양자화된 계수들은 엔트로피 코딩 모듈(120)에 의해 엔트로피 코딩되어, 최종 압축 비트들을 야기할 수 있다. 엔트로피 코딩 모듈(120)에 의해 수행되는 특정 단계들은 더 상세히 후술될 것이다.
시간 및 공간 예측을 용이하게 하기 위해, 인코더(116)는 양자화된 변환 계수들(E)을 취하고 그것들을 역양자화기 모듈(122)로 역양자화하여 역양자화된 변환 계수들(E')을 야기할 수도 있다. 그 다음, 역양자화된 변환 계수들은 역 변환 모듈(124)에 의해 역 변환되어, 재구성된 잔여 PU(e')를 야기한다. 그 다음, 재구성된 잔여 PU(e')는 재구성된 PU(x")를 형성하기 위해 공간 또는 시간으로 상응하는 예측(x')에 추가된다.
도 4a를 여전히 참조하면, 디블로킹 필터(DBF) 동작은 우선 블로킹 아티팩트들을 감소시키기 위해 재구성된 PU(x") 상에서 수행될 수 있다. 샘플 적응 오프셋(SAO) 프로세스는 디코딩된 픽처에 대한 디블로킹 필터 프로세스의 완료 후에 조건적으로 수행될 수 있으며, 이는 재구성된 픽셀들과 원래 픽셀들 사이의 픽셀 값 오프셋을 보상한다. 일부 실시예들에서, DBF 동작 및 SAO 프로세스 둘 다는 적응 루프 필터 기능들에 의해 구현되며, 이 기능들은 재구성된 PU를 통하여 루프 필터 모듈(126)에 의해 조건적으로 수행될 수 있다. 일부 실시예들에서, 적응 루프 필터 기능들은 입력 픽처와 출력 픽처 사이의 코딩 왜곡을 최소화한다. 일부 실시예들에서, 루프 필터 모듈(126)은 인터 픽처 예측 루프 동안 동작한다. 재구성된 픽처들이 참조 픽처들이면, 그들은 장래 시간 예측을 위한 참조 버퍼(128)에 저장될 수 있다.
HEVC는 디블로킹 필터(DBF)가 우선 적용되고 샘플 적응 오프셋(SAO) 필터가 나중에 적용되는 순서로 적용되는 2개의 루프 필터를 지정한다. DBF는 H.264/MPEG-4 AVC에 의해 사용되지만 병렬 처리를 위한 더 간단한 설계 및 더 좋은 지원을 갖는 것과 유사하다. HEVC에서, DBF는 오직 8x8 샘플 그리드(sample grid)에 적용되는 한편 H.264/MPEG-4 AVC의 경우 DBF가 4x4 샘플 그리드에 적용된다. DBF는 어떤 현저한 저하를 야기하지 않으므로 8x8 샘플 그리드를 사용하고 DBF가 더 이상 다른 동작들과 연속적인 상호작용들을 야기하지 않기 때문에 병렬 처리를 상당히 개선한다. 다른 변경은 HEVC가 오직 0 내지 2의 3개의 DBF 강도를 허용한다는 것이다. HEVC는 또한 DBF가 우선 수직 에지들에 대한 수평 필터링을 픽처에 적용하고 그 후에만 그것이 수평 에지들에 대한 수직 필터링을 픽처에 적용하는 것을 필요로 한다. 이것은 다수의 병렬 스레드들이 DBF에 사용되는 것을 허용한다.
SAO 필터 프로세스는 DBF 뒤에 적용되고 예를 들어 인코더에 의해 행해지는 히스토그램 분석에 기초한 일부 파라미터들을 포함하는 룩업 테이블을 사용함으로써 원래 신호 진폭들의 더 좋은 재구성을 허용하게 된다. SAO 필터는 에지 오프셋(EO) 타입 및 밴드 오프셋(BO) 타입인 2개의 기본 타입을 갖는다. SAO 타입들 중 하나는 CTB(coding tree block) 당 적용될 수 있다. 에지 오프셋(EO) 타입은 4개의 가능한 방향(예를 들어, 수평, 수직, 135 도, 및 45 도)에 따른 처리에 상응하는 4개의 서브 타입을 갖는다. 주어진 EO 서브 타입에 대해, 에지 오프셋(EO) 처리는 4개의 상이한 경사 패턴 중 하나를 사용하여 픽셀의 값을 그 이웃들 중 2개와 비교함으로써 동작한다. 오프셋은 4개의 경사 패턴 각각의 픽셀들에 적용된다. 경사 패턴들 중 하나에 있지 않은 픽셀 값들에 대해, 오프셋이 적용되지 않는다. 밴드 오프셋(BO) 처리는 32개의 밴드로 분리되는 샘플 진폭에 직접 기초한다. 오프셋은 32개의 밴드 중 16개의 밴드 내의 픽셀들에 적용되고, 16개의 밴드 그룹은 BO 서브 타입에 상응한다. SAO 필터 프로세스는 오프셋을 샘플 값들에 추가함으로써 원래 신호와 비교되는 왜곡을 감소시키도록 설계되었다. 그것은 에지 선예도를 증가시키고 링잉(ringing) 및 임펄스 아티팩트들을 감소시킬 수 있다. SAO 프로세스에 관한 추가 상세는 도 6-도 9를 참조하여 후술될 것이다.
본 개시의 일 실시예에서, 인트라 픽처들(예컨대 I 픽처) 및 인터 픽처들(예컨대 P 픽처들 또는 B 픽처들)은 인코더(116)(도 1a)에 의해 지원된다. 인트라 픽처는 다른 픽처들을 참조하는 것 없이 코딩될 수 있다. 따라서, 공간 예측은 인트라 픽처 내의 CU/PU에 사용될 수 있다. 인트라 픽처는 디코딩이 시작될 수 있는 가능한 지점을 제공한다. 다른 한편, 인터 픽처는 일반적으로 높은 압축을 목표로 한다. 인터 픽처는 인트라 및 인터 예측 둘 다를 지원한다. 인터 픽처 내의 CU/PU는 공간적으로 또는 시간적으로 예측 코딩된다. 시간 참조들은 이전에 코딩된 인트라 또는 인터 픽처들이다.
일 실시예에 따른 엔트로피 코딩 모듈(120)(도 4a)의 동작은 이제 더 상세히 설명될 것이다. 엔트로피 코딩 모듈(120)은 양자화기 모듈(118)로부터 수신되는 계수들의 양자화된 매트릭스를 취하고 그것을 사용하여 양자화된 계수들 모두의 부호들을 나타내는 부호 매트릭스를 생성하고 유의성 맵을 생성한다. 유의성 맵은 각각의 요소가 논-제로 양자화된 계수(들)의 위치(들)를 양자화된 계수 매트릭스 내에 지정하는 매트릭스일 수 있다. 구체적으로, 양자화된 2D 변환 매트릭스가 주어지면, 위치(y, x)에서의 양자화된 계수의 값이 논-제로인 경우, 그것은 유의성(significant)으로 간주될 수 있고 "1"은 연관된 유의성 맵 내의 위치(y, x)에 대해 할당된다. 그렇지 않으면, "0"은 유의성 맵 내의 위치(y, x)에 할당된다.
엔트로피 코딩 모듈(120)이 유의성 맵을 생성했다면, 그것은 유의성 맵을 코딩할 수 있다. 일 실시예에서, 이것은 문맥 기반 적응 이진 산술 코딩(CABAC) 기술을 사용함으로써 달성된다. 그렇게 하면서, 엔트로피 코딩 모듈(120)은 스캐닝 라인을 따라 유의성 맵을 스캐닝하고, 유의성 맵 내의 각각의 엔트리에 대해, 코딩 모듈은 그 엔트리에 대한 문맥 모델을 선택한다. 그 다음, 엔트로피 코딩 모듈(120)은 선택된 문맥 모델에 기초하여 엔트리를 코딩한다. 즉, 각각의 엔트리는 문맥 모델(수학적 확률 모델)이 사용되는 것에 기초하여 확률을 할당받는다. 확률들은 전체 유의성 맵이 인코딩되었을 때까지 축적된다.
엔트로피 코딩 모듈(120)에 의해 출력되는 값 뿐만 아니라, 엔트로피 코딩된 부호들, 유의성 맵 및 논-제로 계수들은 인코더(116)(도 1a)에 의해 비트스트림으로 삽입될 수 있다. 이러한 비트스트림은 HFC 네트워크(122)를 통해 디코더들(138 및 140)에 송신될 수 있다.
상술된 예측, 변환, 및 양자화는 지정된 코딩 표준에 따라, 비디오 데이터의 임의의 블록에 대해, 예를 들어 CU의 PU 및/또는 TU, 또는 매크로블록에 수행될 수 있다는 점이 주목되어야 한다.
디코더들(138 및 140)(도 1a)이 비트스트림을 수신할 때, 그들은 예를 들어 도 4b에 도시된 기능들을 수행한다. 디코더(145)의 엔트로피 디코딩 모듈(146)은 양자화되고 변환된 계수들을 재생성하기 위해 부호 값들, 유의성 맵 및 논-제로 계수들을 디코딩할 수 있다. 유의성 맵을 디코딩할 시에, 엔트로피 디코딩 모듈(146)은 엔트로피 코딩 모듈(120)과 함께 설명되는 절차의 역을 수행하며 ― 스캐닝 라인들로 구성된 스캐닝 패턴을 따라 유의성 맵을 디코딩할 수 있다. 그 다음, 엔트로피 디코딩 모듈(146)은 계수들을 역양자화기 모듈(147)에 제공할 수 있으며, 역양자화기 모듈은 계수들의 매트릭스를 역양자화하여, E'를 야기한다. 역양자화기 모듈(147)은 역양자화된 계수들을 역 변환 모듈(149)에 제공할 수 있다. 역 변환 모듈(149)은 역 변환 동작을 계수들 상에서 수행하여 e'를 야기할 수 있다. 필터링 및 공간 예측은 도 4a와 함께 설명되는 방식으로 적용될 수 있다.
샘플 적응 오프셋(SAO)
SAO 프로세스에서, 오프셋은 원래 픽셀에 비해 재구성된 픽셀의 왜곡을 감소시키기 위해 각각의 픽셀에 추가된다. 일 실시예에서, 루마 또는 크로마 성분의 파티션에 대해, 인코더는 픽셀들을 6개의 가능한 타입 중 하나로 분류한다(양 타입들 및 서브 타입들은 여기서 타입들로 집합적으로 지칭됨): 4개의 에지 오프셋(EO) 타입(E0, E1, E2, E3) 및 2개의 밴드 오프셋(BO) 타입(B0, B1). EO 타입들에 대해, 픽셀들은 EO 타입 방향을 따르는 로컬 행위에 기초하여 5개의 가능한 서브 클래스 중 하나로 더 서브 분류된다. BO 타입들에 대해, 픽셀들은 강도에 기초하여 16개의 가능한 서브 클래스 중 하나로 더 서브 분류된다. 일부 실시예들에서, SAO 타입 내의 픽셀들의 주어진 서브 클래스에 대해, 동일한 오프셋이 적용된다. 예를 들어, 서브 클래스에 대한 오프셋(i)이 oi이면, 이 때 pi의 입력에 상응하는 SAO 출력은 pi + oi일 것이다. 인코더는 전형적으로 비용 함수를 최소화하기 위해 서브 클래스 당 SAO 타입을 선택한다. 예를 들어, 주어진 타입(t)에 대한 왜곡 및 오프셋 세트(ot,i)가 Dt,i이고 상응하는 비트율이 Rt,i이면, 이 때 비용 함수는 Jt,i = Dt,i + lambda * Rt ,i일 수 있으며, lambda는 가중 인자이다. 인코더는 디코더에 파티션 당 SAO 타입 및 서브 클래스 당 상응하는 오프셋들을 시그널링할 수 있으며, 디코더는 SAO 타입에 대한 분류를 수행하고 서브 클래스 당 오프셋들을 각각의 픽셀에 적용할 수 있다. SAO 타입은 컬러 성분 당 시그널링될 수 있거나, 주어진 타입은 하나보다 많은 컬러 성분에 대해 시그널링되고 사용될 수 있다. 일부 실시예들에서, 또한 인코더는 SAO를 사용하지 않거나 턴 오프하는 것이 가능하고, 이것은 디코더에 시그널링될 수도 있다.
SAO 타입의 코딩
SAO 타입의 코딩에 대해, 일반적으로 2개의 코딩 방법이 존재한다: 고효율(HE) 및 저복잡성(LC). LC에서, VLC들(variable length codewords) 또는 이진화된 코드워드들은 SAO 타입들에 할당되는 한편; HE에서, 타입에 전형적으로 할당되는 이진화된 코드워드 다음에 문맥 기반 적응 이진 산술 코딩(CABAC)이 이어진다. HE 경우에 대해, 인코더는 예를 들어 표 1에 제시된 단항 코드를 사용하여 SAO 타입을 시그널링할 수 있다(0 및 1은 교환될 수 있음):
Figure 112014052183312-pct00001
표 1에서, SAO 타입이 오프일 때, SAO가 적용되지 않고 상응하는 코드워드가 0이다. 다른 코드워드들은 다른 EO 및 BO 타입들에 상응한다.
코드워드 내의 유닛들 또는 숫자들은 LC에 대한 "비트들" 및 HE에 대한 "빈들(bins)"로 지칭될 수 있다는 점이 주목되어야 한다. 전문 용어의 차이는 HE 방법에서 CABAC를 코드워드에 적용하는 결과이다. 본 명세서에 사용된 바와 같이, "유닛들"은 코드워드들 내의 빈들 및 비트들 둘 다를 포함한다.
표 1의 코드 할당에 대해, SAO B1이 마지막 가능한 SAO 타입인 것으로 알려져 있으로므 마지막 0을 111111의 코드에 대한 SAO B1의 코드에서 제거하는 것이 가능하다는 점에 주목한다. 게다가, BO 타입들에 대한 더 긴 코드워드 때문에, 밴드 오프셋 타입들(B0 및 B1)은 최상의 타입의 비율 왜곡(RD) 선택에 대해 불공평하게 바이어싱될 수 있다. 이러한 바이어싱은 다른 오프셋 타입보다 더 긴 코드워드 길이를 갖는 특정 오프셋 타입의 결과일 수 있다.
따라서, 일부 실시예들에서, SAO 타입을 시그널링하는 대체 코드 할당은 표 2에 제시된다:
Figure 112014052183312-pct00002
표 2에서, 코드워드의 이진화에서의 제1 이진 숫자, 또는 빈이 0이면, 이 때 SAO 타입은 오프이고 SAO가 적용되지 않는다. 그렇지 않으면, 제1 빈이 1이거나 EO 또는 BO이 시그널링된다. 제2 빈이 0이면, 이 때 EO 타입이 시그널링되며; 그렇지 않으면, 제2 빈이 1이고 BO 타입이 시그널링된다. EO의 경우에 대해, 2개 더의 빈들은 4개의 EO 타입 중 하나를 표시하기 위해 시그널링되고, BO의 경우에 대해, 1개 더의 빈은 2개의 BO 타입 중 하나를 표시하기 위해 시그널링된다. 이러한 코드 할당은 EO 및 BO 타입들 내의 코드워드 길이들이 균일하기 때문에 더 공정한 비트 가중을 상이한 SAO 타입들에 제공하며, 이는 코딩 방식이 상이한 SAO 타입들 사이에 바이어싱되지 않는 것을 의미한다. 또한, 이러한 코드워드 이진화는 오프, EO, 및 BO 타입들에 대한 더 좋은 확률 모델링을 허용한다.
저복잡성(LC) 경우에 대해, 인코더는 예를 들어 표 3에 제시된 바와 같은 지수 골롬 코드(exponential-Goloumb code)를 사용하여 SAO 타입을 시그널링할 수 있다(0 및 1은 교환될 수 있음):
Figure 112014052183312-pct00003
동일한 코드워드 길이를 모든 EO 타입들(E0, E1, E2, E3)에 제공하는 대체 코드는 표 4에 제시된다:
Figure 112014052183312-pct00004
EO 타입들(또는 BO 타입들)에 대한 코드워드들은 교환될 수 있다는 점에 주목한다. 또한 표 5에 제시된 바와 같은 HE 경우에 관해 유사한 코드를 사용함으로써 표 4에 제시된 것보다 더 효율적인 코드를 달성하는 것이 가능하다:
Figure 112014052183312-pct00005
대안으로, 일부 실시예들에서, HE 내의 동일한 코드는 LC에 사용될 수 있다. 예를 들어, 표 5는 각각의 코드워드 내의 제1 비트가 교환된 것을 제외하고, 표 2와 유사하다. 표 5에서, 제1 비트가 1이면, 이 때 SAO 타입이 오프이고 SAO가 적용되지 않는다. 그렇지 않으면, 제1 비트가 0이고 EO 또는 BO이 시그널링된다. 제2 비트가 0이면, 이 때 EO 타입이 시그널링되며; 그렇지 않으면, 제2 비트가 1이고 BO 타입이 시그널링된다. EO의 경우에 대해, 2개 더의 비트는 4개의 EO 타입 중 하나를 표시하기 위해 시그널링되고, BO의 경우에 대해, 1개 더의 비트는 2개의 BO 타입 중 하나를 표시하기 위해 시그널링된다. HE 및 LC에서 동일한 코드워드들을 사용하는 것에 더하여, 코드워드들 내의 이진 숫자들의 일부는 CABAC(HE에서와 같음)을 사용하거나 또는 CABAC(LC에서와 같음) 없이 처리될 수 있다.
일부 실시예들에서, 1 비트는 표 2-표 5의 예들에 예시된 바와 같이, EO 타입과 BO 타입 사이의 차이를 시그널링하기 위해 사용될 수 있다(예를 들어 bit = 0은 EO 타입을 시그널링하고, bit = 1은 BO 타입을 시그널링함).
일부 실시예들에서, 상기 표들에 제시된 바와 같이, EO 및/또는 BO 타입들의 수보다 더 크거나 더 작은 것이 존재할 수 있다. 예를 들어, 4개의 EO 타입 및 1개의 BO 타입의 경우에 대해, LC를 위해 이것은 도 6에 도시된 바와 같이 시그널링될 수 있다. 도 6은 SAO가 오프되지 않은 것을 시그널링한 후의 비트들의 시퀀스를 예시한다. 이러한 비트들의 시퀀스는 각각의 컬러 성분에 대해 시그널링될 수 있거나, 타입은 하나보다 더 많은 컬러 성분(예를 들어, 루마 또는 제1 크로마 또는 제2 크로마 성분)에 사용될 수 있다. 도 6에서, 제1 비트가 1이면, 이 때 BO이 시그널링된다. 그렇지 않으면, 제1 비트는 0이고 4개의 EO 타입 중 하나는 2개의 부가 비트를 사용하여 시그널링된다.
컬러 성분에 대해 시그널링할 때, 시그널링은 3개의 컬러 성분 각각에 대해 (가능한 한) 반복될 수 있다. 대안으로, 동일한 파라미터는 하나보다 더 많은 컬러 성분에 사용될 수 있다.
또 다른 실시예들에서, EO/BO 타입은 sao_band 플래그(예를 들어, 1 비트)를 사용하여 시그널링될 수 있으며, SAO 타입은 sao_band가 1과 같을 때 BO이고 sao_band가 0과 같을 때 EO이다. SAO EO 타입은 sao_edge_type(예를 들어, 2 비트)을 사용하여 시그널링될 수 있다. CABAC 코딩에 대해, EO/BO 타입은 그 자체의 전용 문맥(예를 들어, 컬러 성분 당)을 사용하여 sao_band 플래그를 사용하여 시그널링될 수도 있고, EO 타입은 하나의 문맥(예를 들어, 컬러 성분 당)을 갖는 단항 이진화를 사용하여 코딩될 수 있다. 이것의 일 예는 도 7에 도시된다.
일부 실시예들에서, sao_band 및 sao_edge type에 대한 신택스는 표 6 및 표 7에 나타낸 바와 같은 VLC(LC) 및 CABAC(HE)를 사용하여 지정될 수 있다:
Figure 112014052183312-pct00006
Figure 112014052183312-pct00007
표 6 및 표 7에 제시된 바와 같이, 1과 같은 신택스 요소 sao_band[cIdx][rx][ry]는 밴드 오프셋(BO) 샘플 적응 오프셋 프로세스가 컬러 성분(cIdx)에 대해 위치(rx 및 ry)에서 현재 코딩 트리블록에 적용되는 것을 지정한다. 대조적으로, 0과 같은 신택스 요소 sao_band[cIdx][rx][ry]는 에지 오프셋(EO) 샘플 적응 오프셋 프로세스가 컬러 성분(cIdx)에 대해 위치(rx 및 ry)에서 현재 코딩 트리블록에 적용되는 것을 지정한다. 일부 실시예들에서, sao_edge_idx[cIdx][rx][ry]는 컬러 성분(cIdx)에 대한 위치(rx 및 ry)에서 현재 SAO 유닛의 4개의 EO 방향(서브 타입들 또는 클래스들) 중 하나를 표시한다. 표 6 및 표 7에서, u()는 단항 이진화 프로세스를 나타내고 ae()는 CABAC 산술 코딩 프로세스를 나타낸다. 일부 실시예들에서, VLC(LC) 및 CABAC(HE)의 조합은 신택스 요소들을 코딩하기 위해 사용될 수 있다.
일부 실시예들에서, sao_band 및 sao_edge_idx과 같은 SAO 파라미터들은 현재 CTU의 위 또는 좌측의 이웃들로부터와 같이, 인접 CTU SAO 파라미터들로부터 추론될 수 있다. 플래그는 파라미터들이 특정 이웃으로부터 추론되는지를 표시하기 위해 시그널링될 수 있다. 일부 실시예들에서, sao_band 및 sao_edge_idx는 CABAC를 사용하여 코딩되고 디코더에 시그널링될 수 있다.
본 명세서에 개시된 바와 같이, SAO 파라미터들의 코딩에 대한 개선들은 더 효율적인 시그널링을 제공하는 SAO 타입을 인코딩하고 디코딩하는 코드워드들을 사용하여 달성될 수 있으며, 예를 들어 표 2-표 5를 참조한다. 부가 개선들은 일부 오프셋 분포들과 더 좋게 일치할 수 있는 오프셋들의 양자화, 단일 밴드 오프셋 타입을 지정하는 법, 많은 빈 서브 클래스들이 존재할 때 유익할 수 있는 오프셋들을 효율적으로 인코딩하는 법, 및 오프셋들의 비율 왜곡 최적화를 포함할 수 있다.
오프셋들의 양자화
예를 들어, 상술한 바와 같이, SAO 타입/파라미터들의 선택은 재구성된 이미지의 품질을 개선하기 위해 오프셋이 각각의 픽셀에 적용되는 것을 허용한다. 현재, 서브 클래스 당 오프셋은 픽셀 당 평균 왜곡으로서 결정된다. 즉, 서브 클래스 당 전체 왜곡(d)은 클래스 내의 픽셀들의 수(n)로 나누어지거나, d/n이다. 왜곡은 주어진 비트 심도 정확도를 사용하여 지정되고 오프셋 값(d/n)이 라운딩되며, 예를 들어, 오프셋 값(o) = round(d/n)이다. 그 다음, 오프셋 값(o)은 최소 및 최대 값, 예를 들어 [-min, max]에 클립될 수 있다.
일부 실시예들에서, 수정은 라운딩 대신에 오프셋 값(o)을 절단(truncate)하는 것, 예를 들어 o = int(d/n)을 포함할 수 있으며, o는 정수 값을 유지한다.
다른 실시예들에서, 수정은 오프셋 값들(o)을 양자화하는 것을 포함할 수 있다. 일반적으로, 오프셋들의 더 많은 발생이 존재하는 곳 가까이에 오프셋 레벨들(x)을 분포시킬 수 있는 비선형 양자화가 사용될 수 있다. 일 실시예에서, 선형 양자화는 오프셋 레벨들을 결정할 시에 사용될 수 있으며, 예를 들어 x = round(o/scale)이고, scale은 양자화의 레벨을 제어하는 파라미터이고 round()는 가장 가까운 정수에 대한 라운딩 동작이다. 오프셋 레벨(x)은 디코더에 시그널링될 수 있고 디코더는 재구성된 오프셋 값(o') = scale * x를 생성하기 위해 역 스케일링을 수행할 수 있다. 스케일이 1보다 더 크면, 주어진 수의 재구성 레벨들에 대해, 스케일이 1 이하일 때보다 더 큰 범위의 재구성된 오프셋 값들이 생성될 수 있다. 대안으로, 이것은 주어진 범위의 오프셋들이 더 작은 수의 오프셋 레벨들을 사용하여 커버되는 것을 허용하고 보다 소수의 비트들이 오프셋들을 인코딩하는 데에 필요로 할 수 있다.
이해된 바와 같이, 양자화는 손실 동작이어서, 정확도의 감소를 야기한다. 오프셋들의 정확도가 감소될 수 있지만, 오프셋 값들의 양자화는 데이터의 통계 및 범위에 더 가까이 일치할 수 있다. 예를 들어, 코딩이 매우 손실되는 큰 코딩 QP 값들(예를 들어, 낮은 비트율들)에 대해, 1보다 더 큰 스케일 값들은 더 큰 오프셋 값들을 사용하여 픽셀 값들 내의 더 큰 에러들이 정정될 수 있기 때문에 유익할 수 있다.
일부 실시예들에서, 오프셋들의 효과적인 양자화를 달성하는 다른 방법은 x = round(d/(n*scale))를 사용하는 것이다. 여기서, 양자화에 사용되는 스케일 값은 디코더에 시그널링될 수 있고 예를 들어 클래스, 타입, 파티션, LCU, 슬라이스(또는 다른 유닛), 픽처, 픽처 그룹, 또는 시퀀스 당 결정될 수 있다. 최대 스케일 값(또는 오프셋)은 코딩 효율 목적들 및/또는 에러 회복 목적들을 위해 인코더 및 디코더에 송신되거나 일치될 수 있다. 또한, 플래그는 스케일 값이 1인지의 여부를 일부 레벨(예를 들어 LCU, 슬라이스, 또는 픽처)에서 표시하기 위해 사용될 수 있고, 스케일 값이 1이 아니면, 그것이 송신될 수 있다.
상기 설명된 바와 같이, 오프셋들의 양자화는 오프셋 데이터의 분포와 더 잘 일치하고 비율 왜곡(RD) 성능을 개선할 수 있다. 상술한 것과 같은 오프셋들의 선형 양자화에서, 오프셋 레벨은 x = round(d/(n*scale))에 의해 계산될 수 있으며, d는 서브 클래스 내의 전체 왜곡이며, n은 서브 클래스 내의 픽셀들의 수이고, scale은 양자화의 스텝 크기를 제어하는 파라미터이다. 오프셋 레벨(x)은 인코더에서 클립될 수 있고 재구성된 오프셋 값은 인코더 및 디코더 둘 다에서 o' = x * scale로 계산될 수 있다.
오프셋들의 비균일 또는 비선형 양자화에 대해, 양자화 오프셋 값들 사이의 간격은 균일할 필요는 없다. 예를 들어, 오프셋 레벨은 x = f(d,n,scale,...)에 의해 계산될 수 있으며, f()는 어떤 함수이고, 재구성된 오프셋 값은 o' = g(x, scale,...)에 의해 계산될 수 있으며, g()는 어떤 함수이다. 특히, x' = round(d/(n* scale))가 입력 오프셋 값인 것으로 한다. scale = 1일 때, 재구성 오프셋 레벨(x)은 bi <= x' <= Bi인 경우 x = i에 설정될 수 있으며, Imin <= i <= Imax이고, 재구성된 오프셋 값(o')은 o' = g(x = i) = vi로 결정될 수 있다. 값들 bi 및 Bi는 재구성 오프셋 레벨(i)에 대한 하부 및 상부 양자화 경계들을 나타내고, vi는 재구성된 오프셋 값을 나타낸다. bi, Bi 사이 및 vi 사이의 간격은 균일한 필요는 없다. 일 예에서, Imax = -Imin = 6일 때, x' >= 0인 경우, b0 = 0, B0 = 0, b1 = 1, B1 = 1, b2 = 2, B2 = 2, b3 = 3, B3 = 5, b4 = 6, B4 = 11, b5 = 12, B5 = 23, b6 = 24, B6 = 255이고, x' < 0인 경우, b-6 = -255, B-6 = -24, b-5 = -23, B-5 = -12, b-4 = -11, B-4 = -6, b-3 = -5, B-3 = -3, b-2 = -2, B-2 = -2, b-1 = -1, B-1 = -1이다. 이러한 경우에 대해, i >= 0일 때의 재구성된 오프셋 값 크기들은 i > 0일 때 v0 = 0, 및 vi = 2^(i-1)로 설정될 수 있다. 오프셋 레벨(i)의 음의 값들에 대해, 재구성된 오프셋 값은 레벨 |i|에 상응하는 동일한 크기를 갖고, 재구성된 오프셋 값의 부호는 오프셋 레벨(i)의 부호와 동일하다.
표 8 및 표 9는 이러한 예에 대한 재구성 오프셋 레벨(i), 양자화 경계들(bi 및 Bi), 및 재구성된 오프셋 값들(vi)을 예시한다.
Figure 112014052183312-pct00008
Figure 112014052183312-pct00009
상기 단락이 일 예를 제시했기 때문에, 선택될 수 있는 양자화 파라미터 값들(bi, Bi 및 vi)의 다른 결합들이 존재한다는 점이 이해된다. 주어진 수의 오프셋 레벨들에 대해, 비균일 분포는 오프셋들의 범위에 대한 더 좋은 비율 왜곡 트레이드오프(tradeoff)를 제공할 수 있다. 상이한 값들은 상이한 시퀀스들, 품질 레벨들, 비트율들 등에 사용될 수 있다. 또한, 양자화 파라미터들은 다양한 SAO 타입들에 따라 다를 수 있다. 예를 들어, EO 타입들에 대해, 균일 양자화가 사용될 수 있는 반면, BO 타입들에 대해, 비균일 양자화가 적절할 수 있다. 게다가, 상이한 양자화 값들은 상이한 범위들의 오프셋 값들에 대해 선택될 수 있다. 예를 들어, 작은(크기) 오프셋 값들은 주어진 스케일 값을 갖는 균일 양자화를 사용할 수 있는 반면, 더 큰 오프셋 값들은 다른 스케일 값을 갖는 비균일 양자화 또는 균일 양자화를 사용할 수 있다.
B0 및 B1의 병합
일부 실시예들에서, SAO는 전체 강도 범위를 커버하는 2개의 고정 밴드 타입(B0 및 B1)을 사용하며, 각각의 밴드는 각각의 강도 범위를 16개의 같은 서브 클래스들로 더 분할한다. 오프셋은 서브 클래스들 각각에 대해 시그널링될 수 있다. 주어진 픽처의 통계가 2개의 기존 밴드 타입(B0 및 B1) 중 하나로 정확히 나누어지지 않을 수 있기 때문에, 밴드들을 결합하거나 병합하는 것이 바람직할 수 있다. 일부 실시예들에서, 하나의 밴드 타입이 사용될 수 있으며, 오프셋을 적용하는 값들의 범위가 지정될 수 있고, 범위에 대한 서브 클래스들의 수는 예를 들어 균일한 서브 파티셔닝을 사용하여 지정될 수 있다. 단일 밴드 타입을 사용하는 그러한 파티셔닝의 일 예는 도 8에 예시된다.
일부 실시예들에서, 오프셋이 적용되는 값들의 범위는 데이터에 기초하여 그리고 비율 왜곡 고려 사항들에 기초하여 결정될 수 있다. 오프셋들은 일반적으로 왜곡이 감소될 수 있는 값들에 적용될 수 있다.
일부 실시예들에서, SAO 선택 타입은 단일 밴드 타입이 존재하고 다른 SAO 타입이 존재하지 않을 때와 같이, 수행될 필요는 없다. 그러한 경우들에서, 단일 밴드 타입은 SAO 선택과 연관되는 부가 단계들 없이 사용된다.
도 8에 도시된 바와 같이, 밴드의 시작은 bs에 의해 지정되고, 폭(ws)의 Ns개의 서브 클래스들이 사용될 수 있다. 도 8은 같은 폭(ws)의 4개의(Ns = 4) 서브 클래스가 서로 인접하는 일 실시예를 도시하며, 제1 서브 클래스는 bs에서 시작된다. 이러한 경우에, 4개의 오프셋은 4개의 서브 클래스에 대한 디코더에 시그널링될 수 있다. 일 예에서, 마지막 서브 클래스가 최대 강도 범위를 초과하면, 마지막 서브 클래스는 최대 값에서 종료되고 제로에 랩 어라운드될 수 있다.
대안으로, bs, Ns 및/또는 ws의 고정 값 세트는 인코더 및/또는 디코더에서 지정되고 일치될 수 있다. 그러한 실시예들에서, 일부 파라미터들(예를 들어, 지정되지 않은 값들)만이 인코더로부터 디코더로 송신될 필요가 있을 수 있다. 예를 들어, 이러한 파라미터들은 디코더에 시그널링될 수 있고 예를 들어 파티션, LCU, 슬라이스(또는 다른 유닛), 픽처, 픽처 그룹, 시퀀스 등 당 결정될 수 있다. 다른 실시예들에서, 하나보다 더 많은 밴드는 단일 밴드를 지정하는 동일한 프로세스를 반복함으로써 지정될 수 있다.
일부 실시예들에서, bs는 인코더로부터 디코더로 송신된다. 일부 실시예들에서, Ns는 인코더로부터 디코더로 송신된다. 일부 실시예들에서, ws는 인코더로부터 디코더로 송신된다.
오프셋들의 코딩
일부 실시예들에서, 기존 B0 및 B1 밴드 오프셋 타입들 및/또는 단일 병합된 밴드 오프셋 타입에 대해, 각각의 강도 범위에서 픽셀들을 갖지 않는 많은 서브 클래스들(예를 들어, 또한 빈(empty) 서브 클래스들로 알려져 있음)이 존재할 수 있다. 제로 오프셋을 갖는 이러한 서브 클래스들을 인코딩하는 것이 가능하지만, 일부 실시예들에서, 픽셀 강도 값들을 갖는 그러한 클래스들에 대한 오프셋 값들만이 인코딩되고 시그널링된다. 픽셀 강도 값들을 갖는 그러한 서브 클래스들의 인코딩은 더이상 오프셋 값들을 시그널링하지 않기 위해 이스케이프 코드 또는 엔드 오브 오프셋 코드를 부가적으로 인코딩함으로써 달성될 수 있다. 이러한 이스케이프 코드는 예를 들어 사용된 최대 오프셋 값보다 더 큰 값일 수 있다. 이러한 접근법은 많은 빈 서브 클래스들이 존재할 때 유익할 수 있지만; 많은 빈 서브 클래스들이 존재하지 않는 경우들에서, 강도 픽셀 값들을 갖는 서브 클래스들만을 인코딩하고 제로 오프셋을 갖는 서브 클래스들을 인코딩하는 결합이 구현될 수 있다. 접근법은 밴드 오프셋 및 에지 오프셋 타입들 둘 다 내의 오프셋들의 시그널링에 사용될 수 있다. 에지 오프셋 타입들의 경우에 대해, 빈 서브 클래스는 각각의 경사 패턴을 갖는 픽셀들이 존재하지 않는 경우에 상응한다.
이해된 바와 같이, 일 실시예에서, 디코더는 도 8에 도시된 것과 같은 밴드 오프셋 사양 타입에 관한 정보를 수신한다. 디코더는 재구성된 픽셀 값들을 강도들에 따른 서브 클래스들로 분류한다. 디코더가 오프셋 값들의 시퀀스들을 수신할 때, 그것은 픽셀 강도들이 서브 클래스에 존재하는 경우에 따라 오프셋들을 각각의 서브 클래스에 할당할 수 있다.
일부 실시예들에서, 픽셀 강도들이 존재하지 않는 서브 클래스들은 시그널링된 오프셋을 갖지 않을 것이다. 도 9는 이것을 일 예로서 예시한다. 도 9는 8개의 서브 클래스 0-7을 갖는 BO의 일 예를 도시한다. 8개의 서브 클래스의 위치들 또는 픽셀 진폭들의 범위는 이전에 설명된 방법들을 사용하여 디코더에 시그널링될 수 있다. 예에서, 오직 서브 클래스들 1 및 6에 픽셀 강도들이 존재하는 한편, 서브 클래스들 0, 2, 3, 4, 5, 및 7에 픽셀 강도들이 존재하지 않는다. 후자의 클래스들은 비어있으므로 오프셋들이 시그널링될 필요는 없다. 서브 클래스 1에 대한 2의 오프셋 값 및 서브 클래스 6에 대한 -1의 값이 시그널링될 수 있고, 더이상 오프셋 값들을 시그널링하지 않는 선택적 이스케이프 값이 이어진다. 이스케이프 값이 시그널링되지 않으면, 디코더는 오프셋 값들을 파싱(parsing)하기 전에 서브 클래스들로의 픽셀 분류를 수행하는 것으로 가정된다. 디코더는 이전에 설명된 것과 같은 방법들을 사용하여 BO 서브 클래스들을 지정하는 정보를 수신한 후에, 그것은 픽셀 강도들을 분류할 수 있다. 픽셀 강도들을 분류한 후에, 디코더는 2의 제1 오프셋 값을 1의 비어있지 않은 제1 서브 클래스에 할당하고 -1의 제2 오프셋 값을 6의 비어있지 않은 제2 서브 클래스에 할당한다.
오프셋들의 비율 왜곡 최적화
상기 논의된 바와 같이, 주어진 타입(t)에 대한 원래 및 재구성된 데이터 및 클래스 i의 오프셋(ot,i) 사이의 왜곡이 Dt,i이고 ot,i를 송신하는데 요구되는 상응하는 비트들이 Rt ,i이면, 이 때 왜곡 및 비트들 둘 다를 가중하는 상응하는 비용 함수는 Jt ,i = Dt ,i + lambda *Rt ,i일 수 있으며, lambda는 라그랑지안 가중 인자이다. 주어진 타입(t) 및 서브 클래스(i)에 대해, 최상의 오프셋(ot,i)은 비용 Jt,i를 최소화하기 위해 선택될 수 있다. 이러한 주어진 타입 및 서브 클래스에 대한 최상의 오프셋은 다른 가능한 오프셋들에 대한 비용 함수를 계산하고 가장 작은 비용 값(Jt,i)을 갖는 오프셋을 선택함으로써 결정될 수 있다.
일부 실시예들에서, 초기 오프셋이 선택될 수 있고, 그 다음 이러한 초기 오프셋 주위의 오프셋들의 범위가 최소 비용을 위해 검색될 수 있다. 예를 들어, 초기 오프셋은 왜곡만을 최소화하는 것으로 설정될 수 있고, 그 다음 비용을 최소화하는 부가 오프셋들이 체크될 수 있다. 일부 실시예들에서, 검색된 오프셋들의 범위는 초기 오프셋보다 더 작은 그러한 오프셋들을 포함한다. 비용을 최소화하는 검색은 오프셋 값들 또는 오프셋 레벨들에서 끝날 수 있고, 주어진 오프셋 레벨은 오프셋 값에 상응한다는 점이 이해되어야 한다.
상술한 바와 같이, 4개의 가능한 EO 타입 또는 클래스, 및 타입 당 5개의 가능한 서브 클래스가 존재한다. 여기에 사용된 바와 같이, EO 타입 또는 클래스는 픽셀들이 처리되는 방향을 지칭하고, 서브 클래스는 EO 타입 또는 클래스 방향을 따르는 경사 패턴에 따른 픽셀 값들의 분류를 지칭한다. 일부 실시예들에서, EO 서브 클래스들의 수는 전체 9개의 서브 클래스로 연장될 수 있으며, 각각의 픽셀은 EO 타입 또는 클래스에 의해 표시되는 방향을 따르는 2개의 인접 픽셀보다 더 작거나, 이 픽셀과 같거나, 이 픽셀보다 더 큰지에 따라 분류된다.
9를 포함하는 EO 서브 클래스들의 수가 설명되었지만, 임의의 적절한 증가된 수(예를 들어, 5보다 더 큼)가 사용될 수 있다는 점이 이해되어야 한다. 서브 클래스들의 추가 수 때문에, 더 많은 오프셋들이 디코더에 송신될 필요가 있을 수 있다. 부가 서브 클래스들에 대해 더 많은 오프셋들이 송신될 필요가 있을 수 있지만, 왜곡의 감소는 전체 비용을 감소시키고 성능을 개선할 수 있다.
본 명세서에 설명된 바와 같이, SAO 파라미터들의 코딩 및 선택에 대한 일부 개선들은 시그널링 EO 및 BO 타입들, 오프셋들의 양자화, BO 파라미터들의 사양, 및 오프셋들의 코딩 및 비율 왜곡 최적화를 포함한다.
개시된 실시예들의 상기 설명은 임의의 당업자가 본 개시를 구성하거나 사용하는 것을 가능하게 하기 위해 제공된다. 이러한 실시예들에 대한 다양한 수정들은 당업자들에게 즉시 분명할 것이고, 본 명세서에 설명된 일반 원리들은 본 개시의 사상 또는 범위로부터 벗어나는 것 없이 다른 실시예들에 적용될 수 있다. 따라서, 본 명세서에 제시된 설명 및 도면들은 본 개시의 예시적 실시예들을 나타내고 따라서 본 개시에 의해 광범위하게 생각되는 발명 대상을 나타낸다는 점이 이해되어야 한다. 본 개시의 범위는 다른 실시예들을 완전히 포함하고 본 개시의 범위는 첨부된 청구항들에 의해서만 적절히 제한된다는 점이 더 이해된다.

Claims (23)

  1. 복수의 픽처들을 갖는 비디오 비트스트림을 디코딩하는 방법으로서 - 상기 비트스트림은 샘플 적응 오프셋(SAO)을 갖는 비디오 코딩 시스템에 의해 생성됨 - ,
    (a) 비디오 비트스트림을 수신하는 단계;
    (b) 상기 비트스트림으로부터 처리된 비디오 데이터를 유도하는 단계;
    (c) 상기 처리된 비디오 데이터를 블록들로 파티셔닝하는 단계 - 상기 블록들 각각은 픽처보다 작거나 같음 -;
    (d) 상기 블록들 각각에 대해 상기 비디오 비트스트림으로부터 SAO 타입을 유도하는 단계 - 상기 SAO 타입은 바이어싱되지 않은 특정 코딩 방식과 연관되고, 상기 바이어싱되지 않은 특정 코딩 방식은 SAO를 온 또는 오프 상태로 시그널링하기 위한 1 비트, 및 4개의 에지 오프셋(EO)-SAO 타입들 중 하나의 타입 또는 하나의 밴드 오프셋(BO)-SAO 타입 중 어느 하나를 시그널링하기 위한 1 비트를 포함함으로써 바이어싱되지 않음 -;
    (e) 4개의 EO-SAO 타입들 중 하나의 타입이 시그널링되는 경우, 4개의 EO-SAO 타입들 중 하나의 타입을 시그널링하기 위해 2 비트를 사용하여 상기 블록들 각각 내의 픽셀들 각각에 대해 상기 SAO 타입과 연관되는 EO-SAO 타입에 기초하여 상기 비디오 비트스트림으로부터 강도 오프셋을 결정하는 단계;
    (f) BO-SAO 타입이 시그널링되는 경우, 하나의 BO-SAO 타입을 시그널링하기 위해 어떠한 비트도 없이 상기 블록들 각각 내의 픽셀들의 적어도 일부에 대해 상기 SAO 타입과 연관되는 서브 클래스에 대해 상기 비디오 비트스트림으로부터 강도 오프셋을 결정하는 단계; 및
    (g) SAO 보상을 처리된 비디오 블록 내의 픽셀들 각각에 적용하는 단계 - 상기 SAO 보상은 상기 단계 (e) 또는 상기 단계 (f)의 강도 오프셋에 기초함 -
    를 포함하는, 비디오 비트스트림 디코딩 방법.
  2. 제1항에 있어서,
    상기 바이어싱되지 않은 특정 코딩 방식은 각각의 코드워드 내에 적어도 2개의 유닛들을 갖는 이진 코딩 방식을 포함하는, 비디오 비트스트림 디코딩 방법.
  3. 제2항에 있어서,
    각각의 코드워드는 개별 SAO 타입과 연관되는, 비디오 비트스트림 디코딩 방법.
  4. 제3항에 있어서,
    상기 코드워드는 상기 SAO 타입이 온 상태인지 또는 오프 상태인지를 식별하기 위한 별개의 제1 유닛을 포함하는, 비디오 비트스트림 디코딩 방법.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제2항에 있어서,
    상기 코드워드 내의 유닛들 중 적어도 하나는 문맥 기반 적응 이진 산술 코딩(Context Adaptive Binary Arithmetic Coding; CABAC)을 사용하여 인코딩되는, 비디오 비트스트림 디코딩 방법.
  6. 제1항에 있어서,
    상기 SAO 타입들과 연관되는 바이어싱되지 않은 특정 코딩 방식은 상기 SAO 타입들 각각과 연관되는 하나 이상의 플래그들을 포함하는, 비디오 비트스트림 디코딩 방법.
  7. 제6항에 있어서,
    상기 BO-SAO 타입 및 상기 EO-SAO 타입은 SAO 밴드 플래그를 사용하여 시그널링될 수 있는, 비디오 비트스트림 디코딩 방법.
  8. 제6항에 있어서,
    상기 서브 클래스는 SAO 에지 타입 플래그를 사용하여 시그널링될 수 있는, 비디오 비트스트림 디코딩 방법.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 SAO 타입은 컬러 코딩 성분에 대해 시그널링될 수 있는, 비디오 비트스트림 디코딩 방법.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 방법은 프로세서 및 상기 프로세서에 결합된 메모리를 갖는 컴퓨터 상에 구현되며, 단계들 (a) 내지 (g)의 적어도 일부는 상기 프로세서를 사용하여 수행되는, 비디오 비트스트림 디코딩 방법.
  11. 복수의 픽처들을 갖는 비디오 비트스트림을 디코딩하는 장치로서 - 상기 비트스트림은 샘플 적응 오프셋(SAO)을 갖는 비디오 코딩 시스템에 의해 생성됨 - ,
    상기 장치는 비디오 디코더를 포함하며,
    상기 비디오 디코더는,
    (a) 비디오 비트스트림을 수신하고;
    (b) 상기 비트스트림으로부터 처리된 비디오 데이터를 유도하고;
    (c) 상기 처리된 비디오 데이터를 블록들로 파티셔닝하며 - 상기 블록들 각각은 픽처보다 작거나 같음 -;
    (d) 상기 블록들 각각에 대해 상기 비디오 비트스트림으로부터 SAO 타입을 유도하며 - 상기 SAO 타입은 바이어싱되지 않은 특정 코딩 방식과 연관되고, 상기 바이어싱되지 않은 특정 코딩 방식은 SAO를 온 또는 오프 상태로 시그널링하기 위한 1 비트, 및 4개의 에지 오프셋(EO)-SAO 타입들 중 하나의 타입 또는 하나의 밴드 오프셋(BO)-SAO 타입 중 어느 하나를 시그널링하기 위한 1 비트를 포함함으로써 바이어싱되지 않음 -;
    (e) 4개의 EO-SAO 타입들 중 하나의 타입이 시그널링되는 경우, 4개의 EO-SAO 타입들 중 하나의 타입을 시그널링하기 위해 2 비트를 사용하여 상기 블록들 각각 내의 픽셀들 각각에 대해 상기 SAO 타입과 연관되는 EO-SAO 타입에 기초하여 상기 비디오 비트스트림으로부터 강도 오프셋을 결정하며;
    (f) BO-SAO 타입이 시그널링되는 경우, 하나의 BO-SAO 타입을 시그널링하기 위해 어떠한 비트도 없이 상기 블록들 각각 내의 픽셀들 각각에 대해 상기 SAO 타입과 연관되는 서브 클래스에 대해 상기 비디오 비트스트림으로부터 강도 오프셋을 결정하며;
    (g) SAO 보상을 처리된 비디오 블록 내의 픽셀들 각각에 적용하도록 - 상기 SAO 보상은 상기 (e) 또는 상기 (f)의 강도 오프셋에 기초함 - 구성되는, 비디오 비트스트림 디코딩 장치.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제11항에 있어서,
    상기 장치는,
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 디코더를 포함하는 무선 통신 장치
    중 적어도 하나를 포함하는, 비디오 비트스트림 디코딩 장치.
  13. 제11항에 있어서,
    상기 SAO 타입은 하나 이상의 에지 오프셋(EO) 타입들과 하나의 밴드 오프셋(BO) 타입 및 하나만의 밴드 오프셋(BO) 타입으로 이루어진 그룹으로부터 선택되는, 비디오 비트스트림 디코딩 장치.
  14. 제11항에 있어서,
    상기 SAO 타입들과 연관되는 바이어싱되지 않은 특정 코딩 방식은 각각의 코드워드 내에 적어도 2개의 유닛들을 갖는 이진 코딩 방식을 포함하는, 비디오 비트스트림 디코딩 장치.
  15. 제13항에 있어서,
    상기 EO 타입들 및 BO 타입들은 EO-SAO 타입들의 경우에 2 비트이고 BO-SAO 타입들의 경우에 제로 비트들인 코드워드들에 의해 표현되는, 비디오 비트스트림 디코딩 장치.
  16. 샘플 적응 오프셋(SAO)을 사용하여 복수의 픽처들을 갖는 비디오 데이터를 인코딩하는 방법으로서,
    (a) 비디오 데이터를 블록들로 파티셔닝하는 단계 - 상기 블록들 각각은 픽처보다 작거나 같음 - ;
    (b) 상기 블록들 각각에 대해 상기 비디오 데이터에 대한 SAO 타입을 선택하는 단계 - 상기 SAO 타입은 바이어싱되지 않은 특정 코딩 방식과 연관되고, 상기 바이어싱되지 않은 특정 코딩 방식은 SAO를 온 또는 오프 상태로 시그널링하기 위한 1 비트, 및 4개의 에지 오프셋(EO)-SAO 타입들 중 하나의 타입 또는 하나의 밴드 오프셋(BO)-SAO 타입 중 어느 하나를 시그널링하기 위한 1 비트를 포함함으로써 바이어싱되지 않음 - ;
    (c) 4개의 EO-SAO 타입들 중 하나의 타입이 시그널링되는 경우, 4개의 EO-SAO 타입들 중 하나의 타입을 시그널링하기 위해 2 비트를 사용하여 상기 블록들 각각 내의 픽셀들 각각에 대해 상기 SAO 타입과 연관되는 EO-SAO 타입을 선택하는 단계;
    (d) BO-SAO 타입이 시그널링되는 경우, 하나의 BO-SAO 타입을 시그널링하기 위해 어떠한 비트도 없이 상기 블록들 각각 내의 픽셀들의 적어도 일부에 대해 상기 SAO 타입과 연관되는 서브 클래스에 대해 상기 비디오 데이터의 강도 오프셋을 결정하는 단계; 및
    (e) SAO 보상을 처리된 비디오 블록 내의 픽셀들 각각에 적용하는 단계 - 상기 SAO 보상은 상기 단계 (d)의 강도 오프셋에 기초함 -
    를 포함하는, 비디오 데이터 인코딩 방법.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
KR1020147014994A 2011-11-08 2012-11-08 샘플 적응 오프셋 코딩 및/또는 시그널링을 위한 장치들 및 방법들 KR101671381B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161557409P 2011-11-08 2011-11-08
US61/557,409 2011-11-08
US201161559714P 2011-11-14 2011-11-14
US61/559,714 2011-11-14
US201261638480P 2012-04-25 2012-04-25
US61/638,480 2012-04-25
PCT/US2012/064208 WO2013070955A2 (en) 2011-11-08 2012-11-08 Devices and methods for sample adaptive offset coding and/or signaling
US13/672,476 2012-11-08
US13/672,476 US9774853B2 (en) 2011-11-08 2012-11-08 Devices and methods for sample adaptive offset coding and/or signaling

Publications (2)

Publication Number Publication Date
KR20140090652A KR20140090652A (ko) 2014-07-17
KR101671381B1 true KR101671381B1 (ko) 2016-11-01

Family

ID=48223672

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147014994A KR101671381B1 (ko) 2011-11-08 2012-11-08 샘플 적응 오프셋 코딩 및/또는 시그널링을 위한 장치들 및 방법들
KR1020147014200A KR101674777B1 (ko) 2011-11-08 2012-11-08 샘플 적응 오프셋 코딩 및/또는 시그널링을 위한 장치들 및 방법들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020147014200A KR101674777B1 (ko) 2011-11-08 2012-11-08 샘플 적응 오프셋 코딩 및/또는 시그널링을 위한 장치들 및 방법들

Country Status (6)

Country Link
US (2) US9392270B2 (ko)
EP (2) EP2777272B1 (ko)
KR (2) KR101671381B1 (ko)
CN (2) CN104221373B (ko)
BR (2) BR112014011149A2 (ko)
WO (2) WO2013070960A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018135830A1 (ko) * 2017-01-20 2018-07-26 세종대학교 산학협력단 영상 부호화 방법/장치, 영상 복호화 방법/장치 및 비트스트림을 저장한 기록 매체

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9386304B2 (en) * 2008-11-11 2016-07-05 Cisco Technology, Inc. Digital video compression system, method and computer readable medium
US9264725B2 (en) 2011-06-24 2016-02-16 Google Inc. Selection of phase offsets for interpolation filters for motion compensation
WO2013006573A1 (en) 2011-07-01 2013-01-10 General Instrument Corporation Joint sub-pixel interpolation filter for temporal prediction
CN104221373B (zh) 2011-11-08 2017-10-27 谷歌技术控股有限责任公司 用于采样自适应偏移代码化和/或信号通知的设备和方法
US9277194B2 (en) 2011-11-08 2016-03-01 Texas Instruments Incorporated Method and apparatus for image and video coding using hierarchical sample adaptive band offset
US9716882B2 (en) 2012-01-05 2017-07-25 Google Technology Holdings LLC Devices and methods for sample adaptive offset coding and/or selection of edge offset parameters
WO2013103893A1 (en) 2012-01-05 2013-07-11 General Instrument Corporation Devices and methods for multipass sample adaptive offset coding
EP2813078A4 (en) 2012-02-06 2015-09-30 Nokia Technologies Oy ENCODING METHOD AND APPARATUS
US9591331B2 (en) * 2012-03-28 2017-03-07 Qualcomm Incorporated Merge signaling and loop filter on/off signaling
DK2834980T3 (en) * 2012-04-05 2017-07-03 ERICSSON TELEFON AB L M (publ) Sample adaptive filtering with offsets
US9549176B2 (en) 2012-04-06 2017-01-17 Google Technology Holdings LLC Devices and methods for signaling sample adaptive offset (SAO) parameters
CN107707922A (zh) * 2012-04-16 2018-02-16 寰发股份有限公司 具有分隔的符号和幅值的采样自适应偏移编码的方法和装置
US10623759B2 (en) * 2012-06-13 2020-04-14 Sony Corporation Decoupling enhancements in sample adaptive offset (SAO) for high efficiency video encoder (HEVC)
TWI674792B (zh) * 2012-08-06 2019-10-11 美商Vid衡器股份有限公司 在多層視訊編碼中空間層取樣格網資訊
US9800884B2 (en) * 2013-03-15 2017-10-24 Qualcomm Incorporated Device and method for scalable coding of video information
KR102164698B1 (ko) * 2013-03-25 2020-10-14 광운대학교 산학협력단 입력 버퍼를 재사용하는 샘플 적응적 오프셋 처리 장치 및 샘플 적응적 오프셋 처리 장치의 동작 방법
WO2014165958A1 (en) * 2013-04-08 2014-10-16 Blackberry Limited Methods for reconstructing an encoded video at a bit-depth lower than at which it was encoded
US9674538B2 (en) 2013-04-08 2017-06-06 Blackberry Limited Methods for reconstructing an encoded video at a bit-depth lower than at which it was encoded
PT3005696T (pt) 2013-05-30 2023-07-19 Huawei Tech Co Ltd Restrições de intervalo dinâmico de deslocamento para filtragem de sao de deslocamento de arestas
WO2015007200A1 (en) * 2013-07-15 2015-01-22 Mediatek Inc. Method of sample adaptive offset processing for video coding
US9510002B2 (en) 2013-09-09 2016-11-29 Apple Inc. Chroma quantization in video coding
KR102275639B1 (ko) 2013-10-14 2021-07-08 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 영상 코딩 및 디코딩에 대한 기본 색상 인덱스 맵 모드의 특징
AU2013403224B2 (en) 2013-10-14 2018-10-18 Microsoft Technology Licensing, Llc Features of intra block copy prediction mode for video and image coding and decoding
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
TWI496456B (zh) 2013-11-19 2015-08-11 Ind Tech Res Inst 畫面間成本計算方法及畫面間成本計算裝置
CN111263149B (zh) * 2013-12-12 2021-10-26 三星电子株式会社 视频编码方法和设备以及视频解码方法和设备
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
WO2015100726A1 (en) 2014-01-03 2015-07-09 Microsoft Corporation Block vector prediction in video and image coding/decoding
US9872022B2 (en) * 2014-01-03 2018-01-16 Mediatek Inc. Method and apparatus for sample adaptive offset processing
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US9628822B2 (en) * 2014-01-30 2017-04-18 Qualcomm Incorporated Low complexity sample adaptive offset encoding
US20150237378A1 (en) * 2014-02-20 2015-08-20 Mediatek Inc. Method for controlling sample adaptive offset filtering applied to different partial regions in one frame based on different weighting parameters and related sample adaptive offset filter
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
AU2014385769B2 (en) 2014-03-04 2018-12-06 Microsoft Technology Licensing, Llc Block flipping and skip mode in intra block copy prediction
US9716884B2 (en) * 2014-03-20 2017-07-25 Hfi Innovation Inc. Method of signaling for mode selection in 3D and multi-view video coding
KR102311815B1 (ko) 2014-06-19 2021-10-13 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 통합된 인트라 블록 카피 및 인터 예측 모드
JP2017535145A (ja) 2014-09-30 2017-11-24 マイクロソフト テクノロジー ライセンシング,エルエルシー 波面並列処理が可能にされた場合のピクチャ内予測モードに関する規則
CN104486630B (zh) * 2014-12-16 2017-10-20 北京金山云网络技术有限公司 H.265视频编码中sao模式下偏移量的统计方法
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
US9877024B2 (en) * 2015-03-06 2018-01-23 Qualcomm Incorporated Low complexity sample adaptive offset (SAO) coding
WO2016197314A1 (en) 2015-06-09 2016-12-15 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
WO2016204479A1 (ko) * 2015-06-16 2016-12-22 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
US10009622B1 (en) * 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
US10841581B2 (en) * 2016-07-14 2020-11-17 Arris Enterprises Llc Region specific encoding and SAO-sensitive-slice-width-adaptation for improved-quality HEVC encoding
EP3280143A1 (en) * 2016-08-04 2018-02-07 Thomson Licensing A method and an apparatus for image block encoding and decoding
EP3291553A1 (en) * 2016-08-30 2018-03-07 Thomson Licensing Method and apparatus for video coding with sample adaptive offset
KR101873993B1 (ko) * 2016-11-18 2018-07-05 전자부품연구원 적응적 샘플 오프셋 파라미터 예측 방법 및 이를 위한 장치
KR20180074150A (ko) * 2016-12-23 2018-07-03 삼성전자주식회사 Sao 필터링을 포함하는 비디오 데이터의 부호화를 위한 방법 및 장치
WO2019075638A1 (zh) * 2017-10-17 2019-04-25 北京金山云网络技术有限公司 编码和解码方法、装置、编码器、解码器及存储介质
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
CN110830801B (zh) * 2018-08-13 2021-10-01 华为技术有限公司 视频编码速率控制方法以及相关装置
CN113994679A (zh) * 2019-06-21 2022-01-28 北京字节跳动网络技术有限公司 关于上下文编解码二进制位的数量的限制
CN110121069B (zh) * 2019-06-27 2021-06-11 上海富瀚微电子股份有限公司 基于十字界的hevc环路滤波方法
CN113382257B (zh) * 2021-04-19 2022-09-06 浙江大华技术股份有限公司 编码方法、装置、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130003829A1 (en) 2011-07-01 2013-01-03 Kiran Misra System for initializing an arithmetic coder
US20130163660A1 (en) 2011-07-01 2013-06-27 Vidyo Inc. Loop Filter Techniques for Cross-Layer prediction

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446806A (en) 1993-11-15 1995-08-29 National Semiconductor Corporation Quadtree-structured Walsh transform video/image coding
US5574934A (en) 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
DE602004002455T2 (de) * 2004-04-30 2007-01-11 Matsushita Electric Industrial Co., Ltd., Kadoma Bewegungsvektorschätzung durch adaptive zeitliche Vorhersage
JP2008059686A (ja) 2006-08-31 2008-03-13 Canon Inc 球面収差及びフォーカスオフセット調整方法、それを用いた情報記録再生装置
US8259808B2 (en) 2010-03-25 2012-09-04 Mediatek Inc. Low complexity video decoder
EP2559238B1 (en) 2010-04-13 2015-06-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Adaptive image filtering method and apparatus
US8660174B2 (en) 2010-06-15 2014-02-25 Mediatek Inc. Apparatus and method of adaptive offset for video coding
TWI406275B (zh) 2010-08-20 2013-08-21 Sunplus Technology Co Ltd 光碟機中尋找最佳聚焦偏壓及球差補償值的方法與裝置
US8913666B2 (en) 2010-10-01 2014-12-16 Qualcomm Incorporated Entropy coding coefficients using a joint context model
US8861617B2 (en) 2010-10-05 2014-10-14 Mediatek Inc Method and apparatus of region-based adaptive loop filtering
US9001883B2 (en) 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
US9008170B2 (en) 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
US10484693B2 (en) 2011-06-22 2019-11-19 Texas Instruments Incorporated Method and apparatus for sample adaptive offset parameter estimation for image and video coding
CN107105305B (zh) * 2011-06-24 2020-04-03 Lg 电子株式会社 图像信息编码和解码方法
US8710809B2 (en) 2011-06-28 2014-04-29 Stmicroelectronics International N.V. Voltage regulator structure that is operationally stable for both low and high capacitive loads
US10051289B2 (en) 2011-11-04 2018-08-14 Qualcomm Incorporated Adaptive center band offset filter for video coding
CN104221373B (zh) 2011-11-08 2017-10-27 谷歌技术控股有限责任公司 用于采样自适应偏移代码化和/或信号通知的设备和方法
US9679061B2 (en) 2011-12-08 2017-06-13 Google Technology Holdings LLC Method and apparatus that collect and uploads implicit analytic data
WO2013103893A1 (en) 2012-01-05 2013-07-11 General Instrument Corporation Devices and methods for multipass sample adaptive offset coding
US9716882B2 (en) 2012-01-05 2017-07-25 Google Technology Holdings LLC Devices and methods for sample adaptive offset coding and/or selection of edge offset parameters
US9161035B2 (en) 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
US20130188741A1 (en) 2012-01-21 2013-07-25 General Instrument Corporation Devices and methods for sample adaptive offset coding and/or selection of band offset parameters
US9282328B2 (en) 2012-02-10 2016-03-08 Broadcom Corporation Sample adaptive offset (SAO) in accordance with video coding
US9380302B2 (en) 2012-02-27 2016-06-28 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
US9549176B2 (en) 2012-04-06 2017-01-17 Google Technology Holdings LLC Devices and methods for signaling sample adaptive offset (SAO) parameters
US10694214B2 (en) 2012-12-21 2020-06-23 Qualcomm Incorporated Multi-type parallelized sample adaptive offset in video coding
US20140348222A1 (en) * 2013-05-23 2014-11-27 Mediatek Inc. Method of Sample Adaptive Offset Processing for Video Coding and Inter-Layer Scalable Coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130003829A1 (en) 2011-07-01 2013-01-03 Kiran Misra System for initializing an arithmetic coder
US20130163660A1 (en) 2011-07-01 2013-06-27 Vidyo Inc. Loop Filter Techniques for Cross-Layer prediction

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
C-M Fu et al, "TE10 Subset 3: Quadtree-based Adaptive Offset", JCTVC-C147, 2010.10.7.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018135830A1 (ko) * 2017-01-20 2018-07-26 세종대학교 산학협력단 영상 부호화 방법/장치, 영상 복호화 방법/장치 및 비트스트림을 저장한 기록 매체
US11412218B2 (en) 2017-01-20 2022-08-09 Industry Academy Cooperation Foundation Of Sejong University Image encoding method/device, image decoding method/device and recording medium having bitstream stored thereon
US11778179B2 (en) 2017-01-20 2023-10-03 Industry Academy Cooperation Foundation Of Sejong University Image encoding method/device, image decoding method/device and recording medium having bitstream stored thereon

Also Published As

Publication number Publication date
US20130114678A1 (en) 2013-05-09
US20130114677A1 (en) 2013-05-09
EP2777259A2 (en) 2014-09-17
EP2777272B1 (en) 2019-01-09
WO2013070960A2 (en) 2013-05-16
KR20140090652A (ko) 2014-07-17
WO2013070955A3 (en) 2013-09-12
BR112014012351A2 (pt) 2017-05-30
WO2013070955A2 (en) 2013-05-16
CN104221373B (zh) 2017-10-27
BR112014011149A2 (pt) 2017-05-16
CN104094601B (zh) 2018-01-19
KR20140090646A (ko) 2014-07-17
KR101674777B1 (ko) 2016-11-09
CN104221373A (zh) 2014-12-17
US9774853B2 (en) 2017-09-26
CN104094601A (zh) 2014-10-08
US9392270B2 (en) 2016-07-12
EP2777272A2 (en) 2014-09-17
WO2013070960A3 (en) 2013-10-10

Similar Documents

Publication Publication Date Title
KR101671381B1 (ko) 샘플 적응 오프셋 코딩 및/또는 시그널링을 위한 장치들 및 방법들
US9888249B2 (en) Devices and methods for sample adaptive offset coding and/or selection of edge offset parameters
US9565435B2 (en) Devices and methods for context reduction in last significant coefficient position coding
CN109547790B (zh) 用于在高效率视频编解码中处理分区模式的设备和方法
EP2805495B1 (en) Devices and methods for context reduction in last significant coefficient position coding
US9872034B2 (en) Devices and methods for signaling sample adaptive offset (SAO) parameters
WO2013103893A1 (en) Devices and methods for multipass sample adaptive offset coding
US20130188741A1 (en) Devices and methods for sample adaptive offset coding and/or selection of band offset parameters
US11039166B2 (en) Devices and methods for using base layer intra prediction mode for enhancement layer intra mode prediction
WO2014055231A1 (en) Devices and methods for using base layer motion vector for enhancement layer motion vector prediction
WO2013109419A1 (en) Devices and methods for sample adaptive offset coding and/or selection of band offset parameters

Legal Events

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