KR102060868B1 - 비디오 코딩을 위해 크로스-컴포넌트 예측 및 적응적 컬러 변환을 위한 클립핑 - Google Patents

비디오 코딩을 위해 크로스-컴포넌트 예측 및 적응적 컬러 변환을 위한 클립핑 Download PDF

Info

Publication number
KR102060868B1
KR102060868B1 KR1020177020971A KR20177020971A KR102060868B1 KR 102060868 B1 KR102060868 B1 KR 102060868B1 KR 1020177020971 A KR1020177020971 A KR 1020177020971A KR 20177020971 A KR20177020971 A KR 20177020971A KR 102060868 B1 KR102060868 B1 KR 102060868B1
Authority
KR
South Korea
Prior art keywords
video
residual data
bit depth
data
video data
Prior art date
Application number
KR1020177020971A
Other languages
English (en)
Other versions
KR20170108964A (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 KR20170108964A publication Critical patent/KR20170108964A/ko
Application granted granted Critical
Publication of KR102060868B1 publication Critical patent/KR102060868B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/02Colour television systems with bandwidth reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • H04N11/042Codec means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • H04N11/042Codec means
    • H04N11/044Codec means involving transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/24High-definition television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/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/186Methods 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 colour or a chrominance component
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/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/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4382Demodulation or channel decoding, e.g. QPSK demodulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6131Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6181Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a mobile phone network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/50Control of the SSIS exposure
    • H04N25/57Control of the dynamic range

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)

Abstract

비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스는 제 1 잔차 데이터의 비트 심도에 기초하여 제 1 잔차 데이터를 클립핑할 수도 있다. 디바이스는 제 1 잔차 데이터에 역 적응적 컬러 변환 (IACT) 을 적용함으로써 적어도 부분적으로 제 2 잔차 데이터를 생성할 수도 있다. 더욱이, 디바이스는 제 2 잔차 데이터에 기초하여, 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원할 수도 있다.

Description

비디오 코딩을 위해 크로스-컴포넌트 예측 및 적응적 컬러 변환을 위한 클립핑{CLIPPING FOR CROSS-COMPONENT PREDICTION AND ADAPTIVE COLOR TRANSFORM FOR VIDEO CODING}
본 출원은 2015년 1월 30일자로 출원된 미국 가특허출원 제62/110,324호, 2015년 2월 6일자로 출원된 미국 가특허출원 제62/113,269호, 및 2015년 2월 12일자로 출원된 미국 가특허출원 제62/115,487호의 이익을 주장하고, 이들 각각의 전체 내용은 본원에 참조로 통합된다.
기술분야
본 개시는 비디오 코딩에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대 정보 단말기들 (PDA들), 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 소위 "스마트 폰들", 비디오 텔레컨퍼런싱 디바이스들, 비디오 스트리밍 디바이스들, 등을 포함한, 다양한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, AVC (Advanced Video Coding), ITU-T H.265, 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 에 의해 정의된 표준들, 및 이러한 표준들의 확장들, 이를 테면 스케일러블 비디오 코딩 (scalable video coding; SVC), 멀티뷰 비디오 코딩 (multiview video coding; MVC), 스케일러블 HEVC (SHVC), 멀티뷰 HEVC (MV-HEVC), 3D-HEVC, 및 HEVC 범위 확장들에서 설명된 것들과 같은 비디오 코딩 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 코딩 기법들을 구현함으로써 디지털 비디오 정보를 보다 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 코딩 기법들은 비디오 시퀀스들에 내재하는 리던던시를 제거 또는 감소시키기 위해 공간 (인트라-픽처) 예측 및/또는 시간 (인터-픽처) 예측을 포함한다. 블록-기반 비디오 코딩을 위해, 비디오 슬라이스 (예를 들어, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝될 수도 있고, 비디오 블록들은 또한 트리블록들, 코딩 트리 유닛들 (CTU들), 코딩 유닛들 (CU들) 및/또는 코딩 노드들로 지칭될 수도 있다. 비디오 블록들은 루마 블록들 및 크로마 블록들을 포함할 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서, 블록들은 동일한 픽처 내의 이웃하는 블록들에서의 참조 샘플들에 대하여 공간 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 픽처 내의 이웃하는 블록들에서의 참조 샘플들에 대하여 공간 예측을 이용하고 다른 참조 픽처들 내의 참조 샘플들에 대하여 시간 예측을 이용할 수도 있다. 픽처들은 프레임들로 지칭될 수도 있고, 참조 픽처들은 참조 프레임들로 지칭될 수도 있다.
공간 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 초래한다. 잔차 데이터는 코딩될 원래의 블록과 예측 블록 사이의 픽셀 차이들을 표현한다. 인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터, 및 코딩된 블록과 예측 블록 사이의 차이를 표시하는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가의 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 후에 양자화될 수도 있는 잔차 변환 계수들을 초래할 수도 있다. 양자화된 변환 계수들은 훨씬 더 큰 압축을 달성하기 위해 엔트로피 코딩될 수도 있다.
본 개시는 비디오 코딩의 분야에 관련되고, 특히 적응적 컬러 변환 (ACT) 및 크로스 컴포넌트 예측 (CCP) 과 같은 툴들이 적용될 때 비트-심도 고려에 관련된다. 본 개시의 특정한 기법들은 ACT 및 CCP 의 적용으로 인한 샘플들의 비트 심도의 증가를 감소, 제거, 또는 다르게는 제어할 수도 있다.
하나의 양태에서, 본 개시는 비디오 데이터를 인코딩 또는 디코딩하는 방법을 설명하고, 그 방법은, 제 1 잔차 데이터의 비트 심도에 기초하여 가변 범위에 제 1 잔차 데이터를 클립핑하는 단계; 클립핑된 제 1 잔차 데이터에 역 적응적 컬러 변환 (inverse Adaptive Color Transform; IACT) 을 적용함으로써 적어도 부분적으로 제 2 잔차 데이터를 생성하는 단계; 및 제 2 잔차 데이터에 기초하여, 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원하는 단계를 포함한다.
다른 양태에서, 본 개시는 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스를 설명하고, 그 디바이스는, 비디오 데이터를 저장하도록 구성된 메모리; 및 하나 이상의 프로세서들을 포함하고, 하나 이상의 프로세서들은, 제 1 잔차 데이터의 비트 심도에 기초하여 가변 범위에 제 1 잔차 데이터를 클립핑하고; 클립핑된 제 1 잔차 데이터에 역 적응적 컬러 변환 (IACT) 을 적용함으로써 적어도 부분적으로 제 2 역 변환된 잔차 데이터를 생성하고; 그리고 제 2 역 변환된 잔차 데이터에 기초하여, 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원하도록 구성된다.
다른 양태에서, 본 개시는 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스를 설명하고, 그 디바이스는, 제 1 잔차 데이터의 비트 심도에 기초하여 가변 범위에 제 1 잔차 데이터를 클립핑하기 위한 수단; 클립핑된 제 1 잔차 데이터에 역 적응적 컬러 변환 (IACT) 을 적용함으로써 적어도 부분적으로 제 2 잔차 데이터를 생성하기 위한 수단; 및 제 2 역 변환된 잔차 데이터에 기초하여, 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원하기 위한 수단을 포함한다.
다른 양태에서, 본 개시는 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체를 설명하고, 그 명령들은, 실행될 때, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스의 하나 이상의 프로세서들로 하여금, 제 1 잔차 데이터의 비트 심도에 기초하여 가변 범위에 제 1 잔차 데이터를 클립핑하게 하고; 클립핑된 제 1 잔차 데이터에 역 적응적 컬러 변환 (IACT) 을 적용함으로써 적어도 부분적으로 제 2 잔차 데이터를 생성하게 하고; 그리고 제 2 잔차 데이터에 기초하여, 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원하게 한다.
본 개시의 하나 이상의 예들의 상세들은 첨부한 도면들 및 이하의 설명에 기재된다. 다른 피처들, 목적들, 및 이점들은 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 본 개시의 기법들을 활용할 수도 있는 일 예의 비디오 코딩 시스템을 예시하는 블록 다이어그램이다.
도 2 는 일 예의 적응적 컬러 변환 (ACT) 및 크로스-컴포넌트 예측 (CCP) 프로세싱 순서를 예시하는 개념적 다이어그램이다.
도 3 은 예의 고효율 비디오 코딩 (HEVC) 코딩된 입력/출력 (IO) 비트 심도들을 예시하는 개념적 다이어그램이다.
도 4a 는 CCP 를 이용하는 스크린 콘텐츠 코딩의 구성을 위한 예의 비트 심도 정보를 예시하는 개념적 다이어그램이다.
도 4b 는 ACT 및 CCP 를 이용하는 스크린 콘텐츠 코딩의 구성을 위한 예의 비트 심도 정보를 예시하는 개념적 다이어그램이다.
도 5a 는 본 개시의 하나 이상의 기법들에 따른, CCP 만을 이용한, 순방향 CCP 후의 클립핑을 예시하는 개념적 다이어그램이다.
도 5b 는 본 개시의 하나 이상의 기법들에 따른, CCP 만을 이용한, 순방향 CCP 후의 클립핑에 기인하는 동적 범위 변화들을 예시하는 개념적 다이어그램이다.
도 5c 는 본 개시의 하나 이상의 기법들에 따른, ACT 및 CCP 를 이용한, 순방향 CCP 후의 클립핑을 예시하는 개념적 다이어그램이다.
도 5d 는 본 개시의 하나 이상의 기법들에 따른, ACT 및 CCP 를 이용한, 순방향 CCP 후의 클립핑에 기인하는 동적 범위 변화들을 예시하는 개념적 다이어그램이다.
도 6a 는 본 개시의 하나 이상의 기법들에 따른, 비디오 디코더에서의 예의 클립핑 로케이션들을 예시하는 개념적 다이어그램이다.
도 6b 는 도 6a 에 표시된 클립핑 로케이션에서의 클립핑의 예를 예시하는 개념적 다이어그램이다.
도 6c 는 도 6a 에 표시된 클립핑 로케이션에서의 클립핑의 예를 예시하는 개념적 다이어그램이다.
도 6d 는 도 6a 에 표시된 클립핑 로케이션에서의 클립핑의 예를 예시하는 개념적 다이어그램이다.
도 7 은 본 개시의 하나 이상의 기법들에 따른, 이전의 모듈이 역 CCP (ICCP) 를 위한 것인, 역 ACT 입력에서의 클립핑의 예를 예시하는 개념적 다이어그램이다.
도 8 은 본 개시의 하나 이상의 기법들에 따른, 이전의 모듈이 역 변환을 위한 것인, 역 ACT 입력에서의 클립핑의 예를 예시하는 개념적 다이어그램이다.
도 9a 는 본 개시의 하나 이상의 기법들에 따른, ICCP 에 대한 입력들이 제약을 받는, 일 예의 일련의 변환들을 예시하는 개념적 다이어그램이다.
도 9b 는 본 개시의 하나 이상의 기법들에 따른, IACT 에 대한 입력들이 제약을 받는, 일 예의 일련의 변환들을 예시하는 개념적 다이어그램이다.
도 9c 는 본 개시의 하나 이상의 기법들에 따른, 도 9a 및 도 9b 의 응축된 형태를 도시하는 일 예의 일련의 변환들을 예시하는 개념적 다이어그램이다.
도 10 은 본 개시의 하나 이상의 양태들에 따른 기법들을 수행할 수도 있는 비디오 인코더의 예를 예시하는 블록 다이어그램이다.
도 11 은 본 개시의 하나 이상의 양태들에 따른 기법들을 수행할 수도 있는 비디오 디코더의 예를 예시하는 블록 다이어그램이다.
도 12 는 본 개시의 기법에 따른, 비디오 코더의 일 예의 동작을 예시하는 플로우차트이다.
고효율 비디오 코딩 (HEVC) 은 최근에 완결된 비디오 코딩 표준이다. 스크린 콘텐츠 코딩 (SCC) 을 위한 HEVC 의 확장은 개발 중이다. HEVC 의 SCC 확장은 컬러 컴포넌트들 중에서 리던던시를 감소시키기 위해 적응적 컬러 변환 (ACT) 및 크로스 컴포넌트 예측 (CCP) 변환을 구현한다. 일반적으로, 본 개시는 비디오 코딩의 분야에 관한 것으로, 특히 ACT 및 CCP 와 같은 툴들이 적용될 때 비트-심도 고려에 관한 것이다. 제안된 기법들은 SCC 에 주로 관계가 있지만, HEVC 확장들 및 높은 비트 심도들 (예를 들어, 8 비트 초과), 상이한 크로마 샘플링 포맷들, 등을 지원하는 것들을 포함한 다른 비디오 코딩 표준들에 일반적으로 적용가능할 수도 있다.
HEVC 의 SCC 확장에서, 비디오 인코더는 비디오 데이터의 코딩 블록의 샘플들과 예측 블록의 대응하는 샘플들 사이의 차이들을 표시하는 잔차 데이터를 생성할 수도 있다. 비디오 인코더는 그 후 변환된 잔차 데이터의 제 1 세트를 획득하기 위해 잔차 데이터에 ACT 를 적용할 수도 있다. 비디오 인코더는 그 후 변환된 잔차 데이터의 제 2 세트를 획득하기 위해 변환된 잔차 데이터의 제 1 세트에 CCP 변환을 적용할 수도 있다. 후속하여, 비디오 인코더는 변환된 잔차 데이터의 제 3 세트를 획득하기 위해 변환된 잔차 데이터의 제 2 세트에 변환 (T), 이를 테면 이산 코사인 변환 (DCT) 을 적용할 수도 있다. 변환된 잔차 데이터의 제 1 및 제 2 세트들과는 대조적으로, 변환된 잔차 데이터의 제 3 세트는 샘플 도메인 대신에 주파수 도메인에 있을 수도 있다. "주파수 도메인" 에서의 잔차 데이터는 상이한 주파수들에서 발진하는 함수들 (예를 들어, 코사인 또는 사인 함수들) 의 관점에서 표현된다. "샘플 도메인" 에서의 잔차 데이터는 루마 또는 크로마 값들과 같은 비디오 데이터의 샘플들의 값들의 관점에서 표현된다. 비디오 인코더는 그 후 변환된 잔차 데이터의 제 3 세트를 양자화할 수도 있다.
비디오 디코더는 이 프로세스를 반전시킬 수도 있다. 예를 들어, 비디오 디코더는 변환된 잔차 데이터의 양자화된 제 3 세트를 나타내는 신택스 엘리먼트들을 획득할 수도 있다. 비디오 디코더는 그 후 변환된 잔차 데이터의 제 3 세트를 재생성하기 위해 변환된 잔차 데이터의 제 3 세트를 역 양자화할 수도 있다. 다음에, 비디오 디코더는 변환된 잔차 데이터의 제 2 세트를 재생성하기 위해, 역 변환 (IT), 이를 테면 역 DCT 를 적용할 수도 있다. 비디오 디코더는 그 후 변환된 잔차 데이터의 제 1 세트를 재생성하기 위해 변환된 잔차 데이터의 재생성된 제 2 세트에 역 CCP (ICCP) 변환을 적용할 수도 있다. 후속하여, 비디오 디코더는 잔차 데이터를 재생성하기 위해 변환된 잔차 데이터의 재생성된 제 1 세트에 역 ACT (IACT) 를 적용할 수도 있다. 비디오 디코더는 재생성된 잔차 데이터 및 예측 블록에 기초하여 코딩 블록을 복원할 수도 있다.
상기 약술된 프로세스에서, (즉, IT 의 출력인) 변환된 잔차 데이터의 재생성된 제 2 세트의 각각의 샘플은 코딩 블록의 샘플들의 원래의 비트 심도보다 7 비트 더 큰 비트 심도를 갖는다. 이 맥락에서, 용어 "비트 심도" 는 단일의 샘플을 표현하는데 이용되는 비트들의 수를 지칭한다. 더욱이, (즉, ICCP 변환의 출력인) 변환된 잔차 데이터의 재생성된 제 2 세트의 각각의 샘플은 코딩 블록의 샘플들의 원래의 비트 심도보다 8 비트 더 큰 비트 심도를 갖는다. (즉, IACT 의 출력인) 변환된 잔차 데이터의 재생성된 제 1 세트의 각각의 샘플은 코딩 블록의 샘플들의 원래의 비트 심도보다 9 비트 더 큰 비트 심도를 갖는다.
ACT 및 CCP 변환을 이용하는 것과 연관된 비트 심도의 증가는 비디오 인코더들 및 비디오 디코더들에 대한 구현 복잡도 및 비용들을 증가시킬 수도 있다. 예를 들어, 비디오 인코더들 및 비디오 디코더들의 하드웨어 구현들에 있어서, 변환된 잔차 데이터의 샘플들을 반송 및 저장하기 위한 데이터 경로들은 더 많은 채널들 및/또는 저장 로케이션들을 요구할 수도 있다.
본 개시는 비디오 코딩에서 ACT 및 CCP 변환을 이용하는 것과 연관된 비트 심도의 증가를 감소 또는 제거하는 여러 기법들을 설명한다. 예를 들어, 비디오 데이터를 디코딩하기 위한 프로세스의 일부로서, 비디오 디코더는 제 1 잔차 데이터의 비트 심도에 기초하여 가변 범위에 제 1 잔차 데이터를 클립핑할 수도 있다. 클립핑은 값이 상한값을 초과한다면 그 값을 상한값으로 설정하고 값이 하한값 미만이면 그 값을 하한값으로 설정하는 프로세스를 지칭할 수도 있다. 일부 예들에서, 비디오 디코더는 제 1 잔차 데이터를 생성하기 위해 ICCP 를 적용할 수도 있다. 일부 예들에서, 비디오 디코더는 ICCP 를 적용함 없이, 제 1 잔차 데이터를 생성하기 위해 변환 도메인으로부터 샘플 도메인으로의 변환을 적용할 수도 있다. 다음에, 비디오 디코더는 클립핑된 입력에 IACT 를 적용함으로써 적어도 부분적으로 제 2 잔차 데이터를 생성할 수도 있다. 따라서, 비디오 디코더는 IACT 에 대한 입력의 비트 심도에 기초하여 IACT 에 대한 입력을 클립핑할 수도 있다. 비디오 디코더는 제 2 잔차 데이터에 기초하여, 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원할 수도 있다. 예를 들어, 비디오 디코더는, 제 2 잔차 데이터에서의 샘플에 대응하는 코딩 블록의 각 개별의 샘플에 대해, 코딩 블록의 개별의 샘플이 제 2 잔차 데이터에서의 대응하는 샘플에 CU 의 예측 유닛 (PU) 의 예측 블록에서의 대응하는 샘플을 더한 것과 동일하도록 CU 의 코딩 블록을 복원할 수도 있다. 비디오 인코더는 비디오 인코더의 복원 루프 (즉, 디코딩 루프) 의 일부와 동일하거나 또는 유사한 프로세스를 수행할 수도 있다. 유리하게는, 이 예에서 설명된 프로세스는 ACT 및/또는 CCP 를 이용할 때 비트 심도가 특정한 수를 넘어서 증가하는 것을 방지할 수도 있다.
도 1 은 본 개시의 기법들을 활용할 수도 있는 일 예의 비디오 코딩 시스템 (10) 을 예시하는 블록 다이어그램이다. 본 명세서에서 사용한 바와 같이, 용어 "비디오 코더" 는 일반적으로 비디오 인코더들과 비디오 디코더들 양자 모두를 지칭한다. 본 개시에서, 용어들 "비디오 코딩" 또는 "코딩" 은 비디오 인코딩 또는 비디오 디코딩을 일반적으로 지칭할 수도 있다. 비디오 코딩 시스템 (10) 의 비디오 인코더 (20) 및 비디오 디코더 (30) 는 본 개시에서 설명된 다양한 예들에 따른 비디오 코딩을 위한 기법들을 수행하도록 구성될 수도 있는 디바이스들의 예들을 표현한다.
도 1 에 도시한 바와 같이, 비디오 코딩 시스템 (10) 은 소스 디바이스 (12) 및 목적지 디바이스 (14) 를 포함한다. 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 생성한다. 이에 따라, 소스 디바이스 (12) 는 비디오 인코딩 디바이스 또는 비디오 인코딩 장치로 지칭될 수도 있다. 목적지 디바이스 (14) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수도 있다. 이에 따라, 목적지 디바이스 (14) 는 비디오 디코딩 디바이스 또는 비디오 디코딩 장치로 지칭될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 비디오 코딩 디바이스들 또는 비디오 코딩 장치들의 예들일 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 모바일 컴퓨팅 디바이스들, 노트북 (예를 들어, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋-톱 박스들, 전화기 핸드셋들, 이를 테면 소위 "스마트" 폰들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 자동차용 컴퓨터들, 등을 포함한, 다양한 디바이스들을 포함할 수도 있다.
목적지 디바이스 (14) 는 채널 (16) 을 통해 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신할 수도 있다. 채널 (16) 은 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 인코딩된 비디오 데이터를 이동시킬 수 있는 하나 이상의 매체들 또는 디바이스들을 포함할 수도 있다. 하나의 예에서, 채널 (16) 은 소스 디바이스 (12) 로 하여금 인코딩된 비디오 데이터를 실시간으로 목적지 디바이스 (14) 에 직접 송신할 수 있게 하는 하나 이상의 통신 매체들을 포함할 수도 있다. 이 예에서, 소스 디바이스 (12) 는 무선 통신 프로토콜과 같은 통신 표준에 따라 인코딩된 비디오 데이터를 변조할 수도 있고, 변조된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 및/또는 유선 통신 매체들, 이를 테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 하나 이상의 통신 매체들은 로컬 영역 네트워크, 광역 네트워크, 또는 글로벌 네트워크 (예를 들어, 인터넷) 와 같은, 패킷-기반 네트워크의 일부를 형성할 수도 있다. 하나 이상의 통신 매체들은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는 다른 장비를 포함할 수도 있다.
다른 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 예를 들어, 디스크 액세스 또는 카드 액세스를 통해, 저장 매체에 액세스할 수도 있다. 저장 매체는 다양한 로컬로-액세스된 데이터 저장 매체들, 이를 테면 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 다른 적합한 디지털 저장 매체들을 포함할 수도 있다.
추가의 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 디바이스를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 파일 서버 또는 다른 중간 저장 디바이스에 저장된 인코딩된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수 있는 서버의 타입일 수도 있다. 예의 파일 서버들은 웹 서버들 (예를 들어, 웹사이트용), 파일 전송 프로토콜 (FTP) 서버들, NAS (network attached storage) 디바이스들, 및 로컬 디스크 드라이브들을 포함한다.
목적지 디바이스 (14) 는 인터넷 접속과 같은 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 데이터 접속들의 예의 타입들은 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하는데 적합한 무선 채널들 (예를 들어, Wi-Fi 접속들), 유선 접속들 (예를 들어, DSL, 케이블 모뎀, 등), 또는 양자의 조합들을 포함할 수도 있다. 파일 서버로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 양자의 조합일 수도 있다.
본 개시의 기법들은 무선 애플리케이션들 또는 세팅들에 제한되지 않는다. 기법들은 다양한 멀티미디어 애플리케이션들, 이를 테면 오버-디-에어 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예를 들어, 인터넷을 통한, 스트리밍 비디오 송신들을 지원한 비디오 코딩, 데이터 저장 매체 상의 저장을 위한 비디오 데이터의 인코딩, 데이터 저장 매체 상에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션들에 적용될 수도 있다. 일부 예들에서, 비디오 코딩 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 텔레포니와 같은 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 에 예시된 비디오 코딩 시스템 (10) 은 예일 뿐이고 본 개시의 기법들은 인코딩 및 디코딩 디바이스들 사이의 임의의 데이터 통신을 반드시 포함하는 것은 아닌 비디오 코딩 세팅들 (예를 들어, 비디오 인코딩 또는 비디오 디코딩) 에 적용할 수도 있다. 다른 예들에서, 데이터는 로컬 메모리로부터 취출되고, 네트워크를 통해 스트리밍되며, 등등이다. 비디오 인코딩 디바이스는 데이터를 인코딩하여 메모리에 저장할 수도 있고, 및/또는 비디오 디코딩 디바이스는 메모리로부터 데이터를 취출하여 디코딩할 수도 있다. 많은 예들에서, 인코딩 및 디코딩은 서로 통신하지 않지만, 단순히 메모리로의 데이터를 인코딩하고 및/또는 메모리로부터의 데이터를 취출 및 디코딩하는 디바이스들에 의해 수행된다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 비디오 데이터를 저장하도록 구성된 메모리들을 포함할 수도 있다. 비디오 인코더 (20) 는 메모리에 저장된 비디오 데이터를 인코딩할 수도 있다. 비디오 디코더 (30) 는 인코딩된 비디오 데이터를 디코딩하고 결과의 비디오 데이터를 메모리에 저장할 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부 예들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 비디오 소스 (18) 는 비디오 캡처 디바이스, 예를 들어, 비디오 카메라, 이전에-캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽스 시스템, 또는 비디오 데이터의 이러한 소스들의 조합을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터의 비디오 데이터를 인코딩할 수도 있다. 일부 예들에서, 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 에 직접 송신한다. 다른 예들에서, 인코딩된 비디오 데이터는 디코딩 및/또는 플레이백을 위한 목적지 디바이스 (14) 에 의한 추후 액세스를 위해 저장 매체 또는 파일 서버 상에 또한 저장될 수도 있다.
도 1 의 예에서, 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 일부 예들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스 (28) 는 채널 (16) 을 통해 인코딩된 비디오 데이터를 수신할 수도 있다. 디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합될 수도 있고 또는 목적지 디바이스 (14) 외부에 있을 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 디바이스 (32) 는 다양한 디스플레이 디바이스들, 이를 테면 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 다양한 적합한 회로부, 이를 테면 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드-프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 하드웨어, 또는 그 임의의 조합 중 임의의 것으로서 구현될 수도 있다. 기법들이 소프트웨어로 부분적으로 구현되면, 디바이스는 소프트웨어를 위한 명령들을 적합한, 비일시적 컴퓨터 판독가능 저장 매체에 저장할 수도 있고 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 이용하는 하드웨어에서 명령들을 실행할 수도 있다. 전술한 것 (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합, 등을 포함함) 중 임의의 것은 하나 이상의 프로세서들인 것으로 고려될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은, 어느 하나가 개별의 디바이스에 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있는, 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있다.
본 개시는 일반적으로 비디오 인코더 (20) 가 다른 디바이스, 이를 테면 비디오 디코더 (30) 에 소정의 정보를 "시그널링하는 것" 또는 "송신하는 것" 을 지칭할 수도 있다. 용어 "시그널링하는 것" 또는 "송신하는 것" 은 일반적으로 압축된 비디오 데이터를 디코딩하는데 이용되는 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 지칭할 수도 있다. 이러한 통신은 실시간 또는 근실시간으로 발생할 수도 있다. 대안적으로, 이러한 통신은, 이 매체에 저장된 후의 어느 때라도 디코딩 디바이스에 의해 후에 취출될 수도 있는, 신택스 엘리먼트들을 인코딩 시에 인코딩된 비트스트림으로 컴퓨터 판독가능 저장 매체에 저장할 때 발생할 수도 있는 것과 같이, 어떤 기간에 걸쳐 발생할 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신 디바이스를 각각 포함할 수도 있다. 소스 디바이스 (12) 는 소스 디바이스 (12) 의 하나 이상의 프로세서들에 통신가능하게 커플링된 송신기를 포함할 수도 있다. 다시 말해서, 소스 디바이스 (12) 의 하나 이상의 프로세서들은 소스 디바이스 (12) 의 하나 이상의 프로세서들이 송신기와 통신하는 것을 허용하는 방식으로 직접적으로 또는 간접적으로 송신기에 커플링될 수도 있다. 출력 인터페이스 (22) 는 송신기를 포함할 수도 있다. 송신기는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 송신하도록 구성될 수도 있다. 예를 들어, 비디오 데이터의 이 인코딩된 표현은 코딩 유닛의 인코딩된 표현을 포함할 수도 있다. 유사하게, 목적지 디바이스 (14) 는 목적지 디바이스 (14) 의 하나 이상의 프로세서들에 통신가능하게 커플링된 수신기를 포함할 수도 있다. 다시 말해서, 목적지 디바이스 (14) 의 하나 이상의 프로세서들은 목적지 디바이스 (14) 의 하나 이상의 프로세서들이 수신기와 통신하는 것을 허용하는 방식으로 직접적으로 또는 간접적으로 수신기에 커플링될 수도 있다. 입력 인터페이스 (28) 는 수신기를 포함할 수도 있다. 수신기는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 수신하도록 구성될 수도 있다. 일부 예들에서, 무선 통신 디바이스는 셀룰러 전화기이고, 비트스트림은 셀룰러 통신 표준에 따라 변조된다. 이러한 예들에서, 비트스트림은 송신기에 의해 송신될 수도 있고, 또는 비트스트림은 수신기에 의해 수신될 수도 있다.
최근에, 새로운 비디오 코딩 표준, 즉, 고효율 비디오 코딩 (HEVC) 의 설계는 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹 (MPEG) 의 JCT-VC (Joint Collaboration Team on Video Coding) 에 의해 완결되었다. 일부 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 HEVC 표준과 같은 비디오 압축 표준에 따라 동작한다. http://phenix.int-evry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1003-v2.zip 으로부터 입수가능한, Wang 등의, "High Efficiency Video Coding (HEVC) Defect Report 2", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 15th Meeting: Geneva, CH, 23 Oct. - 1 Nov. 2013, document JCTVC-01003_v2 는, HEVC 드래프트 사양이고 이하에 HEVC WD 로 지칭된다. http://phenix.int-evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1003-v1.zip (이하, HEVC 버전 1) 으로부터 입수가능한, Wang 등의, "High Efficiency Video Coding (HEVC) Defect Report 4", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 17th Meeting: Valencia, ES, 27 March - 4 April 2014, document JCTVC-Q1003 (v.1) 은 HEVC 표준을 설명하는 다른 문헌이다. http://www.itu.int/rec/T-REC-H.265-201304-I 로부터 입수가능한, 권고 ITU-T H.265, 고효율 비디오 코딩은 최신의 HEVC 사양을 포함하는 다른 문헌이다. 기초 HEVC 표준에 더하여, 스케일러블 비디오 코딩, 멀티뷰 비디오 코딩, 및 HEVC 에 대한 3D 코딩 확장들을 생성하려는 노력이 계속 진행중이다.
HEVC 표준에 대한 다른 확장인 HEVC 범위 확장은 추가적인 컬러 표현들 (또한 "컬러 포맷들" 로 지칭됨) 을 위해, 뿐만 아니라 증가된 컬러 비트-심도를 위해 HEVC 에 지원을 추가한다. "HEVC RExt" 로 지칭될 수도 있는 HEVC 에 대한 범위 확장들은 JCT-VC 에 의해 또한 개발중이다. HEVC 범위 확장의 최근의 드래프트는 : http://phenix.int-evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1005-v9.zip 로부터 입수가능한, Flynn 등의, "High Efficiency Video Coding (HEVC) Range Extensions text specification: Draft 7", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 17th Meeting: Valencia, ES, 27 March - 4 April, 2014, JCTVC-Q1005_v9 이다. 이하에 RExt WD7 로 지칭된, HEVC 범위 확장들의 다른 최근의 작업 드래프트 (WD) 는, http://phenix.int-evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1005-v4.zip 로부터 입수가능한, Flynn 등의, "High Efficiency Video Coding (HEVC) Range Extensions text specification: Draft 7", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 17th Meeting: Valencia, ES, 27 March - 4 April, 2014 에서 설명된다.
상기 표시한 바와 같이, HEVC 범위 확장들은 증가된 컬러 비트-심도를 위해 HEVC 에 지원을 추가할 수도 있다. 컬러 비트-심도는 컬러 표현의 각각의 컴포넌트를 표현하는데 이용되는 비트들의 수이다. 다른 컬러 포맷들에 대한 지원은 비디오 데이터의 적색-녹색-청색 (RGB) 소스들, 뿐만 아니라 다른 컬러 표현들을 갖고 HEVC 메인 프로파일과는 상이한 크로마 서브샘플링 패턴들을 이용하는 비디오 데이터를 인코딩 및 디코딩하기 위한 지원을 포함할 수도 있다.
범위 확장 사양은 HEVC 의 버전 2 가 될 수도 있다. 그러나, 큰 범위에서, 본 개시의 제안된 기법들, 예를 들어, 모션 벡터 예측에 관한 한, HEVC 버전 1 및 HEVC 범위 확장들 사양은 기술적으로 유사하다. 따라서, 본 개시가 HEVC 버전 1 에 기초한 변화들과 관련 있을 때마다, 동일한 변화들은 HEVC 범위 확장들 사양에 적용할 수도 있고, 본 개시가 HEVC 버전 1 모듈을 재이용할 때마다, 본 개시는 또한 실제로 HEVC 범위 확장 모듈 (동일한 하위 조항들을 가짐) 을 재이용하고 있을 수도 있다.
모션을 가진 그래픽스 및 텍스트와 같은 스크린-콘텐츠 자료를 코딩하기 위한, HEVC 의 다른 확장, 즉 스크린 콘텐츠 코딩 (SCC) 이 또한 개발중이다. SCC 의 최근의 작업 드래프트 (WD), Joshi 등의, "High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 1", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 18th Meeting: Sapporo, JP, 30 June - 9 July 2014, document JCTVC-R1005_v3 (이하, "JCTVC-R1005") 은 http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1005-v3.zip 으로부터 입수가능하다.
HEVC 및 다른 비디오 코딩 표준들에서, 비디오 시퀀스는 통상적으로 일련의 픽처들을 포함한다. 픽처들은 또한 "프레임들" 로 지칭될 수도 있다. 픽처는 SL, SCb, 및 SCr 로 표기된 3 개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2 차원 어레이 (즉, 블록) 이다. SCb 는 Cb 크로미넌스 샘플들의 2 차원 어레이이다. SCr 은 Cr 크로미넌스 샘플들의 2 차원 어레이이다. 크로미넌스 샘플들은 또한 본 명세서에서 "크로마" 샘플들로 지칭될 수도 있다. 다른 인스턴스들에서, 픽처는 모노크롬일 수도 있고 루마 샘플들의 어레이를 단지 포함할 수도 있다.
픽처의 인코딩된 표현을 생성하기 위해, 비디오 인코더 (20) 는 코딩 트리 유닛들 (CTU들) 의 세트를 생성할 수도 있다. CTU들의 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2 개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 이용되는 신택스 구조들일 수도 있다. 코딩 트리 블록은 샘플들의 N×N 블록일 수도 있다. CTU 는 "트리 블록" 또는 "최대 코딩 유닛" (LCU) 으로 또한 지칭될 수도 있다. 슬라이스는 래스터 스캔으로 연속하여 순서지정된 정수 개의 CTU들을 포함할 수도 있다.
인코딩된 CTU 를 생성하기 위해, 비디오 인코더 (20) 는 CTU 의 코딩 트리 블록들에 대해 쿼드-트리 파티셔닝을 회귀적으로 수행하여, 코딩 트리 블록들을 코딩 블록들로 분할할 수도 있어, "코딩 트리 유닛들" 이라 한다. 코딩 블록은 샘플들의 N×N 블록이다. 코딩 유닛 (CU) 은 루마 샘플들의 코딩 블록 및 루마 샘플 어레이, Cb 샘플 어레이 및 Cr 샘플 어레이를 갖는 픽처의 크로마 샘플들의 2 개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 이용되는 신택스 구조들일 수도 있다. 모노크롬 픽처들 또는 3 개의 별개의 컬러 평면들을 갖는 픽처들에서, CU 는 단일의 코딩 블록 및 코딩 블록의 샘플들을 코딩하는데 이용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은 샘플 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록일 수도 있다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 픽처의 크로마 샘플들의 2 개의 대응하는 예측 블록들, 및 예측 블록 샘플들을 예측하는데 이용되는 신택스 구조들일 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 루마, Cb 및 Cr 예측 블록들에 대한 예측 루마, Cb 및 Cr 블록들을 생성할 수도 있다. 모노크롬 픽처들 또는 3 개의 별개의 컬러 평면들을 갖는 픽처들에서, PU 는 단일의 예측 블록 및 예측 블록을 예측하는데 이용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 PU 에 대한 예측 블록들을 생성하기 위해 인트라 예측 또는 인터 예측을 이용할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록을 생성하기 위해 인트라 예측을 이용하면, 비디오 인코더 (20) 는 PU 와 연관된 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. 비디오 디코더 (20) 가 PU 의 예측 블록들을 생성하기 위해 인터 예측을 이용하면, 비디오 인코더 (20) 는 PU 와 연관된 픽처가 아닌 다른 하나 이상의 픽처들의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU들에 대한 예측 블록들 (예를 들어, 예측 루마, Cb 및 Cr 블록들) 을 생성한 후에, 비디오 인코더 (20) 는 CU 의 잔차 블록을 생성할 수도 있다. CU 의 잔차 블록에서의 각각의 샘플은 CU 의 PU 에 대한 예측 블록에서의 샘플과 CU 의 코딩 블록에서의 대응하는 샘플 사이의 차이를 표시한다. 예를 들어, 비디오 인코더 (20) 는 CU 의 루마 잔차 블록을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 PU 의 예측 루마 블록에서의 루마 샘플과 CU 의 루마 코딩 블록에서의 대응하는 샘플 사이의 차이를 표시한다. 추가로, 비디오 인코더 (20) 는 CU 의 Cb 잔차 블록을 생성할 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 PU 의 예측 Cb 블록에서의 Cb 샘플과 CU 의 Cb 코딩 블록에서의 대응하는 샘플 사이의 차이를 표시할 수도 있다. 비디오 인코더 (20) 는 또한 CU 의 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 PU 에 대한 예측 Cr 블록에서의 Cr 샘플과 CU 의 Cr 코딩 블록에서의 대응하는 샘플 사이의 차이를 표시할 수도 있다.
더욱이, 비디오 인코더 (20) 는 CU 의 잔차 블록들 (예를 들어, 루마, Cb 및 Cr 잔차 블록들) 을 하나 이상의 변환 블록들 (예를 들어, 루마, Cb 및 Cr 변환 블록들) 로 분해하기 위해 쿼드-트리 파티셔닝을 이용할 수도 있다. 변환 블록은 동일한 변환이 적용되는 샘플들의 직사각형 블록일 수도 있다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 이용되는 신택스 구조들일 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수도 있다. TU 와 연관된 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다. 모노크롬 픽처들 또는 3 개의 별개의 컬러 평면들을 갖는 픽처들에서, TU 는 단일의 변환 블록 및 변환 블록의 샘플들을 변환하는데 이용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 TU 에 대한 계수 블록을 생성하기 위해 TU 에 대한 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 TU 에 대한 루마 계수 블록을 생성하기 위해 TU 에 대한 루마 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cb 계수 블록을 생성하기 위해 TU 의 Cb 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cr 계수 블록을 생성하기 위해 TU 의 Cr 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 계수 블록은 변환 계수들의 2 차원 어레이일 수도 있다. 변환 계수는 스칼라 양일 수도 있다.
계수 블록 (예를 들어, 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록) 을 생성한 후에, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로 변환 계수들이 변환 계수들을 표현하는데 이용되는 데이터의 양을 가능한 대로 감소시키도록 양자화되어, 추가의 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (20) 가 계수 블록을 양자화한 후에, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들에 대해 콘텍스트-적응적 이진 산술 코딩 (CABAC) 을 수행할 수도 있다. 비디오 인코더 (20) 는 비트스트림으로 엔트로피-인코딩된 신택스 엘리먼트들을 출력할 수도 있다. 비트스트림은 비디오 데이터의 인코딩된 표현을 포함할 수도 있다.
비디오 인코더 (20) 는 엔트로피-인코딩된 신택스 엘리먼트들을 포함하는 비트스트림을 출력할 수도 있다. 비트스트림은 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함할 수도 있다. 비트스트림은 NAL (network abstraction layer) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛들의 각각은 NAL 유닛 헤더를 포함하고 원시 바이트 시퀀스 페이로드 (raw byte sequence payload; RBSP) 를 캡슐화한다. NAL 유닛 헤더는 NAL 유닛 타입 코드를 표시하는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 특정된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 표시한다. RBSP 는 NAL 유닛 내에 캡슐화되는 정수 개의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부 인스턴스들에서, RBSP 는 제로 비트들을 포함한다.
상이한 타입들의 NAL 유닛들은 상이한 타입들의 RBSP들을 캡슐화할 수도 있다. 예를 들어, 제 1 타입의 NAL 유닛은 픽처 파라미터 세트 (PPS) 에 대한 RBSP 를 캡슐화할 수도 있고, 제 2 타입의 NAL 유닛은 코딩된 슬라이스에 대한 RBSP 를 캡슐화할 수도 있고, 제 3 타입의 NAL 유닛은 SEI (Supplemental Enhancement Information) 에 대한 RBSP 를 캡슐화할 수도 있으며, 등등이다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP들과는 대조적으로) 비디오 코딩 데이터에 대한 RBSP들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (VCL) NAL 유닛들로 지칭될 수도 있다.
도 1 의 예에서, 비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 생성된 비트스트림을 수신한다. 추가로, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득하기 위해 비트스트림을 파싱할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 복원할 수도 있다. 비디오 데이터를 복원하기 위한 프로세스는 비디오 인코더 (20) 에 의해 수행된 프로세스에 일반적으로 상반될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU들의 예측 블록들을 결정하기 위해 인트라 예측 또는 인터 예측을 이용할 수도 있다. 추가로, 비디오 디코더 (30) 는 현재의 CU 의 TU들에 대한 계수 블록들을 역 양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU들에 대한 변환 블록들을 재생성하기 위해 계수 블록들에 대해 역 변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU들에 대한 변환 블록들의 대응하는 샘플들에 현재의 CU 의 PU들에 대한 예측 블록들의 샘플들을 추가함으로써 현재의 CU 의 코딩 블록들을 복원할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 복원함으로써, 비디오 디코더 (30) 는 픽처를 복원할 수도 있다.
비디오 데이터의 각각의 블록의 픽셀들 각각은 "컬러 표현" 으로 지칭되는, 특정한 포맷으로 컬러를 표현한다. 상이한 비디오 코딩 표준들은 비디오 데이터의 블록들에 대해 상이한 컬러 표현들을 이용할 수도 있다. 하나의 예로서, HEVC 비디오 표준의 메인 프로파일은 비디오 데이터의 블록들의 픽셀들을 표현하기 위해 YCbCr 컬러 표현을 이용한다.
YCbCr 컬러 표현은 일반적으로, 비디오 데이터의 각각의 픽셀이 컬러 정보의 3 개의 컴포넌트들 또는 채널들, "Y", "Cb", 및 "Cr" 에 의해 표현되는 컬러 표현을 지칭한다. Y 채널은 특정한 픽셀에 대한 루미넌스 (즉, 광 세기 또는 휘도) 데이터를 표현한다. Cb 및 Cr 컴포넌트들은 각각, 청색-차이 및 적색-차이 크로미넌스, 즉 "크로마" 컴포넌트들이다. YCbCr 은, Y, Cb, 및 Cr 컴포넌트들의 각각 사이에 복제되거나 또는 중복되는 데이터가 거의 없다는 것을 의미하는, Y, Cb, 및 Cr 컴포넌트들의 각각 사이의 강한 비상관 (decorrelation) 이 존재하기 때문에 압축된 비디오 데이터의 컬러를 표현하는데 종종 이용된다. YCbCr 컬러 표현을 이용하여 비디오 데이터를 코딩하는 것은 따라서 많은 경우들에서 양호한 압축 성능을 제공한다.
추가적으로, 많은 비디오 코딩 기법들은 컬러 데이터의 압축을 추가로 향상시키기 위해 "크로마 서브샘플링" 으로 지칭되는 기법을 활용한다. YCbCr 컬러 표현을 갖는 비디오 데이터의 크로마 서브-샘플링은 패턴에 따라 크로마 컴포넌트들을 선택적으로 생략함으로써 코딩된 비디오 비트스트림으로 시그널링되는 크로마 값들의 수를 감소시킨다. 크로마 서브-샘플링된 비디오 데이터의 블록에는, 일반적으로 블록의 각각의 픽셀에 대한 루마 값이 존재한다. 그러나, Cb 및 Cr 컴포넌트들은, 크로마 컴포넌트들이 루마 컴포넌트에 대하여 서브-샘플링되도록, 단지 블록의 픽셀들의 일부에 대해서만 시그널링될 수도 있다.
비디오 코더 (즉, 비디오 인코더 또는 비디오 디코더) 는 Cb 및 Cr 값들이 픽셀들의 크로마 서브-샘플링된 블록들에 대해 명시적으로 시그널링되지 않는 픽셀들에 대한 Cb 및 Cr 컴포넌트들을 보간할 수도 있다. 크로마 서브-샘플링은 보다 균일한 픽셀들의 블록들에 왜곡을 도입하지 않고 크로미넌스 데이터의 양을 감소시키도록 잘 작용한다. 크로마 서브-샘플링은 크게 다른 크로마 값들을 갖는 비디오 데이터를 표현하도록 잘 작용하지 않고, 그 경우들에 많은 양의 왜곡을 도입할 수도 있다.
상기 언급한 바와 같이, HEVC 메인 프로파일은 루마 컴포넌트와, 컬러 표현 (또한 컬러 포맷으로 지칭됨) 의 2 개의 크로마 컴포넌트들 사이의 일반적으로 강한 컬러 비상관으로 인해 YCbCr 을 이용한다. 그러나, 일부 경우들에서, Y, Cb, 및 Cr 컴포넌트들 사이에는 여전히 상관들이 존재할 수도 있다. 컬러 표현의 컴포넌트들 사이의 상관들은 크로스-컬러 컴포넌트 상관 또는 인터-컬러 컴포넌트 상관으로 지칭될 수도 있다.
비디오 코더는 상이한 컴포넌트 (예를 들어, 루마 컴포넌트의 샘플) 의 값에 기초하여 하나의 컴포넌트 (예를 들어, 크로마 컴포넌트의 샘플) 의 값을 예측하도록 구성될 수도 있다. 제 2 컴포넌트에 기초하여 제 1 컴포넌트로부터 샘플들을 예측하는 프로세스는 "컬러 비디오에 대한 크로스-컴포넌트 예측" 또는 "인터-컬러 컴포넌트 예측" 으로 지칭된다. 비디오 코더는 제 1 컴포넌트와 제 2 컴포넌트 사이의 상관에 기초하여 제 1 컴포넌트의 값을 예측할 수도 있다.
비디오 데이터가 캡처될 때, 다양한 프리프로세싱 목적들을 위해 종종 RGB 컬러 공간으로 컨버팅된다. 프리프로세싱 후에, 비디오 코딩을 위해, 비디오 데이터는 더 양호한 압축 효율을 위해 보통 YCbCr 4:2:0 으로 컨버팅된다. 그러나, 컬러 컨버전은 주관적인 품질 열화로 이어지는 컬러 왜곡을 야기할 수 있다. HEVC 의 범위 확장들은 YCbCr 4:2:0 이 아닌 다른 컬러 공간들, 이를 테면 YCbCr 4:2:2, YCbCr 4:4:4, 및 RGB 4:4:4 에 대한 비디오 코딩을 제공한다.
RGB 데이터가 컬러 변환 (예를 들어, 컬러 컨버전) 없이 직접 압축되면, 컬러 채널들 사이의 리던던시들은 감소되지 않기 때문에 코딩 효율이 감소될 수도 있다. 다른 한편, YCbCr 같은 전통의 컬러 컨버전은 컬러 왜곡을 야기할 수도 있다. 따라서, 컬러 왜곡이 더 적은 코딩 효율 향상을 달성할 수 있는 기술을 개발하는 것이 바람직할 수도 있다.
HEVC 의 스크린 콘텐츠 코딩 (SCC) 은 더 높은 압축 비율을 달성하기 위해 3 개의 컬러 컴포넌트들 사이의 리던던시를 활용하기 위한 2 개의 코딩 툴들, 즉 적응적 컬러 변환 (ACT), 및 크로스 컴포넌트 예측 (CCP) 을 채용한다. L. Zhang 등의, "SCCE5 Test 3.2.1: In-loop color-space transform", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 18th Meeting: Sapporo, JP, 30 June - 9 July 2014, document JCTVC-R0147 (이하, "JCTVC-R0147") 에서 설명한 바와 같이, ACT 는 다음 :
순방향 :
Figure 112017071936839-pct00001
역방향 :
Figure 112017071936839-pct00002
과 같이 정의되는, YCoCg 변환 매트릭스들을 손실 코딩 (lossy coding) 을 위한 순방향 및 역방향 컬러-공간 변환들이 이용하는 루프-내 (in-loop) 컬러-공간 변환이다.
상기 식들에서, 원래의 컬러 공간 (C0, C1, C2) 은 (R, G, B) 또는 (Y, U, V) 에 대응할 수도 있다.
CCP 는 루마 (또는 제 1 컴포넌트) 로부터 크로마 (또는 제 2 및 제 3 컴포넌트들) 를 예측하기 위한 프로세스이다. CCP 는 R. Joshi 및 J. Xu, "High efficient video coding (HEVC) screen content coding: Draft 2", JCTVC-S1005, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 18th Meeting: Sapporo, JP, 30 June - 9 July 2014 (이하, "JCTVC-S1005") 에서 설명된다. CCP 에 대한 식들은 다음과 같이 도시되고 :
순방향 :
Figure 112017071936839-pct00003
역방향 :
Figure 112017071936839-pct00004
여기서
Figure 112017071936839-pct00005
Figure 112017071936839-pct00006
일 수 있다.
도 2 는 일 예의 ACT 및 CCP 프로세싱 순서를 예시하는 개념적 다이어그램이다. ACT 및 CCP 양자 모두는 잔차 기반 동작들이고, 코덱 내의 그들의 대응하는 프로세싱 순서는 도 2 에 도시된다. 도 2 의 예에서, 비디오 인코더 (도 2 에 "Enc" 로 약기됨) 는 (예를 들어, 본 개시의 다른 곳에서 설명된 방식으로) 잔차 데이터 (50) 를 획득하기 위해 잔차 생성 동작 (48) 을 수행한다. 잔차 데이터 (50) 는 도 2 에 "Res" 로 약기된다. 더욱이, 도 2 에서, 비디오 인코더는 잔차 데이터 (50) 에 ACT (52) 를 적용하여, 잔차 데이터 (54) 를 획득한다. 다음에, 비디오 인코더는 잔차 데이터 (54) 에 CCP 변환 (56) 을 적용하여, 잔차 데이터 (58) 를 획득한다. 비디오 인코더는 그 후 잔차 데이터 (58) 에 변환 (60) 을 적용하여, 잔차 데이터 (62) 를 획득한다. 잔차 데이터 (62) 는 변환 도메인, 이를 테면 주파수 도메인에 있을 수도 있다. 더욱이, 비디오 인코더는 잔차 데이터 (62) 에 양자화 동작 (64) 을 적용하여, 양자화된 잔차 데이터 (66) 를 획득할 수도 있다.
도 2 에서, 비디오 디코더는 양자화된 잔차 데이터 (66) 에 역 양자화 동작 (68) 을 적용하여, 역 양자화된 잔차 데이터 (70) 를 획득한다. 다음에, 비디오 디코더는 역 양자화된 잔차 데이터 (70) 에 역 변환 (72) 을 적용하여, 잔차 데이터 (74) 를 획득한다. 잔차 데이터 (74) 는 샘플 도메인에 있을 수도 있다. 더욱이, 비디오 디코더는 잔차 데이터 (74) 에 역 CCP 변환 (ICCP) (76) 을 적용하여, 잔차 데이터 (78) 를 획득한다. 다음에, 비디오 디코더는 잔차 데이터 (78) 에 역 ACT (IACT) (80) 를 적용하여, 잔차 데이터 (82) 를 획득한다. 비디오 디코더는 코딩 블록을 복원하기 위해 잔차 데이터 (82) 에 부분적으로 기초하여 복원 동작 (84) 을 적용할 수도 있다. 비디오 인코더는 디코딩 루프의 일부로서 비디오 디코더에 대하여 설명된 도 2 의 부분들을 수행할 수도 있다.
HEVC 데이터 경로들을 따른 동적 범위 분석은 C. Yeo 등의, "Dynamic Range Analysis in High Efficiency Video Coding Residual Coding and Reconstruction", IEEE Trans. Circuits Syst. Video Technol., vol. 23, no. 7, pp. 1131-1136, July. 2013, 및 M. Zhou, "AHG7: IDCT Output Range After T+Q+IQ+IT With Valid Residual Inputs", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, CH, 19-30, Nov. 2011, document JCTVC-G856 에서 상세히 연구되었다.
도 3 은 예의 HEVC 코딩된 입력/출력 (IO) 비트 심도들을 예시하는 개념적 다이어그램이다. 도 3 에 예시한 바와 같이, 최대 5 비트의 비트-심도 확장은 B-비트가 입력 픽셀들 및 예측 픽셀들의 비트-심도인 복원된 잔차에서 발생할 수 있다. 특히, 도 3 에서, 비디오 인코더는 잔차 데이터 (102) (도 3 에 "Res" 로 약기) 를 획득하기 위해 잔차 생성 동작 (100) 을 수행할 수도 있다. 잔차 데이터 (102) 의 각각의 샘플은 B+1 의 비트 심도를 가질 수도 있다. 다음에, 도 3 에서, 비디오 인코더는 잔차 데이터 (106) 를 획득하기 위해 잔차 데이터 (102) 에 변환 (104) 을 적용할 수도 있다. 비디오 인코더는 잔차 데이터 (106) 에 양자화 동작 (108) 을 적용하여, 양자화된 잔차 데이터 (110) 를 획득할 수도 있다.
도 3 에서, 비디오 디코더는 양자화된 잔차 데이터 (110) 에 역 양자화 동작 (112) 을 적용하여, 역 양자화된 잔차 데이터 (114) 를 획득할 수도 있다. 다음에, 비디오 디코더는 역 양자화된 잔차 데이터 (114) 에 역 변환 (IT) (116) 을 적용하여, 역 변환된 (예를 들어, 역 이산 코사인 변환 또는 역 사인 변환) 잔차 데이터 (118) 를 획득할 수도 있다. IT (116) 는 변환 도메인으로부터 샘플 도메인 (즉, 픽셀 도메인) 으로 잔차 데이터를 변환할 수도 있다. 도 3 에 도시한 바와 같이, 역 변환 (166) 을 적용한 결과로서, 잔차 데이터 (118) 의 각각의 샘플은 B+6 의 비트 심도를 가질 수도 있다. 더욱이, 도 3 에서, 비디오 디코더는 잔차 데이터 (118) 에 복원 동작 (120) 을 적용하여 코딩 블록의 샘플들을 복원할 수도 있다. 도 3 에서, 비디오 디코더는 복원 동작 (120) 을 수행하는 것의 일부로서 클립핑 동작을 적용할 수도 있다. 클립핑 동작은 코딩 블록의 복원된 샘플들의 비트 심도가 B 와 동일함을 보장할 수도 있다.
도 4a 는 CCP 를 이용하는 스크린 콘텐츠 코딩의 구성을 위한 예의 비트 심도 정보를 예시하는 개념적 다이어그램이다. 도 4b 는 ACT 및 CCP 를 이용하는 스크린 콘텐츠 코딩의 구성을 위한 예의 비트 심도 정보를 예시하는 개념적 다이어그램이다. 도 4a 및 도 4b 는 3 과 유사하지만, CCP 를 포함하고 도 4b 에서는, ACT 도 포함한다. 도 4a 에서, 비디오 인코더는 잔차 데이터 (160) 에 CCP 변환 (150) 을 적용하고 비디오 디코더 (또는 비디오 인코더 복원 루프) 는 IT (116) 에 의해 획득된 잔차 데이터 (162) 에 역 CCP 변환 (152) 을 적용한다. 도 4b 에서, 비디오 인코더는 잔차 데이터 (164) 에 ACT (154) 를 적용하고, 이어서 CCP 변환 (150) 을 적용하고 비디오 디코더 (또는 비디오 인코더 복원 루프) 는 역 CCP 변환 (152) 을 적용하고 이어서 역 ACT (156) 를 적용한다.
SCC 의 ACT 및 CCP 동작들을 고려하면, 동적 범위 확장은 도 4a 및 도 4b 에 도시되고, 여기서 IACT 는 역 ACT 를 의미하고 ICCP 는 역 CCP 를 의미한다. 도 4a 및 도 4b 로부터, 역 변환 (IT) (116) 후의 비트-심도는 순방향 CCP 동작 (150) 및 도 4b 에서는, 순방향 ACT 동작 (154) 의 추가로 인해 (B+7) 비트로 증가된다는 것이 명백하다. 이것은 크로마 잔차 (또는 잔차 델타) 의 비트 심도를 (B+2) 비트로 1 비트 더 증가시킬 수 있다. CCP 가 루마 잔차 데이터를 이용하는 크로마 잔차 데이터에만 단지 적용되기 때문에, 루마 잔차 데이터의 비트 심도는 CCP 에 의해 변화되지 않는다.
도 4a 및 도 4b 에서의 비트 심도 분석으로부터 알 수 있는 바와 같이, 변환의 입력에서의 비트 심도 증가는 전치 버퍼 (transpose buffer), ICCP, 및 IACT 에서 같이, 데이터 경로를 따르는 동적 범위 영향 (impact) 들을 가질 수도 있고, 이는 더 높은 구현 비용을 초래할 수 있고, 일반적으로는 구현에 있어 바람직하지 않을 수도 있다. 용어들 "동적 범위" 및 "비트 심도" 는 본 개시에서 상호교환가능하게 사용될 수도 있다.
본 개시는 비트 심도를 변화하지 않게 유지할 수도 있거나 또는 ACT 및 CCP 툴들이 인에이블될 때 비트 심도 증가를 감소시킬 수도 있는 기법들을 제안한다. 예를 들어, 본 개시의 제 1 예에서, 비디오 인코더에서의 클립핑 동작이 도 5a 및 도 5b 에 도시된 Clip_A 로서 순방향 CCP 동작 후에 적용되는 것이 제안된다. 본 개시는 CCP 의 출력의 동적 범위를 B+1 비트에 클립핑하는 것을 제안하고, 여기서 B-비트는 입력 픽셀들 및 예측 픽셀들의 비트-심도여서 CCP 의 출력의 동적 범위는 HEVC 버전 2 (권고 ITU-T H.265, 2014년 10월) 에서 표시된 한계들로 회복될 수 있다. 본 개시의 기법들의 잠재적인 이익들은 다음을 포함할 수도 있다 : 디코더 측을 변화시킬 필요성 없음, 및 원래의 데이터 경로들의 동적 범위의 메인터넌스, 이는 기존의 설계가 그 비트 심도를 데이터 경로를 따라 변화시킬 필요가 없음을 의미할 수도 있다.
도 5a 는 본 개시의 하나 이상의 기법들에 따른, CCP 만을 이용한, 순방향 CCP 후의 클립핑을 예시하는 개념적 다이어그램이다. 도 5b 는 본 개시의 하나 이상의 기법들에 따른, CPP 만을 이용한, 순방향 CCP 후의 클립핑에 기인하는 동적 범위 변화들을 예시하는 개념적 다이어그램이다. 도 5a 의 예에서, 비디오 인코더 (20) 는 CCP (150) 의 출력에 대해 클립핑 동작 (170) 을 수행한다. 도 5b 의 예에 도시한 바와 같이, 클립핑 동작 (170) 을 수행한 결과는 변환 (104) 에 대한 입력의 비트 심도가 B+2 비트 대신에 B+1 비트인 것이다. 더욱이, 도 5b 의 예에 도시한 바와 같이, 클립핑 동작 (170) 을 수행한 결과로서, ICCP 변환 (152) 에 대한 입력은 B+7 비트 대신에 B+6 비트이다. 유사하게, 도 5b 의 예에 도시한 바와 같이, 클립핑 동작 (170) 을 수행한 결과로서, 복원 동작 (120) 대한 입력은 B+8 비트 대신에 B+7 비트이다.
이런 이유로, 도 5a 및 도 5b 의 예에서, 비디오 인코더 (20) 는 코딩 블록의 원래의 샘플들 및 하나 이상의 예측 블록들의 샘플들에 기초하여, 비디오 데이터의 CU 에 대한 잔차 데이터를 생성할 수도 있다. 추가적으로, 비디오 인코더 (20) 는 잔차 데이터에 CCP 변환을 적용함으로써 변환된 잔차 데이터를 생성할 수도 있다. 잔차 데이터에 CCP 변환을 적용한 후에, 비디오 인코더 (20) 는 변환된 잔차 데이터에 클립핑 동작을 적용할 수도 있다. 도 5a 및 도 5b 의 예에서, 비디오 인코더 (20) 는 변환된 잔차 데이터의 각각의 샘플의 비트 심도가 B+1 비트이도록 클립핑 동작을 수행할 수도 있고, 여기서 B 는 코딩 블록의 원래의 샘플들의 비트 심도이다.
도 5c 는 본 개시의 하나 이상의 기법들에 따른, ACT 및 CCP 를 이용한, 순방향 CCP 후의 클립핑을 예시하는 개념적 다이어그램이다. 도 5d 는 본 개시의 하나 이상의 기법들에 따른, ACT 및 CCP 를 이용한, 순방향 CCP 후의 클립핑에 기인하는 동적 범위 변화들을 예시하는 개념적 다이어그램이다. 도 5c 의 예에서, 비디오 인코더 (20) 는 CCP (150) 의 출력에 대해 클립핑 동작 (170) 을 수행한다. 도 5d 의 예에 도시한 바와 같이, 클립핑 동작 (170) 을 수행한 결과는 변환 (104) 에 대한 입력의 비트 심도가 B+2 비트 대신에 B+1 비트인 것이다. 더욱이, 도 5d 의 예에 도시한 바와 같이, 클립핑 동작 (170) 을 수행한 결과로서, ICCP 변환 (152) 에 대한 입력은 B+7 비트 대신에 B+6 비트이다. 유사하게, 도 5d 의 예에 도시한 바와 같이, 클립핑 동작 (170) 을 수행한 결과로서, IACT (156) 에 대한 입력은 B+8 비트 대신에 B+7 비트이다. 게다가, 도 5d 의 예에 도시한 바와 같이, 클립핑 동작 (170) 을 수행한 결과로서, 복원 동작 (120) 의 입력은 B+9 비트 대신에 B+8 비트이다.
이런 이유로, 도 5c 및 도 5d 의 예에서, 비디오 인코더 (20) 는 코딩 블록의 원래의 샘플들 및 하나 이상의 예측 블록들의 샘플들에 기초하여, 비디오 데이터의 CU 에 대한 잔차 데이터를 생성할 수도 있다. 추가적으로, 비디오 인코더 (20) 는 잔차 데이터에 적응적 컬러 변환을 적용함으로써 제 1 잔차 데이터를 생성할 수도 있다. 제 1 잔차 데이터를 생성한 후에, 비디오 인코더 (20) 는 제 1 잔차 데이터에 CCP 변환을 적용함으로써 제 2 잔차 데이터를 생성할 수도 있다. 제 1 잔차 데이터에 CCP 변환을 적용한 후에, 비디오 인코더 (20) 는 제 2 잔차 데이터에 클립핑 동작을 적용할 수도 있다. 도 5c 및 도 5d 의 예에서, 비디오 인코더 (20) 는 잔차 데이터의 각각의 샘플의 비트 심도가 B+1 비트이도록 클립핑 동작을 수행할 수도 있고, 여기서 B 는 코딩 블록의 원래의 샘플들의 비트 심도이다.
본 개시의 제 2 예에 따르면, ICCP 에 대한 입력의 동적 범위를 B+n1 비트에 클립핑하는 것이 제안되고, 여기서 B-비트는 입력 픽셀들 및 예측 픽셀들의 비트-심도이고, n1 은 이전의 스테이지의 결과들의 동적 범위 및 성능 요건들에 의존하는 1 내지 6 일 수 있다. 도 6a 는 본 개시의 하나 이상의 기법들에 따른, 비디오 디코더 (30) 에서의 예의 클립핑 로케이션들 (Clip_B, Clip_C, 및 Clip_D) 을 예시하는 개념적 다이어그램이다. 도 6b, 도 6c, 및 도 6d 는 도 6a 에 표시된 클립핑 로케이션들에서의 예의 클립핑을 예시하는 개념적 다이어그램들이다.
도 6a 및 도 6b 의 예에서, ICCP (152) 에 대한 입력의 동적 범위를 B+n1 비트에 클립핑하기 위한 클립핑 동작 (180) 은 Clip_B 로서 도시된다. 예를 들어, Clip_B 가 디코더 측에서 역 CCP 입력에 적용되기 때문에, Clip_B 를 추가하기 위한 수정은 이러한 클립핑이 존재하지 않고 필요하지 않은, 범위 확장 (RExt) 디코더와 호환되지 않을 수도 있다. 따라서, SCC 디코더가 범위 확장 비트스트림들을 디코딩할 수 있는 것이 바람직할 수도 있지만, 이러한 수정은 SCC 표준에 적합하지 않을 수도 있다. 도 6a 에 도시된 클립핑 로케이션들은 또한, 비디오 인코더 (20) 의 디코딩 루프에 존재할 수도 있다.
따라서, 도 6b 에 도시된, 본 개시의 제 2 예에 따르면, 비디오 디코더 (30) 는 역 변환 (116) 을 적용함으로써 잔차 데이터 (260) 를 생성할 수도 있다. IT (116) 는 변환 도메인으로부터 샘플 값 도메인으로 잔차 데이터를 컨버팅할 수도 있다. 예를 들어, IT (116) 는 역 코사인 변환 또는 역 사인 변환일 수도 있다. 더욱이, 잔차 데이터 (260) 를 생성하기 위해 IT (116) 를 적용한 후에, 비디오 디코더 (30) 는 잔차 데이터 (260) 에 클립핑 동작 (180) 을 적용함으로써 클립핑된 잔차 데이터 (261) 를 생성할 수도 있다. 잔차 데이터 (260) 에 클립핑 동작 (180) 을 적용한 후에, 비디오 디코더 (30) 는 클립핑된 잔차 데이터 (261) 에 ICCP (152) 변환을 적용함으로써 잔차 데이터 (262) 를 생성할 수도 있다. 비디오 디코더 (30) 는 잔차 데이터 (262) 에 기초하여, 비디오 데이터의 CU 의 코딩 블록을 복원할 수도 있다. 일부 인스턴스들에서, 코딩 블록을 복원하는 것의 일부로서, 비디오 디코더 (30) 는 잔차 데이터 (262) 에 IACT (156) 를 적용함으로써 잔차 데이터 (264) 를 생성할 수도 있고, 잔차 데이터 (264) 에 기초하여, CU 의 코딩 블록을 생성할 수도 있다. 이 예에서, 클립핑된 잔차 데이터 (261) 를 생성하는 것의 일부로서, 비디오 디코더 (30) 는 잔차 데이터 (260) 의 각각의 샘플의 비트 심도가 B+n1 비트이도록 잔차 데이터 (260) 를 클립핑할 수도 있고, 여기서 B 는 코딩 블록의 샘플들의 비트 심도이고 n1 은 1 내지 6 의 범위의 값이다. 일부 이러한 예들에서, n1 의 값은 제 1 역 변환의 동적 범위에 의존한다. 이 예는 또한 비디오 인코더 (20) 의 디코딩 루프의 일부로서 수행될 수도 있다.
도 6b 에 도시된, 본 개시의 제 3 예에서, IACT (156) 에 대한 입력의 동적 범위를 B+n2 비트에 클립핑하는 것이 제안되고, 여기서 B-비트는 입력 픽셀들 및 예측 픽셀들의 비트-심도이고, n2 에 대한 구체화는 이전의 스테이지의 결과들의 동적 범위 및 성능 요건들에 의존하는 1 내지 7 일 수 있다. 이 예에서, 클립핑 로케이션은 도 6 에 도시된 Clip_C 이다. 다시 말해서, 도 6a 의 예에서, IACT (152) 에 대한 입력의 동적 범위를 B+n2 비트에 클립핑하기 위한 클립핑 동작 (182) 은 Clip_C 로서 도시된다.
따라서, 본 개시의 제 3 예에 따르면, 비디오 디코더 (30) 는 IT (116) 를 적용함으로써 잔차 데이터 (260) 를 생성할 수도 있다. 잔차 데이터 (260) 를 생성한 후에, 비디오 디코더 (30) 는 잔차 데이터 (260) 에 ICCP 변환 (152) 을 적용함으로써 잔차 데이터 (262) 를 생성할 수도 있다. 잔차 데이터 (262) 를 생성한 후에, 비디오 디코더 (30) 는 잔차 데이터 (262) 에 클립핑 동작 (182) 을 적용함으로써 클립핑된 잔차 데이터 (263) 를 생성할 수도 있다. 더욱이, 이 예에서, 비디오 디코더 (30) 는 클립핑된 잔차 데이터 (263) 에 IACT (156) 를 적용함으로써 잔차 데이터 (264) 를 생성할 수도 있다. 이 예에서, 비디오 디코더 (30) 는, 잔차 데이터 (264) 에 기초하여, 비디오 데이터의 CU 의 코딩 블록을 복원할 수도 있다. 이 예에서, 클립핑된 잔차 데이터 (263) 를 생성하는 것의 일부로서, 비디오 디코더 (30) 는 잔차 데이터 (262) 의 각각의 샘플의 비트 심도가 B+n2 비트이도록 잔차 데이터 (262) 를 클립핑할 수도 있고, 여기서 B 는 코딩 블록의 샘플들의 비트 심도이고 n1 은 1 내지 7 의 범위의 값이다. 더욱이, 이 예에서, n2 의 값은 ICCP (152) 의 동적 범위에 의존할 수도 있다. 이 예는 또한 비디오 인코더 (20) 의 디코딩 루프의 일부로서 수행될 수도 있다.
도 6d 에 도시된, 본 개시의 제 4 예에서, IACT (156) 의 출력의 동적 범위를 B+n3 비트에 클립핑하는 것이 제안되고, 여기서 B-비트는 입력 픽셀들 및 예측 픽셀들의 비트-심도이고, n3 의 예들은 이전의 스테이지의 결과들의 동적 범위 및 성능 요건들에 의존할 수도 있는 1 내지 8 일 수도 있다. 이 예에서, 클립핑 로케이션은 도 6a 및 도 6d 에 도시된 Clip_D 이다. 다시 말해서, 도 6a 및 도 6d 의 예에서, IACT 에 대한 입력의 동적 범위를 B+n2 비트에 클립핑하기 위한 클립핑 동작 (184) 은 Clip_D 로서 도시된다.
따라서, 본 개시의 제 4 예에 따르면, 비디오 디코더 (30) 는 IT (116) 를 적용함으로써 잔차 데이터 (260) 를 생성할 수도 있다. 잔차 데이터 (260) 를 생성한 후에, 비디오 디코더 (30) 는 잔차 데이터 (260) 에 ICCP 변환 (152) 을 적용함으로써 잔차 데이터 (262) 를 생성할 수도 있다. 잔차 데이터 (262) 를 생성한 후에, 비디오 디코더 (30) 는 잔차 데이터 (262) 에 IACT (156) 를 적용함으로써 잔차 데이터 (264) 를 생성할 수도 있다. 잔차 데이터 (264) 를 생성한 후에, 비디오 디코더 (30) 는 잔차 데이터 (264) 에 클립핑 동작 (184) 을 적용함으로써 클립핑된 잔차 데이터 (265) 를 생성할 수도 있다. 이 예에서, 비디오 디코더 (30) 는 클립핑된 잔차 데이터 (265) 에 기초하여, 비디오 데이터의 CU 의 코딩 블록을 복원할 수도 있다. 이 예에서, 클립핑된 잔차 데이터 (265) 를 생성하는 것의 일부로서, 비디오 디코더 (30) 는 잔차 데이터 (264) 의 각각의 샘플의 비트 심도가 B+n3 비트이도록 잔차 데이터 (264) 를 클립핑할 수도 있고, 여기서 B 는 코딩 블록의 샘플들의 비트 심도이고 n3 은 1 내지 8 의 범위의 값이다. 이 예에서, n3 의 값은 IACT (156) 의 동적 범위에 의존할 수도 있다. 이 예는 또한, 비디오 인코더 (20) 의 디코딩 루프의 일부로서 수행될 수도 있다.
본 개시의 제 5 예는 IACT 에 대한 입력들을 Max(B+n4,16) 비트에 클립핑하는 것을 제공하여, IACT 의 입력 버퍼 또는 어레이는 :
(1) 입력들의 비트-심도 B≤12-비트이면, 16-비트 레졸루션에 유지될 수 있고; 또는
(2) 입력들의 비트-심도 B>12-비트이면, (B+n4)-비트 레졸루션까지 올라갈 것이고, 여기서 n4 에 대한 구체화는 n4≥4, 및 n4<=32-B 와 같다.
이 클립핑은 IACT 의 입력에서 제안되어, 그의 이전의 모듈은 ICCP 또는 IT 또는 임의의 다른 가능한 유효 모듈일 수 있다. 그것은 확장된 정밀도 (precision) 는 디스에이블되고, 입력 비트-심도 B≤12비트 및 B>12-비트가 고려 (JCTVC Bug Track #1321 을 참조) 된다는 가정 하에 있다. 입력 비트-심도<=12비트의 경우에 대해 32-비트 어레이 대신에 16 비트 어레이 레졸루션이 여전히 유지될 수 있기 때문에, 소프트웨어의 그리고 하드웨어의 스토리지가 특히 소프트웨어에서 절약될 수 있다는 이익이 있다. 이 제 5 예에서 클립핑하는 것으로부터 발생한 비트 심도는 미리결정된 값 (예를 들어, 16) 또는 원래의 비트 심도에 n4 를 더한 값일 수도 있기 때문에, 이 제 5 예에서 클립핑하는 것으로부터 발생하는 비트 심도는 가변 범위에 있을 수도 있다. 그 범위는 원래의 비트 심도 및 n4 에 의존하기 때문에 가변적이다.
본 개시의 제 5 예에 대한 다이어그램들이 도 7 및 도 8 에 도시된다. 특히, 도 7 은 본 개시의 하나 이상의 기법들에 따른, 이전의 모듈이 역 CCP 를 위한 것인, IACT 입력에서의 클립핑의 예를 예시하는 개념적 다이어그램이다. 도 7 의 예에서, 비디오 디코더 (30), 또는 비디오 인코더 (20) 의 디코딩 루프는 출력 ICCP (152) (즉, IACT (156) 에 대한 입력) 에 클립핑 동작 (200) 을 적용할 수도 있다. 클립핑 동작 (200) 의 결과로서, IACT (156) 에 대한 입력은 B+n4 와 16 중 최대값이다.
도 8 은 본 개시의 하나 이상의 기법들에 따른, 이전의 모듈이 역 변환을 위한 것인, IACT 입력에서의 클립핑의 예를 예시하는 개념적 다이어그램이다. 도 8 의 예에서, 비디오 디코더 (30), 또는 비디오 인코더 (20) 의 디코딩 루프는 IT (116) 의 출력 (즉, IACT (156) 의 입력) 에 클립핑 동작 (210) 을 적용할 수도 있다. 클립핑 동작 (210) 의 결과로서, 역 ACT (156) 에 대한 입력은 B+n4 와 16 중 최대값이다.
따라서, 도 7 및 도 8 양자 모두에서, 비디오 코더, 이를 테면 비디오 인코더 (20) 또는 비디오 디코더 (30) 는, 잔차 데이터 (282) 에 역 변환 (예를 들어, 도 7 의 ICCP (152) 또는 도 8 의 IT (116)) 을 적용함으로써 잔차 데이터 (280) 를 생성할 수도 있다. 도 7 의 예에서, 잔차 데이터 (282) 는 샘플 도메인에 있고 도 8 의 예에서, 잔차 데이터 (282) 는 변환 도메인 (예를 들어, 주파수 도메인) 에 있다. 잔차 데이터 (280) 는 IACT (156) 에 대한 입력이다. 잔차 데이터 (280) 를 생성한 후에 및 잔차 데이터 (284) 를 생성하기 이전에, 비디오 코더는 IACT (156) 에 대한 입력의 비트 심도에 기초하여 가변 범위에 IACT (156) 에 대한 입력을 클립핑할 수도 있다. 더욱이, 비디오 코더는 클립핑된 입력에 IACT (156) 를 적용함으로써 잔차 데이터 (284) 를 생성할 수도 있다. 더욱이, 비디오 코더는 잔차 데이터 (284) 에 기초하여, 비디오 데이터의 CU 의 코딩 블록 (286) 을 복원할 수도 있다.
IACT (156) 에 대한 입력 (즉, 잔차 데이터 (280)) 을 클립핑하는 것의 일부로서, 잔차 데이터 (280) 의 비트 심도가 특정한 값 (예를 들어, 12) 이하인 것에 기초하여, 비디오 코더는 잔차 데이터 (280) 의 레졸루션을 특정한 레졸루션 (예를 들어, 15 또는 16) 에 유지할 수도 있다. 본 개시에서, 용어들 비트-심도 및 레졸루션은 상호교환가능할 수도 있다. 잔차 데이터 (280) 의 비트 심도가 특정한 값 초과인 것에 기초하여, 비디오 코더는 잔차 데이터 (280) 에 클립핑 동작을 적용할 수도 있다. 예를 들어, 클립핑 동작은 입력들의 (즉, 잔차 데이터 (280) 의) 비트-심도 B≤12-비트이면 비트 심도를 16-비트 레졸루션에 유지하고 또는 입력들의 비트-심도 B>12-비트이면 비트 심도를 (B+n4)-비트 레졸루션까지 올라가는 것을 허용할 수도 있고, 여기서 n4≥4 및 n4<=32-B 이다. 도 7 및 도 8 양자 모두에서, 비디오 코더는 잔차 데이터 (280) 가 (i) 잔차 데이터 (280) 의 비트 심도에 값을 더한 값과, (ii) 특정한 레졸루션 중 최대값과 동일한 비트 심도를 갖도록 잔차 데이터 (280) 를 클립핑할 수도 있다.
본 개시의 제 5 예의 다른 버전에서, 비디오 코더는 잔차 데이터에 역 변환을 적용함으로써 잔차 데이터 (280) 를 생성할 수도 있다. 잔차 데이터 (280) 를 생성한 후에 및 잔차 데이터 (284) 를 생성하기 이전에, 잔차 데이터 (280) 의 비트 심도가 특정한 값 이하인 것에 기초하여, 비디오 코더는 잔차 데이터 (280) 의 레졸루션을 특정한 레졸루션에 유지할 수도 있다. 대안적으로, 잔차 데이터 (280) 의 비트 심도가 특정한 값 초과인 것에 기초하여, 비디오 코더는 잔차 데이터 (280) 에 클립핑 동작을 적용할 수도 있다. 이 예에서, 비디오 코더는 잔차 데이터 (282) 에 ICCP 변환 (152) 을 적용함으로써 잔차 데이터 (280) 를 생성할 수도 있다. 더욱이, 비디오 코더는 잔차 데이터 (284) 에 기초하여, 비디오 데이터의 CU 의 코딩 블록을 복원할 수도 있다.
도 9a 는 본 개시의 제 6 예에 따른, ICCP 에 대한 입력들이 제약을 받는, 일 예의 일련의 변환들을 예시하는 개념적 다이어그램이다. 본 개시의 제 6 예는 비트스트림의 인코딩을 제약하여, ICCP 에 대한 입력들이 Max(B+n5,15) 비트에 제한되고, 즉, ICCP 에 대한 입력들은 :
(1) 입력들의 비트-심도 B<=12 비트이면 15-비트 레졸루션에 유지될 수 있고; 또는
(2) 입력들의 비트-심도 B>12 비트이면 (B+n5)-비트 레졸루션까지 올라갈 것이고, 여기서 n5 에 대한 구체화는 n5>=3, 및 n5<=32-B 와 같다.
일반적으로, "제약" 은 제약을 위반하는 비트스트림이 비디오 코딩 표준에 따르지 않는다는 것을 규정하는 비디오 코딩 표준에 의해 정의된 규제이다. 따라서, 비트스트림이 비디오 코딩 표준에 따르면, 비트스트림은 제약을 위반하지 않는다.
ICCP 는 데이터 경로를 따라 1 비트 더 도입할 수 있다. 결과적으로, ICCP 의 이용은 본 개시의 제 5 예에 대하여 상기 언급한 바와 같이 IACT 의 입력 버퍼/어레이 비트-심도를 Max(B+n4,16) 비트에 여전히 배정할 수 있다. 도 9a 는 본 개시의 하나 이상의 기법들에 따른, 일 예의 일련의 변환들을 예시하는 개념적 다이어그램이다. 이 예는 확장된 정밀도가 디스에이블되고, 입력 비트-심도 B≤12 비트 및 B>12 비트가 고려 (JCTVC Bug Track #1321 을 참조) 되는 것을 가정하여 설명된다. 입력 비트-심도≤12 비트의 경우에 대해 32-비트 어레이 대신에, 16-비트 어레이 레졸루션이 여전히 유지될 수 있어, 소프트웨어의 그리고 하드웨어의 스토리지가 특히 소프트웨어에서 절약될 수 있다는 이익이 있다.
도 9a 의 예에 도시한 바와 같이, 본 개시의 제 6 예에서, ICCP (152) 에 대한 입력 (즉, 잔차 데이터 (292)) 이 B+n5 와 15 중 최대값이도록 비트스트림이 인코딩된다. 더욱이, 도 9a 의 예에 도시한 바와 같이, 본 개시의 이 제 6 예에서, IACT (156) 에 대한 입력 (즉, 잔차 데이터 (294)) 이 B+n4 와 16 중 최대값이도록 비트스트림이 인코딩된다.
따라서, 본 개시의 제 6 예에서, 비디오 인코더 (20) 는 ICCP (152) 에 대한 입력으로서 제공되는, 잔차 데이터 (292) 의 샘플 값들의 레졸루션들을 제한하는 제약을 받는 비트스트림을 생성할 수도 있다. 인코딩된 비트스트림은 비디오 데이터의 인코딩된 표현을 포함한다. 이 예에서, 비디오 인코더 (20) 는 비트스트림을 출력할 수도 있다. 이 예에서, 잔차 데이터 (292) 의 각 개별의 샘플 값에 대해, 제약은 그 개별의 샘플 값의 레졸루션을 어느 쪽이든 미리정의된 값, 또는 CU 의 원래의 샘플 값들의 레졸루션에 의존한 값 중 더 큰 값에 제한할 수도 있다.
유사하게, 본 개시의 제 6 예에서, 비디오 디코더 (30) 는 비디오 데이터의 인코딩된 표현을 포함하는 인코딩된 비트스트림으로부터 획득된 신택스 엘리먼트들에 기초하여, 비디오 데이터의 CU 에 대한 잔차 데이터 (292) 를 결정할 수도 있다. 이 예에서, 인코딩된 비트스트림은 잔차 데이터 (292) 의 샘플 값들의 레졸루션들을 제한하는 제약을 받는다. 더욱이, 이 예에서, 비디오 디코더 (30) 는 잔차 데이터 (292) 에 역 ICCP 를 적용함으로써 잔차 데이터 (294) 를 생성할 수도 있다. 비디오 디코더 (30) 는 잔차 데이터 (294) 에 기초하여, CU 의 코딩 블록 (298) 을 복원할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 코딩 블록 (298) 을 복원하기 위해 비디오 디코더 (30) 가 이용할 수도 있는 잔차 데이터 (296) 를 생성하기 위해 잔차 데이터 (294) 에 IACT (156) 를 적용함으로써 잔차 데이터 (294) 에 기초하여 코딩 블록을 복원할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 양자 모두에 대해, 제 6 예에서, 잔차 데이터 (292) 의 각 개별의 샘플 값에 대해, 제약은 개별의 샘플 값의 레졸루션을 어느 쪽이든 미리정의된 값 (예를 들어, 15), 또는 CU 의 원래의 샘플 값들의 레졸루션에 의존한 값 (B+n5) 중 더 큰 값에 제한할 수도 있다. 이 예에서, CU 의 원래의 샘플 값들의 레졸루션에 의존한 값은 CU 의 원래의 샘플 값들의 레졸루션에, 3 이상이고 그리고 32 에서 CU 의 원래의 샘플 값들의 레졸루션을 뺀 값 이하 (예를 들어, n5≥3 및 n5≤32-B) 인 값 (예를 들어, n5) 을 더한 값과 동일하다. 일부 인스턴스들에서, 미리정의된 값은 16 또는 특정한 구현을 위해 필요한 정밀도와 동일한 다른 값과 동일하다.
이 제 6 예에서, CU 의 원래의 샘플 값들의 비트 심도들이 제 1 값 (예를 들어, 12) 이하일 때, 잔차 데이터 (292) 의 샘플 값들의 레졸루션들은 제 2 값 (예를 들어, 15) 에 유지된다. CU 의 원래의 샘플 값들의 비트 심도들이 제 1 값 초과일 때, 잔차 데이터 (292) 의 샘플 값들의 레졸루션들은 CU 의 원래의 샘플 값들의 비트 심도들에 제 3 값 (예를 들어, n5) 을 더한 값에 제한된다. 이 제 6 예에서, 제 3 값은 3 이상인 값과 32 에서 CU 의 원래의 샘플 값들의 비트 심도들을 뺀 값 이하인 값 (예를 들어, n5≥3 및 n5≤32-B) 사이일 수도 있다.
도 9b 는 본 개시의 제 7 예에 따른, IACT 에 대한 입력들이 제약을 받는, 일 예의 일련의 변환들을 예시하는 개념적 다이어그램이다. 본 개시의 제 7 예는 인코딩된 비트스트림을 제약하여, IACT (156) 에 대한 입력들이 Max(B+n5,16) 비트에 제한되고, 즉, IACT (156) 에 대한 입력들은 :
(1) 입력들의 비트-심도 B<=12 비트이면, 16-비트 레졸루션에 유지될 수 있고; 또는
(2) 입력들의 비트-심도가 B>12 비트이면, (B+n5) 비트 레졸루션까지 올라갈 것이고, 여기서 n5 에 대한 구체화는 n5>=3, 및 n5<=32-B 이다.
따라서, 본 개시의 제 7 예에서, 비디오 인코더 (20) 는 비디오 데이터의 CU 에 대한 잔차 데이터 (294) 의 샘플 값들의 레졸루션들을 제한하는 제약을 받는 비트스트림을 생성할 수도 있다. 이 예에서, 인코딩된 비트스트림은 비디오 데이터의 인코딩된 표현을 포함한다. 비디오 디코더에서, 잔차 데이터 (294) 는 IACT (156) 에 대한 입력이다. 비디오 인코더 (20) 는 비트스트림을 출력할 수도 있다.
유사하게, 본 개시의 제 7 예에서, 비디오 디코더 (30) 는 비디오 데이터의 인코딩된 표현을 포함하는 인코딩된 비트스트림으로부터 획득된 신택스 엘리먼트들에 기초하여, 비디오 데이터의 CU 에 대한 잔차 데이터 (294) 를 결정할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득하고, 신택스 엘리먼트들에 기초하여 양자화된 변환 계수들을 결정하고, 양자화된 변환 계수들을 역 양자화하고, 역 변환 IT (116) 를 적용하고, ICCP (152) 를 적용하여, 잔차 데이터 (294) 를 획득할 수도 있다. 다른 인스턴스들에서, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득하고, 신택스 엘리먼트들 (예를 들어, 데이터 (230)) 에 기초하여 양자화된 샘플들을 결정하고, 양자화된 샘플들을 역 양자화하고, ICCP (152) 를 적용하여, 잔차 데이터 (294) 를 획득할 수도 있다.
인코딩된 비트스트림은 잔차 데이터 (294) 의 샘플 값들의 레졸루션들을 제한하는 제약을 받는다. 이 예에서, 비디오 디코더 (30) 는 잔차 데이터 (292) 에 ICCP (152) 를 적용함으로써 잔차 데이터 (294) 를 생성할 수도 있다. 비디오 디코더 (30) 는 잔차 데이터 (294) 에 IACT (156) 를 적용함으로써 잔차 데이터 (296) 를 생성할 수도 있다. 비디오 디코더 (30) 는 잔차 데이터 (296) 에 기초하여, CU 의 코딩 블록 (298) 을 복원할 수도 있다.
본 개시의 제 7 예에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 양자 모두에 있어, 잔차 데이터 (294) 의 각 개별의 샘플 값에 대해, 제약은 개별의 샘플 값의 레졸루션을 어느 쪽이든 미리정의된 값 (예를 들어, 16), 또는 CU 의 원래의 샘플 값들의 레졸루션에 의존한 값 (예를 들어, B+n4) 중 더 큰 값에 제한한다. 더욱이, CU 의 원래의 샘플 값들의 레졸루션에 의존한 값은 CU 의 원래의 샘플 값들의 레졸루션에, 3 이상이고 그리고 32 에서 CU 의 원래의 샘플 값들의 레졸루션을 뺀 값 이하인 값을 더한 값과 동일할 수도 있다.
더욱이, 본 개시의 제 7 예에서, 비디오 인코더 (20) 와 비디오 디코더 (30) 양자 모두에 있어, CU 의 원래의 샘플 값들의 비트 심도들이 제 1 값 (예를 들어, 12) 이하일 때, 잔차 데이터 (294) 의 샘플 값들의 레졸루션들은 제 2 값 (예를 들어, 16) 에 유지된다. CU 의 원래의 샘플 값들의 비트 심도들이 제 1 값 (예를 들어, 12) 초과일 때, 잔차 데이터 (294) 의 샘플 값들의 레졸루션들은 CU 의 원래의 샘플 값들의 비트 심도들 (예를 들어, B) 에 제 3 값 (예를 들어, n4) 을 더한 값에 제한된다. 제 3 값은 3 이상인 값과 32 에서 CU 의 원래의 샘플 값들의 비트 심도들을 뺀 값 이하인 값 (예를 들어, n5≥3 및 n5≤32-B) 사이이다.
도 9c 는 본 개시의 하나 이상의 기법들에 따른, 도 9a 및 도 9b 의 응축된 형태를 도시하는 일 예의 일련의 변환들을 예시하는 개념적 다이어그램이다. 도 9c 는 상기 설명된 제 6 및 제 7 예들 양자 모두의 효과들을 개념적으로 도시한다.
도 10 은 본 개시의 하나 이상의 양태들에 따른 기법들을 수행할 수도 있는 비디오 인코더 (20) 의 예를 예시하는 블록 다이어그램이다. 도 10 의 예에서, 비디오 인코더 (20) 는 비디오 데이터 메모리 (300), 모드 선택 유닛 (302), 디코딩된 픽처 버퍼 (304), 합산기 (306), 변환 프로세싱 유닛 (308), 양자화 유닛 (310), 및 엔트로피 인코딩 유닛 (312) 을 포함한다. 모드 선택 유닛 (302) 은 차례로 모션 보상 유닛 (314), 모션 추정 유닛 (316), 인트라-예측 프로세싱 유닛 (318), 및 파티션 유닛 (320) 을 포함한다. 비디오 블록 복원을 위해, 비디오 인코더 (20) 는 역 양자화 유닛 (322), 역 변환 유닛 (324), 및 합산기 (326) 를 또한 포함한다.
비디오 데이터 메모리 (300) 는 비디오 인코더 (20) 의 컴포넌트들에 의해 인코딩될 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (300) 에 저장된 비디오 데이터는 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 디코딩된 픽처 버퍼 (304) 는 예를 들어, 인트라- 또는 인터-코딩 모드들에서, 비디오 인코더 (20) 에 의해 비디오 데이터를 인코딩하는데 있어서의 이용을 위한 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (300) 및 디코딩된 픽처 버퍼 (116) 는 동기식 DRAM (SDRAM), 자기저항식 RAM (MRAM), 저항식 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들을 포함한 동적 랜덤 액세스 메모리 (DRAM) 와 같은 다양한 메모리 디바이스들 중 임의의 것에 의해 형성될 수도 있다. 비디오 데이터 메모리 (30) 및 디코딩된 픽처 버퍼 (304) 는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (300) 는 비디오 인코더 (20) 의 다른 컴포넌트들과 온-칩, 또는 그 컴포넌트들에 대하여 오프-칩일 수도 있다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩될 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 이렇게 하여, 비디오 인코더 (20) 는 인코딩될 비디오 프레임 내의 현재의 비디오 블록을 수신할 수도 있다.
모션 추정 유닛 (316) 및 모션 보상 유닛 (314) 은 시간 예측을 제공하기 위해 하나 이상의 참조 프레임들에서의 하나 이상의 블록들에 대하여 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 인트라-예측 프로세싱 유닛 (318) 은 대안적으로 공간 예측을 제공하기 위해 코딩될 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃하는 블록들에 대하여 수신된 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 비디오 인코더 (20) 는 예를 들어, 비디오 데이터의 각각의 블록에 대한 적절한 코딩 모드를 선택하기 위해, 다수의 코딩 패스들을 수행할 수도 있다.
파티션 유닛 (320) 은 이전의 코딩 패스들에서의 이전의 파티셔닝 스킴들의 평가에 기초하여, 비디오 데이터의 블록들을 서브-블록들로 파티셔닝할 수도 있다. 예를 들어, 파티션 유닛 (320) 은 프레임 또는 슬라이스를 LCU들로 초기에 파티셔닝하고, LCU들의 각각을 레이트-왜곡 분석 (예를 들어, 레이트-왜곡 최적화) 에 기초하여 서브-CU들로 파티셔닝할 수도 있다. 모드 선택 유닛 (302) 은 LCU 의 CU들로의 파티셔닝을 나타내는 쿼드트리 데이터 구조를 추가로 생성할 수도 있다. 쿼드트리의 리프-노드 CU들은 하나 이상의 PU들 및 하나 이상의 TU들을 포함할 수도 있다.
모드 선택 유닛 (302) 은 예를 들어, 에러 결과들에 기초하여, 코딩 모드들, 인트라 또는 인터 중 하나를 선택할 수도 있고, 합산기 (306) 에 결과의 인트라- 또는 인터-코딩된 블록을 제공할 수도 있다. 합산기 (306) 는 잔차 블록 데이터를 생성할 수도 있다. 예를 들어, 합산기 (306) 는 잔차 블록 데이터의 각각의 샘플이 현재의 CU 의 코딩 블록에서의 샘플과 현재의 CU 의 PU 의 예측 블록의 대응하는 샘플 사이의 차이와 동일하도록 현재의 CU 에 대한 잔차 블록 데이터를 생성할 수도 있다. 합산기 (306) 는 도 2 의 잔차 생성 동작 (48) 및 도 3, 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 및 도 5d 의 잔차 생성 동작 (100) 을 수행할 수도 있다.
합산기 (326) 는 참조 프레임으로서의 이용을 위해 인코딩된 블록 (즉, 코딩 블록) 을 복원할 수도 있다. 합산기 (326) 는 도 2 의 복원 동작 (84) 및 도 3, 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 도 5d, 도 6a, 도 6b, 도 6c, 도 6d, 도 7, 도 8, 도 9a, 도 9b, 및 도 9c 의 복원 동작 (120) 을 수행할 수도 있다. 모드 선택 유닛 (302) 은 또한, 신택스 엘리먼트들, 이를 테면 모션 벡터들, 인트라-모드 표시자들, 파티션 정보, 및 다른 이러한 신택스 정보를 엔트로피 인코딩 유닛 (312) 에 제공한다.
모션 추정 유닛 (316) 에 의해 수행된 모션 추정은 비디오 블록들에 대한 모션을 추정하는, 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어, 현재의 프레임 (또는 다른 코딩된 유닛) 내에 코딩되는 현재의 블록에 대한 참조 프레임 (또는 다른 코딩된 유닛) 내의 예측 블록에 대한 현재의 비디오 프레임 또는 픽처 내의 비디오 블록의 PU 의 변위를 표시할 수도 있다. 예측 블록은 SAD (sum of absolute difference), SSD (sum of square difference), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는, 픽셀 차이의 관점에서의, 코딩될 블록 (즉, 예측 블록) 에 밀접하게 매칭하는 것으로 확인되는 블록이다.
모션 보상 유닛 (314) 은 모션 보상을 수행할 수도 있다. 모션 보상은 모션 추정 유닛 (316) 에 의해 PU 에 대해 결정된 하나 이상의 모션 벡터들에 기초하여 PU 에 대한 하나 이상의 예측 블록들을 인출 또는 생성하는 것을 수반할 수도 있다. 현재의 비디오 블록의 PU 에 대한 모션 벡터를 수신 시에, 모션 보상 유닛 (314) 은 모션 벡터에 기초하여, 참조 픽처 리스트들 중 하나의 픽처로부터 예측 블록을 로케이팅할 수도 있다. 일반적으로, 모션 추정 유닛 (316) 은 루마 컴포넌트들에 대하여 모션 추정을 수행하고, 모션 보상 유닛 (314) 은 크로마 컴포넌트들과 루마 컴포넌트들 양자 모두에 대해 루마 컴포넌트들에 기초하여 계산된 모션 벡터들을 이용한다. 모드 선택 유닛 (302) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩하는데 있어서의 비디오 디코더 (30) 에 의한 이용을 위해 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라-예측 프로세싱 유닛 (318) 은 모션 추정 유닛 (316) 및 모션 보상 유닛 (314) 에 의해 수행된 인터-예측에 대한 대안으로서, 현재의 블록을 인트라-예측할 수도 있다. 특히, 인트라-예측 프로세싱 유닛 (318) 은 현재의 블록을 인코딩하기 위해 이용할 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라-예측 프로세싱 유닛 (318) 은 예를 들어, 별개의 인코딩 패스들 동안, 다양한 인트라-예측 모드들을 이용하여 현재의 블록을 인코딩할 수도 있고, 인트라-예측 프로세싱 유닛 (318) (또는 일부 예들에서, 모드 선택 유닛 (302)) 은 테스트된 모드들로부터 이용할 적절한 인트라-예측 모드를 선택할 수도 있다. 블록에 대한 인트라-예측 모드를 선택한 후에, 인트라-예측 프로세싱 유닛 (318) 은 엔트로피 인코딩 유닛 (312) 에 블록에 대한 선택된 인트라-예측 모드를 나타내는 정보를 제공할 수도 있다. 엔트로피 인코딩 유닛 (312) 은 선택된 인트라-예측 모드를 표시하는 정보를 인코딩할 수도 있다.
비디오 인코더 (20) 는 모드 선택 유닛 (302) 으로부터의 예측 데이터 (예를 들어, 예측 블록) 와 코딩되는 원래의 비디오 블록 (예를 들어, 코딩 블록) 으로부터의 데이터 사이의 차이들을 결정함으로써 잔차 비디오 블록을 형성할 수도 있다. 합산기 (306) 는 이 차이 동작을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다. 변환 프로세싱 유닛 (308) 은 잔차 블록에 변환을 적용하여, 잔차 변환 계수 값들을 포함하는 비디오 블록 (즉, 변환 계수 블록) 을 생성할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (308) 은 잔차 계수 값들을 생성하기 위해 잔차 블록에 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환을 적용할 수도 있다.
변환 프로세싱 유닛 (308) 은 DCT 와 개념적으로 유사한 다른 변환들을 수행할 수도 있다. 웨이블릿 변환들, 정수 변환들, 서브-대역 변환들 또는 다른 타입들의 변환들이 또한 이용될 수 있다. 어느 경우나, 변환 프로세싱 유닛 (308) 은 잔차 블록에 변환을 적용하여, 잔차 변환 계수들의 블록을 생성한다. 변환은 픽셀 (또는 샘플) 값 도메인으로부터 변환 도메인, 이를 테면 주파수 도메인으로 잔차 정보를 컨버팅할 수도 있다. 변환 프로세싱 유닛 (308) 은 결과의 변환 계수들을 양자화 유닛 (310) 으로 전송할 수도 있다.
더욱이, 변환 프로세싱 유닛 (308) 은 잔차 데이터에 ACT 변환 및/또는 CCP 변환을 적용할 수도 있다. 더욱이, 본 개시의 하나 이상의 기법들에 따르면, 변환 프로세싱 유닛 (308) 은 샘플-투-변환 도메인 변환, ACT 변환, 및/또는 CCP 변환으로부터 발생하는 잔차 데이터의 비트 심도들을 감소시키기 위해 잔차 데이터에 클립핑 동작들을 적용할 수도 있다. 따라서, 변환 프로세싱 유닛 (308) 은 도 2 의 변환 (60) 및 도 3, 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 및 도 5d 의 변환 (104) 을 수행할 수도 있다. 더욱이, 변환 프로세싱 유닛 (308) 은 도 2 의 CCP (56) 및 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 및 도 5d 의 CCP (150) 를 수행할 수도 있다. 추가적으로, 변환 프로세싱 유닛 (308) 은 도 2 의 ACT (52) 및 도 4a, 도 4b, 도 5c, 및 도 5d 의 ACT (154) 를 수행할 수도 있다. 일부 예들에서, 변환 프로세싱 유닛 (308) 은 상기 제 6 및 제 7 샘플들에 대하여 설명된 제약들을 시행할 수도 있다.
양자화 유닛 (310) 은 비트 레이트를 추가로 감소시키기 위해 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수도 있다. 일부 예들에서, 양자화 유닛 (310) 은 도 2 의 양자와 동작 (64) 및 도 3, 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 및 도 5d 의 양자화 동작 (108) 을 수행한다. 더욱이, 일부 예들에서, 양자화 유닛 (310) 은 그 후 양자화된 변환 계수들을 포함한 매트릭스의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (312) 이 스캔을 수행할 수도 있다.
비디오 인코더 (20) 는 코딩된 비디오 비트스트림의 다양한 파라미터 세트들을 인코딩할 수도 있다. 이러한 파라미터 세트들은 하나 이상의 픽처들에 공통인 신택스 엘리먼트들을 포함할 수도 있는 픽처 파라미터 세트 (PPS), 및/또는 픽처들의 하나 이상의 시퀀스들에 공통인 신택스 엘리먼트들을 포함할 수도 있는 시퀀스 파라미터 세트를 포함할 수도 있다.
양자화에 이어, 엔트로피 인코딩 유닛 (312) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 다시 말해서, 엔트로피 인코딩 유닛 (312) 은 양자화된 변환 계수들을 표현하는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (312) 은 콘텍스트 적응적 이진 산술 코딩 (CABAC), 콘텍스트 적응적 가변 길이 코딩 (CAVLC), 신택스-기반 콘텍스트-적응적 이진 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 다른 엔트로피 코딩 기법을 수행할 수도 있다. 콘텍스트-기반 엔트로피 코딩의 경우에, 콘텍스트는 이웃하는 블록들에 기초할 수도 있다. 엔트로피 인코딩 유닛 (312) 에 의한 엔트로피 코딩에 이어, 비디오 인코더 (20) 는 다른 디바이스 (예를 들어, 비디오 디코더 (30)) 에 인코딩된 비트스트림을 송신하거나 또는 추후 송신 또는 취출을 위해 아카이브될 수도 있다. 도 10 의 예에서, 송신기 (313) 는 비트스트림을 송신한다. 송신기 (313) 는 출력 인터페이스 (22) 의 일부일 수도 있다.
역 양자화 유닛 (322) 및 역 변환 유닛 (324) 은 예를 들어, 참조 블록으로서의 추후 이용을 위한, 픽셀 도메인에서의 잔차 블록을 생성하기 위해, 역 양자화 및 역 변환을 각각 적용한다. 예를 들어, 역 양자화 유닛 (322) 은 변환 계수 블록을 양자화해제할 수도 있다. 역 변환 유닛 (324) 은 양자화해제된 변환 계수 블록에 역 변환을 적용함으로써 TU 의 변환 블록을 생성할 수도 있다. 역 양자화 유닛 (322) 은 도 2 의 역 양자화 동작 (68) 및 도 3, 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 도 5d, 도 6a, 도 6b, 도 6c, 도 6d, 도 7, 도 8, 도 9a, 도 9b, 및 도 9c 의 역 양자화 동작 (112) 을 수행할 수도 있다. 역 변환 유닛 (322) 은 도 2 의 역 변환 (72) 및 도 3, 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 도 5d, 도 6a, 도 6b, 도 6c, 도 6d, 도 7, 도 8, 도 9a, 도 9b, 및 도 9c 의 역 변환 (116) 을 수행할 수도 있다. 더욱이, 역 변환 유닛 (322) 은 도 2 의 ICCP (76) 및 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 도 5d, 도 6a, 도 6b, 도 6c, 도 6d, 도 7, 도 9a, 도 9b, 및 도 9c 의 ICCP (152) 를 수행할 수도 있다. 역 변환 유닛 (322) 은 도 2 의 IACT (80) 및 도 4b, 도 5c, 도 5d, 도 6a, 도 6b, 도 6c, 도 6d, 도 7, 도 8, 도 9a, 도 9b, 및 도 9c 의 IACT (156) 를 수행할 수도 있다.
역 양자화 유닛 (322), 역 변환 유닛 (324), 및 합산기 (326) 는 비디오 인코더 (20) 의 디코딩 루프를 형성할 수도 있다. 본 개시의 하나 이상의 기법들에 따르면, 역 변환 유닛 (324) 은 역 ACT 및 역 CCP 변환을 적용할 수도 있다. 더욱이, 본 개시의 하나 이상의 기법들에 따르면, 역 변환 유닛 (324) 은 본 개시의 다른 곳의 예들에서 설명한 바와 같이, 클립핑 동작들을 수행할 수도 있다.
합산기 (326) 는 디코딩된 픽처 버퍼 (304) 에의 저장을 위한 복원된 비디오 블록을 생성하기 위해 모션 보상 유닛 (314) 에 의해 생성된 모션 보상된 예측 블록에 잔차 블록을 가산한다. 모션 추정 유닛 (316) 및 모션 보상 유닛 (314) 은 후속 비디오 프레임에서의 블록을 인터-코딩 (즉, 인터 예측) 하기 위한 참조 블록으로서 복원된 비디오 블록을 이용할 수도 있다.
모션 추정 유닛 (316) 은 인터-예측되는 하나 이상의 PU들의 픽셀 값들을 예측하기 위해 비디오 인코더 (20) 가 이용할 수도 있는 하나 이상의 참조 픽처들을 결정할 수도 있다. 모션 추정 유닛 (316) 은 픽처들이 참조를 위해 이용되지 않는 것으로서 마크될 때까지 디코딩된 픽처 버퍼 (304) 에 참조 픽처들을 저장할 수도 있다. 비디오 인코더 (20) 의 모드 선택 유닛 (302) 은 하나 이상의 참조 픽처들에 대한 식별 정보를 포함하는 다양한 신택스 엘리먼트들을 인코딩할 수도 있다.
도 11 은 본 개시의 하나 이상의 양태들에 따른 기법들을 수행할 수도 있는 비디오 디코더의 예를 예시하는 블록 다이어그램이다. 도 11 의 예에서, 비디오 디코더 (30) 는 비디오 데이터 메모리 (350), 엔트로피 디코딩 유닛 (352), 모션 보상 유닛 (354), 인트라-예측 프로세싱 유닛 (356), 역 양자화 유닛 (358), 역 변환 유닛 (360), 디코딩된 픽처 버퍼 (362), 및 합산기 (364) 를 포함한다. 일부 예들에서, 비디오 디코더 (30) 는 비디오 인코더 (20) (도 1 및 도 10) 에 대하여 설명된 인코딩 패스와는 일반적으로 상반된 디코딩 패스를 수행할 수도 있다.
비디오 데이터 메모리 (350) 는 비디오 디코더 (30) 의 컴포넌트들에 의해 디코딩될, 인코딩된 비디오 비트스트림과 같은 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (350) 에 저장된 비디오 데이터는 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체들에 액세스함으로써, 예를 들어, 채널 (16) (도 1) 로부터, 예를 들어, 로컬 비디오 소스, 이를 테면 카메라로부터 획득될 수도 있다. 비디오 데이터 메모리 (350) 는 인코딩된 비디오 비트스트림으로부터의 인코딩된 비디오 데이터를 저장하는 코딩된 픽처 버퍼 (CPB) 를 형성할 수도 있다. 디코딩된 픽처 버퍼 (362) 는 예를 들어, 인트라- 또는 인터-코딩 모드들에서, 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩하는데 있어서의 이용을 위해 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (350) 및 디코딩된 픽처 버퍼 (362) 는 동기식 DRAM (SDRAM), 자기저항식 RAM (MRAM), 저항식 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들을 포함한 동적 랜덤 액세스 메모리 (DRAM) 와 같은 다양한 메모리 디바이스들 중 임의의 것에 의해 형성될 수도 있다. 비디오 데이터 메모리 (350) 및 디코딩된 픽처 버퍼 (362) 는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (350) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 온-칩, 또는 그 컴포넌트들에 대하여 오프-칩일 수도 있다. 도 11 의 예에 도시한 바와 같이, 비디오 디코더 (30) 는 수신기 (361) 로부터 인코딩된 비디오 비트스트림을 수신할 수도 있다. 수신기 (361) 는 입력 인터페이스 (28) 의 일부일 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 비디오 인코더 (20) 로부터 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들 및/또는 신택스 데이터를 표현하는 인코딩된 비디오 비트스트림을 수신한다. 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (352) 은 양자화된 계수들, 모션 벡터들 또는 인트라-예측 모드 표시자들, 및 다른 신택스 엘리먼트들을 생성하기 위해 비트스트림을 엔트로피 디코딩한다. 엔트로피 디코딩 유닛 (352) 은 모션 보상 유닛 (354) 에 신택스 엘리먼트들을 포워딩할 수도 있다.
엔트로피 디코딩 유닛 (352) 은 다양한 파라미터들 세트들에서 추가적인 신택스 엘리먼트들을 디코딩 및 파싱할 수도 있다. 이러한 파라미터 세트들은 하나 이상의 픽처들에 공통인 신택스 엘리먼트들을 포함할 수도 있는 PPS, 및/또는 픽처들의 하나 이상의 시퀀스들에 공통인 신택스 엘리먼트들을 포함할 수도 있는 SPS 를 포함할 수도 있다.
비디오 디코더 (30) 는 디코딩된 픽처 버퍼 (362) 에 저장된 참조 픽처들에 기초하여 참조 픽처 리스트들, List 0 및 List 1 을 (예를 들어, 디폴트 구성 기법들을 이용하여) 구성할 수도 있다. 비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 인트라-예측 프로세싱 유닛 (356) 은 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 인트라-예측 프로세싱 유닛 (356) 은 시그널링된 인트라 예측 모드에 기초한 예측 데이터 및 현재의 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 데이터를 생성할 수도 있다. 비디오 디코더 (30) 가 인터-코딩된 (즉, B 또는 P) 슬라이스로서 비디오 프레임의 슬라이스들을 코딩할 때, 모션 보상 유닛 (354) 은 엔트로피 디코딩 유닛 (352) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성할 수도 있다. 모션 보상 유닛 (354) 은 참조 픽처 리스트들 중 하나 내의 참조 픽처들 중 하나로부터 예측 블록들을 생성할 수도 있다.
모션 보상 유닛 (354) 은 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하기 위해 모션 벡터들 및/또는 신택스 엘리먼트들을 이용할 수도 있다. 일부 예들에서, 모션 보상 유닛 (354) 은 엔트로피 디코딩 유닛 (352) 으로부터 수신된 모션 벡터들에 기초하여 예측 정보를 생성할 수도 있다. 모션 보상 유닛 (354) 은 디코딩되는 현재의 비디오 블록에 대한 예측 블록들을 생성하기 위해 예측 정보를 이용할 수도 있다. 예를 들어, 모션 보상 유닛 (354) 은 현재의 비디오 슬라이스의 비디오 블록들을 코딩하는데 이용되는 예측 모드 (예를 들어, 인트라- 또는 인터-예측), 인터-예측 슬라이스 타입 (예를 들어, B 슬라이스 또는 P 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중 하나 이상에 대한 구성 정보, 현재의 비디오 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 스테이터스, 및 현재의 비디오 슬라이스에서의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정하기 위해 수신된 신택스 엘리먼트들 중 일부를 이용한다.
역 양자화 유닛 (358) 은 비트스트림으로 제공되고 엔트로피 디코딩 유닛 (352) 에 의해 디코딩된 양자화된 변환 계수들을 역 양자화, 즉 양자화해제 (de-quantize) 한다. 역 양자화 프로세스는 양자화의 정도, 및 마찬가지로 적용되어야 하는 역 양자화의 정도를 결정하기 위해 양자화 파라미터 QPY 의 이용을 포함할 수도 있다. 비디오 디코더 (30) 는 비디오 슬라이스에서의 각각의 비디오 블록에 대한 양자화 파라미터 QPY 를 계산할 수도 있다.
역 변환 유닛 (360) 은 양자화해제된 변환 계수 블록들을 수신할 수도 있다. 변환이 현재의 블록에 대해 스킵되면, 역 변환 유닛 (360) 은 양자화해제된 잔차 블록들을 수신할 수도 있다. 역 변환 유닛 (360) 은 역 변환을 이용하여 수신된 블록들을 변환할 수도 있다. 일부 예들에서, 픽셀 도메인에서의 잔차 블록들 (예를 들어, 변환 블록들) 을 생성하기 위하여 변환 계수들에 대한 역 변환 (예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역 변환 프로세스). 역 변환 유닛 (360) 은 "잔차 신호" 로 지칭된 신호를 출력할 수도 있다.
더욱이, 역 변환 유닛 (360) 은 역 변환된 (이를 테면 역 코사인 변환 또는 역 사인 변환) 잔차 데이터에 역 ACT 변환 및/또는 역 CCP 변환을 적용할 수도 있다. 더욱이, 본 개시의 하나 이상의 기법들에 따르면, 역 변환 유닛 (360) 은 변환-투-샘플 도메인 변환, 역 ACT 변환, 및/또는 역 CCP 변환으로부터 발생하는 역 변환된 잔차 데이터의 비트 심도들을 감소시키기 위해 역 변환된 잔차 데이터에 클립핑 동작들을 적용할 수도 있다.
비디오 디코더 (30) 는 또한, 현재의 블록이 신택스 엘리먼트들 또는 다른 정보에 기초하여 인트라-예측된다고 결정할 수도 있다. 현재의 비디오 블록이 인트라-예측되면, 인트라-예측 프로세싱 유닛 (356) 은 현재의 블록을 디코딩할 수도 있다. 인트라-예측 프로세싱 유닛 (356) 은 현재의 블록과 동일한 픽처로부터 이웃하는 예측 블록을 결정할 수도 있다. 인트라-예측 프로세싱 유닛 (356) 은 예측 블록에 기초하여 변환 계수 블록 및/또는 잔차 블록을 생성할 수도 있다.
모션 보상 유닛 (354) 또는 인트라-예측 프로세싱 유닛 (356) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 블록에 대한 변환 계수 블록 및/또는 잔차 블록을 생성한 후에, 비디오 디코더 (30) 는 역 변환 유닛 (358) 으로부터의 잔차 블록들을 모션 보상 유닛 (354) 에 의해 생성된 대응하는 예측 블록들과 결합함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (364) 는 이 합산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다. 디코딩된 픽처 버퍼 (362) 는 비디오 디코더 (30) 가 후속 모션 보상을 위해 이용할 수도 있는, 주어진 프레임 또는 픽처에서의 디코딩된 비디오 블록들을 저장한다. 디코딩된 픽처 버퍼 (362) 는 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상의 추후 프리젠테이션을 위해 디코딩된 비디오를 또한 저장할 수도 있다.
모션 보상 유닛 (354) 및/또는 인트라-예측 프로세싱 유닛 (356) 은 루마 잔차 블록, 스케일 팩터, 및 예측된 크로마 잔차 샘플들에 기초하여 크로마 잔차 샘플들의 블록을 결정할 수도 있다. 크로마 잔차 샘플들의 블록의 경우, 합산기 (364) 는 크로마 잔차 샘플들 및 루마 잔차 샘플들을 예측 블록의 개별의 크로마 샘플들 및 루마 샘플들과 합산하여 현재의 블록을 디코딩 (예를 들어, 현재의 블록을 복원) 할 수도 있다. 합산기 (364) 는 도 3, 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 도 5d, 도 6a, 도 6b, 도 6c, 도 6d, 도 7, 도 8, 도 9a, 도 9b, 및 도 9c 의 복원 동작 (120) 을 수행할 수도 있다. 일단 비디오 디코더 (30) 가 복원된 비디오를 생성하면, 비디오 디코더 (30) 는 일부 예들에서 복원된 비디오 블록들을 (예를 들어, 디스플레이 또는 저장을 위해) 디코딩된 비디오로서 출력할 수도 있다.
상기 설명한 바와 같이, 인터-예측 동안, 모션 보상 유닛 (354) 은 디코딩되는 현재의 블록에 대한 예측 비디오 블록들을 형성하기 위해 비디오 디코더 (30) 가 이용할 수도 있는 하나 이상의 참조 픽처들을 결정할 수도 있다. 모션 보상 유닛 (354) 은 참조 픽처들이 참조를 위해 이용되지 않는 것으로서 마크될 때까지 디코딩된 픽처 버퍼 (362) 에 참조 픽처들을 저장할 수도 있다.
도 12 는 본 개시의 기법에 따른, 비디오 코더의 일 예의 동작을 예시하는 플로우차트이다. 도 12 의 동작은 비디오 인코더 (예를 들어, 도 1 및 도 10 의 비디오 인코더 (20)), 비디오 디코더 (예를 들어, 도 1 및 도 11 의 비디오 디코더 (30)), 또는 다른 유닛 또는 디바이스에 의해 수행될 수도 있다.
도 12 의 예에서, 비디오 코더는 제 1 잔차 데이터의 비트 심도에 기초하여 가변 범위에 제 1 잔차 데이터를 클립핑할 수도 있다 (402). 일부 예들에서, 비디오 코더는 변환된 잔차 데이터에 역 변환을 적용함으로써 제 1 역 변환된 잔차 데이터를 생성할 수도 있다. 일부 예들에서, 역 변환은 변환 도메인으로부터 샘플 도메인으로의 변환이다. 예를 들어, 역 변환은 역 이산 코사인 변환 또는 역 이산 사인 변환일 수도 있다. 다른 예들에서, 역 변환은 ICCP 일 수도 있다. 제 1 잔차 데이터는 IACT 에 대한 입력이다.
더욱이, 비디오 코더는 클립핑된 제 1 잔차 데이터에 IACT 를 적용함으로써 적어도 부분적으로 제 2 잔차 데이터를 생성할 수도 있다 (404). 일부 예들에서, 하나 이상의 변화들이 IACT 에 더하여 제 2 잔차 데이터를 생성하기 위해 적용될 수도 있다. 비디오 코더는 제 2 잔차 데이터에 기초하여, 비디오 데이터의 CU 의 코딩 블록을 복원할 수도 있다 (406). 예를 들어, 비디오 코더는 제 2 잔차 데이터의 샘플들에 대응하는 코딩 블록의 각 개별의 샘플이 제 2 잔차 데이터의 샘플과 CU 의 PU 의 예측 블록의 대응하는 샘플의 합과 실질적으로 동일 (예를 들어, 가능한 라운딩 에러를 가짐) 하도록 CU 의 코딩 블록을 복원할 수도 있다.
이 예에서, 비디오 코더는 잔차 데이터에 역 변환을 적용함으로써 제 1 잔차 데이터를 생성할 수도 있다. 제 1 잔차 데이터를 생성한 후에 및 제 2 잔차 데이터를 생성하기 이전에 :
(i) 제 1 역 변환된 잔차 데이터의 비트 심도가 특정한 값 이하인 것에 기초하여, 비디오 코더는 제 1 역 변환된 잔차 데이터의 레졸루션을 특정한 레졸루션에 유지할 수도 있고; 또는
(ii) 제 1 역 변환된 잔차 데이터의 비트 심도가 특정한 값 초과인 것에 기초하여, 비디오 코더는 제 1 역 변환된 잔차 데이터에 클립핑 동작을 적용할 수도 있다.
이 예에서, 비디오 코더는 제 1 잔차 데이터에 IACT 를 적용함으로써 제 2 잔차 데이터를 생성할 수도 있다. 비디오 코더는 제 2 잔차 데이터에 기초하여, 비디오 데이터의 CU 의 코딩 블록을 복원할 수도 있다.
예에 의존하여, 본 명세서에서 설명된 기법들 중 임의의 것의 소정의 액트들 또는 이벤트들이 상이한 시퀀스로 수행될 수 있고, 함께 추가, 병합, 또는 배제될 수도 있다 (예를 들어, 모든 설명된 액트들 또는 이벤트들이 기법들의 실시에 필수적인 것은 아니다) 는 것이 인지될 것이다. 더욱이, 소정의 예들에서, 액트들 또는 이벤트들은 순차적으로라기 보다는, 예를 들어, 멀티-스레디드 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서들을 통하여, 동시에 수행될 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 예를 들어, 도 10 및 도 11 의 블록들은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 또는 이를 통해 송신되고 하드웨어-기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들, 또는 예를 들어, 통신 프로토콜에 따라 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체들을 포함할 수도 있다. 이 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 일 예로, 이러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CO-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 적절히 컴퓨터 판독가능 매체로 불리게 된다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선 (DSL), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 송신되면, 매체의 정의에는 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들이 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 반송파들, 신호들, 또는 다른 일시적 매체들을 포함하지 않고, 그 대신 비일시적, 유형의 저장 매체들에 관련되는 것으로 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는 본 명세서에서 사용한 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하고, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하는 한편, 디스크 (disc) 들은 레이저들로 데이터를 광학적으로 재생한다. 상기의 조합들이 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 이산 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 이에 따라, 용어 "프로세서" 는 본 명세서에서 사용한 바와 같이 전술한 구조 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 추가로, 일부 양태들에서, 본 명세서에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성되거나, 또는 결합된 코덱에 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 완전히 구현될 수 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예를 들어, 칩 세트) 를 포함한 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하는 것은 아니다. 오히려, 상기 설명한 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에 통합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 상기 설명한 바와 같은 하나 이상의 프로세서들을 포함한, 상호운용적 하드웨어 유닛들의 콜렉션에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (28)

  1. 비디오 데이터를 인코딩 또는 디코딩하는 방법으로서,
    (i) 16 비트와, (ii) 예측 픽셀들의 비트 심도에, 4 이상이고 그리고 32 에서 상기 예측 픽셀들의 상기 비트 심도를 뺀 값 이하인 값을 더한 값과 동일한 비트 심도, 중 최대값에 역 적응적 컬러 변환 (IACT) 에 대한 입력을 클립핑하는 단계로서, 상기 IACT 에 대한 상기 입력은 제 1 잔차 데이터인, 상기 IACT 에 대한 입력을 클립핑하는 단계;
    클립핑된 상기 입력에 상기 IACT 를 적용함으로써 적어도 부분적으로 제 2 잔차 데이터를 생성하는 단계; 및
    상기 제 2 잔차 데이터에 기초하여, 상기 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원하는 단계
    를 포함하는, 비디오 데이터를 인코딩 또는 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 예측 픽셀들은 제 1 예측 픽셀들이고, 상기 IACT 에 대한 상기 입력은 상기 IACT 에 대한 제 1 입력이고, 상기 CU 는 제 1 CU 이며,
    상기 제 1 입력을 클립핑하는 단계는,
    상기 예측 픽셀들의 상기 비트 심도가 특정한 값 이하인 것에 기초하여, 상기 제 1 잔차 데이터의 비트 심도를 16 비트에 유지하는 단계를 포함하고; 그리고
    상기 비디오 데이터를 인코딩 또는 디코딩하는 방법은,
    (i) 16 비트와, (ii) 제 2 예측 픽셀들의 비트 심도에, 4 이상이고 그리고 32 에서 상기 제 2 예측 픽셀들의 상기 비트 심도를 뺀 값 이하인 값을 더한 값과 동일한 비트 심도, 중 최대값에 상기 IACT 에 대한 제 2 입력을 클립핑하는 단계로서, 상기 IACT 에 대한 상기 제 2 입력은 제 3 잔차 데이터이고, 상기 제 2 입력을 클립핑하는 단계는, 상기 제 2 예측 픽셀들의 상기 비트 심도가 상기 특정한 값 초과인 것에 기초하여, 상기 제 3 잔차 데이터에 클립핑 동작을 적용하는 단계를 포함하는, 상기 IACT 에 대한 제 2 입력을 클립핑하는 단계;
    클립핑된 상기 제 2 입력에 상기 IACT 를 적용함으로써 적어도 부분적으로 제 4 잔차 데이터를 생성하는 단계; 및
    상기 제 4 잔차 데이터에 기초하여, 상기 비디오 데이터의 제 2 코딩 유닛 (CU) 의 코딩 블록을 복원하는 단계
    를 포함하는, 비디오 데이터를 인코딩 또는 디코딩하는 방법.
  3. 제 2 항에 있어서,
    상기 특정한 값은 12 인, 비디오 데이터를 인코딩 또는 디코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 잔차 데이터를 생성하기 위해 역 크로스-컴포넌트 예측 (ICCP) 변환을 적용하는 단계를 더 포함하는, 비디오 데이터를 인코딩 또는 디코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 잔차 데이터를 생성하기 위해 변환 도메인으로부터 샘플 도메인으로의 역 변환을 적용하는 단계를 더 포함하는, 비디오 데이터를 인코딩 또는 디코딩하는 방법.
  6. 제 5 항에 있어서,
    상기 역 변환은 역 이산 코사인 변환인, 비디오 데이터를 인코딩 또는 디코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 비디오 데이터를 인코딩 또는 디코딩하는 방법은 무선 통신 디바이스 상에서 실행가능하고,
    상기 무선 통신 디바이스는,
    상기 비디오 데이터를 저장하도록 구성된 메모리;
    상기 메모리에 저장된 상기 비디오 데이터를 프로세싱하기 위한 명령들을 실행하도록 구성된 프로세서; 및
    상기 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 송신하도록 구성된 송신기로서, 상기 비디오 데이터의 인코딩된 표현은 상기 CU 의 인코딩된 표현을 포함하는, 상기 송신기; 또는
    상기 비디오 데이터의 인코딩된 표현을 포함하는 상기 비트스트림을 수신하도록 구성된 수신기
    중 적어도 하나
    를 포함하는, 비디오 데이터를 인코딩 또는 디코딩하는 방법.
  8. 제 7 항에 있어서,
    상기 무선 통신 디바이스는 셀룰러 전화기이고,
    상기 비트스트림은 셀룰러 통신 표준에 따라 변조되고,
    상기 비트스트림은 상기 송신기에 의해 송신되는 것, 또는
    상기 비트스트림은 상기 수신기에 의해 수신되는 것
    중 적어도 하나가 행해지는, 비디오 데이터를 인코딩 또는 디코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 입력을 클립핑하는 단계는, 상기 예측 픽셀들의 상기 비트 심도가 특정한 값 초과인 것에 기초하여, 상기 제 1 잔차 데이터에 클립핑 동작을 적용하는 단계를 포함하는, 비디오 데이터를 인코딩 또는 디코딩하는 방법.
  10. 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스로서,
    상기 비디오 데이터를 저장하도록 구성된 메모리; 및
    하나 이상의 프로세서들
    을 포함하고,
    상기 하나 이상의 프로세서들은,
    (i) 16 비트와, (ii) 예측 픽셀들의 비트 심도에, 4 이상이고 그리고 32 에서 상기 예측 픽셀들의 상기 비트 심도를 뺀 값 이하인 값을 더한 값과 동일한 비트 심도, 중 최대값에 역 적응적 컬러 변환 (IACT) 에 대한 입력을 클립핑하는 것으로서, 상기 IACT 에 대한 상기 입력은 제 1 잔차 데이터인, 상기 IACT 에 대한 입력을 클립핑하고;
    클립핑된 상기 입력에 상기 IACT 를 적용함으로써 적어도 부분적으로 제 2 역 변환된 잔차 데이터를 생성하고; 그리고
    상기 제 2 역 변환된 잔차 데이터에 기초하여, 상기 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원하도록
    구성되는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  11. 제 10 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 입력을 클립핑하는 것의 일부로서, 상기 하나 이상의 프로세서들이,
    상기 예측 픽셀들의 상기 비트 심도가 특정한 값 이하인 것에 기초하여, 상기 제 1 잔차 데이터의 비트 심도를 16 비트에 유지하고; 그리고
    상기 예측 픽셀들의 상기 비트 심도가 상기 특정한 값 초과인 것에 기초하여, 상기 제 1 잔차 데이터에 클립핑 동작을 적용하도록
    구성되는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  12. 제 11 항에 있어서,
    상기 특정한 값은 12 인, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  13. 제 10 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 제 1 잔차 데이터를 생성하기 위해 역 크로스-컴포넌트 예측 (ICCP) 변환을 적용하도록 구성되는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  14. 제 10 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 제 1 잔차 데이터를 생성하기 위해 변환 도메인으로부터 샘플 도메인으로의 역 변환을 적용하도록 구성되는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  15. 제 14 항에 있어서,
    상기 역 변환은 역 이산 코사인 변환인, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  16. 제 10 항에 있어서,
    상기 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스는 무선 통신 디바이스이고,
    상기 하나 이상의 프로세서들에 통신가능하게 커플링된 송신기로서, 상기 송신기는 상기 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 송신하도록 구성되고, 상기 비디오 데이터의 인코딩된 표현은 상기 CU 의 인코딩된 표현을 포함하는, 상기 송신기; 또는
    상기 하나 이상의 프로세서들에 통신가능하게 커플링된 수신기로서, 상기 수신기는 상기 비디오 데이터의 인코딩된 표현을 포함하는 상기 비트스트림을 수신하도록 구성되는, 상기 수신기
    중 적어도 하나를 더 포함하는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  17. 제 16 항에 있어서,
    상기 무선 통신 디바이스는 셀룰러 전화기이고,
    상기 비트스트림은 셀룰러 통신 표준에 따라 변조되고,
    상기 비트스트림은 상기 송신기에 의해 송신되는 것, 또는
    상기 비트스트림은 상기 수신기에 의해 수신되는 것
    중 적어도 하나가 행해지는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  18. 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스로서,
    (i) 16 비트와, (ii) 예측 픽셀들의 비트 심도에, 4 이상이고 그리고 32 에서 상기 예측 픽셀들의 상기 비트 심도를 뺀 값 이하인 값을 더한 값과 동일한 비트 심도, 중 최대값에 역 적응적 컬러 변환 (IACT) 에 대한 입력을 클립핑하기 위한 수단으로서, 상기 IACT 에 대한 상기 입력은 제 1 잔차 데이터인, 상기 IACT 에 대한 입력을 클립핑하기 위한 수단;
    클립핑된 상기 입력에 상기 IACT 를 적용함으로써 적어도 부분적으로 제 2 잔차 데이터를 생성하기 위한 수단; 및
    상기 제 2 잔차 데이터에 기초하여, 상기 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원하기 위한 수단
    을 포함하는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  19. 제 18 항에 있어서,
    상기 입력을 클립핑하기 위한 수단은,
    상기 예측 픽셀들의 상기 비트 심도가 특정한 값 이하인 것에 기초하여, 상기 제 1 잔차 데이터의 비트 심도를 16 비트에 유지하기 위한 수단; 및
    상기 예측 픽셀들의 상기 비트 심도가 상기 특정한 값 초과인 것에 기초하여, 상기 제 1 잔차 데이터에 클립핑 동작을 적용하기 위한 수단
    을 포함하는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  20. 제 19 항에 있어서,
    상기 특정한 값은 12 인, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  21. 제 18 항에 있어서,
    상기 제 1 잔차 데이터를 생성하기 위해 역 크로스-컴포넌트 예측 (ICCP) 변환을 적용하기 위한 수단을 더 포함하는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  22. 제 18 항에 있어서,
    상기 제 1 잔차 데이터를 생성하기 위해 변환 도메인으로부터 샘플 도메인으로의 역 변환을 적용하기 위한 수단을 더 포함하는, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  23. 제 22 항에 있어서,
    상기 역 변환은 역 이산 코사인 변환인, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스.
  24. 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 때, 비디오 데이터를 인코딩 또는 디코딩하기 위한 디바이스의 하나 이상의 프로세서들로 하여금,
    (i) 16 비트와, (ii) 예측 픽셀들의 비트 심도에, 4 이상이고 그리고 32 에서 상기 예측 픽셀들의 상기 비트 심도를 뺀 값 이하인 값을 더한 값과 동일한 비트 심도, 중 최대값에 역 적응적 컬러 변환 (IACT) 에 대한 입력을 클립핑하게 하는 것으로서, 상기 IACT 에 대한 상기 입력은 제 1 잔차 데이터인, 상기 IACT 에 대한 입력을 클립핑하게 하고;
    클립핑된 상기 입력에 상기 IACT 를 적용함으로써 적어도 부분적으로 제 2 잔차 데이터를 생성하게 하고; 그리고
    상기 제 2 잔차 데이터에 기초하여, 상기 비디오 데이터의 코딩 유닛 (CU) 의 코딩 블록을 복원하게 하는, 컴퓨터 판독가능 저장 매체.
  25. 제 24 항에 있어서,
    상기 명령들은,
    상기 하나 이상의 프로세서들로 하여금,
    상기 예측 픽셀들의 상기 비트 심도가 특정한 값 이하인 것에 기초하여, 상기 제 1 잔차 데이터의 비트 심도를 16 비트에 유지하게 하고; 그리고
    상기 예측 픽셀들의 상기 비트 심도가 상기 특정한 값 초과인 것에 기초하여, 상기 제 1 잔차 데이터에 클립핑 동작을 적용하게 함으로써
    부분적으로 상기 하나 이상의 프로세서들로 하여금 상기 입력을 클립핑하게 하는, 컴퓨터 판독가능 저장 매체.
  26. 삭제
  27. 삭제
  28. 삭제
KR1020177020971A 2015-01-30 2016-01-27 비디오 코딩을 위해 크로스-컴포넌트 예측 및 적응적 컬러 변환을 위한 클립핑 KR102060868B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201562110324P 2015-01-30 2015-01-30
US62/110,324 2015-01-30
US201562113269P 2015-02-06 2015-02-06
US62/113,269 2015-02-06
US201562115487P 2015-02-12 2015-02-12
US62/115,487 2015-02-12
US15/006,563 2016-01-26
US15/006,563 US10158836B2 (en) 2015-01-30 2016-01-26 Clipping for cross-component prediction and adaptive color transform for video coding
PCT/US2016/015149 WO2016123232A1 (en) 2015-01-30 2016-01-27 Clipping for cross-component prediction and adaptive color transform for video coding

Publications (2)

Publication Number Publication Date
KR20170108964A KR20170108964A (ko) 2017-09-27
KR102060868B1 true KR102060868B1 (ko) 2019-12-30

Family

ID=55398431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177020971A KR102060868B1 (ko) 2015-01-30 2016-01-27 비디오 코딩을 위해 크로스-컴포넌트 예측 및 적응적 컬러 변환을 위한 클립핑

Country Status (9)

Country Link
US (1) US10158836B2 (ko)
EP (1) EP3251359A1 (ko)
JP (1) JP6608454B2 (ko)
KR (1) KR102060868B1 (ko)
CN (1) CN107211151B (ko)
AU (1) AU2016211519B2 (ko)
BR (1) BR112017016380A2 (ko)
TW (1) TWI678100B (ko)
WO (1) WO2016123232A1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3198556B1 (en) * 2014-09-26 2018-05-16 Dolby Laboratories Licensing Corp. Encoding and decoding perceptually-quantized video content
EP3297282A1 (en) * 2016-09-15 2018-03-21 Thomson Licensing Method and apparatus for video coding with adaptive clipping
WO2019065487A1 (ja) * 2017-09-28 2019-04-04 シャープ株式会社 値制限フィルタ装置、動画像符号化装置および動画像復号装置
US11115660B2 (en) * 2018-04-30 2021-09-07 Mediatek Inc. Method and apparatus of syntax interleaving for separate coding tree in video coding
CN109451305B (zh) * 2018-10-26 2021-05-07 西安科锐盛创新科技有限公司 带宽压缩中的预测方法
CN113273203B (zh) * 2018-12-22 2024-03-12 北京字节跳动网络技术有限公司 两步交叉分量预测模式
US12114000B2 (en) * 2019-03-08 2024-10-08 Qualcomm Incorporated Combined residual coding in video coding
JP7233565B2 (ja) * 2019-03-24 2023-03-06 北京字節跳動網絡技術有限公司 ビデオ処理におけるマルチパラメータ適応ループフィルタリング
KR102609947B1 (ko) 2019-04-02 2023-12-04 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 양방향 광학 흐름 기반 비디오 코딩 및 디코딩
WO2020211864A1 (en) 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Region based gradient calculation in different motion vector refinements
CN113711609B (zh) 2019-04-19 2023-12-01 北京字节跳动网络技术有限公司 利用光流的预测细化过程中的增量运动矢量
CN113711608B (zh) 2019-04-19 2023-09-01 北京字节跳动网络技术有限公司 利用光流的预测细化过程的适用性
US10818083B1 (en) * 2019-04-30 2020-10-27 International Business Machines Corporation Pyramid generation via depth-first walk
CN118138754A (zh) 2019-06-14 2024-06-04 北京字节跳动网络技术有限公司 处理视频单元边界和虚拟边界
WO2021004542A1 (en) 2019-07-11 2021-01-14 Beijing Bytedance Network Technology Co., Ltd. Sample padding in adaptive loop filtering
KR20230117266A (ko) 2019-10-11 2023-08-07 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 4:4:4 크로마 포맷의 비디오 코딩 방법 및 장치
WO2021121419A1 (en) 2019-12-19 2021-06-24 Beijing Bytedance Network Technology Co., Ltd. Interaction between adaptive color transform and quantization parameters
WO2021138476A1 (en) * 2019-12-30 2021-07-08 Beijing Dajia Internet Information Technology Co., Ltd. Coding of chrominance residuals
CN115191118A (zh) 2020-01-05 2022-10-14 抖音视界有限公司 在视频编解码中使用自适应颜色变换
KR20230101946A (ko) * 2020-01-05 2023-07-06 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 4:4:4 크로마 포맷에서의 비디오 코딩의 방법들 및장치
WO2021139707A1 (en) * 2020-01-08 2021-07-15 Beijing Bytedance Network Technology Co., Ltd. Joint coding of chroma residuals and adaptive color transforms
CN115176470A (zh) * 2020-01-18 2022-10-11 抖音视界有限公司 图像/视频编解码中的自适应颜色变换
KR20220128338A (ko) * 2020-01-24 2022-09-20 소니그룹주식회사 화상 처리 장치 및 방법
WO2021150086A1 (ko) * 2020-01-25 2021-07-29 엘지전자 주식회사 Act 레지듀얼 기반 영상 또는 비디오 코딩
US12088832B2 (en) * 2020-01-25 2024-09-10 Lg Electronics Inc. Image or video coding for residuals using color space transformation
US12120299B2 (en) * 2020-01-25 2024-10-15 Lg Electronics Inc. Image or video coding based on color space conversion
WO2021252995A1 (en) 2020-06-12 2021-12-16 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding in 4:4:4 color format
US20240080463A1 (en) * 2022-09-02 2024-03-07 Tencent America LLC Cross component sample clipping
CN117612072B (zh) * 2024-01-23 2024-04-19 中国科学技术大学 一种基于动态时空图的视频理解方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060227867A1 (en) 2005-04-12 2006-10-12 Lsi Logic Corporation Method for coefficient bitdepth limitation, encoder and bitstream generation apparatus
WO2014113390A1 (en) 2013-01-16 2014-07-24 Qualcomm Incorporated Inter-layer prediction for scalable coding of video information

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1538844A3 (en) * 2003-11-26 2006-05-31 Samsung Electronics Co., Ltd. Color image residue transformation and encoding method
US8014445B2 (en) * 2006-02-24 2011-09-06 Sharp Laboratories Of America, Inc. Methods and systems for high dynamic range video coding
US9456111B2 (en) * 2010-06-15 2016-09-27 Mediatek Inc. System and method for content adaptive clipping
CN104054338B (zh) * 2011-03-10 2019-04-05 杜比实验室特许公司 位深和颜色可伸缩视频编码
US9807403B2 (en) * 2011-10-21 2017-10-31 Qualcomm Incorporated Adaptive loop filtering for chroma components
US9225991B2 (en) * 2013-05-30 2015-12-29 Apple Inc. Adaptive color space transform coding
US9648332B2 (en) * 2013-10-28 2017-05-09 Qualcomm Incorporated Adaptive inter-color component residual prediction
US9756337B2 (en) * 2013-12-17 2017-09-05 Qualcomm Incorporated Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding
US9948933B2 (en) * 2014-03-14 2018-04-17 Qualcomm Incorporated Block adaptive color-space conversion coding
US9883184B2 (en) * 2014-10-07 2018-01-30 Qualcomm Incorporated QP derivation and offset for adaptive color transform in video coding
US9468332B2 (en) * 2014-11-10 2016-10-18 Haier Us Appliance Solutions, Inc. Docking station for a beverage dispenser having a reservoir

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060227867A1 (en) 2005-04-12 2006-10-12 Lsi Logic Corporation Method for coefficient bitdepth limitation, encoder and bitstream generation apparatus
WO2014113390A1 (en) 2013-01-16 2014-07-24 Qualcomm Incorporated Inter-layer prediction for scalable coding of video information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
T. Hsieh, et al. Clipping for Cross Component Prediction and Adaptive Colour Transform. JCT-VC of ITU-T and ISO/IEC. JCTVC-T0132 Ver.1, Jan. 31, 2015. pp.1-6

Also Published As

Publication number Publication date
CN107211151B (zh) 2020-03-27
TWI678100B (zh) 2019-11-21
CN107211151A (zh) 2017-09-26
KR20170108964A (ko) 2017-09-27
US10158836B2 (en) 2018-12-18
JP2018507622A (ja) 2018-03-15
TW201633781A (zh) 2016-09-16
AU2016211519B2 (en) 2019-11-07
BR112017016380A2 (pt) 2018-03-27
JP6608454B2 (ja) 2019-11-20
AU2016211519A1 (en) 2017-07-13
US20160227224A1 (en) 2016-08-04
EP3251359A1 (en) 2017-12-06
WO2016123232A1 (en) 2016-08-04

Similar Documents

Publication Publication Date Title
KR102060868B1 (ko) 비디오 코딩을 위해 크로스-컴포넌트 예측 및 적응적 컬러 변환을 위한 클립핑
KR101918873B1 (ko) 비디오 코딩에서 교차 구성 예측과 적응형 컬러 변환의 조화
KR101977450B1 (ko) 팔레트 코딩 모드에서의 비디오 블록의 이스케이프 픽셀들의 양자화
US10097842B2 (en) Restriction of escape pixel signaled values in palette mode video coding
CN107409215B (zh) 用于视频译码的调色板模式译码
CN107710765B (zh) 用于译码视频数据的方法和装置及计算机可读存储介质
CN107113436B (zh) 用于解码视频数据的方法和装置以及计算机可读存储媒体
CN106464877B (zh) 在视频译码中确定将解块滤波应用于经调色板译码块
CA2945039C (en) Maximum palette parameters in palette-based video coding
CN107211138B (zh) 编码、解码视频数据的方法、装置和计算机可读存储媒体
CN107211139B (zh) 用于译码视频数据的方法、装置和计算机可读存储媒体
US11477484B2 (en) Video intra prediction using hybrid recursive filters
US10097837B2 (en) Palette run hiding in palette-based video coding
US10158866B2 (en) Parsing dependency reduction for palette index coding
US20150365671A1 (en) Determining quantization parameter (qp) values and delta qp values for palette coded blocks in video coding
US20160227254A1 (en) Coding palette run in palette-based video coding
US9961351B2 (en) Palette mode coding

Legal Events

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