KR20160077166A - 차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측 - Google Patents
차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측 Download PDFInfo
- Publication number
- KR20160077166A KR20160077166A KR1020167014066A KR20167014066A KR20160077166A KR 20160077166 A KR20160077166 A KR 20160077166A KR 1020167014066 A KR1020167014066 A KR 1020167014066A KR 20167014066 A KR20167014066 A KR 20167014066A KR 20160077166 A KR20160077166 A KR 20160077166A
- Authority
- KR
- South Korea
- Prior art keywords
- partition
- gain
- frame
- value
- partitions
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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 picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/527—Global motion vector estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Systems (AREA)
- Image Analysis (AREA)
Abstract
비디오 코딩을 위한 컴퓨터로 구현된 방법은, 현재 프레임과 현재 프레임을 위한 움직임 보상 참조 프레임으로서 사용할 디코딩된 참조 프레임을 갖는 픽셀 데이터의 프레임들을 획득하는 단계와, 파티션 패턴을 선택하는 단계와, 참조 프레임에 대한 밝기 이득 보상 값을 결정하는 단계와, 이득 보상 값에 의해 조절되는 참조 프레임의 파티션의 밝기를 조절함으로써 국부적으로 적응적인 이득 보상을 적용하는 단계를 포함한다.
Description
관련 출원
본 출원은 2013년 12월 27일 출원된 국제 출원 제PCT/US2013/078114호(이의 개시는 모든 목적을 위해 그 전체로서 본 문서에 명시적으로 포함됨)의 이익을 주장한다.
비디오 인코더(encoder)는 주어진 대역폭 상에서 더 많은 정보가 전송될 수 있도록 비디오 정보를 압축한다. 그러면 압축된 신호는 디스플레이 전에 그 신호를 디코딩하거나(decode) 압축해제하는(decompress) 디코더(decoder)를 갖는 수신기에 발신될 수 있다.
고효율 비디오 코딩(High Efficient Video Coding: HEVC)은 최신 비디오 압축 표준인데, 이는 ISO/IEC 동화상 전문가 그룹(Moving Picture Experts Group: MPEG) 및 ITU-T 비디오 코딩 전문가 그룹(Video Coding Experts Group: VCEG)에 의해 형성된 비디오 코딩 공동 협력 팀(Joint Collaborative Team on Video Coding: JCT-VC)에 의해 개발되고 있다. HEVC는 이전의 H.264/AVC(Advanced Video Coding) 표준이 더 높은 해상도의 비디오 애플리케이션을 발달시키기 위한 충분한 압축을 제공하지 않는 것에 응하여 개발되고 있다. 이전의 비디오 코딩 표준들과 유사하게, HEVC는 인트라/인터 예측(intra/inter prediction), 변환(transform), 양자화(quantization), 루프내 필터링(in-loop filtering) 및 엔트로피 코딩(entropy coding)과 같은 기본적인 기능적 모듈들을 포함한다.
진행중인 HEVC 표준은 허용된 예측 파티션(prediction partition) 및 코딩 파티션(coding partition)을 위한 제한적인 선택, 제한적인 허용된 여러 참조 및 예측 생성, 제한적인 변환 블록 크기 및 실제 변환, 코딩 아티팩트(coding artifact)를 줄이기 위한 제한적인 메커니즘, 그리고 비효율적인 엔트로피 인코딩 기법과 같은 H.264/AVC 표준의 제한사항들을 능가하고자 시도할 수 있다. 그러나, 진행중인 HEVC 표준은 그러한 문제를 풀기 위해 반복적인 접근법들을 사용할 수 있다.
예를 들면, 압축될 비디오의 증가 일로인(ever increasing) 해상도 및 높은 비디오 품질의 기대와 함께, H.264와 같은 기존의 비디오 코딩 표준들 또는 심지어 H.265/HEVC와 같은 진전중인 표준들을 사용하는 코딩을 위해 요구되는 대응하는 비트레이트(bitrate)/대역폭은 비교적 높다. 앞서 언급된 표준들은 불충분한 압축/품질 문제를 암암리에 다루기 위해 전통적인 접근법들의 확장된 형태들을 사용하지만, 흔히 그 결과들은 제한적이다.
차세대 비디오(Next Generation Video: NGV) 코덱(codec) 프로젝트의 맥락 내에서 전개되는 본 설명은, 달성가능한 압축 효율을 최대화하면서도 여전히 디바이스에서의 구현을 위해 충분히 실용적인 고급 비디오 코덱(advanced video codec)을 설계하는 일반적인 문제를 다룬다. 예를 들면, 양호한 디스플레이의 가용성으로 인해 비디오의 해상도가 증가 일로이고 높은 비디오 품질이 기대됨에 따라, 초기 MPEG 표준들 및 심지어 보다 최근의 H.264/AVC 표준과 같은 기존의 비디오 코딩 표준들을 사용하면서 요구되는 대응하는 비트레이트/대역폭은 비교적 크다. H.264/AVC는 더 높은 해상도의 비디오 애플리케이션을 발달시키기 위한 충분히 높은 압축을 제공하고 있는 것으로 인식되지 않았다.
본 문서에서 기술된 내용은 첨부된 도면 내에서 한정이 아니고 예로서 보여진다. 예시의 단순성 및 명확성을 위해, 도면 내에 예시된 구성요소는 반드시 축척에 맞게 그려지지는 않는다. 예컨대, 몇몇 구성요소의 치수는 명확성을 위해 다른 구성요소에 비해 과장될 수 있다. 또한, 적절하다고 여겨지는 경우에, 참조 라벨은 대응하는 또는 유사한 구성요소를 나타내기 위해 도면들 중에 반복되었다. 도면들에서,
도 1은 예시적인 차세대 비디오 인코더의 설명도(illustrative diagram)이고,
도 2는 예시적인 차세대 비디오 디코더의 설명도이며,
도 3a는 예시적인 차세대 비디오 인코더 및 서브시스템들의 설명도이고,
도 3b는 예시적인 차세대 비디오 디코더 및 서브시스템들의 설명도이며,
도 4는 수정된 예측 참조 픽처의 설명도이고,
도 5는 초해상도(super-resolution) 합성된 참조 프레임을 제공하는 방법을 설명하기 위한 프레임 시퀀스(frame sequence)의 도해이며,
도 6은 예시적인 인코더 서브시스템의 설명도이고,
도 7은 예시적인 디코더 서브시스템의 설명도이며,
도 8은 예시적인 인코더 예측 서브시스템의 설명도이고,
도 9는 예시적인 디코더 예측 서브시스템의 설명도이며,
도 10 내지 도 11은 밝기 변화가 있는 프레임을 도시하고,
도 12 내지 도 13은 밝기 변화가 있는 프레임을 도시하며,
도 14 내지 도 15는 밝기 변화가 있는 프레임을 도시하고,
도 16 내지 도 17은 밝기 변화가 있는 프레임을 도시하며,
도 18 내지 도 19는 밝기 변화가 있는 프레임을 도시하고,
도 20 내지 도 21은 밝기 변화가 있는 프레임을 도시하며,
도 22는 밝기에서의 인터 프레임(inter-frame) 변화의 보상(compensation)을 수행하는 방법의 흐름도이고,
도 23은 참조 프레임을 수정하기 위한 이득 보상(gain compensation)의 다른 방법의 흐름도이며,
도 24는 참조 프레임을 수정하기 위한 이득 보상의 상세화된 방법의 흐름도이고,
도 25는 이득 보상을 위한 파티션 패턴이며,
도 26은 파티션 패턴 인덱스(index) 번호들과, 파티션들의 크기 및 배열의 코드북 표(codebook table)이고,
도 27은 이득 값 및 오프셋 값을 계산하기 위한 이득 보상 로직의 도해이며,
도 28은 이득 값 및 오프셋 값을 계산하기 위한 다른 이득 보상 로직의 도해이고,
도 29a 내지 도 29b는 절대차 합(Sum of Absolute Differences: SAD)을 사용하는 파티션 패턴 효과의 표이며,
도 30a 내지 도 30b는 여덟 개 비트로의 이득 파라미터(gain parameter) a의 양자화를 위한 표이고,
도 31a 내지 도 31b는 여덟 개 비트로의 루마 오프셋 파라미터(luma offset parameter) b의 양자화를 위한 표이며,
도 32는 인코더에서의 이득 보상 서브시스템의 도해이고,
도 33은 디코더에서의 이득 보상 서브시스템의 도해이며,
도 34는 예시적인 비디오 코딩 시스템 및 동작중인 비디오 코딩 프로세스의 도해이고,
도 35는 예시적인 비디오 코딩 시스템의 설명도이며,
도 36은 예시적인 시스템의 설명도이고,
도 37은 예시적인 디바이스를 보여준다.
도 1은 예시적인 차세대 비디오 인코더의 설명도(illustrative diagram)이고,
도 2는 예시적인 차세대 비디오 디코더의 설명도이며,
도 3a는 예시적인 차세대 비디오 인코더 및 서브시스템들의 설명도이고,
도 3b는 예시적인 차세대 비디오 디코더 및 서브시스템들의 설명도이며,
도 4는 수정된 예측 참조 픽처의 설명도이고,
도 5는 초해상도(super-resolution) 합성된 참조 프레임을 제공하는 방법을 설명하기 위한 프레임 시퀀스(frame sequence)의 도해이며,
도 6은 예시적인 인코더 서브시스템의 설명도이고,
도 7은 예시적인 디코더 서브시스템의 설명도이며,
도 8은 예시적인 인코더 예측 서브시스템의 설명도이고,
도 9는 예시적인 디코더 예측 서브시스템의 설명도이며,
도 10 내지 도 11은 밝기 변화가 있는 프레임을 도시하고,
도 12 내지 도 13은 밝기 변화가 있는 프레임을 도시하며,
도 14 내지 도 15는 밝기 변화가 있는 프레임을 도시하고,
도 16 내지 도 17은 밝기 변화가 있는 프레임을 도시하며,
도 18 내지 도 19는 밝기 변화가 있는 프레임을 도시하고,
도 20 내지 도 21은 밝기 변화가 있는 프레임을 도시하며,
도 22는 밝기에서의 인터 프레임(inter-frame) 변화의 보상(compensation)을 수행하는 방법의 흐름도이고,
도 23은 참조 프레임을 수정하기 위한 이득 보상(gain compensation)의 다른 방법의 흐름도이며,
도 24는 참조 프레임을 수정하기 위한 이득 보상의 상세화된 방법의 흐름도이고,
도 25는 이득 보상을 위한 파티션 패턴이며,
도 26은 파티션 패턴 인덱스(index) 번호들과, 파티션들의 크기 및 배열의 코드북 표(codebook table)이고,
도 27은 이득 값 및 오프셋 값을 계산하기 위한 이득 보상 로직의 도해이며,
도 28은 이득 값 및 오프셋 값을 계산하기 위한 다른 이득 보상 로직의 도해이고,
도 29a 내지 도 29b는 절대차 합(Sum of Absolute Differences: SAD)을 사용하는 파티션 패턴 효과의 표이며,
도 30a 내지 도 30b는 여덟 개 비트로의 이득 파라미터(gain parameter) a의 양자화를 위한 표이고,
도 31a 내지 도 31b는 여덟 개 비트로의 루마 오프셋 파라미터(luma offset parameter) b의 양자화를 위한 표이며,
도 32는 인코더에서의 이득 보상 서브시스템의 도해이고,
도 33은 디코더에서의 이득 보상 서브시스템의 도해이며,
도 34는 예시적인 비디오 코딩 시스템 및 동작중인 비디오 코딩 프로세스의 도해이고,
도 35는 예시적인 비디오 코딩 시스템의 설명도이며,
도 36은 예시적인 시스템의 설명도이고,
도 37은 예시적인 디바이스를 보여준다.
첨부 도면을 참조하여 이제 하나 이상의 구현이 기술된다. 특정 구성 및 배열이 논의되나, 이것은 단지 예시적인 목적으로 행해짐이 이해되어야 한다. 관련 업계에서 숙련된 자는 당 설명의 사상 및 범주로부터 벗어나지 않고서 다른 구성 및 배열이 이용될 수 있음을 인식할 것이다. 본 문서에 기술된 것이 아닌 여러 가지 다른 시스템 및 애플리케이션에서 본 문서에 기술된 기법들 및/또는 배열들이 또한 이용될 수 있음은 관련 업계의 숙련자들에게 명백할 것이다.
이하의 서술은 예컨대 시스템 온 칩(System-on-a-Chip: SoC) 아키텍처와 같은 아키텍처들 내에 시현될(manifested) 수 있는 다양한 구현을 개진하나, 본 문서에 기술된 기법들 및/또는 배열들의 구현은 특정한 아키텍처들 및/또는 컴퓨팅 시스템들에 제한되지 않으며 유사한 목적을 위한 임의의 아키텍처 및/또는 컴퓨팅 시스템에 의해 구현될 수 있다. 예를 들면, 가령 여러 집적 회로(Integrated Circuit: IC) 칩 및/또는 패키지를 이용하는 다양한 아키텍처, 그리고/또는 다양한 컴퓨팅 디바이스 및/또는 가전(Consumer Electronic: CE) 디바이스, 예를 들어 셋톱 박스(set top box), 스마트폰(smart phone) 등등은, 본 문서에 기술된 기법들 및/또는 배열들을 구현할 수 있다. 또한, 이하의 서술은 로직 구현, 시스템 컴포넌트의 유형 및 상호관계, 로직 파티셔닝/통합(logic partitioning/integration) 선택 등등과 같은 다수의 특정 세부사항을 개진할 수 있으나, 청구된 대상물(claimed subject matter)은 그러한 특정 세부사항 없이 실시될 수 있다. 다른 사례에서, 예컨대 제어 구조들과 전체 소프트웨어 명령어 시퀀스들과 같은 어떤 내용은, 본 문서에 개시된 내용을 모호하게 하지 않기 위해서 상세히 보여지지 않을 수 있다.
본 문서에 개시된 내용은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 본 문서에 개시된 내용은, 하나 이상의 프로세서에 의해 판독되고 실행될 수 있는, 머신 판독가능 매체(machine-readable medium) 상에 저장된 명령어로서 또한 구현될 수 있다. 머신 판독가능 매체는 머신(가령, 컴퓨팅 디바이스)에 의해 판독가능한 형태의 정보를 저장하거나 송신하기 위한 임의의 매체 및/또는 메커니즘을 포함할 수 있다. 예컨대, 머신 판독가능 매체는 판독 전용 메모리(Read Only Memory: ROM), 랜덤 액세스 메모리(Random Access Memory: RAM), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스, 전기, 광학, 음향 또는 다른 형태의 전파되는(propagated) 신호(가령, 반송파, 적외선 신호, 디지털 신호 등등) 및 다른 것을 포함할 수 있다.
명세서 내에서의 "하나의 구현", "일 구현", "일 예시적 구현" 등등의 언급은, 기술된 구현이 특정한 특징, 구조 또는 특성을 포함할 수 있음을 나타내나, 실시예 하나하나가 반드시 특정한 특징, 구조 또는 특성을 포함하지는 않을 수 있다. 더욱이, 그러한 구문은 반드시 동일한 구현을 나타내고 있지는 않다. 또한, 특정한 특징, 구조 또는 특성이 일 실시예와 관련하여 기술되는 경우, 본 문서에 명시적으로 기술된 것이든 또는 그렇지 않은 것이든 다른 구현과 관련하여 그러한 특징, 구조 또는 특성을 이루어내는 것은 당업자의 지식 내에 있음이 제시된다.
비디오 코딩을 위한 이득 보상 예측에 관련된 시스템, 장치, 제품 및 방법이 후술된다.
앞서 논의된 바와 같이, H.264/AVC 코딩 표준은 그것이 과거의 MPEG 표준들을 능가하는 개선을 나타내나, 그것은 여전히 다음의 이유로 인해 예측의 선택에서 매우 제한적이다: 허용된 예측 파티션을 위한 선택은 매우 제한적임, 예측 파티션을 위한 예측의 정확도는 제한적임, 그리고 허용된 여러 참조 예측은 많은 프레임에 걸친 해상도의 축적(accumulation)보다는 과거의 디코딩된 프레임에 기반하여 이산적(discrete)이므로 매우 제한적임. H.264와 같은 최신식 표준들의 앞서 언급된 제한들은 이 제한들을 해결하는 반복적인 접근법을 사용하는 HEVC에서의 진행중인 작업에 의해 인식된다.
또한, 개선된 예측의 문제는 비디오의 인터 프레임 코딩에서의 움직임 보상된(motion compensated) 예측을 위해 과거 및/또는 장래의 디코딩된 여러 참조를 사용함으로써 현재 임시변통(ad hoc) 방식으로 해결되고 있다. 이것은, 과거 또는 장래의 프레임 내에는, (B-픽처/슬라이스를 위한) 과거 및 장래의 프레임에서나 (P-픽처/슬라이스를 위한) 과거의 프레임에서보다 예측되고 있는 현재의 프레임의 영역과 더욱 유사한 영역이 몇 개 있을지도 모른다는 희망으로 행해진다.
더욱 상세히 후술될 바와 같이, 몇몇 형태의 예측, 예를 들어 이 개시의 이득 보상 예측 절차는, 기존의 표준들에 의해 지원가능하지 않을 수 있다. 본 개시는 압축 효율을 최대화하면서 디바이스에서의 구현을 위해 여전히 실용적인 새로운 비디오 코딩 방안을 설계하는 문제를 다루기 위한 차세대 비디오(Next Generation Video: NGV) 코덱 프로젝트의 맥락 내에서 개발되었다. 구체적으로, (결국 예측 오차를 감소시키는 개선된 예측을 제공하여) 전체적인 비디오 코딩 효율을 개선하는 것으로서 비디오 장면 내의 밝기(brightness)에서의 국부적(local) 변화를 보상하는 국부적으로 적응적인 이득 보상된 예측(locally adaptive gain compensated prediction)(또는 간단히 이득 보상 예측)으로 불리는 새로운 유형의 예측이 본 문서에 개시된다.
더욱 구체적으로, 본 문서에 기술된 기법들이 표준 기반 접근법들과는 상이할 수 있는데 그것은 더 높은 압축을 달성하기 위해 비디오 코딩 프로세스 내에 상당한 콘텐츠 기반 적응성(content based adaptivity)을 선천적으로 포함시키기 때문이다. 비교해 보면, 표준 기반 비디오 코딩 접근법들은 통상 레거시(legacy) 접근법들의 미세한 튜닝과 적응들에 의해 더 높은 이득을 쥐어 짜내는 경향이 있다. 예를 들면, 모든 표준 기반 접근법은 이득을 달성하기 위해 예측 차이를 감소시키는 주요 수단으로서 움직임 보상된 인터프레임 코딩의 적응 및 추가의 미세변경(tweaking)에 과하게 의존한다. 반면에, 본 문서에 개시된 몇몇 비디오 코딩 구현은, 움직임으로 인한 인터프레임 차이를 활용하는 것에 더하여, 오직 과거의 디코딩된 프레임 또는 과거와 장래의 디코딩된 프레임들의 조합으로부터 합성된 프레임의 예측 이익뿐만 아니라, 통상의 비디오 장면 내에 선천적으로 존재하는 다른 유형의 인터프레임 차이(이득, 블러(blur), 레지스트레이션(registration))를 또한 활용한다. 본 문서에 개시된 몇몇 비디오 코딩 구현에서, 예측을 위해 사용되는 합성된 프레임은 우세 움직임 보상된(Dominant Motion Compensated: DMC) 프레임, 초해상도(Super Resolution: SR) 프레임 및 투영된 보간(Projected Interpolation) 프레임을 포함한다. 움직임 이외에 인터프레임 차이의 다른 소스를 활용하는 문제점 외에, 본 문서에 개시된 몇몇 비디오 코딩 구현은 다른 점에서도 역시 표준들과는 상이하다.
이득 보상에 관해서, 움직임에 의해 유발되는 밝기에서의 변화는 차치하고, 때때로 밝기에서의 갑작스런 변화는 페이드 인(fade-in), 페이드 아웃(fade-out)과 같은 편집 효과로 인해, 또는 크로스페이드(crossfade)로 인해 전역적(global)일 수 있다. 그러나, 더더욱 많은 경우에, 밝기에서의 그러한 변화는 예를 들면 깜박거리는 빛, 카메라 플래시, 폭발, 연극이나 음악 공연에서의 유색 섬광 및 기타 등등으로 인해 국부적인데, 도 10 내지 도 21에 예들이 도시된다. 과거에는, 성공적으로 다루어지지 않았던 국부적 보상 밝기 변화와는 대조되는 전역적인 밝기 변화를 위한 기법들만 개시되었다.
압축과 연계된 밝기의 보상은 또한 추가적인 문제를 제기한다. 전역적이든 또는 국부적이든, 효율적인 압축을 위한 밝기의 보상은 인코더 및 디코더 양자 모두에서 적용되고 이에 따라, 밝기 변화 파라미터들(이득 및 오프셋)이 인코더로부터 디코더로 비트스트림(bitstream)을 통하여 적은 비트 비용(bit-cost)으로써 효율적으로 통신되어야 한다. 인코더 및 디코더에서의 처리는 역시 낮은 복잡도의 것이어야 한다. 밝기에서의 전역적 변화의 경우에 있어서, 인코더에서 결정된 프레임을 위한 파라미터들의 하나의 세트(예컨대, 최적합(best fit))가 인코더로부터 디코더로 통신되어야 한다. 이 배열은 여전히 더욱 효율적이며, (오버헤드 집약적(overhead intensive)일 수 있는) 어떤 종류의 맵(map)뿐만 아니라 디코더에서 사용할 최선의 파라미터를 결정하기 위해 프레임을 위한 여러, 대안적인, 밝기 변화 파라미터들을 발신함으로써 디코더에서는 국부적으로 달라지는 밝기 변화보다 덜 복잡한 처리를 사용한다.
이 어려운 일들은, 본 문서에 기술된 이득의 국부적으로 적응적인 보상에 의한 개선된 예측을 포함하여 NGV 비디오 코딩 시스템에 의해 사용되는 새롭고 혁신적인 접근법들에 의해 다루어진다. 디코딩된 참조 프레임에 비해서 코딩될 프레임 사이에, 페이드, 깜박거리는 빛, 카메라 플래시 및 기타 등등에 의해 유발되는 밝기에서의 변화를 보상함으로써, 예측 차이(또는 오차)가 감소되어, 압축 효율을 개선할 수 있다.
본 문서에서 사용되는 바와 같이, 용어 "코더"(coder)는 인코더 및/또는 디코더를 나타낼 수 있다. 유사하게, 본 문서에서 사용되는 바와 같이, 용어 "코딩"(coding)은 인코더를 통하여 비디오 인코딩을 수행하는 것 및/또는 디코더를 통하여 비디오 디코딩을 수행하는 것을 나타낼 수 있다. 예컨대, 비디오 인코더 및 비디오 디코더는 양자 모두 비디오 데이터를 코딩하는 것이 가능한 코더의 예일 수 있다. 추가로, 본 문서에서 사용되는 바와 같이, 용어 "코덱"(codec)은, 예컨대 인코더 및/또는 디코더를 구현할 수 있는 소프트웨어, 펌웨어 및/또는 하드웨어의 임의의 조합과 같은 동작들의 임의의 세트, 프로그램 또는 프로세스를 나타낼 수 있다. 또한, 본 문서에서 사용되는 바와 같이, 구문 "비디오 데이터"(video data)는, 예컨대 비디오 프레임, 이미지 데이터, 인코딩된 비트 스트림 데이터, 또는 유사한 것과 같이 비디오 코딩과 연관된 임의의 유형의 데이터를 나타낼 수 있다.
도 1은 본 개시의 적어도 몇몇 구현에 따라 배열된, 예시적인 차세대 비디오 인코더(100)의 설명도이다. 도시된 바와 같이, 인코더(100)는 입력 비디오(101)를 수신할 수 있다. 입력 비디오(101)는, 예컨대 비디오 시퀀스의 입력 프레임과 같은, 인코딩을 위한 임의의 적합한 입력 비디오를 포함할 수 있다. 도시된 바와 같이, 입력 비디오(101)는 콘텐츠 사전 분석기 모듈(content pre-analyzer module)(102)을 통하여 수신될 수 있다. 콘텐츠 사전 분석기 모듈(102)은 비디오 코딩 효율 및 속도 성능을 개선하기 위한 다양한 유형의 파라미터를 결정하기 위해 입력 비디오(101)의 비디오 프레임의 콘텐츠의 분석을 수행하도록 구성될 수 있다. 예컨대, 콘텐츠 사전 분석기 모듈(102)은 수평 및 수직 그래디언트(gradient) 정보(예컨대, Rs, Cs), 분산(variance), 픽처당 공간적 복잡도(spatial complexity per picture), 픽처당 시간적 복잡도(temporal complexity per picture)(tpcpx), 장면 변화 검출(scene change detection), 움직임 범위 추정(motion range estimation), 이득 검출(gain detection), 예측 거리 추정(prediction distance estimation)(pdist), 객체 수 추정(number of objects estimation), 영역 경계 검출(region boundary detection), 공간적 복잡도 맵 계산(spatial complexity map computation), 초점 추정(focust estimation), 필름 입도 추정(film grain estimation), 또는 유사한 것을 결정할 수 있다. 콘텐츠 사전 분석기 모듈(102)에 의해 생성되는 파라미터는 인코더(100)에 의해 (가령, 인코드 제어기(encode controller)(103)를 통하여) 사용되고/되거나 양자화되어 디코더로 통신될 수 있다. 도시된 바와 같이, 비디오 프레임 및/또는 다른 데이터가 콘텐츠 사전 분석기 모듈(102)로부터 적응적 픽처 조직화기 모듈(adaptive picture organizer module)(104)(계층적 픽처 그룹 구조 조직화기(hierachical picture group structure organizer)로도 지칭됨)로 송신될 수 있다. 적응적 조직화기 모듈(104)은 픽처 그룹 구조 및 그룹 내 각 픽처의 픽처 유형을 결정하는 데다가 필요에 따라 인코딩 순서로 픽처들을 재순서화한다(reorder). 적응적 조직화기 모듈(104)은 픽처 그룹 구조 및 픽처 유형을 나타내는 제어 신호를 출력한다(시스템(100) 상에 도시된 출력/입력 제어를 위한 약어가 아래에 상술된다). 본 문서에 기술된 NGV 코딩은 I-픽처(인트라 코딩), P-픽처(과거의/이전의 참조 프레임으로부터의 인터 예측으로부터 형성됨) 및 F-픽처(후술되는 바와 같이 기능적인 것임)를 사용한다. 몇몇 경우에, B-픽처가 또한 사용될 수 있다. 몇몇 예에서, 적응적 픽처 조직화기 모듈(104)은 프레임 부분들을 생성하도록 구성된 프레임 부분 생성기(frame portion generator)를 포함할 수 있다. 몇몇 예에서, 콘텐츠 사전 분석기 모듈(102) 및 적응적 픽처 조직화기 모듈(104)은 함께 인코더(100)의 사전 조작기 서브시스템(pre-analyzer subsystem)으로 간주될 수 있다.
도시된 바와 같이, 비디오 프레임 및/또는 다른 데이터가 적응적 픽처 조직화기 모듈(104)로부터 예측 파티션 생성기 모듈(prediction partitions generator module)(105)로 송신될 수 있다. 몇몇 예에서, 예측 파티션 생성기 모듈(105)은 우선 프레임 또는 픽처를 타일(tile)들 또는 초단편(super-fragment)들 또는 유사한 것으로 분할할 수 있다(본 문서에서 용어 프레임, 픽처 및 이미지는, 달리 언급될 때를 제외하고, 그리고 반드시 특정 픽처 유형(예컨대 I, P, F 또는 B -픽처)이 할당되는 것은 아닌 프레임을 일반적으로 나타내도록 프레임이 사용되는 것을 제외하고는 교체가능하게 사용될 수 있다). 몇몇 예에서, (예컨대, 모듈들(104 및 105) 간의) 추가적인 모듈이 프레임을 타일들 또는 초단편들 또는 유사한 것으로 분할하기 위해 제공될 수 있다. NGV 코딩을 위한 하나의 예에 의해서, 프레임은 32 x 32 또는 64 x 64 픽셀의 타일들로 분할될 수 있는데 여기서 64 x 64가 모든 픽처 유형(I-, P-, 또는 F-)의 코딩을 위한 모든 표준 정의 및 더 높은 해상도의 비디오를 위해 사용된다. 저해상도 시퀀스에 대해서, 64 x 64가 I- 및 F-픽처의 코딩을 위해 여전히 사용되나, 32 x 32가 P-픽처를 위해 사용된다.
하나의 예에 의해서, 예측 파티션 생성기 모듈(이는 또한 예측 KdTree/BiTree 파티션 생성기(Pred KdTree/BiTree Partitions Generator)로 지칭될 수 있음)(105)이 이후 각각의 타일 또는 초단편을 잠재적인 예측 파티셔닝들 또는 파티션들로 분할할 수 있다. 몇몇 예에서, 잠재적 예측 파티셔닝은 예컨대 k-d 트리 파티셔닝 기법(k-d tree partitioning technique), bi-tree 파티셔닝 기법(bi-tree partitioning technique), 또는 유사한 것과 같은 파티셔닝 기법을 사용하여 결정될 수 있는데, 이는 개별적인 비디오 프레임의 픽처 유형(예컨대, I-, P-, 또는 F-픽처), 파티셔닝되고 있는 프레임 부분의 특성, 또는 유사한 것에 기반하여 결정될 수 있다. 하나의 예에 의해서, 만약 I-픽처가 코딩되고 있는 경우, 세트 최소 크기에 도달될 때까지, 그리고 한 번에 하나의 차원에서 공간을 분할할 수 있는 KdTree 기반 파티션들로 타일 하나하나, 또는 거의 모든 타일이 추가로 분할된다. 공간을 분할하기 위한 옵션들은 어떠한 추가의 분할도 포함하지 않거나, 두 개의 동등한 절반으로의 분할, 공간의 1/4 및 3/4인 두 부분으로의 분할, 또는 공간의 3/4 및 1/4인 두 부분으로의 분할을 포함할 수 있다. 그래서, 최대 크기로서 64 x 64를 사용(하고 4 x 4의 최소 크기를 허용)하는 I-픽처와 함께, 만약 어떠한 다른 제약도 부과되지 않는 경우 타일의 매우 많은 수의 파티션들이 생성될 수 있다. 예컨대, 하나의 제약은, 네 개의 32 x 32 서브타일(sub-tile)들이 형성되고, 이후 KdTree 파티셔닝에 의해 각각의 32 x 32 서브타일을 서브파티셔닝(sub-partitioning)하도록 64 x 64 타일이 수평 및 수직 차원 양자 모두에서 공간을 양분하기 위해 제1 커트 쌍(pair of cuts)이 미리 결정된다고 설정하는 것이다. 가능한 파티션 조합의 수를 감소시키기 위해 다른 제한이 또한 가능하다.
I-픽처 타일의 이 파티션들은 예측 파티션들로 지칭되는데, 각각의 타일 파티션이 공간적 예측(spatial prediction)(방향 각 예측(directional angular prediction) 또는 다른 유형의 예측) 및 예측 차이의 코딩을 위해 사용될 수 있기 때문이다. 마찬가지로, 더 낮은 해상도에 대해서 P-픽처 파티션들이 32 x 32 타일로 시작하는 것을 제외하고는, 예측을 위해 이 방식으로 P-픽처 타일들이 또한 파티셔닝될 수 있고, KdTree 기반 파티션들이 사용되지 않되, 오히려 더 단순한 Bi-Tree 파티셔닝이 사용된다. Bi-Tree 파티셔닝은 공간을, 한 번에 하나의 차원이되, 두 차원들 사이에서 번갈아가면서, 두 개의 동등한 부분들로 분할한다. 또한 P-픽처 파티션들은 공간적 예측보다는 (하나 이상의 참조와 함께) 움직임을 사용하여 주로 예측되는데, 다만 몇몇 서브파티션들은, 예를 들면, 드러난(uncovered) 배경을 취급하기 위해 인트라 공간적 예측(intra spatial prediction)을 사용할 수 있기는 하다. 더 높은 해상도의 픽처 크기로의 표준 정의에 있어서, P-픽처는 분할되기 전 64 x 64 타일들로 시작한다. 끝으로, F-픽처가 또한 Bi-Tree 파티셔닝을 사용하며 (하나 이상의 파티션과 함께) 움직임을 주로 사용하는 예측 파티션들을 생성하기 위해 64 x 64 타일들로 시작하는데, 다만 몇몇 서브파티션들은 (인트라 코딩(intra coding)을 위해) 공간적 예측을 또한 사용할 수 있기는 하다.
NGV 코딩에서, 인터 예측 데이터의 생성에는 예측을 생성하는 데에 단지 움직임 벡터를 사용하는 것보다 훨씬 더 많은 것이 있으며, 다른 데에서 논의된다. P- 및 F-픽처 코딩에서, 각각의 서브파티션의 예측은 예측 모드를 포함시키는 것에 의해 식별된다. 예측 모드는 스킵(skip), 오토(auto), 인트라(intra), 인터(inter), 멀티(multi) 및 스플리트(split)를 포함한다. 스킵 모드는, 예컨대, 참조 프레임으로부터, 재구성되고 있는 현재 프레임까지 변화가 비교적 별로 또는 전혀 없어서 픽셀 데이터가 인코딩될 필요가 없고 디코딩될 때 하나의 프레임에서 다른 프레임으로 그저 복사되는 경우 예측 코딩을 건너뛰기 위해 사용된다. 오토 모드는, 예컨대, 움직임 벡터가 필요하지 않을 수 있지만 변환 계수들은 데이터를 코딩하는 데에 여전히 사용되도록, 오직 부분적인 데이터가 필요한 경우에 사용된다. 인트라 모드는 프레임 또는 파티션이 공간적으로 코딩됨을 의미한다. 스플리트는 프레임 또는 파티션이 코딩되기 전에 더 작은 부분들 또는 파티션들로 나뉠 필요가 있음을 의미한다. 인터 모드는 현재의 프레임을 위해 여러 참조 프레임이 결정되고, 각각의 참조를 따로따로 사용함으로써 움직임 추정들이 획득되며, 이후 최선의 결과가 움직임 예측 데이터를 위해 사용됨을 의미한다. 멀티 모드는 또한 여러 참조 프레임을 사용하지만, 이 경우에, 여러 참조 프레임으로부터의 움직임 추정 데이터는 예측을 위해 사용될 단일 결과를 획득하기 위해 조합된, 예를 들어 평균화된(averaged) 또는 가중 평균화된(weighted averaged) 것이다.
예측 파티션 생성기 모듈(105)의 출력들 중 하나는 타일의 수백 개의 잠재적인 파티셔닝들(그리고 파티셔닝에 대해 놓인 제한들에 따라 많거나 적음)일 수 있다. 이 파티셔닝들은 1...m으로 인덱싱되며(indexed) 사용을 위해 최선의 가능한 예측 파티셔닝을 선택하도록 인코드 제어기(103)에 제공된다. 언급된 바와 같이, 결정된 잠재적인 예측 파티셔닝들은 예측을 위한 파티션들(예컨대, 인터 또는 인트라 예측)일 수 있고 예측 파티션들 또는 예측 블록들 또는 유사한 것으로 기술될 수 있다.
몇몇 예에서, 선택된 예측 파티셔닝(예컨대, 예측 파티션들)이 잠재적 예측 파티셔닝들로부터 결정될 수 있다. 예컨대, 선택된 예측 파티셔닝은, 인트라 예측 또는 움직임 기반 다중 참조(multi-reference) 예측 및 특성을 사용하는 예측을 각각의 잠재적 예측 파티셔닝에 대해 결정하는 것과, 예측 파라미터들을 결정하는 것에 기반할 수 있다. 각각의 잠재적 예측 파티셔닝에 대해, 원래의 픽셀들을 예측 픽셀들과 차이 계산을 함(differencing)으로써 잠재적 예측 오차가 결정될 수 있고, 선택된 예측 파티셔닝은 최소 예측 오차를 갖는 잠재적 예측 파티셔닝일 수 있다. 다른 예에서, 선택된 예측 파티셔닝은 예측 파티셔닝과 연관된 예측 오차 및 파티셔닝을 코딩하기 위한 비트의 수에 기반하는 가중화된 채점(weighted scoring)을 포함하는 레이트 왜곡 최적화(rate distortion optimization)에 기반하여 결정될 수 있다.
도시된 바와 같이, 선택된 예측 파티셔닝(예컨대, 현재 프레임의 예측 파티션들)의 원래 픽셀들은 예측된 파티션들(예컨대, 참조 프레임이나 프레임들에 기반한 현재 프레임의 예측 파티션의 예측과 인터 또는 인트라 예측 데이터와 같은 다른 예측성 데이터)과의 차이 계산이 차이 계산기(differencer)(106)에서 될 수 있다. 예측된 파티션들의 결정은 추가로 후술될 것이고 도 1에 도시된 바와 같은 디코드 루프(decode loop)(135)를 포함할 수 있다. 차이들에 관해, 원래의 파티셔닝된 블록들은 또한 인코딩을 보증하는 어떠한 잔차 신호(residual signal)라도 존재하는지 여부를 결정하기 위해 예측 블록들과의 차이 계산이 된다. 그러므로, 어떤 서브파티션들에 대해서는 예측이 충분하였을 수 있으므로 타일의 모든 서브파티션이 (예컨대 변환 코딩(transform coding)을 사용하여) 실제로 코딩될 필요가 있는 것은 아니다.
아니면, 파티션이 단지 예측만(예를 들어 단지 움직임 보상만)에 의해 보상될 수 없음을 나타내는, 차이 계산으로부터의 임의의 잔차 또는 잔차 데이터(예컨대, 파티션 예측 오차 데이터)는 변환 코딩을 위한, 그리고 특히 하나의 예에 의해서는 P-픽처 및 F-픽처를 위한, 더 작은 파티션들(코딩 파티션들)로 추가로 서브파티셔닝되도록 코딩 파티션 생성기 모듈(coding partitions generator module)(또는 하나의 예에 의하면, 코딩 bitree 파티션 생성기)(107)로 송신될 수 있다. P- 또는 F- 픽처들 또는 프레임들에서, 매우 단순한 콘텐츠 및/또는 큰 양자화수 폭(quantizer step) 크기가 존재하는 몇몇 경우에, 코딩 파티션들은 전체 타일의 크기와 동등할 수 있거나, 코딩 파티션들 및 예측 파티션들은 이들 경우에 동일한 크기를 가질 수 있다. 그러므로, 몇몇 P- 및 F-픽처 타일들은 어떠한 코딩 파티셔닝도 포함하지 않거나, 하나의 코딩 파티션 또는 여러 코딩 파티션을 포함할 수 있다. 이 코딩 파티션들은 1...n으로 인덱싱되며, 주어진 선택으로부터 예측 및 코딩 파티셔닝의 최선의 가능한 조합을 선택하도록 인코드 제어기(103)에 제공된다.
또한, 이 예들 중 몇몇에서, 예를 들어 임의의 픽처 유형(I-, F- 또는 P-픽처들)에서의 예측 파티션들의 인트라 예측을 위해서, 또는 그렇지 않으면 예측 파티션들이 코딩 파티션들로 추가로 분할되지 않는 경우에(코딩 파티션들이 생략되는 경우에), 코딩 파티션 생성기 모듈(107)은 스위치들(107a 및 107b)을 통하여 우회될(bypassed) 수 있다. 그러한 예에서, 파티셔닝의 단일 레벨(single level)만이 수행될 수 있다. 그러한 파티셔닝으로서, 파티셔닝의 단일 레벨만 존재하는 경우에, 그것은 (논의된 바와 같은) 예측 파티셔닝 또는 코딩 파티셔닝 또는 양자 모두로서 기술될 수 있다. 다양한 예에서, 그러한 파티셔닝은 (논의된 바와 같은) 예측 파티션 생성기 모듈(105)을 통하여 수행될 수 있거나, 본 문서에서 추가로 논의되는 바와 같이, 그러한 파티셔닝은 k-d tree 인트라 예측/코딩 파티셔닝기(partitioner) 모듈 또는 bi-tree 인트라 예측/코딩 파티셔닝기 모듈(코딩 파티션 생성기 모듈(107)을 통하여 구현됨)을 통하여 수행될 수 있다.
몇몇 예에서, 파티션 예측 오차 데이터는, 만약에 있더라도, 인코딩을 보증하기에 충분히 유의미하지 않을 수 있다. 다른 예에서, 파티션 예측 오차 데이터를 인코딩하는 것이 바람직할 수 있고 파티션 예측 오차 데이터가 인터 예측 또는 유사한 것과 연관된 경우에, 코딩 파티션 생성기 모듈(107)은 예측 파티션들의 코딩 파티션들을 결정할 수 있다. 몇몇 예에서, 파티션이 (가령, 스위치들(107a 및 107b)을 통하여 이용가능한 우회 경로(bypass path)를 통하여 도시된 바와 같이) 코딩 파티셔닝 없이 인코딩될 수 있으므로 코딩 파티션 생성기 모듈(107)은 필요하지 않을 수 있다. 코딩 파티셔닝이 있거나 없거나, 파티션 예측 오차 데이터(이는 어느 쪽 경우에서든 코딩 파티션들로 추후 기술될 수 있음)는 잔차 또는 잔차 데이터가 인코딩을 요구할 경우에 적응적 변환 모듈(adaptive transform module)(108)로 송신될 수 있다. 몇몇 예에서, 예측 파티션 생성기 모듈(105) 및 코딩 파티션 생성기 모듈(107)은 함께 인코더(100)의 파티셔닝기 서브시스템(partitioner subsystem)이라고 간주될 수 있다. 다양한 예에서, 코딩 파티션 생성기 모듈(107)은 파티션 예측 오차 데이터, 원래 픽셀 데이터, 잔차 데이터, 또는 웨이블릿(wavelet) 데이터에 대해 동작할 수 있다. 코딩 파티션 생성기 모듈(107)은, bi-tree 및/또는 k-d tree 파티셔닝 기법 또는 유사한 것을 사용하여, 예컨대 파티션 예측 오차 데이터의 잠재적 코딩 파티셔닝들(예컨대, 코딩 파티션들)을 생성할 수 있다.
파티셔닝 후(예측 파티션들이 I-픽처들을 위해 형성되고, 코딩 파티션들이, 그리고 몇몇 예에서는 잠재적 코딩 파티션들이, P- 및 F-픽처들을 위해 형성된 후), 파티션들은 적응적 변환 모듈(108)(또한, 하나의 형태에서, 적응적 다중크기 직사각형 혼성 파라미터 하르 변환(Adaptive Multi-size Rect Hybrid Parametric Haar Transform (HPHT))/이산 코사인 변환(Discrete Cosine Transform: DCT) 유닛)으로 지칭됨)을 통하여 다양한 블록 크기가 있는 적응적(adaptive) 또는 고정된(fixed) 변환을 사용하여 변환될 수 있다. 하나의 접근법에 의해, 적응적 변환 모듈(108)은 직사각형 블록들에 대해 순방향(forward) HPHT 또는 순방향 DCT를 수행할 수 있다. 하나의 예에 의해, 선택된 변환(예컨대, 적응적이거나 고정되고, HPHT 또는 DCT인) 선택된 변환들뿐만 아니라 파티션/블록 크기가 레이트 왜곡 최적화(Rate Distortion Optimization: RDO) 또는 다른 준거에 기반하여 결정될 수 있다. 몇몇 예에서, 선택된 코딩 파티셔닝 및/또는 선택된 변환(들) 양자 모두는 코딩 파티션 크기 또는 유사한 것에 기반하는 사전결정된(predetermined) 선택 방법에 기반하여 결정될 수 있다. 예컨대, 적응적 변환 모듈(108)은 소규모 내지 중간 크기 블록들의 국부적으로 최적인 변환 코딩을 가능케 하도록 파라미터적 변환(parametric transform)을 수행하기 위한 제1 부분 또는 컴포넌트(component)와, 전역적으로 안정적인, 낮은 오버헤드 변환 코딩(low overhead transform coding)을, 고정된 변환, 예를 들어 DCT 또는, 파라미터적 변환들을 포함하여, 여러 가지 변환들로부터의 픽처 기반 변환을 사용하여 수행하기 위한 제2 부분 또는 컴포넌트, 또는 임의의 다른 구성을 포함할 수 있다. 몇몇 예에서, 국부적으로 최적인 변환 코딩을 위해, HPHT가 수행될 수 있다. 몇몇 예에서, 약 4 x 4 픽셀들 및 64 x 64 픽셀들 사이의 직사각형 크기의 2D 블록들에 대해 변환들이 수행될 수 있는데, 실제 크기는 변환된 데이터가 루마(luma) 또는 크로마(chroma)인지, 또는 인터(inter) 또는 인트라(intra)인지, 또는 결정되는 사용된 변환이 PHT 또는 DCT 또는 유사한 것인지와 같은 인자(factor) 여러 개에 달려 있다.
DCT 변환을 위해서는 많은 수의 블록 크기가 지원되나 HPHT 변환을 위해서는, 소규모 내지 중간 블록 크기가 지원된다. HPHT 변환을 위해, (적어도 인트라 코딩(여기서 모드는 디코딩된 픽셀들 또는 예측 차이 픽셀들에 기반할 수 있음)을 위한) 모드뿐만 아니라, 방향(수평 또는 수직 어느 쪽이든 DCT가 적용되나 PHT는 직교 방향으로 적용됨)을 식별하는 데에 어떤 오버헤드가 필요하다. 특정한 블록을 변환하기 위해 사용되는 실제 PHT 변환 준거는 그것이 디코딩된 이웃 픽셀들에 의존하므로 콘텐츠 적응적(content adaptive)일 수 있다. 인코더 및 디코더 양자 모두가 동일한 기저 행렬(basis matrix)의 계산을 요구하므로, 제한된 개수의 (인코더 및 디코더 양자 모두에) 알려진 양호한 변환(이로부터 선택할 수가 있음)을 허용함으로써 그 계산의 복잡도는 낮게 유지된다.
도시된 바와 같이, 결과적인 변환 계수들은 적응적 양자화 모듈(adaptive quantize module)(109)로 송신될 수 있으나, 효율적으로 코딩되고 비트스트림에 포함될 수 있는 다중 레벨 맵(multi-level map)에 의해 이후에 표현되는 국부적으로 적응적인 양자화 파라미터들을 제시하기 위해 콘텐츠의 분석을 인코드 제어기(103)에서의 양자화수 어댑터 제어(quantizer adapter control)(133)가 수행한다. 계산된 양자화수 세트(qs, 그리고 계수 블록에 적용된 행렬)는 결과적인 변환 계수들의 스케일조정(scaling)을 수행하기 위해 적응적 양자화 모듈(109)에 의해 사용될 수 있다. 또한, 파라미터적 변환과 연관된 임의의 데이터는, 필요에 따라, 적응적 양자화 모듈(109)(만약 양자화가 요망되는 경우) 또는 적응적 엔트로피 인코더 모듈(adaptive entropy encoder module)(110) 어느 쪽으로든 송신될 수 있다. 또한 도 1에 도시된 바와 같이, 양자화된 계수들은 스캐닝되어(scanned) 적응적 엔트로피 인코더 모듈(110)로 송신될 수 있다. 적응적 엔트로피 인코더 모듈(110)은 양자화된 계수들을 엔트로피 인코딩하고(entropy encode) 그것들은 출력 비트스트림(111)에 포함시킬 수 있다. 몇몇 예에서, 적응적 변환 모듈(108) 및 적응적 양자화 모듈(109)은 함께 인코더(100)의 변환 인코더 서브시스템이라 간주될 수 있다.
도 1에 또한 도시된 바와 같이, 인코더(100)는 앞서 언급된 바와 같이 예측 파티션들과의 비교를 위해 예측된 파티션들(또는 프레임들)을 형성하기 위한 국부적 디코드 루프(135)를 포함한다. 예비적으로, RDO 동작에 따라서, 예를 들어 비트카운트(bitcount)들의 검색(lookup)이 충분한 경우에는, 전술된 수백 개 이상의 타일 파티션 모두가 전면적으로 코딩될 필요가 있는 것은 아니다. 그러나, 일단 타일의 최선의 파티셔닝이 결정되면, 그 경우에는 전면적 코딩이 제공될 수 있다.
국부적 디코드 루프(135)는 적응적 역양자화 모듈(adaptive inverse quantize module)(112)에서 시작할 수 있다.
역스캔(inverse scan)이 수행될 수 있고 양자화된 계수들은 변환 계수들을 결정하기 위해 스케일조정해제될(de-scaled) 수 있도록 적응적 역양자화 모듈(112)은 적응적 양자화 모듈(109)의 반대 동작(들)을 수행하게 구성될 수 있다. 그러한 적응적 양자화 동작은 예컨대 손실성(lossy)일 수 있다. 도시된 바와 같이, 변환 계수들은 적응적 역변환 모듈(adaptive inverse transform module)(113)로 송신될 수 있다. 적응적 역변환 모듈(113)은, 예컨대 코딩 파티션과 연관된 잔차 또는 잔차 값 또는 파티션 예측 오차 데이터(또는 논의된 바와 같이, 원래의 데이터 또는 웨이블릿 데이터)를 생성하기 위해, 적응적 변환 모듈(108)에 의해 수행되는 것과 같은 역변환을 수행할 수 있다. 몇몇 예에서, 적응적 역양자화 모듈(112) 및 적응적 역변환 모듈(113)은 함께 인코더(100)의 변환 디코더 서브시스템이라 간주될 수 있다.
도시된 바와 같이, P 및 F-픽처를 위한 파티션 예측 오차 데이터(또는 유사한 것)는 선택적인 코딩 파티션 집결기(coding partitions assembler)(114)로 송신될 수 있다. 코딩 파티션 집결기(114)는, 예측 오차 데이터의 예측 파티션들 또는 디코딩된 잔차 예측 파티션들 또는 유사한 것을 생성하기 위해, 코딩 파티션들을 디코딩된 예측 파티션들로 필요에 따라 집결할 수 있다(도시된 바와 같이, 몇몇 예에서, 코딩 파티션 집결기(114)는 디코딩된 예측 파티션들이 적응적 역변환 모듈(113)에서 생성되었을 수 있도록 예를 들어 I-픽처 타일 파티셔닝을 위해서는, 그리고 스위치들(114a 및 114b)을 통하여 생략될 수 있음). 도시된 바와 같이, 재구성된 예측 파티션들을 생성하기 위해 디코딩된 잔차 예측 파티션들(인터 또는 인트라)은 예측된 파티션들(예컨대, 예측 픽셀 데이터)에 가산기(adder)(115)에서 가산될 수 있다. 재구성된 예측 파티션들은 예측 파티션 집결기(prediction partitions assembler)(116)로 송신될 수 있다. 예측 파티션 집결기(116)는 재구성된 타일들 또는 초단편들을 생성하기 위해 재구성된 예측 파티션들을 집결할 수 있다. 몇몇 예에서, 코딩 파티션 집결기 모듈(114) 및 예측 파티션 집결기 모듈(116)은 함께 인코더(100)의 비-파티셔닝기 서브시스템(un-partitioner subsystem)이라 간주될 수 있다.
단계들의 다음 세트는 필터링(filtering)과, 필터링 및 예측 생성의 혼합(intermingling)을 수반한다. 종합적으로 네 가지 유형의 필터링이 도시된다. 특히, 도 1에서, 재구성된 파티션들은 블록화양태 분석기 및 역블록화 필터링 모듈(blockiness analyzer & deblock filtering module)(또한 재구성 블록화양태 분석기 및 DD 필터링 생성(Recon Blockiness Analyzer & DD Filt Gen))(117)에 의해 역블록화되고(deblocked) 디더링된다(dithered). 분석을 위한 결과적 파라미터들 ddi가 필터링 동작을 위해 사용되고 또한 코딩되어 비트스트림(111)을 통하여 디코더로 발신된다. 역블록화된 재구성된 출력은 이후 품질 분석기 및 품질 복원 필터링 모듈(quality analyzer & quality restoration filtering module)(또는 재구성 품질 분석기 및 QR 필터링 생성(Recon Quality Analyzer & QR Filt Gen)로 지칭되기도 하는 품질 개선 필터(quality improvement filter))(118)로 넘겨지는데, 이는 QR 필터링 파라미터들을 계산하고 그것들을 필터링을 위해 사용한다. 이 파라미터들은 또한 코딩되어 비트스트림(111)을 통하여 디코더로 발신된다. QR 필터링된 출력은 장래의 프레임들을 코딩하기 위한 예측으로서 또한 사용되는 최종적인 재구성된 또는 디코딩된 프레임이다.
더욱 구체적으로, 재구성된 타이들 또는 초단편들이 블록화양태 분석기 및 역블록화 필터링 모듈(117)로 송신될 수 있는 경우, 블록화양태 분석기 및 역블록화 필터링 모듈(117)은 재구성된 타이들 또는 초단편들(또는 타일들 또는 초단편들의 예측 파티션들)을 역블록화하고 디더링할 수 있다. 예컨대, 생성된 역블록화 및 디더링 필터 파라미터들은 현재의 필터 동작을 위해 사용되고/되거나 디코더에 의한 사용을 위해 비트스트림(111) 내에 코딩될 수 있다. 블록화양태 분석기 및 역블록화 필터링 모듈(117)의 출력은 품질 분석기 및 품질 복원 필터링 모듈(118)로 송신될 수 있다. 품질 분석기 및 품질 복원 필터링 모듈(118)은 (예컨대, QR 분해(decomposition)를 위해) QR 필터링 파라미터들을 결정하고 결정된 파라미터들을 필터링을 위해 사용할 수 있다. QR 필터링 파라미터들은 디코더에 의한 사용을 위해 비트스트림(111) 내에 또한 코딩될 수 있다. 몇몇 예에서, 블록화양태 분석기 및 역블록화 필터링 모듈(117)과 품질 분석기 및 품질 복원 필터링 모듈(118)은 함께 인코더(100)의 필터링 서브시스템이라 간주될 수 있다. 몇몇 예에서, 품질 분석기 및 품질 복원 필터링 모듈(118)의 출력은 다른 프레임을 코딩하기 위한 예측을 위해 사용될 수 있는 최종적인 재구성된 프레임일 수 있다(예컨대, 최종적인 재구성된 프레임은 참조 프레임 또는 유사한 것일 수 있다). 그러므로, 도시된 바와 같이, 품질 분석기 및 품질 복원 필터링 모듈(118)의 출력은 다중 참조 프레임 저장 및 프레임 선택기(multi-reference frame storage and frame selector)(또는 다중 참조 제어(multi reference control))(119)(이는 디코딩된 픽처 저장 또는 버퍼로 또한 지칭될 수 있거나 이를 포함할 수 있음)로 송신될 수 있다. 종속성 로직 모듈(dependency logic module)(128)(하나의 예에서, 계층적 픽처 그룹 구조 내 모드 다중 참조 예측(mod multi ref pred in hierarchical picture group struct)을 위한 종속성 로직으로 또한 지칭됨)은 참조 프레임들을 목록화하기 위한 인덱스들을, 그리고 그 프레임들 사이의 관계, 예를 들어 프레임 종속성들, 또는 더욱 구체적으로는 파티션 종속성들을 그 프레임들을 위한 적절한 순서화(ordering) 및 사용을 위해 다중 참조 제어(119)에 의해서 그리고 어떤 프레임들이 다른 프레임의 예측을 위해 선택되어야 할 경우에 제공할 수 있다. 이것은 픽처 그룹 구조들, 예를 들어 다중 참조 예측, 연쇄 예측(chain prediction), 계층적 구조들, 그리고/또는 후술된 바와 같은 다른 예측 기법들을 위해 종속성 로직을 제공하는 것을 포함할 수 있다.
다음으로, 인코더(100)는 인터 및/또는 인트라 예측 동작들을 수행할 수 있다. 도 1에 도시된 바와 같이, 인터 예측은 모핑 생성 및 국부적 버퍼 모듈(morphing generation and local buffer module)(120)(그리고 하나의 예에서는 모핑 생성 및 국부 버퍼(Morph Gen & Loc Buf)로 지칭되거나 본 문서에서 루프내 모핑 생성 모듈(in-loop morphing generation module)로 지칭됨), 합성 생성 및 국부적 버퍼 모듈(synthesizing generation and local buffer module)(121)(그리고 하나의 예에서는 합성 생성 및 픽처 버퍼(Synth Gen & Pic Buffer)로 지칭되거나 본 문서에서 루프내 합성 생성 모듈(in-loop synthesizing generation module)로 지칭됨), 움직임 추정기(motion estimator)(122), 특성 및 움직임 필터링 및 예측기 모듈(characteristics and motion filtering and predictor module)(123)(또한 몇몇 예에서는 특성 및 움직임 AP 필터 분석기 및 1/4 및 1/8 화소 보상된 예측기(Char and Motion AP Filter Analyzer & 1/4 & 1/8 Pel Compensated Predictor)로 지칭될 수 있음), 모핑 분석기 및 생성 모듈(morphing analyzer and generation module)(또는 루프외 모핑 분석기 모듈(out-of-loop morphing analyzer module))(130), 그리고 합성 분석기 및 생성 모듈(synthesizing analyzer and generation module)(또는 루프외 합성 분석기 모듈(out-of-loop synthesizing analyzer module))(132)를 포함하는 하나 이상의 모듈에 의해 수행될 수 있는데, 모핑 및 합성 생성기들(120 및 121)은 (인코더의 디코더 루프 내에서) 루프내(in-loop)로 간주되고, 모핑 및 합성 분석기들(130 및 132)은 루프외(out-of-loop)(인코더에서 디코더 루프의 외부)로 간주된다. 하나는 분석기로 불리고 다른 것은 생성기로 불리나, 루프내 및 루프외 모듈들 모두가 동일하거나 유사한 작업(모핑 및/또는 합성을 위해 수정된 프레임들과 수정 파라미터들을 형성하는 것)을 수행할 수 있음에 유의해야한다. 이 컴포넌트들을 사용하여, 모핑 생성 모듈(120) 또는 모핑 분석기(130)는 디코딩된 프레임의 다양한 형태의 모핑이 이후에 다른 프레임에 대한 움직임 예측을 위해 참조 프레임으로서 사용되도록 허용할 수 있다. 모듈(120)은 다음 사항들을 위해 모핑 파라미터들을 결정하기 위해서 현재의 픽처를 분석할 수 있으니, 그 사항들은 참조 프레임 또는 프레임들(이로써 그것이 코딩될 것임)에 대해 (1) 이득에서의 변화(또 특히 프레임 피차간 밝기에서의 변화를 위한 이득 보상을 수행하기 위해서이고 아래에서 상세히 논의되는 바와 같음), (2) 우세(또는 전역적) 움직임에서의 변화, (3) 레지스트레이션에서의 변화, 그리고/또는 (4) 블러에서의 변화이며, 또한 움직임 보상된 예측 전이다.
루프외 모핑 분석기(130) 및 합성 분석기(132)는 적응적 픽처 조직화기(104)로부터 픽처 그룹 구조 데이터를 수신하며, 모핑 및 합성 파라미터들(mop, syp) 및 수정된 참조 프레임들을 양자화되지 않고, 디코딩되지 않은, 원래의 프레임 데이터에 기반하여 형성하기 위해 인코더 제어기(103)와 통신한다. 루프외 모핑 및 합성 분석기들(130 및 132)로부터의 수정된 참조 프레임들과 수정 파라미터들의 형성은 디코더 루프(135)를 통해 제공되는 것보다 훨씬 더 빠를 수 있고, 이것은 특히 실시간 인코딩을 위해서 유리하다. 그러나, 예를 들어 디코더에 의해, 다른 위치에서 보상을 수행하기 위한 수정된 프레임들 및 파라미터들의 사용은, 디코더에서 프레임들을 재구성할 때 정확한 보상이 반복될 수 있도록 루프내 모핑 및 합성 생성기들(120 및 121)에 의해 인코더의 디코딩 루프 측에서 수행되어야 한다. 그러므로, 루프외 분석기들(130 및 132)로부터의 결과적 수정 파라미터들은 수정된 참조 프레임들을 형성하기 위해 루프내 모핑 및 합성 생성기(120 및 121)에 의해 그리고 움직임 추정을 위해 움직임 추정기(122)에 의해 움직임 벡터들을 계산하는 데에 사용된다. 그러므로, 계산된 모핑 및 합성 파라미터들(mop 및 syp)은, 현재 프레임의 효율적인 움직임(및 특성) 보상된 예측을 위한 움직임 벡터들을 계산하기 위해 움직임 추정기 모듈(122)에 의해 사용될 수 있는 모핑된 참조 프레임들을 생성하기 위해 (예컨대, 모핑 생성 모듈(120)에 의해) 양자화/역양자화되어 사용될 수 있다. 합성 생성 모듈(121)은 무엇보다도 초해상도(Super Resolution: SR) 픽처들, 투영된 보간(Projected Interpolation: PI) 픽처들을 포함하는 몇 가지 유형의 합성된 프레임을 사용하는데, 여기서 이 프레임들에서의 효율적인 움직임 보상된 예측을 위해 움직임 벡터들을 결정함으로써 움직임 보상된 예측이 훨씬 더 큰 이득을 초래할 수 있다. 모핑 또는 합성을 수행하기 위한 몇몇 예에 대한 세부사항이 아래에서 제공된다.
움직임 추정기 모듈(122)은 적어도 부분적으로는 현재 프레임과 더불어 모핑된 참조 프레임(들) 및/또는 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들에 기반하여 움직임 벡터 데이터를 생성할 수 있다. 몇몇 예에서, 움직임 추정기 모듈(122)은 인터 예측 모듈로 간주될 수 있다. 예컨대, 움직임 벡터 데이터는 인터 예측을 위해 사용될 수 있다. 만약 인터 예측이 적용되는 경우, 특성 및 움직임 필터링 예측기 모듈(characteristics and motion filtering predictor module)(123)은 움직임 보상을 논의된 바와 같은 국부적 디코드 루프의 일부로서 적용할 수 있다. 또한, 특성 및 움직임 필터링 예측기 모듈(123)은 필터링 및 예측이 뒤얽힌(intertwined) 적응적 정밀(Adaptive Precision: AP) 필터링을 포함할 수 있다. 필터링 파라미터들(api)은 코딩되며 비트스트림(111)을 통하여 디코더로 발신될 수 있다.
인트라 예측은 인트라 방향 예측 분석기 및 예측 생성 모듈(intra-directional prediction analyzer and prediction generation module)(124)에 의해 수행될 수 있다. 인트라 방향 예측 분석기 및 예측 생성 모듈(124)은 공간적 방향 예측(spatial directional prediction)을 수행하도록 구성될 수 있고 디코딩된 이웃 파티션들을 사용할 수 있다. 몇몇 예에서, 방향의 결정 및 예측의 생성 양자 모두 인트라 방향 예측 분석기 및 예측 생성 모듈(124)에 의해 수행될 수 있다. 몇몇 예에서, 인트라 방향 예측 분석기 및 예측 생성 모듈(124)은 인트라 예측 모듈로 간주될 수 있다.
도 1에 도시된 바와 같이, 예측 모드 및 참조 유형 분석기 모듈(prediction modes and reference types analyzer module)(125)은, 타일(또는 초단편)의 각각의 예측 파티션에 대해, "스킵", "오토", "인터", "스플리트", "멀티" 및 "인트라" 중에서이고 앞서 소개된 바와 같은 예측 모드들의 선택을 가능케 할 수 있는데, 이들 모두는 P- 및 F-픽처들(은 물론 B-픽처들이 존재하는 경우 그것들)에 적용될 수 있다. 시스템은 I, P 및 F 픽처가 이용가능한 구성을 고려하나, B-픽처들을 위해 어떠한 모핑이나 합성도 이용가능하지 않은 경우에 B-픽처들을 여전히 제공하는 것이 가능하다는 점에 유의하여야 한다. 예측 모드들에 더하여, 그것은 또한, P- 및 F-픽처들을 위한 것뿐만 아니라, "인터" 또는 "멀티" 모드에 따라 상이할 수 있는 참조 유형들의 선택을 가능케 한다. 예측 모드 및 참조 유형 분석기 모듈(125)의 출력에서의 예측 신호는 예측 분석기 및 예측 융합 필터링 모듈(prediction analyzer and prediction fusion filtering module)(126)에 의해 필터링될 수 있다. 예측 분석기 및 예측 융합 필터링 모듈(126)은 필터링을 위해 사용할 파라미터들(예컨대, 필터링 계수들, 주파수, 오버헤드)을 결정할 수 있고 필터링을 수행할 수 있다. 몇몇 예에서, 예측 신호를 필터링하는 것은 상이한 모드(가령, 인트라, 인터, 멀티, 스플리트, 스킵 및 오토)를 나타내는 상이한 유형의 신호를 융합할 수 있다. 몇몇 예에서, 적절한 필터링이 코딩 효율을 크게 향상할 수 있도록 인트라 예측 신호들은 모든 다른 유형의 인터 예측 신호(들)와는 상이할 수 있다. 몇몇 예에서, 필터링 파라미터들은 디코더에 의한 사용을 위해 비트스트림(111) 내에 인코딩될 수 있다. 필터링된 예측 신호는, 앞서 논의된 바와 같이, 앞서서 논의된 코딩을 위해 예측 차이 신호(가령, 파티션 예측 오차)를 결정할 수 있는 차이 계산기(106)에 제2 입력(가령, 예측 파티션(들))을 제공할 수 있다. 또한, 동일한 필터링된 예측 신호는, 또한 앞서 논의된 바와 같이, 가산기(115)에 제2 입력을 제공할 수 있다. 논의된 바와 같이, 출력 비트스트림(111)은 비디오의 제시를 위한 디코더에 의한 사용을 위해 효율적으로 인코딩된 비트스트림을 제공할 수 있다.
동작중에, 인코더(100)의 몇몇 컴포넌트는 인코더 예측 서브시스템으로서 동작할 수 있다. 예컨대, 인코더(100)의 그러한 인코더 예측 서브시스템은 다중 참조 프레임 저장 및 프레임 선택기(119), 루프내 모핑 분석기 및 생성 모듈(120), 루프내 합성 분석기 및 생성 모듈(121), 움직임 추정기 모듈(122), 그리고/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(123)은 물론 루프외 모핑 분석기(130) 및 합성 분석기(132)를 포함할 수 있다.
아래에서 더욱 상세히 논의될 바와 같이, 몇몇 구현에서, 인코더(100)의 그러한 인코더 예측 서브시스템은 다수의 컴포넌트 및 이들 컴포넌트에 의해 생성된 조합된 예측들을 효율적인 비디오 코딩 알고리즘에 포함시킬 수 있다. 예컨대, NGV 코더의 제안된 구현은 다음 특징들 중 하나 이상을 포함할 수 있다: 1. 이득 보상(가령, 장면 내의 이득/밝기에서의 변화에 대한 명시적인 보상); 2. 블러 보상: 가령, 장면 내의 블러/선예도(sharpness)에서의 변화에 대한 명시적인 보상; 3. 우세/전역적 움직임 보상(가령, 장면 내의 우세 움직임에 대한 명시적인 보상); 4. 레지스트레이션 보상(가령, 장면 내의 레지스트레이션 미스매치(mismatch)에 대한 명시적인 보상); 5. 초해상도(가령, 장면 내의 해상도 정밀도에서의 변화에 대한 명시적인 모델); 6. 투영(가령, 장면 내의 움직임 궤적에서의 변화에 대한 명시적인 모델); 유사한 것, 그리고/또는 이들의 조합.
예컨대, 인코더(100)의 그러한 인코더 예측 서브시스템에서, 품질 분석기 및 품질 복원 필터링의 출력은 다중 참조 프레임 저장 및 프레임 선택기(119)로 송신될 수 있다. 몇몇 예에서, 품질 분석기 및 품질 복원 필터링의 출력은 다른 프레임을 코딩하기 위한 예측을 위해 사용될 수 있는 최종적인 재구성된 프레임일 수 있다(가령, 최종적인 재구성된 프레임은 참조 프레임 또는 유사한 것일 수 있다). 인코더(100)에서, 예측 동작들은 인터 및/또는 인트라 예측을 포함할 수 있다. 도시된 바와 같이, 인터 예측은 모핑 생성 모듈(120), 합성 생성 모듈(121), 그리고/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(123)을 포함하는 하나 이상의 모듈에 의해 수행될 수 있다.
아래에서 더욱 상세히 기술될 바와 같이, 모핑 생성 모듈(120)은 현재의 픽처를 분석하여, 참조 프레임 또는 프레임들(이를 써서 그것이 코딩될 것임)에 대해 이득에서의 변화, 우세 움직임에서의 변화, 레지스트레이션에서의 변화 및 블러에서의 변화를 위한 파라미터들을 결정할 수 있다. 결정된 모핑 파라미터들은 모핑된 참조 프레임들을 생성하기 위해 (가령, 모핑 생성 모듈(120)에 의해) 양자화/역양자화되어 사용될 수 있다. 그러한 생성된 모핑된 참조 프레임들은 버퍼 내에 저장될 수 있고 현재의 프레임의 효율적인 움직임(및 특성) 보상된 예측을 위한 움직임 벡터들을 계산하기 위해 움직임 추정기 모듈(122)에 의해 사용될 수 있다.
유사하게, 합성 분석기 및 생성 모듈(121)은 이 프레임들 내의 효율적인 움직임 보상된 예측을 위한 움직임 벡터들을 결정하기 위해 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들 또는 유사한 것을 생성할 수 있다. 그러한 생성된 합성된 참조 프레임들은 버퍼 내에 저장될 수 있고 현재의 프레임의 효율적임 움직임(및 특성) 보상된 예측을 위한 움직임 벡터들을 계산하기 위해 움직임 추정기 모듈(122)에 의해 사용될 수 있다.
이에 따라, 인코더(100)의 그러한 인코더 예측 서브시스템에서, 움직임 추정기 모듈(122)은 현재의 프레임과 더불어 모핑된 참조 프레임(들) 및/또는 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들에 기반하여 움직임 벡터 데이터를 생성할 수 있다. 몇몇 예에서, 움직임 추정기 모듈(122)은 인터 예측 모듈로 간주될 수 있다. 예컨대, 움직임 벡터 데이터는 인터 예측을 위해 사용될 수 있다. 만약 인터 예측이 적용되는 경우, 특성 및 움직임 필터링 예측기 모듈(123)은 움직임 보상을 논의된 바와 같은 국부적 디코드 루프의 일부로서 적용할 수 있다.
동작에서, NGV 코더(가령, 인코더(100) 및/또는 디코더(200))의 제안된 구현은 디코딩된 과거 및/또는 장래 픽처/슬라이스들에 대해 보통의 국부적 움직임 보상 이외에 위의 컴포넌트들 중 하나 이상을 사용할 수 있다. 이와 같이 그 구현은 예를 들면 이득 보상을 위해, 또는 임의의 다른 특성 보상된 참조 프레임 생성을 위해 특정 해결책을 명하지 않는다.
도 1은 비디오 인코더(100)의 동작과 연관된 예시적인 제어 신호들을 보여주는데, 여기서 다음의 약어들은 연관된 정보를 나타낼 수 있다:
디코더에 발신될 필요가 있을 수 있는 다양한 신호 및 데이터 항목, 즉 pgst, ptyp , prp , pptn , cptn , modes, reftype , ethp , xmtyp , xmdir , xmmod , idir , mv, qs , mop, syp , ddi , qri , api, fii, 양자화 계수들 및 다른 것들은 엔트로피 인코더 서브시스템으로 집합적으로 지칭되는 상이한 엔트로피 코더들을 포함할 수 있는 적응적 엔트로피 인코더(110)에 의해 이후에 엔트로피 인코딩될 수 있다. 적응적 엔트로피 인코더(110)는 다양한 유형의 제어 데이터/신호, 파라미터, 모드 및 참조 유형, 움직임 벡터 및 변환 계수를 인코딩하는 데에 사용될 수 있다. 그것은 적응적 가변 길이 코더들(variable length coders: vlc)로 불리는 낮은 복잡도의 엔트로피 코더들의 포괄적 부류(generic class)에 기반한다. 엔트로피 코딩될 데이터는 편리한 경우 몇 가지 카테고리(우리의 경우에는 일곱 가지)로 분할될 수 있고, 포괄적인 vlc 코더들에서 시작하여, 특수화된 코더들이 각 카테고리를 위해 개발된다. 이 제어 신호들이 도 1의 인코더(100)의 특정한 예시적인 기능적 모듈들과 연관된 것으로 보여지나, 다른 구현들은 인코더(300)의 기능적 모듈들 간의 제어 신호들의 상이한 분배를 포함할 수 있다. 본 개시는 이에 관하여 한정되지 않고, 다양한 예에서, 본 문서에서의 제어 신호들의 구현은 예시된 것과는 상이한 배열로 된 것, 추가적인 제어 신호들, 그리고/또는 도시된 특정 예시적 제어 신호들의 서브세트(subset)만 시행하는 것(undertaking)을 포함할 수 있다.
도 2는 본 개시의 적어도 몇몇 구현에 따라 배열되고 본 문서에서 콘텐츠 적응적 P- 및 F-픽처들 및 결과적인 픽처 그룹들을 활용하는 예시적인 차세대 비디오 디코더(200)의 설명도이다. 이 NGV 디코더(200)의 일반적인 동작은 파라미터들이 실제로 비트스트림(111 또는 201)을 통하여 디코더(200)로 발신되므로 파라미터들을 결정하기 위해 분석을 요구하는 어떠한 컴포넌트도 디코더 내의 움직임 보상 디코딩 루프가 요구하지 않는다는 주의와 함께 앞서 논의된 NGV 인코더(100) 내의 국부적 디코딩 루프와 유사할 수 있다. 디코딩될 비트스트림(201)은 헤더들, 제어 신호들 및 인코딩된 데이터를 디코딩하는 적응적 엔트로피 인코더(콘텐츠 및 콘텍스트 적응적 엔트로피 디코더(Content and Context Adaptive Entropy Decoder))(202)로 입력된다. 예를 들면, 그것은 앞서 열거된 ptyp , pgst , prp , pptn , cptn , ethp , mop, syp , mod, reftyp , idir , qs , xmtyp , xmdir , xmmod , ddi , qri , api, fii , mv를, 그리고 오버헤드를 구성하는 양자화된 변환 계수들과, 제어 신호들과, 데이터(디코더 도처에서의 사용을 위해 분배됨)를 디코딩한다. 양자화된 변환 계수들은 사용된 코딩 파티셔닝에 따라 집결된 디코딩된 픽셀 차이들의 직사각형 파티션들을 산출하기 위해 적응적 역양자화 모듈(203) 및 적응적 역변환(또한 적응적 다중크기 직사각형 HPHT/DCT)(204)에 의해 이후에 역양자화되고 역변환된다. 예측들은 차이들에 가산되어, 디코딩된 ddi 파라미터들을 사용하는 역블록화 필터(재구성 DD 필터 생성)(208)에서의 역블록화 및 디더링(에 이어서, 최종적인 재구성 프레임들을 생성하는 프로세스인, 디코딩된 qri 파라미터들을 사용하는 품질 복원 필터링(또는 재구성 QR 필터링 생성)(209))을 겪는 재구성된 타일들과 프레임들을 생성하기 위해 움직임 파티셔닝에 따라 추가의 재집결(reassembly)을 겪는 재구성(재구성된) 코딩된 파티션들의 생성을 초래한다.
최종적인 재구성 프레임들은 다중 참조 프레임 저장 및 프레임 선택기(또한 디코딩된 픽처 버퍼로 불릴 수 있음)(210) 내에 세이브되고, 모핑된 픽처들/국부적 버퍼들을 적용된, 디코딩된 mop 파라미터들에 따라 (모핑된 픽처 생성기 및 버퍼(morphed picture generator and buffer)(211)에서) 생성하기 위해 사용(되거나 모핑)된다. 마찬가지로 (합성된 픽처 생성 및 버퍼(synthesized picture generation and buffer)(212)에서의) 합성된 픽처 및 국부적 버퍼들은 디코딩된 syp 파라미터들을 다중 참조 프레임 저장 및 프레임 선택기(210)(또는 다시 말해, 저장 또는 버퍼(210) 내의 재구성된 프레임들)에 적용함으로써 생성된다. 종속성 로직(220)은 다중 참조 프레임 저장(210) 내의 저장된 프레임들을 위한 인덱스를 유지하고 이것들을 위한 인덱싱(indexing)을 수행할 수 있다. 그 인덱싱은 다중 참조 프레임들, 연쇄 예측 및/또는 계층적(또는 피라미드) 프레임 구조들, 그리고/또는 다른 것들과 같은 예측 기법들을 위해 후술되는 바와 같이 사용될 수 있다. 모핑된 국부적 버퍼들과, 합성된 프레임들은, api 파라미터들에 기반하여 적응적 정밀(Adaptive Precision: AP) 필터링을 사용하고, 1/4 화소(pel) 예측이나 1/8 화소 예측 어느 것이든 디코딩된 ethp 신호에 의존하게 유지하는 움직임 보상된 예측을 위해 사용된다. 사실, 특성 및 움직임 보상된 필터링 예측기(characteristics and motion compensated filtering predictor)(213)는, mod에 따라서, "인터" 멀티" "스킵" 또는 "오토" 파티션들을 생성하나, 인트라 방향 예측 생성 모듈(intra-directional prediction generation module)(214)은 "인트라" 파티션들을 생성하고, 예측 모드 선택기(prediction modes selector)(215)는, 인코더 선택된 옵션(encoder selected option)에 기반하여, 거쳐갈 정확한 모드의 파티션을 허용한다. 다음으로, 예측을 필터링하고 출력하기 위한 예측 융합 필터 생성 모듈(prediction fusion filter generation module)(또는 예측 FI 필터 생성(Pred FI Filter Gen))(216)의 선택적 사용은 필요에 따라 가산기로의 제2 입력으로서 수행된다.
품질 필터 생성 모듈(209)(또는 재구성 QR 필터링 생성)의 출력에서의 재구성 프레임들은 (F-픽처들이 순서에서 벗어나므로) ptyp 및 pgst의 제어 파라미터들에 응답하여 적응적 픽처 재조직화기(adaptive picture reorganizer)(또는 계층적 픽처 그룹 구조 재조직화기(Hierarchical Picture Group Structure Reorganizer))(217)에 의해 재순서화되고(reordered), 나아가 이 재조직화기의 출력은 인코더에 의해 발신된 prp 파라미터들에 의해 제어되는 콘텐츠 사후 복원기(content post restorer)(218)에서의 선택적인 처리를 겪는다. 무엇보다도 이 처리는 역블록화 및 필름 입도 추가를 포함할 수 있다.
더욱 구체적으로, 그리고 도시된 바와 같이, 디코더(200)는 입력 비트스트림(201)을 수신할 수 있다. 몇몇 예에서, 입력 비트스트림(201)은 본 문서에서 논의된 인코딩 기법들을 통하여 및/또는 인코더(100)를 통하여 인코딩될 수 있다. 도시된 바와 같이, 입력 비트스트림(201)은 적응적 엔트로피 디코더 모듈(adaptive entropy decoder module)(202)에 의해 수신될 수 있다. 적응적 엔트로피 디코더 모듈(202)은 다양한 유형의 인코딩된 데이터(가령, 오버헤드, 움직임 벡터들, 변환 계수들 등등)를 디코딩할 수 있다. 몇몇 예에서, 적응적 엔트로피 디코더(202)는 가변 길이 디코딩 기법을 사용할 수 있다. 몇몇 예에서, 적응적 엔트로피 디코더(202)는 앞서 논의된 적응적 엔트로피 인코더 모듈(110)의 반대의 동작(들)을 수행할 수 있다.
디코딩된 데이터는 적응적 역양자화 모듈(203)로 송신될 수 있다. 적응적 역양자화 모듈(203)은 변환 계수들을 결정하기 위해 양자화된 계수들을 역스캔하고(inverse scan) 스케일조정해제하도록(de-scale) 구성될 수 있다. 예컨대, 그러한 적응적 양자화 동작은 손실성일 수 있다. 몇몇 예에서, 적응적 역양자화 모듈(203)은 적응적 양자화 모듈(109)의 반대 동작(가령, 적응적 역양자화 모듈(112)과 실질적으로 동일한 동작들)을 수행하도록 구성될 수 있다. 도시된 바와 같이, 변환 계수들(과, 몇몇 예에서는, 파라미터적 변환에서의 사용을 위한 변환 데이터)은 적응적 역변환 모듈(204)로 송신될 수 있다. 적응적 역변환 모듈(204)은 코딩 파티션들과 연관된 잔차들 또는 잔차 값들 또는 파티션 예측 오차 데이터(또는 원래의 데이터 또는 웨이블릿 데이터)를 생성하기 위해 변환 계수들에 대해 역변환을 수행할 수 있다. 몇몇 예에서, 적응적 역변환 모듈(204)은 적응적 변환 모듈(108)의 반대 동작(가령, 적응적 역변환 모듈(113)과 실질적으로 동일한 동작들)을 수행하도록 구성될 수 있다. 몇몇 예에서, 적응적 역변환 모듈(204)은 다른 이전에 디코딩된 데이터, 예를 들어 디코딩된 이웃 파티션들에 기반하여 역변환을 수행할 수 있다. 몇몇 예에서, 적응적 역양자화 모듈(203) 및 적응적 역변환 모듈(204)은 함께 디코더(200)의 변환 디코더 서브시스템이라 간주될 수 있다.
도시된 바와 같이, 잔차들 또는 잔차 값들 또는 파티션 예측 오차 데이터는 코딩 파티션 집결기(205)로 송신될 수 있다. 코딩 파티션 집결기(205)는 코딩 파티션들을 디코딩된 예측 파티션들로 필요에 따라 집결할 수 있다(도시된 바와 같이, 몇몇 예에서, 코딩 파티션 집결기(205)는 디코딩된 예측 파티션들이 적응적 역변환 모듈(204)에서 생성되었을 수 있도록 스위치들(205a 및 205b)을 통하여 생략될 수 있다). 재구성된 예측 파티션들을 생성하기 위해 가산기(206)에서 예측 오차 데이터(가령, 예측 파티션 잔차들)의 디코딩된 예측 파티션들은 예측된 파티션들(가령, 예측 픽셀 데이터)에 가산될 수 있다. 재구성된 예측 파티션들은 예측 파티션 집결기(207)로 송신될 수 있다. 예측 파티션 집결기(207)는 재구성된 타일들 또는 초단편들을 생성하기 위해 재구성된 예측 파티션들을 집결할 수 있다. 몇몇 예에서, 코딩 파티션 집결기 모듈(205) 및 예측 파티션 집결기 모듈(207)은 함께 디코더(200)의 비-파티셔닝기 서브시스템이라 간주될 수 있다.
재구성된 타일들 또는 초단편들은 역블록화 필터링 모듈(208)로 송신될 수 있다. 역블록화 필터링 모듈(208)은 재구성된 타일들 또는 초단편들(또는 타일들 또는 초단편들의 예측 파티션들)을 역블록화하고 디더링할 수 있다. 예컨대, 생성된 역블록화 및 디더링 필터 파라미터들은 입력 비트스트림(201)으로부터 결정될 수 있다. 역블록화 필터링 모듈(208)의 출력은 품질 복원 필터링 모듈(209)로 송신될 수 있다. 품질 복원 필터링 모듈(209)은, 예컨대 입력 비트스트림(201)으로부터 결정될 수 있는 QR 파라미터들에 기반하여 품질 필터링을 적용할 수 있다. 도 2에 도시된 바와 같이, 품질 복원 필터링 모듈(209)의 출력은 다중 참조 프레임 저장 및 프레임 선택기(다중 참조 제어로 지칭될 수 있고, 디코딩된 픽처 버퍼일 수 있거나 이를 포함할 수 있음)(210)로 송신될 수 있다. 몇몇 예에서, 품질 복원 필터링 모듈(209)의 출력은 다른 프레임을 코딩하기 위한 예측을 위해 사용될 수 있는 최종적인 재구성된 프레임일 수 있다(가령, 최종적인 재구성된 프레임은 참조 프레임 또는 유사한 것일 수 있다). 몇몇 예에서, 역블록화 필터링 모듈(208) 및 품질 복원 필터링 모듈(209)은 디코더(200)의 필터링 서브시스템이라 간주될 수 있다.
논의된 바와 같이, 예측 동작으로 인한 보상은 인터 및/또는 인트라 예측 보상을 포함할 수 있다. 도시된 바와 같이, 인터 예측 보상은 모핑 생성 모듈(211)과, 합성 생성 모듈(212)과, 특성 및 움직임 보상된 필터링 예측기 모듈(213)을 포함하는 하나 이상의 모듈에 의해 수행될 수 있다. 모핑 생성 모듈(211)은 모핑된 참조 프레임들을 생성하기 위해 (가령, 입력 비트스트림(201)으로부터 결정된) 역양자화된 모핑 파라미터들을 사용할 수 있다. 합성 생성 모듈(212)은 입력 비트스트림(201)으로부터 결정된 파라미터들에 기반하여 초해상도(Super Resolution: SR) 픽처들과 투영된 보간(Projected Interpolation: PI) 픽처들 또는 유사한 것을 생성할 수 있다. 만약 인터 예측이 적용되는 경우, 특성 및 움직임 보상된 필터링 예측기 모듈(213)은 입력 비트스트림(201) 내의 수신된 프레임들과 움직임 벡터 데이터 또는 유사한 것에 기반하여 움직임 보상을 적용할 수 있다.
인트라 예측 보상은 인트라 방향 예측 생성 모듈(214)에 의해 수행될 수 있다. 인트라 방향 예측 생성 모듈(214)은 공간적 방향 예측을 수행하도록 구성될 수 있고 디코딩된 이웃 파티션들을 입력 비트스트림(201) 내의 인트라 예측 데이터에 따라 사용할 수 있다.
도 2에 도시된 바와 같이, 예측 모드 선택기 모듈(215)은, 타일의 각각의 예측 파티션에 대해, 입력 비트스트림(201) 내의 모드 선택 데이터에 기반하여, 모두 P- 및 F-픽처들에 모두 적용될 수 있는 것들인 "스킵", "오토", "인터", "멀티" 및 "인트라" 중에서 예측 모드 선택을 결정할 수 있다. 예측 모드들에 더하여, 그것은 또한, P- 및 F-픽처들을 위한 것뿐만 아니라, "인터" 또는 "멀티" 모드에 따라 상이할 수 있는 참조 유형들의 선택을 가능케 한다. 예측 모드 선택기 모듈(215)의 출력에서의 예측 신호는 예측 융합 필터링 모듈(216)에 의해 필터링될 수 있다. 예측 융합 필터링 모듈(126)은 입력 비트스트림(201)을 통하여 결정된 파라미터들(가령, 필터링 계수들, 주파수, 오버헤드)에 기반하여 필터링을 수행할 수 있다. 몇몇 예에서, 예측 신호를 필터링하는 것은 상이한 모드(가령, 인트라, 인터, 멀티, 스킵 및 오토)를 나타내는 상이한 유형의 신호를 융합할 수 있다. 몇몇 예에서, 적절한 필터링이 코딩 효율을 크게 향상할 수 있도록 인트라 예측 신호들은 모든 다른 유형의 인터 예측 신호(들)와는 상이할 수 있다. 필터링된 예측 신호는, 앞서 논의된 바와 같이, 제2 입력(가령, 예측 파티션(들))을 차이 계산기(206)에 제공할 수 있다.
논의된 바와 같이, 품질 복원 필터링 모듈(209)의 출력은 최종적인 재구성된 프레임일 수 있다. 최종적인 재구성된 프레임들은, 입력 비트스트림(201) 내의 순서화 파라미터들에 기반하여 필요에 따라 프레임들을 재순서화하거나 재조직화할 수 있는 적응적 픽처 재조직화기(217)로 송신될 수 있다. 재순서화된 프레임들은 콘텐츠 사후 복원기 모듈(218)로 송신될 수 있다. 콘텐츠 사후 복원기 모듈(218)은 디코딩된 비디오의 지각적(perceptual) 품질의 추가 개선을 수행하도록 구성된 선택적인 모듈일 수 있다. 개선 처리는 입력 비트스트림(201) 내의 품질 개선 파라미터들에 응답하여 수행될 수 있거나 그것은 단독형(standalone) 동작으로서 수행될 수 있다. 몇몇 예에서, 콘텐츠 사후 복원기 모듈(218)은, 예컨대 (가령, 역블록화 필터링 모듈(208)에 관해서 논의된 역블록화 동작들 후라도) 잔차 블록화양태 감소(residual blockiness reduction) 또는 필름 입도 잡음(film grain noise)의 추정과 같은 품질을 개선하기 위해 파라미터들을 적용할 수 있다. 도시된 바와 같이, 디코더(200)는 디스플레이 디바이스(도시되지 않음)를 통한 디스플레이를 위해 구성될 수 있는 디스플레이 비디오(219)를 제공할 수 있다.
동작에서, 디코더(200)의 몇몇 컴포넌트는 디코더 예측 서브시스템으로서 동작할 수 있다. 예컨대, 디코더(200)의 그러한 디코더 예측 서브시스템은 다중 참조 프레임 저장 및 프레임 선택기(210), 다중 참조 프레임 저장 및 프레임 선택기(210)에서 프레임들을 인덱싱하기 위한 종속성 로직(220), 모핑 분석기 및 생성 모듈(211), 합성 분석기 및 생성 모듈(212), 그리고/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(213)을 포함할 수 있다.
아래에서 더욱 상세히 논의될 바와 같이, 몇몇 구현에서, 디코더(200)의 그러한 디코더 예측 서브시스템은 다수의 컴포넌트 및 이 컴포넌트들에 의해 생성된 조합된 예측들을 효율적인 비디오 코딩 알고리즘에 포함시킬 수 있다. 예컨대, NGV 코더의 제안된 구현은 다음 특징들 중 하나 이상을 포함할 수 있다: 1. 이득 보상(가령, 장면 내의 이득/밝기에서의 변화에 대한 명시적인 보상); 2. 블러 보상: 가령, 장면 내의 블러/선예도에서의 변화에 대한 명시적인 보상; 3. 우세/전역적 움직임 보상(가령, 장면 내의 우세 움직임에 대한 명시적인 보상); 4. 레지스트레이션 보상(가령, 장면 내의 레지스트레이션 미스매치에 대한 명시적인 보상); 5. 초해상도(가령, 장면 내의 해상도 정밀도에서의 변화에 대한 명시적인 모델); 6. 투영(가령, 장면 내의 움직임 궤적에서의 변화에 대한 명시적인 모델); 유사한 것, 그리고/또는 이들의 조합.
예컨대, 디코더(200)의 그러한 디코더 예측 서브시스템에서, 품질 복원 필터링 모듈의 출력은 다중 참조 프레임 저장 및 프레임 선택기(210)로 송신될 수 있다. 몇몇 예에서, 품질 복원 필터링 모듈의 출력은 다른 프레임을 코딩하기 위한 예측을 위해 사용될 수 있는 최종적인 재구성된 프레임일 수 있다(가령, 최종적인 재구성된 프레임은 참조 프레임 또는 유사한 것일 수 있다). 논의된 바와 같이, 예측 동작들로 인한 보상은 인터 및/또는 인트라 예측 보상을 포함할 수 있다. 도시된 바와 같이, 인터 예측 보상은 모핑 분석기 및 생성 모듈(211), 합성 분석기 및 생성 모듈(212), 그리고/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(213)을 포함하는 하나 이상의 모듈에 의해 수행될 수 있다.
아래에서 더욱 상세히 기술될 바와 같이, 모핑 분석기 및 생성 모듈(211)은 모핑된 참조 프레임들을 생성하기 위해 (가령, 입력 비트스트림으로부터 결정된) 역양자화된 모핑 파라미터들을 사용할 수 있다. 그러한 생성된 모핑된 참조 프레임들은 버퍼 내에 저장될 수 있고 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(213)에 의해 사용될 수 있다.
유사하게, 합성 분석기 및 생성 모듈(212)은 입력 비트스트림(201)으로부터 결정된 파라미터들에 기반하여 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들 또는 유사한 것과 같은 하나 이상의 유형의 합성된 예측 참조 픽처를 생성하도록 구성될 수 있다. 그러한 생성된 합성된 참조 프레임들은 버퍼 내에 저장될 수 있고 움직임 보상된 필터링 예측기 모듈(213)에 의해 사용될 수 있다.
이에 따라, 디코더(200)의 그러한 디코더 예측 서브시스템에서, 인터 예측이 적용되는 경우에, 특성 및 움직임 보상된 필터링 예측기 모듈(213)은 현재의 프레임과 더불어 모핑된 참조 프레임(들) 및/또는 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들에 기반하여 움직임 보상을 적용할 수 있다.
동작에서, NGV 코더(가령, 인코더(100) 및/또는 디코더(200))의 제안된 구현은 디코딩된 과거 및/또는 장래 픽처/슬라이스들에 대해 보통의 국부적 움직임 보상 이외에 위의 컴포넌트들 중 하나 이상을 사용할 수 있다. 이와 같이 그 구현은 예를 들면 이득 보상을 위해, 또는 임의의 다른 특성 보상된 참조 프레임 생성을 위해 특정 해결책을 명하지 않는다.
도 2는 비디오 디코더(200)의 동작과 연관된 예시적인 제어 신호들을 보여주는데, 여기서 표시된 약어들은 위 도 1에 관해 논의된 바와 유사한 정보를 나타낼 수 있다. 이 제어 신호들이 디코더(200)의 특정한 예시적인 기능적 모듈들과 연관된 것으로 보여지나, 다른 구현들은 인코더(100)의 기능적 모듈들 간의 제어 신호들의 상이한 분배를 포함할 수 있다. 본 개시는 이에 관하여 한정되지 않고, 다양한 예에서, 본 문서에서의 제어 신호들의 구현은 예시된 것과는 상이한 배열로 된 것, 추가적인 제어 신호들, 그리고/또는 도시된 특정 예시적 제어 신호들의 서브세트만 시행하는 것을 포함할 수 있다.
도 1 및 도 2가 특정한 인코딩 및 디코딩 모듈들을 예시하나, 묘사되지 않은 다양한 다른 코딩 모듈들 또는 컴포넌트들이 또한 본 개시에 따라 활용될 수 있다. 또한, 본 개시는 도 1 및 도 2에 예시된 특정한 컴포넌트들 및/또는 다양한 컴포넌트들이 배열되는 방식에 한정되지 않는다. 본 문서에 기술된 시스템들의 다양한 컴포넌트들은 소프트웨어, 펌웨어 및/또는 하드웨어 및/또는 이의 임의의 조합으로 구현될 수 있다. 예컨대, 인코더(100) 및/또는 디코더(200)의 다양한 컴포넌트는, 적어도 부분적으로는, 예컨대 모바일 전화와 같은 컴퓨팅 시스템에서 찾아볼 수 있는 것과 같은 컴퓨팅 시스템 온 칩(System-on-a-Chip: SoC)의 하드웨어에 의해, 제공될 수 있다.
또한, 인코더(100)는, 예컨대 비디오 콘텐츠 서버 시스템을 포함하는 콘텐츠 제공자 시스템(content provider system)과 연관되고/되거나 이에 의해 제공될 수 있다는 점과, 출력 비트스트림(111)은 도 1 및 도 2에 묘사되지 않은 송수신기, 안테나, 네트워크 시스템 및 유사한 것과 같은 다양한 통신 컴포넌트 및/또는 시스템에 의해 예컨대 디코더(200)와 같은 디코더로 송신되거나 전달될 수 있다는 점이 인식될 수 있다. 디코더(200)는, 인코더(100)에 대해 원격이고 도 1 및 도 2에 묘사되지 않은 송수신기, 안테나, 네트워크 시스템 및 유사한 것과 같은 다양한 통신 컴포넌트 및/또는 시스템을 통하여 입력 비트스트림(201)을 수신하는 컴퓨팅 디바이스(가령, 데스크톱 컴퓨터(desktop computer), 랩톱 컴퓨터(laptop computer), 태블릿 컴퓨터(tablet computer), 전환가능 랩톱(convertible laptop), 모바일 전화 또는 유사한 것)와 같은 클라이언트 시스템과 연관될 수 있다는 점이 또한 인식될 수 있다. 따라서, 다양한 구현에서, 인코더(100) 및 디코더 서브시스템(200)은 함께든 또는 서로 무관하게든 구현될 수 있다.
도 3은 본 개시의 적어도 몇몇 구현에 따라 배열된, 차세대 비디오 인코더(100)와 연관된 예시적 서브시스템의 설명도이다. 도시된 바와 같이, 인코더(100)는 구조 서브시스템(structure subsystem)(310), 파티셔닝 서브시스템(320), 예측 서브시스템(330), 변환 서브시스템(340), 필터링 서브시스템(350) 및/또는 엔트로피 코딩 서브시스템(360)을 포함할 수 있다.
도 3a는 본 개시의 적어도 몇몇 구현에 따라 배열된, 예시적인 차세대 비디오 인코더(300a)의 설명도이다. 도 3a는 도 1에 도시된 것과 유사한 인코더를 제시하며, 유사한 구성요소들은 간결성을 위해서 반복되지 않을 것이다. 도 3a에 도시된 바와 같이, 인코더(300a)는 사전분석기 서브시스템(pre-analyzer subsystem)(310a), 파티셔닝기 서브시스템(partitioner subsystem)(320a), 예측 인코딩 서브시스템(330a), 변환 인코더 서브시스템(340a), 필터링 인코딩 서브시스템(350a), 엔트로피 인코더 시스템(360a), 변환 디코더 서브시스템(370a) 및/또는 비파티셔닝기 서브시스템(unpartitioner subsystem)(380a)을 포함할 수 있다. 사전분석기 서브시스템(310a)은 콘텐츠 사전분석기 모듈(102) 및/또는 적응적 픽처 조직화기 모듈(104)을 포함할 수 있다. 파티셔닝기 서브시스템(320a)은 예측 파티션 생성기 모듈(105) 및/또는 코딩 파티션 생성기(107)를 포함할 수 있다. 예측 인코딩 서브시스템(330a)은 움직임 추정기 모듈(122), 특성 및 움직임 보상된 필터링 예측기 모듈(123) 및/또는 인트라 방향 예측 분석기 및 예측 생성 모듈(124)을 포함할 수 있다. 변환 인코더 서브시스템(340a)은 적응적 변환 모듈(108) 및/또는 적응적 양자화 모듈(109)을 포함할 수 있다. 필터링 인코딩 서브시스템(350a)은 블록화양태 분석기 및 역블록화 필터링 모듈(117), 품질 분석기 및 품질 복원 필터링 모듈(118), 움직임 추정기 모듈(122), 특성 및 움직임 보상된 필터링 예측기 모듈(123) 및/또는 예측 분석기 및 예측 융합 필터링 모듈(126)을 포함할 수 있다. 엔트로피 코딩 서브시스템(360a)은 적응적 엔트로피 인코더 모듈(110)을 포함할 수 있다. 변환 디코더 서브시스템(370a)은 적응적 역양자화 모듈(112) 및/또는 적응적 역변환 모듈(113)을 포함할 수 있다. 비파티셔닝기 서브시스템(380a)은 코딩 파티션 집결기(114) 및/또는 예측 파티션 집결기(116)를 포함할 수 있다.
인코더(300a)의 파티셔닝기 서브시스템(320a)은 두 개의 서브시스템을 포함할 수 있다: 분석 및 파티셔닝을 예측을 위해 수행할 수 있는 예측 파티션 생성기 모듈(105)과, 분석 및 파티셔닝을 코딩을 위해 수행할 수 있는 코딩 파티션 생성기 모듈(107). 다른 파티셔닝 방법은 픽처들을 영역들 또는 슬라이스들로 구분할(segment) 수 있는 또한 이 파티셔닝기의 일부로 선택적으로 간주될 수 있는 적응적 픽처 조직화기(104)를 포함할 수 있다.
인코더(300a)의 예측 인코더 서브시스템(330a)은 움직임 추정기(122)와 특성 및 움직임 보상된 필터링 예측기(123)("인터" 신호의 분석 및 예측을 수행할 수 있음)와, 인트라 방향 예측 분석기 및 예측 생성 모듈(124)("인트라" 신호의 분석 및 예측을 수행할 수 있음)을 포함할 수 있다. 움직임 추정기(122)와 특성 및 움직임 보상된 필터링 예측기(123)는 우선 (이득, 전역적 움직임, 레지스트레이션과 같은) 차이의 다른 소스를 보상하는 것에 이어서 실제 움직임 보상에 의해, 증가하는 예측가능성을 가능케 할 수 있다. 그것들은 또한 더 나은 예측들을 가능하게 할 수 있는 합성된 프레임들(초해상도와 투영)을 생성하기 위한 데이터 모델링(data modeling)의 사용에 이어서 그러한 프레임들에서의 실제 움직임 보상의 사용을 가능케 할 수 있다.
인코더(300a)의 변환 인코더 서브시스템(340a)은 변환의 유형 및 크기를 선택하기 위해 분석을 수행할 수 있고 두 가지 주된 유형의 컴포넌트를 포함할 수 있다. 제1 유형의 컴포넌트는 소규모 내지 중간 크기 블록들의 국부적으로 최적인 변환 코딩을 가능하게 하기 위해 파라미터적 변환(parametric transform)을 사용하는 것을 가능케 할 수 있는데, 다만 그러한 코딩은 어떤 오버헤드를 요구할 수 있다. 제2 유형의 컴포넌트는 DCT와 같은 포괄적/고정된 변환, 또는 파라미터적 변환을 포함하는 적은 수의 변환 중의 선택으로부터의 픽처 기반 변환을 사용하여 전역적으로 안정한, 낮은 오버헤드의 코딩을 가능하게 할 수 있다. 국부적으로 적응적인 변환 코딩을 위해, PHT(Parametric Haar Transform)가 사용될 수 있다. 변환은, 변환된 데이터가 루마 또는 크로마, 인터 또는 인트라인지, 그리고 사용되는 변환이 PHT 또는 DCT인지와 같은 다수의 인자에 의존할 수 있는 실제 크기와 함께, 4x4 및 64x64 사이의 직사각형 크기의 2D 블록에 대해 수행될 수 있다. 결과적인 변환 계수들은 양자화되고 스캔되고 엔트로피 코딩될 수 있다.
인코더(300a)의 엔트로피 인코더 서브시스템(360a)은, 각각이 특정 유형의 데이터(다양한 유형의 오버헤드, 움직임 벡터 또는 변환 계수)를 효율적으로 코딩한다는 목표를 갖는 다수의 효율적이지만 낮은 복잡도의 컴포넌트를 포함할 수 있다. 이 서브시스템의 컴포넌트들은 낮은 복잡도 가변 길이 코딩 기법의 포괄적 부류에 속할 수 있으나, 효율적인 코딩을 위해, 각각의 컴포넌트는 가장 높은 효율을 위해 맞춤식 최적화될(custom optimized) 수 있다. 예를 들면, 어떤 맞춤식 해법은 "코딩된/코딩되지 않은" 데이터의 코딩을 위해, 다른 것은 "모드 및 참조 유형" 데이터에 대해, 또 다른 것은 "움직임 벡터" 데이터에 대해, 그리고 또 다른 것은 "예측 및 코딩 파티션" 데이터에 대해 설계될 수 있다. 끝으로, 엔트로피 코딩될 데이터의 매우 큰 부분이 "변환 계수" 데이터이기 때문에, 여러 표들 간에 적응될 수 있는 알고리즘뿐만 아니라, 특정 블록 크기의 효율적인 취급을 위한 여러 접근법이 사용될 수 있다.
인코더(300a)의 필터링 인코더 서브시스템(350a)은 파라미터들의 분석은 물론 이 파라미터들에 기반한 재구성된 픽처들의 여러 필터링을 수행할 수 있고, 몇 가지 서브시스템을 포함할 수 있다. 예컨대, 제1 서브시스템인 블록화양태 분석기 및 역블록화 필터링 모듈(117)은 임의의 잠재적인 블록 코딩 아티팩트를 감소시키거나 차폐하기(mask) 위해 역블록화하고 디더링할 수 있다. 제2 예시적 서브시스템인 품질 분석기 및 품질 복원 필터링 모듈(118)은, 임의의 비디오 코딩에서의 양자화 동작으로 인한 아티팩트를 감소시키기 위해 일반적인 품질 복원을 수행할 수 있다. 제3 예시적 서브시스템은 움직임 추정기(122)와 특성 및 움직임 보상된 필터링 예측기 모듈(123)을 포함할 수 있는 것으로서, 콘텐츠의 움직임 특성(움직임 속도/블러의 정도)에 적응하는 필터를 사용함으로써 움직임 보상으로부터의 결과를 개선할 수 있다. 제4 예시적 서브시스템인 예측 융합 분석기 및 필터 생성 모듈(126)은 (예측 내에서(흔히는 인트라 예측으로부터) 의사(spurious) 아티팩트를 감소시킬 수 있는) 예측 신호의 적응적 필터링을 가능하게 하여 이로써 코딩될 필요가 있는 예측 오차를 감소시킬 수 있다.
인코더(300a)의 인코드 제어기 모듈(103)은 주어진 리소스 및 원하는 인코딩 속도의 제약 하에서 전체적인 비디오 품질을 책임질 수 있다. 예를 들면, 어떠한 숏커트(shortcut)도 사용하지 않는 완전 RDO(Rate Distortion Optimization) 기반 코딩에서, 소프트웨어 인코딩의 인코딩 속도는 단지 컴퓨팅 리소스(프로세서의 속도, 프로세서의 개수, 하이퍼쓰레딩(hyperthreading), DDR3 메모리 등등) 가용성의 결과일 수 있다. 그러한 경우에, 인코드 제어기 모듈(103)은 예측 파티션들과 코딩 파티션들의 하나하나의 단일 조합을 또한 실제 인코딩에 의해 입력받을 수 있고, 비트레이트는 재구성된 오차와 더불어 각각의 경우에 대해 계산될 수 있으며, 라그랑쥬 최적화(lagrangian optimization) 식에 기반하여, 코딩되고 있는 각각의 프레임의 각각의 타일을 위해 예측 및 코딩 파티션들의 최선의 세트가 발신될 수 있다. 완전 RDO 기반 모드는 최선의 압축 효율을 초래할 수 있고 또한 가장 느린 인코딩 모드일 수 있다. 콘텐츠 사전분석기 모듈(102)로부터의 콘텐츠 분석 파라미터들을 사용하는 것 및 RDO 단순화(모든 가능한 경우를 시험하지 않음)를 행하거나 완전 RDO을 통해 블록들의 어떤 비율을 그저 전하기 위해 그것들을 사용하는 것에 의해, 품질 대 속도 트레이드오프가 행해져 더 빠른 인코딩을 가능하게 할 수 있다. 지금까지 우리는 가변 비트레이트(Variable BitRate: VBR) 기반 인코더 동작을 기술하였다. 인코드 제어기 모듈(103)은 일정 비트레이트(Constant BitRate: CBR) 제어된 코딩의 경우에 호출될 수 있는 레이트 제어기(rate controller)를 또한 포함할 수 있다.
끝으로, 인코더(300a)의 사전분석기 서브시스템(310a)은 비디오 코딩 효율 및 속도 성능을 개선하는 데에 유용한 다양한 유형의 파라미터를 계산하기 위해 콘텐츠의 분석을 수행할 수 있다. 예를 들면, 그것은 수평 및 수직 그래디언트 정보 (Rs, Cs), 분산, 픽처당 공간적 복잡도, 픽처당 시간적 복잡도, 장면 변화 검출, 움직임 범위 추정, 이득 검출, 예측 거리 추정, 객체 수 추정, 영역 경계 검출, 공간적 복잡도 맵 계산, 초점 추정, 필름 입도 추정 등등을 계산할 수 있다. 사전분석기 서브시스템(310a)에 의해 생성된 파라미터들은 인코더에 의해 쓰이거나 아니면 양자화되어 디코더(200)에 통신될 수 있다.
서브시스템들(310a 내지 380a)은 도 3a의 인코더(300a)의 특정한 예시적인 기능적 모듈들과 연관된 것으로 예시되나, 본 문서에서의 인코더(300a)의 다른 구현들은 서브시스템들(310a 내지 380a) 간의 인코더(300a)의 기능적 모듈들의 상이한 분배를 포함할 수 있다. 본 개시는 이에 관하여 한정되지 않고, 다양한 예에서, 본 문서에서의 예시적 서브시스템들(310a 내지 380a)의 구현은 예시된 것과는 상이한 배열로 된 것, 추가적인 기능적 모듈들, 그리고/또는 도시된 인코더(300a)의 특정 예시적 기능적 모듈들의 서브세트만 시행하는 것을 포함할 수 있다.
도 3b는 본 개시의 적어도 몇몇 구현에 따라 배열된, 예시적인 차세대 비디오 디코더(300b)의 설명도이다. 도 3b는 도 2에 도시된 것과 유사한 디코더를 제시하며, 유사한 구성요소들은 간결성을 위해서 반복되지 않을 것이다. 도 3b에 도시된 바와 같이, 디코더(300b)는 예측 디코더 서브시스템(330b), 필터링 디코더 서브시스템(350b), 엔트로피 디코더 서브시스템(360b), 변환 디코더 서브시스템(370b), 비파티셔닝기_2 서브시스템(unpartitioner_2 subsystem)(380b), 비파티셔닝기_1 서브시스템(unpartitioner_1 subsystem)(351b), 필터링 디코더 서브시스템(350b) 및/또는 사후 복원기 서브시스템(390b)을 포함할 수 있다. 예측 디코더 서브시스템(330b)은 특성 및 움직임 보상된 필터링 예측기 모듈(213) 및/또는 인트라 방향 예측 생성 모듈(214)을 포함할 수 있다. 필터링 디코더 서브시스템(350b)은 역블록화 필터링 모듈(208), 품질 복원 필터링 모듈(209), 특성 및 움직임 보상된 필터링 예측기 모듈(213) 및/또는 예측 융합 필터링 모듈(216)을 포함할 수 있다. 엔트로피 디코더 서브시스템(360b)은 적응적 엔트로피 디코더 모듈(202)을 포함할 수 있다. 변환 디코더 서브시스템(370b)은 적응적 역양자화 모듈(203) 및/또는 적응적 역변환 모듈(204)을 포함할 수 있다. 비파티셔닝기 서브시스템(380b)은 코딩 파티션 집결기(205) 및 예측 파티션 집결기(207)를 포함할 수 있다. 사후 복원기 서브시스템(390b)은 콘텐츠 사후 복원기 모듈(218) 및/또는 적응적 픽처 재조직화기(217)를 포함할 수 있다.
디코더(300b)의 엔트로피 디코딩 서브시스템(360b)은 인코더(300a)의 엔트로피 인코더 서브시스템(360a)의 반대의 동작을 수행할 수 있으니, 즉 그것은 가변 길이 디코딩으로 막연히 지칭되는 부류의 기법들을 사용하여 엔트로피 인코더 서브시스템(360a)에 의해 인코딩된 다양한 데이터(유형의 오버헤드, 움직임 벡터, 변환 계수)를 디코딩할 수 있다. 특히, 디코딩될 다양한 유형의 데이터는 "코딩된/코딩되지 않은" 데이터, "모드 및 참조 유형" 데이터, "움직임 벡터" 데이터, "예측 및 코딩 파티션" 데이터 및 "변환 계수" 데이터를 포함할 수 있다.
디코더(300b)의 변환 디코더 서브시스템(370b)은 인코더(300a)의 변환 인코더 서브시스템(340a)과는 반대의 동작을 수행할 수 있다. 변환 디코더 서브시스템(370b)은 두 가지 유형의 컴포넌트를 포함할 수 있다. 제1 유형의 예시적 컴포넌트는 소규모 내지 중간 블록 크기의 파라미터적 역 PHT 변환의 사용을 지원할 수 있으나, 다른 유형의 예시적 컴포넌트는 모든 블록 크기에 대해 역 DCT 변환을 지원할 수 있다. 블록을 위해 사용된 PHT 변환은 이웃 블록들의 디코딩된 데이터의 분석에 의존할 수 있다. 출력 비트스트림(111) 및/또는 입력 비트스트림(201)은 역변환될 2D 블록의 어느 방향으로 PHT가 사용될 수 있는지(다른 방향은 DCT를 사용함)뿐만 아니라 PHT 변환을 위한 파티션/블록 크기에 대한 정보를 전달할 수 있다. 순전히 DCT에 의해 코딩된 블록을 위해, 파티션/블록 크기 정보는 또한 출력 비트스트림(111) 및/또는 입력 비트스트림(201)로부터 인출되고(retrieved) 적절한 크기의 역 DCT를 적용하는 데에 사용될 수 있다.
디코더(300b)의 비파티셔닝기 서브시스템(380b)은 인코더(300a)의 파티셔닝기 서브시스템(320a)와는 반대의 동작을 수행할 수 있고 두 개의 비파티셔닝 서브시스템으로서, 코딩된 데이터의 비파티셔닝을 수행할 수 있는 코딩 파티션 집결기 모듈(205)과 예측을 위해 비파티셔닝을 수행할 수 있는 예측 파티션 집결기 모듈(207)을 포함할 수 있다. 또한 만약 선택적인 적응적 픽처 조직화기 모듈(104)이 영역 구분(segmentation) 또는 슬라이스를 위해 인코더(300a)에서 사용되는 경우, 적응적 픽처 재조직화기 모듈(217)이 디코더에서 필요할 수 있다.
디코더(300b)의 예측 디코더 서브시스템(330b)는 "인터" 신호의 예측을 수행할 수 있는 특성 및 움직임 보상된 필터링 예측기 모듈(213)과, "인트라" 신호의 예측을 수행할 수 있는 인트라 방향 예측 생성 모듈(214)을 포함할 수 있다. 특성 및 움직임 보상된 필터링 예측기 모듈(213)은 우선 합성된 프레임들(초해상도, 그리고 투영)의 생성 또는 (이득, 전역적 움직임, 레지스트레이션과 같은) 차이의 다른 소스를 보상하는 것에 이어서 실제 움직임 보상에 의해, 증가하는 예측가능성을 가능케 할 수 있다.
디코더(300b)의 필터링 디코더 서브시스템(350b)은 인코더(300a)에 의해 발신된 파라미터들에 기반한 재구성된 픽처들의 여러 필터링을 수행할 수 있고 몇 가지 서브시스템을 포함할 수 있다. 제1 예시적 서브시스템인 역블록화 필터링 모듈(208)은 임의의 잠재적인 블록 코딩 아티팩트를 감소시키거나 차폐하기 위해 역블록화하고 디더링할 수 있다. 제2 예시적 서브시스템인 품질 복원 필터링 모듈(209)은, 임의의 비디오 코딩에서의 양자화 동작으로 인한 아티팩트를 감소시키기 위해 일반적인 품질 복원을 수행할 수 있다. 제3 예시적 서브시스템인 특성 및 움직임 보상된 필터링 예측기 모듈(213)은, 콘텐츠의 움직임 특성(움직임 속도/블러의 정도)에 적응할 수 있는 필터를 사용함으로써 움직임 보상으로부터의 결과를 개선할 수 있다. 제4 예시적 서브시스템은 예측 융합 필터링 모듈(216)은 (예측 내에서(흔히는 인트라 예측으로부터) 의사 아티팩트를 감소시킬 수 있는) 예측 신호의 적응적 필터링을 가능하게 하여 이로써 코딩될 필요가 있는 예측 오차를 감소시킬 수 있다.
디코더(300b)의 사후 복원기 서브시스템(390b)은 디코딩된 비디오의 지각적 품질의 추가 개선을 수행할 수 있는 선택적인 블록이다. 이 처리는 인코더(100)에 의해 발신된 품질 개선 파라미터들에 응답하여 행해질 수 있든지, 또는 그것은 사후 복원기 서브시스템(390b)에서 행해지는 단독형 판단일 수 있다. 사후 복원기 서브시스템(390b)은 품질을 개선하는 데에 사용될 수 있는 인코더(100)에서 계산된 특정 파라미터들의 측면에서 (역블록화 후라도) 인코더(100)에서의 필름 입도 잡음 및 잔차 블록화양태의 추정일 수 있다. 필름 입도 잡음과 관련하여, 만약 파라미터들이 계산되어 출력 비트스트림(111) 및/또는 입력 비트스트림(201)을 통하여 디코더(200)로 발신될 수 있으면, 이 파라미터들은 필름 입도 잡음을 합성하는 데에 사용될 수 있다. 마찬가지로, 인코더(100)에서의 임의의 잔차 블록화 아티팩트들에 대해, 만약 그것들이 측정될 수 있고 파라미터들이 출력 비트스트림(111) 및/또는 비트스트림(201)을 통하여 발신되는 경우, 사후 복원기 서브시스템(390b)은 이 파라미터들을 디코딩할 수 있고 디스플레이 전에 추가적인 역블록화를 선택적으로 수행하기 위해 그것들을 사용할 수 있다. 추가로, 인코더(100)는 또한 장면 변화, 공간적 복잡도, 시간적 복잡도, 움직임 범위 및 예측 거리 정보(사후 복원기 서브시스템(390b)에서의 품질 복원에 도움이 될 수 있음)로의 액세스(access)를 가질 수 있다.
서브시스템들(330b 내지 390b)은 도 3b 내의 디코더(300b)의 특정한 예시적인 기능적 모듈들과 연관된 것으로 예시되나, 본 문서에서의 디코더(300b)의 다른 구현들은 서브시스템들(330b 내지 390b) 간의 디코더(300b)의 기능적 모듈들의 상이한 분배를 포함할 수 있다. 본 개시는 이에 관하여 한정되지 않고, 다양한 예에서, 본 문서에서의 예시적 서브시스템들(330b 내지 390b)의 구현은 예시된 것과는 상이한 배열로 된 것, 추가적인 기능적 모듈들, 그리고/또는 도시된 디코더(300b)의 특정 예시적 기능적 모듈들의 서브세트만 시행하는 것을 포함할 수 있다.
도 4는 본 개시의 적어도 몇몇 구현에 따라 배열된, 수정된 예측 참조 픽처들(400)의 설명도이다. 도시된 바와 같이, 품질 분석기 및 품질 복원 필터링의 출력은 다른 프레임을 코딩하기 위한 예측을 위해 사용될 수 있는 최종적인 재구성된 프레임일 수 있다(가령, 최종적인 재구성된 프레임은 참조 프레임 또는 유사한 것일 수 있다).
NGV 코더(가령, 인코더(100) 및/또는 디코더(200))의 제안된 구현은 모핑된 예측 참조들(428 내지 438)(MR0 내지 3) 및/또는 합성된 예측 참조들(412 및 440 내지 446)(S0 내지 S3, MR4 내지 7)의 조합을 사용하여 P-픽처 코딩을 구현할 수 있다. NGV 코딩은 I-픽처들, P-픽처들 및 F/B-픽처들로 지칭되는 세 가지 픽처 유형의 사용을 수반한다. 보여진 예에서, 코딩될 현재 픽처(P 픽처)는 시간 t = 4에서 도시된다. 코딩 동안에, NGV 코더(가령, 인코더(100) 및/또는 디코더(200))의 제안된 구현은 네 개의 이전에 디코딩된 참조 R0(412), R1(414), R2(416) 및 R3(418) 중 하나 이상을 사용할 수 있다. 직접적으로 예측을 위해 이 참조들을 사용할 뿐일 수 있는 다른 해법들과 달리, NGV 코더(가령, 인코더(100) 및/또는 디코더(200))의 제안된 구현은 수정된(모핑된 또는 합성된) 참조들을 그러한 이전에 디코딩된 참조들로부터 생성하고 움직임 보상된 코딩을 적어도 부분적으로는 그러한 생성된 수정된(모핑된 또는 합성된) 참조들에 기반하여 이후에 사용할 수 있다.
아래에서 더욱 상세히 기술될 바와 같이, 몇몇 예에서, NGV 코더(가령, 인코더(100) 및/또는 디코더(200))의 제안된 구현은 다수의 컴포넌트 및 이들 컴포넌트에 의해 생성된 조합된 예측들을 효율적인 비디오 코딩 알고리즘에 포함시킬 수 있다. 예컨대, NGV 코더의 제안된 구현은 다음 특징들 중 하나 이상을 포함할 수 있다: 1. 이득 보상(가령, 장면 내의 이득/밝기에서의 변화에 대한 명시적인 보상); 2. 블러 보상: 가령, 장면 내의 블러/선예도에서의 변화에 대한 명시적인 보상; 3. 우세/전역적 움직임 보상(가령, 장면 내의 우세 움직임에 대한 명시적인 보상); 4. 레지스트레이션 보상(가령, 장면 내의 레지스트레이션 미스매치에 대한 명시적인 보상); 5. 초해상도(가령, 장면 내의 해상도 정밀도에서의 변화에 대한 명시적인 모델); 6. 투영(가령, 장면 내의 움직임 궤적에서의 변화에 대한 명시적인 모델); 유사한 것, 그리고/또는 이들의 조합.
보여진 예에서, 만약 인터 예측이 적용되는 경우, 특성 및 움직임 필터링 예측기 모듈은 국부적 디코드 루프의 일부로서 (가령, 도면에서 P-pic (curr)로 라벨표시가 된) 현재의 픽처(410)에 움직임 보상을 적용할 수 있다. 몇몇 사례에서, 그러한 움직임 보상은 적어도 부분적으로는 장래의 프레임(도시되지 않음) 및/또는 (가령, 도면에서 R0로 라벨표시가 된) 이전의 프레임 R0(412), (가령, 도면에서 R1으로 라벨표시가 된) 이전의 프레임 R1(414), (가령, 도면에서 R2로 라벨표시가 된) 이전의 프레임 R2(416), 그리고/또는 (가령, 도면에서 R3로 라벨표시가 된) 이전의 프레임 R3(418)에 기반할 수 있다.
예컨대, 몇몇 구현에서, 예측 동작은 인터 및/또는 인트라 예측을 포함할 수 있다. 인터 예측은 모핑 분석기 및 생성 모듈 및/또는 합성 분석기 및 생성 모듈을 포함하는 하나 이상의 모듈에 의해 수행될 수 있다. 그러한 모핑 분석기 및 생성 모듈은 현재의 픽처를, 참조 프레임 또는 프레임들(이로써 그것이 코딩될 것임)에 대해 (가령, 도면에서 Blur par로 라벨표시가 된) 블러 변화(420), (가령, 도면에서 Gain par로 라벨표시가 되고 아래에서 상세히 설명되는) 이득 변화(422), (가령, 도면에서 Reg par로 라벨표시가 된) 레지스트레이션 변화(424) 및 (가령, 도면에서 Dom par로 라벨표시가 된) 우세 움직임 변화(426), 또는 유사한 것을 위한 파라미터들을 결정하기 위해 분석할 수 있다.
결정된 모핑 파라미터(420, 422, 424 및/또는 426)는 모핑된 참조 프레임을 생성하기 위해 사용될 수 있다. 그러한 생성된 모핑된 참조 프레임은 저장될 수 있고 현재의 프레임의 효율적인 움직임(및 특성) 보상된 예측을 위한 움직임 벡터를 계산하기 위해 사용될 수 있다. 보여진 예에서, 예컨대, 결정된 모핑 파라미터(420, 422, 424 및/또는 426)는 모핑된 참조 프레임, 예를 들어 (가령, 도면에서 MR3b로 라벨표시가 된) 블러 보상된 모핑된 참조 프레임(428), (가령, 도면에서 MR2g로 라벨표시가 된) 이득 보상된 모핑된 참조 프레임(430), (가령, 도면에서 MR1g로 라벨표시가 된) 이득 보상된 모핑된 참조 프레임(432), (가령, 도면에서 MR1r로 라벨표시가 된) 레지스트레이션 보상된 모핑된 참조 프레임(434), (가령, 도면에서 MR0d로 라벨표시가 된) 우세 움직임 보상된 모핑된 참조 프레임(436) 및/또는 (가령, 도면에서 MR0r로 라벨표시가 된) 레지스트레이션 보상된 모핑된 참조 프레임(438), 유사한 것 또는 이들의 조합을 생성하는 데에 사용될 수 있다.
유사하게, 합성 분석기 및 생성 모듈은 (가령, 도면에서 S0(이전의 프레임 R0(412)와 동일함), S1, S2, S3로 라벨표시가 된) 초해상도(Super Resoultion: SR) 픽처(440) 및 (가령, 도면에서 PE로 라벨표시가 된) 투영된 보간(Projected Interpolation: PI) 픽처(442) 또는 유사한 것을 이 프레임들 내의 효율적인 움직임 보상된 예측을 위한 움직임 벡터들을 결정하기 위해 생성할 수 있다. 그러한 생성된 합성된 참조 프레임은 저장될 수 있고 현재의 프레임의 효율적인 움직임(및 특성) 보상된 예측을 위한 움직임 벡터를 계산하기 위해 사용될 수 있다.
추가적으로 또는 대안적으로, 결정된 모핑 파라미터(420, 422, 424 및/또는 426)는 생성된 합성 참조 프레임 초해상도(Super Resolution: SR) 픽처(440) 및/또는 투영된 보간(Projected Interpolation: PI) 픽처(442)를 모핑하기 위해 사용될 수 있다. 예컨대, 합성 분석기 및 생성 모듈은 (가령, 도면에서 MR4r, MR5r 및 MR6r로 라벨표시가 된) 모핑된 레지스트레이션 보상된 초해상도(Super Resolution: SR) 픽처(444) 및/또는 (가령, 도면에서 MR7r로 라벨표시가 된) 모핑된 레지스트레이션 보상된 투영된 보간(Projected Interpolation: PI) 픽처(446) 또는 유사한 것을 결정된 레지스트레이션 모핑 파라미터(424)로부터 생성할 수 있다. 그러한 생성된 모핑된 및 합성된 참조 프레임들은 저장될 수 있고 현재의 프레임의 효율적인 움직임(및 특성) 보상된 예측을 위한 움직임 벡터들을 계산하기 위해 사용될 수 있다.
몇몇 구현에서, (예컨대, 이득, 블러, 우세 움직임, 레지스트레이션, 해상도 정밀도, 움직임 궤적, 유사한 것, 또는 이들의 조합과 같은) 특성의 세트에서의 변화가 명시적으로 계산될 수 있다. 국부적인 움직임에 더하여 특성의 그러한 세트가 계산될 수 있다. 몇몇 경우에 이전 및 다음 픽처들/슬라이스들이 적절하게 활용될 수 있으나, 다른 경우에 특성의 그러한 세트가 이전의 픽처/슬라이스들로부터의 예측을 더 잘 해낼 수 있다. 또한, 어떠한 추정 절차에서도 오차가 있을 수 있으므로, (가령, 여러 과거의 또는 여러 과거 및 장래의 픽처/슬라이스로부터) (예컨대, 이득, 블러, 우세 움직임, 레지스트레이션, 해상도 정밀도, 움직임 궤적, 유사한 것, 또는 이들의 조합과 같은) 특성의 세트와 연관된 수정된 참조 프레임(최선의 추정을 내놓는 것임)이 선택될 수 있다. 그러므로, (예컨대, 이득, 블러, 우세 움직임, 레지스트레이션, 해상도 정밀도, 움직임 궤적, 유사한 것, 또는 이들의 조합과 같은) 특성의 세트와 연관된 수정된 참조 프레임을 활용하는 제안된 접근법은 이 특성들에서의 차이들을 명시적으로 보상할 수 있다. 제안된 구현은 예측 신호를 어떻게 개선할 것인지의 문제를 다룰 수 있는데, 이는 결국 비디오 코딩에서 높은 압축 효율을 달성하는 것을 가능하게 한다.
논의된 바와 같이, 몇몇 예에서, 인터 예측이 수행될 수 있다. 몇몇 예에서, 많은 수의 참조 유형(가령, 참조 픽처)을 생성하는 데에 최대 4개의 디코딩된 과거 및/또는 장래 픽처와 몇 개의 모핑/합성 예측이 사용될 수 있다. 예를 들면 '인터' 모드에서, 최대 아홉 개의 참조 유형이 P-픽처에서 지원될 수 있고, 최대 열 개의 참조 유형이 F/B-픽처를 위해 지원될 수 있다. 또한, '멀티' 모드는, 1개의 참조 픽처 대신에 2개의 참조 픽처가 사용될 수 있고 P- 및 F/B-픽처가 각각 3개 및 최대 8개의 참조 유형을 허용할 수 있는 유형의 인터 예측 모드를 제공할 수 있다. 예컨대, 예측은 모핑 기법 또는 합성 기법 중 적어도 하나를 사용하여 생성된 이전에 디코딩된 프레임에 기반할 수 있다. 그러한 예에서, 비트스트림은 예측 파티션과 연관된 합성 파라미터, 모핑 파라미터, 또는 프레임 참조를 포함할 수 있다.
(더욱 상세히 후술되는) 이득 보상이 아닌 모핑 및 합성 기법들 중 몇몇은 다음과 같다.
블러
/
레지스트레이션
보상
하나의 상세화된 예에 의해서, 레지스트레이션 및 블러의 보상을 위한 방법이 후술되는데 다만 용어들은 교체가능하게 사용될 수 있다.
레지스트레이션
보상:
장면을 촬영하는(imaging) 정지 비디오 카메라(stationary video camer)는, 장면의 전역적 이동(movement) 또는 장면 내의 큰 객체의 움직임보다는, 환경적 요인(예를 들어 바람), 근처의 객체로부터의 진동, 떨리는 손, 또는 지터가 있는 캡처 프로세스(jittery capture process)로 인해 프레임마다(frame to frame) 차이가 나는 떨리거나 불안정한 비디오를 여전히 초래할 수 있다. 이것은 프레임마다의 레지스트레이션 차이를 초래하는데, (이득, 전역적/우세 움직임 및 국부적 움직임 보상과 같은 다른 형태의 보상 외에도) 이의 보상은 비디오 코딩의 압축 효율의 개선을 초래할 수 있다.
현재의 프레임 및 이전의 참조 프레임 간의 레지스트레이션 파라미터를 계산하기 위해, 위너 필터링(Wiener filtering)이 이용될 수 있다. x(n)이 입력 신호이고, y(n)이 출력이며, h(n)이 필터 계수를 나타낸다고 하자.
행렬 표기에서, h는 필터 계수의 벡터이다. (소스 프레임과 참조 프레임 간의) 교차상관 행 벡터(cross-correlation row vector)는:
(블록 데이터에 기반하는) 자기상관 행렬(autocorrelation matrix)는:
그리고 나서 h를 풀기 위한 위너 호프 식(Wiener Hopf equation)은 다음과 같다. 위너 호프 식은 평균 제곱 오차(mean square error)에서 최적의 필터 계수들을 결정하고, 결과적인 필터는 '위너' 필터로 불린다.
블러
보상:
장면의 빠른 카메라 팬(camera pan)은, 전하 축적(charge integration)으로 인해, 블러가 있는 이미지를 초래할 수 있다. 또한, 카메라가 가만히 있거나 움직이고 있더라도, 만약 장면이 고속의 이동하는 객체, 예를 들면 풋볼(football) 경기에서의 풋볼 선수를 수반하는 경우, 객체는 촬영의 시간적 해상도가 충분하지 않으므로 블러가 있는 것으로 나타날 수 있다. 앞서 언급된 경우 양자 모두에서, 다른 형태의 보상 전의 또는 이와 연계된 블러의 보상은 비디오 코딩의 압축 효율을 개선할 수 있다.
움직임 블러 추정을 위해, 루시 리처드슨(Lucy-Richardson) 방법이 사용될 수 있다. 그것은 감소된 블러 프레임(X)을 반복(iteration) i에서, Y 소스 프레임으로부터, 블러 연산자(추정된 블러 벡터를 사용하는 블러 프레임)인 B와 수반 연산자(adjoint operator) B*를 사용하여, 연속적으로 계산하기 위한 반복적 알고리즘이다. 연산자 B*는 대략적으로 동일한 시각적 품질을 초래하는 B에 의해 B*가 대체될 수 있으므로 B와 동일한 것으로 대략 여겨질 수 있다.
전역적/우세 움직임 보상
하나의 상세화된 예에 의해서, 비디오 내의 전역적 움직임은 (병진(translatory) 움직임 모델로부터 초래되는 더 큰 예측, 그리고 상당한 양의 움직임 벡터 오버헤드로 인해) 예측에 기반한 블록에 난제를 제기할 수 있으므로, 병진이 아닌(nontranslatory)/복잡한 움직임에 더 잘 적응할 수 있는 잠재력으로 인해 전역적 움직임을 직접적으로 추정/보상하는 대안적인 접근법이 개발되었고, 움직임 파라미터의 더욱 간결한 표현이 픽처당 한 번과 같이 필요에 따라 이제 이용가능하다. 전역적 움직임을 위한 움직임 모델들의 선택범위 중에서, 상당한 이득을 제공하는 두 가지 모델은 어파인 모델(Affine Model)과, 투시 모델(Perspective Model)이다. 어파인 모델은 여섯 개의 파라미터를 사용하며, 큰 범위의 복잡한 움직임을 다룰 수 있는 반면, 투시 모델은 더욱 복잡하고 융통성 있지만, 최대 여덟 개의 파라미터를 사용할 수 있다. 어파인 모델은 많은 경우에 충분할 수 있고 병진, 줌(zoom), 층밀리기(shear) 및 회전(rotation)과 같은 유형의 움직임에 대한 전역적 보상을 가능하게 할 수 있다.
수학적으로 어파인 변환 프로세스는 이전의 프레임 내의 점들 (x, y)의 세트를 점들(x', y')의 수정된 세트로 맵핑하기 위해 어파인 파라미터 a, b, c, d, e, f를 사용하는 다음의 식들에 의해 기술된다.
디코더로의 전역적 움직임 파라미터의 효율적인 송신을 위해, 그 모델은 3개 움직임 궤적들로서 송신되는데, 하나는 픽처의 좌측 상단을 위한 것이고, 하나는 픽처의 우측 상단을 위한 것이며, 하나는 픽처의 좌측 하단을 위한 것이다. 코딩된 픽처보다 더 큰 수이자 2의 가장 가까운 멱(nearest power)인 폭과 높이의 것이라고 가정된 가상의 픽처에 대해 어파인 파라미터들이 계산된다(고정 소수점 연산(fixed point arithmetic)). 이것은 디코더에서 요구되는 나눗셈을 제거한다.
세 개의 꼭짓점 (x0, y0), (x1, y1), (x2, y2)에 대해 대응하는 움직임 궤적 mt0, mt1 및 mt2가 주어지고 (dx0, dy0), (dx1, dy1) 및 (dx2, dy2)로 이를테면 1/8 화소 유닛 내에서 표현될 수 있다고 가정하자. 그러면 어파인 파라미터 A, B, C, D, E 및 F는 다음과 같이 계산될 수 있다.
어파인 모델 기반 전역적 움직임 추정/보상(Global Motion Estimation/Compensation: GME/C)의 사용은 블록 기반 병진 움직임의 사용을 넘어서서 전역적 움직임이 있는 장면들을 위한 주목할 만한 개선이었으나, 현실적으로는 블록 기반 국부적 및 전역적 움직임 양자 모두가 최선의 코딩 효율 결과를 위해 조합된다. 또한, 어파인 모델은 비중첩(non-overlapping) 타일들이나, 장면 내의 영역들/객체들의 움직임 보상을 위해 또한 적용될 수 있다. 이것은 여러 전역적 움직임 파라미터 세트들을 초래하고, 그 프로세스는 우세 움직임 보상(Dominant motion Compensation: DC)를 수행하는 것으로 지칭된다.
초해상도
합성
도 5를 참조하면, 모핑된 예측(이득, 블러/레지스트레이션, 전역적/우세 움직임) 픽처들 외에, 합성된 예측(초해상도(Super Resolution: SR)와, 투영된 보간(Projected Interpolation: PI)) 픽처들이 또한 지원된다. 일반적으로, 초해상도(Super Resolution: SR)는 누락된 정보를 채우는 데에 도움이 되도록 비디오의 많은 과거 프레임을 사용하여 단일 비디오 프레임의 고해상도 재구성 이미지를 생성하는 데에 사용되는 기법이다. 좋은 초해상도 기법의 목표는 알려진 더 높은 해상도의 비디오로써 시험되는 경우 업샘플링(up-sampling)만인 것보다 더 좋은 재구성된 이미지를 산출할 수 있는 것이다. 본 문서에서의 초해상도 생성 기법은 루프내 초해상도 프레임을 생성하는 데에 코딩된 비디오 코덱 데이터를 사용할 수 있다. 루프내 초해상도 프레임은 그 이름이 암시하는 대로 다시 코딩 루프 내에서 사용된다. 코딩 루프 내에서의 SR의 사용은 저해상도 비디오 코딩에서, 그리고 따라서 재구성된 초해상도 비디오에서, 상당한 이득을 제공한다. 이 프로세스는 디코딩되고 있는 현재의 프레임의 고해상도 재구성을 생성하는 데에 현재의 디코딩된 프레임 및 과거의 프레임(또는 만약 이용가능하다면 장래의 프레임)과 함께 (모드 인트라, 움직임, 계수 등등과 같은) 코덱 정보를 조합하고 사용하는 알고리즘을 사용한다. 그러므로 제안된 기법은 빠르며 좋은 시각적 품질을 산출한다.
이동이 느리고 콘텐츠는 꽤 상세한(많은 에지(edge), 텍스처(texture), 기타 등등) 시퀀스들에 대해, 예측에서의 사용을 위해 초해상도 프레임을 생성하는 능력은 더 탁월한 움직임 보상 정확도를 제공하고, 따라서 더 높은 정도의 압축을 허용할 수 있다. 도 5에 도시된 바와 같이, NGV 코딩에 의해 사용되는 합성된 예측의 한 유형인 SR 예측의 생성의 원리가 P-픽처에 적용되는 프로세스(500)가 도식화된다. 이 경우에, 인코더 및 디코더 양자 모두는 합성된 프레임을 이전에 이용가능한 디코딩된 프레임 및 데이터로부터 생성한다. 수평 및 수직 차원 양자 모두에서 프레임 'n'(504)의 크기의 배인 SR 프레임(518)은 'n'에서의 업샘플링된 디코딩된 P 프레임(516)과, 'n-1'에서의 이전 SR 프레임(508)을 사용함으로써 구성된 움직임 보상된 픽처(514)를 혼합함(blending)으로써 생성된다. 이전의 SR 프레임(508)은 역인터리빙되고(de-interleaved), 현재의 P-픽처(504)를 사용함으로써 역인터리빙된 블록들(510)에서의 움직임 추정 값들과 조합된다. 블록들(510)은 움직임 보상된, 디인터링빙된 블록들(512)을 형성하도록 움직임 보상을 위해 사용되는데, 이후에 이것들은 움직임 보상된 픽처(514)를 형성하도록 블록 상으로 재인터리빙된다(re-interleaved). 프레임 n+1에서의 P-픽처에 대해 화살표 D에 의해 다수 참조 예측이 또한 도시된다.
투영된
보간
합성
도 4 상의 프레임 PE(442)로서 도시된 투영된 보간 프레임(PI-픽처)의 생성 및 사용의 원리를 보여주기 위해 프레임 시퀀스(frame sequence)(400)와 같은 픽처 시퀀스가 또한 사용될 수 있다. 단순성을 위해, F-픽처가 B-픽처처럼 작용하며, 하나는 과거에서의 것이고, 다른 하나는 장래에서의 것인 앵커(anchor) 두 개를 참조할 수 있다고 가정하자(이는 단지 하나의 예시적 경우이다). 그러면, 매 F-픽처에 대해, 동일 위치로 된(co-located) 보간된 프레임이 투영된 보간으로 지칭되는 특정 유형의 보간에 의해 장래 및 과거 참조 앵커 프레임들을 사용하여 생성될 수 있다. 투영된 보간은 프레임들의 시퀀스에 걸쳐서 일정하지 않은(non-constant)(또는 비선형(non-linear)) 속도를 갖는 객체 움직임, 또는 상대적으로 큰 움직임을 고려한다. PI는 대체될 동일 위치로 된 또는 현재의 프레임으로부터 그리고 그 보간을 위해 사용되고 있는 두 참조 프레임 각각까지의 거리에 따른 가중 인자들을 사용한다. 그러므로, 이들 두 거리에 비례하는 최적합 움직임 벡터가 결정되는데, 더 가까운 참조에 보통 더 많은 가중치가 주어진다. 이를 완수하기 위하여, 두 개의 스케일 인자(scale factor)(x 인자 및 y 인자)가 한 가지 예를 들면 최소 제곱(least square) 추정에 의해 결정된다. 또한 움직임 보상은 이후 작은 미스매치를 조절할 수 있게 될 수 있다.
예를 들면, 시간 'n+1'에서의 F-픽처에 대해, 시간 'n' 및 시간 'n+2'에서의 앵커 또는 참조 프레임들을 사용하여 이 시간에 동일 위치로 되어 PI-픽처가 생성된다. 마찬가지로 시간 'n+3' 및 시간 'n+4'에서의 F-픽처에 대해, 시간 'n+2' 및 시간 'n+5'에서의 앵커 프레임들을 사용하여 대응하는 PI-픽처들이 생성될 수 있다. PI 픽처가 각각의 F-픽처에 시간 맞춰 대응하도록 합성되므로 이 프로세스는 각각의 장래의 F-픽처에 대해 반복될 수 있다. 대응하는 합성된 PI-픽처들은 두 개의 참조 앵커가 예측을 위해 사용될 것이었던 바와 동일하거나 유사한 방식으로 제3 참조로서 이후에 사용될 수 있다. 몇몇 예측 파티션은 직접적으로 예측 참조들을 사용할 수 있으나 다른 것은 그것들을 묵시적으로 예를 들어 양방예측(bi-prediction)을 생성하기 위해 사용할 수 있다. 그러므로, 합성된 PI-픽처들은, 원래의 F-픽처들 대신, 다중 참조 예측과 함께 그리고 두 개의 참조 앵커와 함께, 예측을 위해 사용될 수 있다.
참조 프레임들에 대한 이 수정들을 구현하기 위한 시스템으로 이제 넘어가서, 그려면 앞에서 언급된 바와 같이, 압축될 비디오의 증가 일로인 해상도와 높은 비디오 품질의 기대와 함께, H.264와 같은 기존의 비디오 코딩 표준들 또는 심지어 H.265/HEVC와 같은 진전중인 표준들을 사용하는 코딩을 위해 요구되는 대응하는 비트레이트/대역폭은 비교적 높다. 앞서 언급된 표준들은 불충분한 압축/품질 문제를 암암리에 다루기 위해 전통적인 접근법들의 확장된 형태들을 사용하지만, 흔히 그 결과들은 제한적이다.
제안된 구현은 인터프레임(interframe) 예측을 개선함으로써 비디오 압축 효율을 개선하는데, 이는 결국 코딩될 필요가 있는 인터프레임 예측 차이(오차 신호)를 감소시킨다. 코딩될 인터프레임 예측 차이의 양이 더 적을수록, 코딩을 위해 요구되는 비트의 양이 더 적으니, 이는 코딩된 예측 차이 신호를 저장하거나 송신하는 데에 이제 더 적은 비트를 취하기 때문에 압축 효율을 효과적으로 개선한다. 움직임 예측에만 한정되는 것 대신에, 제안된 NCV 코덱은, 움직임 보상에 추가하여 또는 이에 대안적으로, 콘텐츠의 특성에서의 변화를 명시적으로 보상하는 접근법을 이용함으로써 콘텐츠의 (예컨대, 이득, 블러, 우세 움직임, 레지스트레이션, 해상도 정밀도, 움직임 궤적, 유사한 것, 또는 이들의 조합과 같은) 특성을 변경하는 것에 매우 적응적일 수 있다. 그러므로 문제의 근본 원인을 명시적으로 다룸으로써 NGV 코덱은 표준 기반 코덱의 한계의 핵심 소스를 다루어, 이로써 더 높은 압축 효율을 달성할 수 있다.
인터프레임 예측 출력에서의 이 변화는 비디오 콘텐츠에서의 변화의 광범위한 원인을 보상하는 제안된 NCV 코덱의 능력으로 인해 달성될 수 있다. 통상적인 비디오 장면들은 많은 국부적 및 전역적 변화(본 문서에서 특성으로 지칭됨)로 인해 프레임마다 달라진다. 국부적 움직임 외에, 제안된 구현에 의해 다루어질 수 있는 현재의 해법들에 의해 충분히 다루어지지 않는 많은 다른 특성이 있다.
제안된 구현은, 국부적 움직임에 더하여, (예컨대, 이득 블러, 우세 움직임, 레지스트레이션, 해상도 정밀도, 움직임 궤적, 유사한 것, 또는 이들의 조합과 같은) 특성의 세트에서의 변화를 명시적으로 계산할 수 있고, 따라서 오직 이전 및 다음 픽처들/슬라이스들로부터의 국부적 움직임 예측을 이용하는 것보다 이전의 픽처/슬라이스들로부터의 예측을 더 잘 해낼 수 있다. 또한, 어떠한 추정 절차에서도 오차가 있을 수 있으므로, 여러 과거의 또는 여러 과거 및 장래의 픽처들/슬라이스들로부터 NGV 코더는 다양한 특성에서의 차이를 명시적으로 보상함으로써 최선의 것을 산출하는 프레임을 택할 수 있다.
동작에서, NGV 코더(가령, 인코더(100) 및/또는 디코더(200))의 제안된 구현은 심볼 런 코딩(symbol-run coding) 또는 코드북(codebook) 또는 유사한 것을 사용하여 예측 모드 및/또는 참조 유형 데이터가 정의될 수 있도록 동작할 수 있다. 예측 모드 및/또는 참조 유형 데이터는 변환 계수를 생성하기 위해 다양한 예에서 콘텐츠 적응적 또는 이산(discrete) 변환을 사용하여 변환 인코딩될(transform encoded) 수 있다. 또한 논의된 바와 같이, 파티션들과 연관된 데이터(가령, 변환 계수들 또는 양자화된 변환 계수들), 오버헤드 데이터(가령, 변환 유형, 적응적 변환 방향 및/또는 변환 모드를 위해 본 문서에서 논의된 바와 같은 지시자들) 및/또는 파티션들 및 기타 등등을 정의하는 데이터가 비트스트림으로 (가령, 엔트로피 인코더를 통하여) 인코딩될 수 있다. 비트스트림은 디코더로 통신될 수 있는데, 이는 디스플레이를 위해 비디오 프레임들을 디코딩하는 데에 인코딩된 비트스트림을 사용할 수 있다. (매크로블록(macroblock) 또는 타일 내의 블록별(block-by-block) 또는 타일 또는 예측 유닛 내의 파티션별(partion-by-partion)로, 또는 초단편 또는 영역 내의 단편들과 같은) 국부적 기반에서 최선의 모드는 예를 들면 적어도 부분적으로는 레이트 왜곡 최적화(Rate Distortion Optimization: RDO)에 기반하여 또는 적어도 부분적으로는 비디오의 사전 분석에 기반하여 선택될 수 있고, 모드와 필요한 참조들을 위한 식별자는 디코더에 의한 사용을 위해 비트스트림 내에 인코딩될 수 있다.
앞서 설명된 바와 같이, 다양한 예측 모드가 P- 및 F-픽처들 내에 허용되고, 그것들이 참조 유형들과 어떻게 관련되는지와 더불어, 아래에서 예시가 된다. P-픽처 및 F-픽처 타일들 모두 더 작은 유닛들로 파티셔닝되고, "스킵", "오토", "인터" 및 "멀티" 중에서의 예측 모드가 타일의 각 파티션에 할당된다. 표 1 내의 모드들의 전체 리스트는 시간적 움직임 보상된 예측과 대비되어 이웃 블록들로부터의 공간적 예측을 나타내는 '인트라'를 또한 포함한다. "스플리트" 모드는 추가의 분할 또는 추가의 파티셔닝의 필요성을 나타낸다. "인터" 또는 "멀티" 모드를 사용하는 파티션들에 대해, 사용되는 참조에 대한 추가 정보가 필요하고 P-픽처들에 대해서는 각각 표 2a 및 표 2b에서, 반면 F-픽처들에 대해서는, 각각 표 3a 및 표 3b에서 도시된다.
예측 모드 및 참조 유형 분석기(125)(도 1)는, 모두 P- 및 F-픽처들에 적용될 수 있는 것인, 타일의 각 파티션에 대한, 그리고 앞서 언급된 바와 같은 "스킵", "오토", "인터", "멀티" 및 "인트라" 중에서의 예측 모드의 선택을 가능케 할 수 있고, 이것은 아래의 도 1에 도시된다. 예측 모드에 더하여, 그것은 또한, P- 및 F-픽처들에 대해서는 물론, "인터" 또는 "멀티" 모드에 따라 상이할 수 있는 참조 유형의 선택을 가능케 하는데, 참조 유형의 상세한 리스트가 P-픽처들에 대해서 표 2a 및 표 2b에, 그리고 F-픽처들에 대해서 표 3a, 표 3b, 표 3c 및 표 3d에 도시된다.
아래에 도시된 표 1 내지 표 3d는, 재구성되고 있거나 재구성될 현재의 프레임(curr_pic)을 위한 코드북 엔트리(entry)들의 하나의 예를 보여준다. 엔트리들의 완전한 코드북은 모든 가능한 엔트리 및 이들의 코딩의 완전한 또는 실질적으로 완전한 목록을 제공할 수 있다. 몇몇 예에서, 코드북은 전술된 바와 같이 제약들을 고려할 수 있다. 몇몇 예에서, 예측 모드 및/또는 참조 유형을 위한 코드북 엔트리와 연관된 데이터가 본 문서에서 논의된 바와 같이 디코더에서의 사용을 위해 비트스트림 내에 인코딩될 수 있다.
[표 1]
(이미 앞서 설명된) P- 및 F-픽처들 내의 타일의 파티션들을 위한 예측 모드들:
[표 2a]
P-픽처들 내에서 "인터" 모드를 갖는, 타일의 파티션들을 위한 참조 유형:
[표 2b]
P-픽처들 내에서 "멀티" 모드를 갖는, 타일의 파티션들을 위한 참조 유형:
여기서 표 2b는 표 제목에 의해 표시된 바와 같이 표에 있는 참조들 중 하나 및 파라미터들이 없는 과거의 참조를 포함하는 참조들의 특정 조합으로 지향된다.
[표 3a]
F-픽처들 내에서 "인터" 모드를 갖는, 타일의 파티션들을 위한 참조 유형:
여기서 투영 F(proj F)는 PI를 나타내고, 라인 8은, 하나의 예에 의해, 두 개의 선택적인 참조를 포함한다.
[표 3b]
F-픽처들 내에서 "멀티" 모드 및 Dir 0를 갖는, 타일의 파티션들을 위한 참조 유형:
여기서 Dir는 F-프레임들을 위한 멀티 모드를 위한 참조들의 고정되거나 부분적으로 고정된 조합인 서브모드(sub-mode)를 나타내는바, 위의 Dir 0, 그리고 아래의 Dir 1 및 Dir 2는 각각 참조들의 조합을 나타낸다. 그러므로, 도 3b에 도시된 바와 같이, Dir 0는 (특정한 시간에서의 특정한 참조일 수 있는(예컨대 n+2에서의 참조 3) 과거의 참조 및 표로부터의 참조들 중 하나와 조합되는 조합을 나타낼 수 있다. 아래의 표들에서의 Dir는 유사하며 표의 제목에서 설명되는 바와 같다.
[표 3c]
F-픽처들 내에서 "멀티" 모드 및 Dir 1을 갖는, 타일의 파티션들의 참조 유형:
[표 3d]
F-픽처들 내에서 "멀티" 모드 및 Dir 2를 갖는, 타일의 파티션들의 참조 유형:
도 6은 본 개시의 적어도 몇몇 구현에 따라 배열된, 특성 및 움직임 보상된 예측을 수행하기 위한 예시적인 인코더 예측 서브시스템(330)의 설명도이다. 예시된 바와 같이, 인코더(600)의 인코더 예측 서브시스템(330)은 디코딩된 픽처 버퍼(119), 모핑 분석기 및 생성 모듈(120), 합성 분석기 및 생성 모듈(121), 움직임 추정기 모듈(122) 및/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(123)을 포함할 수 있다.
도시된 바와 같이, 품질 분석기 및 품질 복원 필터링의 출력은 디코딩된 픽처 버퍼(119)로 송신될 수 있다. 몇몇 예에서, 품질 분석기 및 품질 복원 필터링의 출력은 다른 프레임을 코딩하기 위한 예측을 위해 사용될 수 있는 최종적인 재구성된 프레임일 수 있다(가령, 최종적인 재구성된 프레임을 참조 프레임 또는 유사한 것일 수 있다). 인코더(600)에서, 예측 동작들은 인터 및/또는 인트라 예측을 포함할 수 있다. 도 6에 도시된 바와 같이, 인터 예측은 모핑 분석기 및 생성 모듈(120), 합성 분석기 및 생성 모듈(121) 및/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(123)을 포함하는 하나 이상의 모듈에 의해 수행될 수 있다.
모핑 분석기 및 생성 모듈(120)은 모핑 유형 분석기(Morphing Types Analyzer: MTA) 및 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(610)는 물론 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(620)를 포함할 수 있다. 모핑 유형 분석기(Morphing Types Analyzer: MTA) 및 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(610)는 현재의 픽처를, 그것이 코딩될 때 쓰일 참조 프레임 또는 참조 프레임들에 대해서 이득에서의 변화, 우세 움직임에서의 변화, 레지스트레이션에서의 변화 및 블러에서의 변화를 위한 파라미터들을 결정하기 위해 현재의 픽처를 분석할 수 있다. 결정된 모핑 파라미터들은 (가령 모핑 분석기 및 생성 모듈(120)에 의해) 모핑된 참조 프레임들을 생성하기 위해 양자화/역양자화 및 사용이 될 수 있다. 그러한 생성된 모핑된 참조 프레임들은 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(620) 내에 저장될 수 있고 현재의 프레임의 효율적인 움직임(및 특성) 보상된 예측을 위한 움직임 벡터들을 계산하기 위해 움직임 추정기 모듈(122)에 의해 사용될 수 있다.
합성 분석기 및 생성 모듈(121)은 합성 유형 분석기(Synthesis Types Analyzer: STA) 및 합성된 픽처 생성기(Synthesized Pictures Generator: SPG)(630)는 물론 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(640)를 포함할 수 있다. 합성 유형 분석기(Synthesis Types Analyzer: STA) 및 합성된 픽처 생성기(Synthesized Pictures Generator: SPG)(630)는 이 프레임들에서의 효율적인 움직임 보상된 예측을 위한 움직임 벡터들을 결정하기 위해 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들 또는 유사한 것을 생성할 수 있다. 그러한 생성된 합성된 참조 프레임들은 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(640) 내에 저장될 수 있고 현재의 프레임의 효율적인 움직임(및 특성) 보상된 예측을 위한 움직임 벡터들을 계산하기 위해 움직임 추정기 모듈(122)에 의해 사용될 수 있다.
움직임 추정기 모듈(122)은 적어도 부분적으로는 현재의 프레임과 더불어 모핑된 참조 프레임(들) 및/또는 초해상도(Super Resolution: SR) 픽처들과 투영된 보간(Projected Interpolation: PI) 픽처들에 기반하여 움직임 벡터 데이터를 생성할 수 있다. 몇몇 예에서, 움직임 추정기 모듈(122)은 인터 예측 모듈로 간주될 수 있다. 예컨대, 움직임 벡터 데이터는 인터 예측을 위해 사용될 수 있다. 만약 인터 예측이 적용되는 경우, 특성 및 움직임 필터링 예측기 모듈(123)은 논의된 바와 같이 국부적 디코드 루프의 일부로서 움직임 보상을 적용할 수 있다.
도 7은 본 개시의 적어도 몇몇 구현에 따라 배열된, 특성 및 움직임 보상된 예측을 수행하기 위한 예시적인 디코더 예측 서브시스템(701)의 설명도이다. 보여진 바와 같이, 디코더(700)의 디코더 예측 서브시스템(701)은 디코딩된 픽처 버퍼(210), 모핑 분석기 및 생성 모듈(211), 합성 분석기 및 생성 모듈(212) 및/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(213)을 포함할 수 있다.
도시된 바와 같이, 품질 복원 필터링 모듈의 출력은 디코딩된 픽처 버퍼(또는 프레임 선택기 제어)(210)로 송신될 수 있다. 몇몇 예에서, 품질 복원 필터링 모듈의 출력은 다른 프레임을 코딩하기 위한 예측을 위해 사용될 수 있는 최종적인 재구성된 프레임일 수 있다(가령, 최종적인 재구성된 프레임은 참조 프레임 또는 유사한 것일 수 있다). 논의된 바와 같이, 예측 동작으로 인한 보상은 인터 및/또는 인트라 예측 보상을 포함할 수 있다. 도시된 바와 같이, 인터 예측 보상은 모핑 분석기 및 생성 모듈(211), 합성 분석기 및 생성 모듈(212) 및/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(213)을 포함하는 하나 이상의 모듈에 의해 수행될 수 있다.
모핑 분석기 및 생성 모듈(211)은 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(710)는 물론 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(720)를 포함할 수 있다. 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(710)는 모핑된 참조 프레임들을 생성하는 데에 (가령, 입력 비트스트림으로부터 결정된) 역양자화된 모핑 파라미터들을 사용할 수 있다. 그러한 생성된 모핑된 참조 프레임들은 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(720) 내에 저장될 수 있고 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(213)에 의해 사용될 수 있다.
합성 분석기 및 생성 모듈(212)은 합성된 픽처 생성기(Synthesized Pictures Generator: SPG)(730)는 물론 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(740)를 포함할 수 있다. 합성된 픽처 생성기(730)는 입력 비트스트림(201)으로부터 결정된 파라미터들에 적어도 부분적으로 기반하여 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들 또는 유사한 것과 같은 하나 이상의 유형의 합성된 예측 참조 픽처를 생성하도록 구성될 수 있다. 그러한 생성된 합성된 참조 프레임들은 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(740) 내에 저장될 수 있고 움직임 보상된 필터링 예측기 모듈(213)에 의해 사용될 수 있다.
만약 인터 예측이 적용되는 경우, 특성 및 움직임 보상된 필터링 예측기 모듈(213)은 적어도 부분적으로는 현재의 프레임과 더불어 모핑된 참조 프레임(들) 및/또는 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들에 기반하여 움직임 보상을 적용할 수 있다.
도 8을 참조하면, 특성 및 움직임 보상 예측을 수행하기 위한 다른 예시적인 인코더 예측 서브시스템(330)의 설명도가 본 개시의 적어도 몇몇 구현에 따라 배열된다. 보여진 바와 같이, 인코더(800)의 인코더 예측 서브시스템(330)은 디코딩된 픽처 버퍼(119), 모핑 분석기 및 생성 모듈(120), 합성 분석기 및 생성 모듈(121), 움직임 추정기 모듈(122) 및/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(123)을 포함할 수 있다.
도시된 바와 같이, 품질 분석기 및 품질 복원 필터링의 출력은 디코딩된 픽처 버퍼(119)로 송신될 수 있다. 몇몇 예에서, 품질 분석기 및 품질 복원 필터링의 출력은 다른 프레임을 코딩하기 위한 예측을 위해 사용될 수 있는 최종적인 재구성된 프레임일 수 있다(가령, 최종적인 재구성된 프레임은 참조 프레임 또는 유사한 것일 수 있다). 인코더(800)에서, 예측 동작은 인터 및/또는 인트라 예측을 포함할 수 있다. 도 8에 도시된 바와 같이, 인터 예측은 모핑 분석기 및 생성 모듈(120), 합성 분석기 및 생성 모듈(121) 및/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(123)을 포함하는 하나 이상의 모듈에 의해 수행될 수 있다.
모핑 분석기 및 생성 모듈(120)은 모핑 유형 분석기(Morphing Types Analyzer: MTA) 및 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(610)는 물론 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(620)를 포함할 수 있다. 모핑 유형 분석기(Morphing Types Analyzer: MTA) 및 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(610)는 하나 이상의 유형의 수정된 예측 참조 픽처를 분석하고/하거나 생성하도록 구성될 수 있다.
예컨대, 모핑 유형 분석기(Morphing Types Analyzer: MTA) 및 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(610)는 이득 추정기 및 보상된 예측 생성기(Gain Estimator and Compensated Prediction Generator)(805), 블러 추정기 및 보상된 예측 생성기(Blur Estimator and Compensated Prediction Generator)(810), 우세 움직임 추정기 및 보상된 예측 생성기(Dominant Motion Estimator and Compensated Prediction Generator)(815), 레지스트레이션 추정기 및 보상된 예측 생성기(Registration Estimator and Compensated Prediction Generator)(820), 유사한 것 및/또는 이들의 조합을 포함할 수 있다. 이득 추정기 및 보상된 예측 생성기(805)는 이득에서의 변화를 다루도록 적응된 모핑된 예측 참조 픽처들을 분석하고/하거나 생성하도록 구성될 수 있다. 블러 추정기 및 보상된 예측 생성기(810)는 블러에서의 변화를 다루도록 적응된 모핑된 예측 참조 픽처들을 분석하고/하거나 생성하도록 구성될 수 있다. 우세 움직임 추정기 및 보상된 예측 생성기(815)는 우세 움직임에서의 변화를 다루도록 적응된 모핑된 예측 참조 픽처들을 분석하고/하거나 생성하도록 구성될 수 있다. 레지스트레이션 추정기 및 보상된 예측 생성기(820)는 레지스트레이션에서의 변화를 다루도록 적응된 모핑된 예측 참조 픽처들을 분석하고/하거나 생성하도록 구성될 수 있다.
모핑 유형 분석기(Morphing Types Analyzer: MTA) 및 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(610)는 그러한 생성된 모핑된 참조 프레임들은 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(620) 내에 저장할 수 있다. 예컨대, 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(620)는 이득 보상된(Gain Compensated: GC) 픽처/들 버퍼(825), 블러 보상된(Blur Compensated: BC) 픽처/들 버퍼(830), 우세 움직임 보상된(Dominant Motion Compensated: DC) 픽처/들 버퍼(835), 레지스트레이션 보상된(Registration Compensated: RC) 픽처/들 버퍼(840), 유사한 것 및/또는 이들의 조합을 포함할 수 있다. 이득 보상된(Gain Compensated: GC) 픽처/들 버퍼(825)는 이득에서의 변화를 다루도록 적응된 모핑된 참조 프레임들을 저장하도록 구성될 수 있다. 블러 보상된(Blur Compensated: BC) 픽처/들 버퍼(830)는 블러에서의 변화를 다루도록 적응된 모핑된 참조 프레임들을 저장하도록 구성될 수 있다. 우세 움직임 보상된(Dominant Motion Compensated: DC) 픽처/들 버퍼(835)는 우세 움직임에서의 변화를 다루도록 적응된 모핑된 참조 프레임들을 저장하도록 구성될 수 있다. 레지스트레이션 보상된(Registration Compensated: RC) 픽처/들 버퍼(840)는 레지스트레이션에서의 변화를 다루도록 적응된 모핑된 참조 프레임들을 저장하도록 구성될 수 있다.
합성 분석기 및 생성 모듈(121)은 합성 유형 분석기(Synthesis Types Analyzer: STA) 및 합성된 픽처 생성기(Synthesized Pictures Generator: SPG)(630)는 물론 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(640)를 포함할 수 있다. 합성 유형 분석기(Synthesis Types Analyzer: STA) 및 합성된 픽처 생성기(Synthesized Pictures Generator: SPG)(530)는 하나 이상의 유형의 합성된 예측 참조 픽처를 분석하고/하거나 생성하도록 구성될 수 있다. 예컨대, 합성 유형 분석기(Synthesis Types Analyzer: STA) 및 합성된 픽처 생성기(Synthesized Pictures Generator: SPG)(630)는 초해상도 필터 선택기 및 예측 생성기(Super Resolution Filter Selector & Prediction Generator)(845), 투영 궤적 분석기 및 예측 생성기(Projection Trajectory Analyzer & Prediction Generator)(850), 유사한 것 및/또는 이들의 조합을 포함할 수 있다. 초해상도 필터 선택기 및 예측 생성기(845)는 초해상도(Super Resolution: SR) 유형의 합성된 예측 참조 픽처를 분석하고/하거나 생성하도록 구성될 수 있다. 투영 궤적 분석기 및 예측 생성기(850)는 투영된 보간(Projected Interpolation: PI) 유형의 합성된 예측 참조 픽처를 분석하고/하거나 생성하도록 구성될 수 있다.
합성 유형 분석기(Synthesis Types Analyzer: STA) 및 합성된 픽처 생성기(Synthesized Pictures Generator: SPG)(630)는 이 프레임들에서의 효율적인 움직임 보상된 예측을 위해 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들 또는 유사한 것을 생성할 수 있다. 그러한 생성된 합성된 참조 프레임들은 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(640) 내에 저장될 수 있고 현재의 프레임의 효율적인 움직임(및 특성) 보상된 예측을 위한 움직임 벡터들을 계산하기 위해 움직임 추정기 모듈(122)에 의해 사용될 수 있다.
예컨대, 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(640)는 초해상도(Super Resolution: SR) 픽처 버퍼(855), 투영된 보간(Projected Interpolation: PI) 픽처 버퍼(860), 유사한 것 및/또는 이들의 조합을 포함할 수 있다. 초해상도(Super Resolution: SR) 픽처 버퍼(855)는 초해상도(Super Resolution: SR) 픽처들을 위해 생성된 합성된 참조 프레임들을 저장하도록 구성될 수 있다. 투영된 보간(Projected Interpolation: PI) 픽처 버퍼(860)는 투영된 보간(Projected Interpolation: PI) 픽처들을 위해 생성된 합성된 참조 프레임들을 저장하도록 구성될 수 있다.
움직임 추정기 모듈(122)은 적어도 부분적으로는 현재의 프레임과 더불어 모핑된 참조 프레임(들) 및/또는 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들에 기반하여 움직임 벡터 데이터를 생성할 수 있다. 몇몇 예에서, 움직임 추정기 모듈(122)은 인터 예측 모듈로 간주될 수 있다. 예컨대, 움직임 벡터 데이터는 인터 예측을 위해 사용될 수 있다. 만약 인터 예측이 적용되는 경우, 특성 및 움직임 필터링 예측기 모듈(123)은 논의된 바와 같이 국부적 디코드 루프의 일부로서 움직임 보상을 적용할 수 있다.
도 9는 본 개시의 적어도 몇몇 구현에 따라 배열된, 특성 및 움직임 보상된 예측을 수행하기 위한 다른 예시적인 디코더 예측 서브시스템(701)의 설명도이다. 보여진 바와 같이, 디코더 예측 서브시스템(701)은 디코딩된 픽처 버퍼(210), 모핑 분석기 및 생성 모듈(211), 합성 분석기 및 생성 모듈(212) 및/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(213)을 포함할 수 있다.
도시된 바와 같이, 품질 복원 필터링 모듈의 출력은 디코딩된 픽처 버퍼(210)로 송신될 수 있다. 몇몇 예에서, 품질 복원 필터링 모듈의 출력은 다른 프레임을 코딩하기 위한 예측을 위해 사용될 수 있는 최종적인 재구성된 프레임일 수 있다(가령, 최종적인 재구성된 프레임은 참조 프레임 또는 유사한 것일 수 있다). 논의된 바와 같이, 예측 동작으로 인한 보상은 인터 및/또는 인트라 예측 보상을 포함할 수 있다. 도시된 바와 같이, 인터 예측 보상은 모핑 분석기 및 생성 모듈(211), 합성 분석기 및 생성 모듈(212) 및/또는 특성 및 움직임 보상된 정밀 적응적 필터링 예측기 모듈(213)을 포함하는 하나 이상의 모듈에 의해 수행될 수 있다.
모핑 생성 모듈(212)은 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(710)는 물론 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(720)를 포함할 수 있다. 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(710)는 모핑된 참조 프레임들을 생성하는 데에 (가령, 입력 비트스트림으로부터 결정된) 역양자화된 모핑 파라미터들을 사용할 수 있다. 예컨대, 모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(710)는 이득 보상된 예측 생성기(Gain Compensated Prediction Generator)(905), 블러 보상된 예측 생성기(Blur Compensated Prediction Generator)(910), 우세 움직임 보상된 예측 생성기(Dominant Motion Compensated Prediction Generator)(915), 레지스트레이션 보상된 예측 생성기(Registration Compensated Prediction Generator)(920), 유사한 것 및/또는 이들의 조합을 포함할 수 있다. 이득 보상된 예측 생성기(905)는 더욱 상세히 후술되는 바와 같이 이득에서의 변화를 다루도록 적응된 모핑된 예측 참조 픽처들을 생성하도록 구성될 수 있다. 블러 보상된 예측 생성기(910)는 블러에서의 변화를 다루도록 적응된 모핑된 예측 참조 픽처들을 생성하도록 구성될 수 있다. 우세 움직임 보상된 예측 생성기(915)는 우세 움직임에서의 변화를 다루도록 적응된 모핑된 예측 참조 픽처들을 생성하도록 구성될 수 있다. 레지스트레이션 보상된 예측 생성기(920)는 레지스트레이션에서의 변화를 다루도록 적응된 모핑된 예측 참조 픽처들을 생성하도록 구성될 수 있다.
모핑된 픽처 생성기(Morphed Pictures Generator: MPG)(710)는 그러한 생성된 모핑된 참조 프레임들은 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(720) 내에 저장할 수 있다. 예컨대, 모핑된 예측 참조(Morphed Prediction Reference: MPR) 버퍼(720)는 이득 보상된(Gain Compensated: GC) 픽처/들 버퍼(925), 블러 보상된(Blur Compensated: BC) 픽처/들 버퍼(930), 우세 움직임 보상된(Dominant Motion Compensated: DC) 픽처/들 버퍼(935), 레지스트레이션 보상된(Registration Compensated: RC) 픽처/들 버퍼(940), 유사한 것 및/또는 이들의 조합을 포함할 수 있다. 이득 보상된(Gain Compensated: GC) 픽처/들 버퍼(925)는 이득에서의 변화를 다루도록 적응된 모핑된 참조 프레임들을 저장하도록 구성될 수 있다. 블러 보상된(Blur Compensated: BC) 픽처/들 버퍼(930)는 블러에서의 변화를 다루도록 적응된 모핑된 참조 프레임들을 저장하도록 구성될 수 있다. 우세 움직임 보상된(Dominant Motion Compensated: DC) 픽처/들 버퍼(935)는 우세 움직임에서의 변화를 다루도록 적응된 모핑된 참조 프레임들을 저장하도록 구성될 수 있다. 레지스트레이션 보상된(Registration Compensated: RC) 픽처/들 버퍼(940)는 레지스트레이션에서의 변화를 다루도록 적응된 모핑된 참조 프레임들을 저장하도록 구성될 수 있다.
합성 분석기 및 생성 모듈(212)은 합성된 픽처 생성기(Synthesized Pictures Generator: SPG)(630)는 물론 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(740)를 포함할 수 있다. 합성된 픽처 생성기(730)는 입력 비트스트림(201)으로부터 결정된 파라미터들에 기반하여 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들 또는 유사한 것과 같은 하나 이상의 유형의 합성된 예측 참조 픽처를 생성하도록 구성될 수 있다. 그러한 생성된 합성된 참조 프레임들은 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(740) 내에 저장될 수 있고 움직임 보상된 필터링 예측기 모듈(213)에 의해 사용될 수 있다. 예컨대, 합성된 픽처 생성기(730)는 초해상도 픽처 생성기(Super Resolution Picture Generator)(945), 투영 궤적 픽처 생성기(Projection Trajectory Picture Generator)(950), 유사한 것 및/또는 이들의 조합을 포함할 수 있다. 초해상도 픽처 생성기(945)는 초해상도(Super Resolution: SR) 유형의 합성된 예측 참조 픽처를 생성하도록 구성될 수 있다. 투영 궤적 픽처 생성기(950)는 투영된 보간(Projected Interpolation: PI) 유형의 합성된 예측 참조 픽처를 생성하도록 구성될 수 있다.
합성된 픽처 생성기(730)는 이 프레임들에서의 효율적인 움직임 보상된 예측을 위해 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들 또는 유사한 것을 생성할 수 있다. 그러한 생성된 합성된 참조 프레임들은 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(740) 내에 저장될 수 있고 현재의 프레임의 효율적인 움직임(및 특성) 보상된 예측을 위해 특성 및 움직임 보상된 필터링 예측기 모듈(213)에 의해 사용될 수 있다.
예컨대, 합성된 예측 참조(Synthesized Prediction Reference: SPR) 버퍼(740)는 초해상도(Super Resolution: SR) 픽처 버퍼(955), 투영된 보간(Projected Interpolation: PI) 픽처 버퍼(960), 유사한 것 및/또는 이들의 조합을 포함할 수 있다. 초해상도(Super Resolution: SR) 픽처 버퍼(955)는 초해상도(Super Resolution: SR) 픽처들을 위해 생성된 합성된 참조 프레임들을 저장하도록 구성될 수 있다. 투영된 보간(Projected Interpolation: PI) 픽처 버퍼(960)는 투영된 보간(Projected Interpolation: PI) 픽처들을 위해 생성된 합성된 참조 프레임들을 저장하도록 구성될 수 있다.
만약 인터 예측이 적용되는 경우, 특성 및 움직임 보상된 필터링 예측기 모듈(213)은 현재의 프레임과 더불어 모핑된 참조 프레임(들) 및/또는 초해상도(Super Resolution: SR) 픽처들 및 투영된 보간(Projected Interpolation: PI) 픽처들에 기반하여 움직임 보상을 적용할 수 있다.
이득 보상
도 10 내지 도 21을 참조하면, 앞서 언급된 바와 같이 참조 프레임은 이득 보상이 그 프레임에 정확한 밝기를 제공하도록 수정될 수 있는바, 이는 밝기 파라미터를 사용하는 움직임 보상 계산에서 이후에 사용될 수 있다. 그 도면들에 도시된 바와 같이, 페이드 인 또는 페이드 아웃뿐만 아니라, 플래시 전구, 밝은 빛의 활성화 또는 비활성화, 섬광, 폭발 및 기타 등등으로 인한 밝기에서의 갑작스런 변화가 있는 경우에 이득 보상이 요망될 수 있다. 과거에는, 전역적인 밝기 변화를 위한 기법들만이 개시되었는데, 여기서는, 예컨대, 단일 밝기 오차, 잔차, 또는 조절 값이 전체 프레임을 위해 사용되나, 밝기 변화에서의 국부적 보상은 성공적으로 다루어지지 않았다.
한 쌍의 프레임들(현재의 프레임 및 하나의 예에 의해 현재의 프레임에 대해 바로 이전의 프레임일 수 있거나 그렇지 않을 수 있는 과거의 디코딩된 참조 프레임) 간의 밝기 차이의 보상을 위해서 밝기 차이를 다룰 특정 방법이 개발되었다. 이 방법들은 그 프레임의 다른 부분들을 위해 별개의 밝기 변화 파라미터들을 적응적으로 추정하고 적용하나, 비트 비용에서 효율적이고 복잡도에서 낮은 채로 있다.
도 22를 참조하면, 하나의 접근법에 의해, 예시적인 프로세스(2200)가 본 개시의 적어도 몇몇 구현에 따라 배열된다. 프로세스(2200)는 하나 이상의 동작(operation), 기능(function) 또는 행동(action)을 포함할 수 있으니 하나 이상의 동작에 의해 예시되는 바와 같다. 프로세스(2200)는 차세대 비디오 코딩 프로세스의 적어도 일부를 형성할 수 있다. 비한정적인 예로서, 프로세스(2200)는 도 1 내지 도 2의 코더 시스템(100 및 200) 또는 도 32 내지 도 33의 이득 보상 코더 시스템(3200 및 3300), 그리고/또는 본 문서에 기술된 임의의 다른 코더 시스템 또는 서브시스템에 의해 시행되는 바와 같은 차세대 비디오 인코딩 프로세스의 적어도 일부를 형성할 수 있다.
프로세스(2200)는 "밝기에서의 인터 프레임 변화의 보상을 수행하기" 위한 컴퓨터로 구현된(computer implemented) 비디오 코딩 방법(2202)일 수 있다. 이것은 "각각의 세트가 프레임의 일부분을 위한 이득 값 및 오프셋 값을 포함하는 파라미터들의 여러 세트들을 현재의 프레임 및 참조 프레임의 픽셀들의 밝기를 사용하는 것에 의해 계산하는 것"으로 시작할 수 있다. 하나의 예에 의해, 요구 부분들은 프레임을 형성하는 파티션들일 수 있다.
이후, 프로세스(2200)는 "파라미터들의 세트들 및 프레임의 어느 부분이 어느 파라미터에 대응하는지의 표시를 디코더에 송신하는 것"을 포함할 수 있다. 이 배열로써, 품질을 프레임당 비트 부하와 밸런싱하는, 프레임을 위한 최선의 파라미터들이 선택되고 이후 디코더에 송신될 수 있어서 이 결정은 디코더 측에서 제외될 수 있다.
프로세스(2200)는 "원래의 참조 프레임보다 오차가 더 적은 수정된 참조 프레임을 형성하기 위해 파라미터들을 사용하는 것"을 또한 포함할 수 있다. 특히, 이득 보상에 의해 수정된 것인 수정된 참조 프레임이, 예컨대 P-픽처 또는 F-픽처를 위한 참조 프레임으로서 사용될 수 있는데, 여기서 전술된 바와 같은 F-픽처는 그것이 과거의, 장래의, 또는 양자 모두의 유형의 참조 프레임을 사용할 수 있도록 양방향성인 반면 그것은 모핑되거나 합성된 수정된 참조 프레임을 사용할 수 있고, 여기서 이득 보상은 수행될 수 있는 모핑의 하나의 유형일 뿐이다.
도 23을 참조하면, 약간 더 구체적인 예시적 접근법에 의해, 예시적인 프로세스(2300)가 본 개시의 적어도 몇몇 구현에 따라 배열된다. 프로세스(2300)는 하나 이상의 동작, 기능 또는 행동을 포함할 수 있는데 하나 이상의 동작에 의해 예시되는 바와 같다. 프로세스(2300)는 차세대 비디오 코딩 프로세스의 적어도 일부를 형성할 수 있다. 비한정적인 예로서, 프로세스(2300)는 도 1 내지 도 2의 코더 시스템(100 및 200), 또는 도 32 내지 도 33의 이득 보상 코더 시스템(3200 및 3300), 그리고/또는 본 문서에 기술된 임의의 다른 인코더 시스템 또는 서브시스템에 의해 시행되는 바와 같은 차세대 비디오 인코딩 프로세스의 적어도 일부를 형성할 수 있다.
프로세스(2300)는 "현재의 프레임 및 현재의 프레임을 위한 움직임 보상 참조 프레임으로서 사용할 디코딩된 참조 프레임을 갖는 픽셀 데이터의 프레임들을 획득하는 것"(2302)을 포함하는 컴퓨터로 구현된 비디오 코딩 방법일 수 있다.
프로세스(2300)는 "프레임을 형성하기 위해 변동 개수의 또는 변동 배열의 또는 양자 모두인 파티션을 사용하는 패턴들 중에서, 각각의 파티션이 하나보다 많은 픽셀과 연관된 파티션 패턴을 선택하는 것"(2304)을 또한 포함할 수 있다. 그러므로, 하나의 접근법에 의해, 프레임을 위한 사전결정된 파티션 패턴들의 세트가 있을 수 있고, 시스템은 각각의 대안적 패턴을 위한 파라미터들을 계산하고, 이후 아래에 설명되는 바와 같이 최선 패턴을 고를 수 있다.
프로세스(2300)는 "개별 파티션들을 위해 이득 값 및 오프셋 값을 제공함으로써 참조 프레임에 대한 밝기 이득 보상 값들을 결정하는 것"(2306)을 또한 포함할 수 있다. 그러므로, 하나의 형태에서, 각각의 파티션 또는 적어도 여러 파티션에 대해 이득 값 및 오프셋 값이 결정되고, 이 값들은 어느 파티션 패턴이 이미지 품질 및 송신될 비트 간의 최선의 밸런스를 제공하는지를 결정하는 데에 사용될 수 있다.
프로세스(2300)는 "여러 이득 보상 값들이 단일 프레임을 위해 제공되고 프레임 내의 파티션의 위치에 의존하도록, 이득 보상 값에 의해 조절되는 참조 프레임의 파티션의 밝기를 조절하는 것에 의해 국부적으로 적응적인 이득 보상을 적용하는 것"(2308)을 또한 포함할 수 있다. 이것은 덜 정확한 전역적 밝기 변화보다는 밝기에서의 상이한 변화를 갖는, 프레임의 상이한 부분에 대한 국부적 이득 보상을 제공한다.
도 24를 참조하면, 이제 더욱 상세히, 예시적인 프로세스(2400)가 본 개시의 적어도 몇몇 구현에 따라 배열된다. 프로세스(2400)는 하나 이상의 동작, 기능 또는 행동을 포함할 수 있는데 하나 이상에 의해 예시되는 바와 같다. 프로세스(2400)는 차세대 비디오 코딩 프로세스의 적어도 일부를 형성할 수 있다. 비한정적인 예로서, 프로세스(2400)는 도 1 내지 도 2의 코더 시스템(100 또는 200) 또는 도 32 내지 도 33의 이득 보상 코더 시스템(3200 또는 3300), 그리고/또는 본 문서에 기술된 임의의 다른 인코더 시스템 또는 서브시스템에 의해 시행되는 바와 같은 차세대 비디오 인코딩 프로세스의 적어도 일부를 형성할 수 있다.
프로세스(2400)는 현재 프레임 및 디코딩된 참조 프레임을 갖는 픽셀 데이터의 프레임들을 우선 획득하는 것(2402)을 포함할 수 있다. 인코더(100)와 함께 기술된 바와 같이, 잔차들을 찾아내고 양자화된 잔차들을 디코더에 제공하기 위해서 디코딩 루프(135)를 갖는 인코더에 비디오 스트림이 제공될 수 있다. 그러므로, 프레임들은 디코딩되고, 또 다른 프레임들을 예측하는 데에 디코딩된 참조 프레임들로서 사용될 수 있다. 어느 프레임이 이득 보상에 의해 수정되거나 모핑될 것인지 결정하는 데에 유닛(120)과 같은 모핑 유닛이 사용될 수 있다.
프로세스(2400)는 블록 평균들을 결정하는 것(2402)을 또한 포함할 수 있는데, 이는, 하나의 예에 의해, 파티션들을 위한 값들을 형성하는 데에 사용될 수 있는 균일 크기로 된(uniformly sized) 블록을 위한 평균 픽셀 기반 값들을 결정하는 것을 포함한다. 구체적으로, 현재의 프레임 및 참조 프레임 양자 모두에서 (다른 크기가 선택될 수 있기는 하지만) 프레임 내의 매 4 x 4 픽셀 블록에 대해, 다음 사항이 계산된다: (1) 픽셀 값들의 평균, (2) 픽셀 값들의 제곱의 평균, 그리고 하나의 계산 방법에서, (3) 현재의 프레임과 참조 프레임 내의 픽셀 값의 곱(product)의 평균. 파티션을 위해 이득 a 및 오프셋 b을 계산하는 데에 그리고 아래에 제공되는 식들에서 이 값들 중 어느 것이 필요할 것인지에 따라 다른 값들이 계산될 수 있다. 주안점은 파티션을 위해 단일 값을 제공하기 위해 모든 개별 픽셀에 대해 이득 및 오프셋 식들이 계산될 필요는 없도록 계산 시간 및 부하(load)를 절약할 블록 평균들을 선택하는 것이다. 사전정의된 파티션 패턴들이 메모리 내에 저장될 수 있고 4 x 4 블록들에 고르게 들어맞도록 크기가 이뤄질 수 있다. 아니면, 파티션들은 4 x 4 블록들에 들어맞을 가장 가까운 크기라고 가정되거나 근사화될(rounded) 수 있다.
도 25 내지 도 26을 참조하면, 일단 블록 평균들이 제공될 때, 프로세스(2400)는 파티션 평균들을 결정하는 것(2406)을 포함할 수 있다. 이 동작은 파티션 패턴 각각에 대해 어느 블록이 어느 파티션에 속하는지를 결정하는 것을 우선 포함할 수 있다. 도 25 상에 도시된 바와 같이, 국부적 밝기 변화(이득 'a', 그리고 오프셋 'b') 추정 및 보상의 목적을 위한 비디오 프레임의 많은 잠재적 파티셔닝 또는 파티션 패턴이 제공된다. 도 26은 128개의 엔트리들의 코드북(2600)을 제공하는데 여기서 제1 62개의 엔트리들은 비디오 프레임의 수평 파티션의 개수 및 비디오 프레임의 수직 파티션의 개수에 의해 정의되어서, 각각의 파티션 패턴 인덱스 번호는 파티션의 특정한 개수와, 특정 파티션 배열(그 배열이 대칭적이지 않은 경우)과 연관된다. 예를 들면, 파티션 패턴 10은 수평으로 두 개의 파티션, 그리고 수직으로 세 개의 파티션(2 x 3)으로의 픽처의 파티셔닝을 나타내나, 파티션 패턴 11은 대신에 (3 x 2) 배열을 갖는데, 또한 도 25 상에 도시된 바와 같다. 만약 각각의 파티션이 크기가 동등하지 않을 수 있는 경우, 가능한 한 균일하게 파티션 크기를 유지하려는 시도가 행해지는데, 마지막 파티션에서 수평으로 및 수직으로 조절이 행해진다. 계산의 목적으로, 내부의 파티션 크기는 앞서 언급된 바와 같이 네 픽셀 정밀도(four pixel precision)의 배수로 유지된다. 또한, 도 26 상에 도시된 62부터 127까지의 코드북 엔트리들은, (파티션의 개수보다는) 실제 파티션 크기를 사용하는 것에 의해, 다시 네 픽셀 정밀도로써, 픽처를 파티셔닝하는 상이한 방식을 허용한다. 예를 들면, 파티션 번호 79는 (수평으로) 64 픽셀 x (수직으로) 24 픽셀의 파티셔닝 크기를 갖는다. 표 또는 코드북(2600)은 제공되는 모든 128개의 잠재적인 파티셔닝들을 도시한다.
도 27 내지 도 28을 참조하면, 그리고 파티션 평균들을 결정하는 것(2406)을 계속하면, 사용할 최선의 것이 어느 패턴인지를 결정하기 위해 다수의(그리고 하나의 경우에는 모든) 파티션 패턴들에 대해 오프셋과 이득이 계산된다. 이용가능한 파티션 패턴은 픽처의 유형(P 픽처 또는 F 픽처), 프레임의 복잡도 또는 프레임 상의 이미지의 내용, 비트레이트 제한 및 기타 등등과 같은 여러 가지 특성에 따라 선택적으로는 선정한 수의 어떤 패턴으로 제한될 수 있다. 이득 값 및 오프셋 값을 계산하기 위한 두 가지 예시적인 방법이 본 문서에서 설명되는데 하나는 모멘트 기반(moment based) 방법이고, 다른 것은 평균 제곱 오차(Mean Square Error: MSE)에 기반한다. 첫 번째 방법을 위해, 모멘트 방법 I를 위한 알고리즘을 설명하는 데에 사용되는 로직(2700)은 현재 프레임에 대해 블록들의 평균 픽셀 값(또는 레벨)과 픽셀 값(또는 레벨)의 평균 제곱을 획득하는 데에 평균화기(averager)(2702) 및 평균화기(2704)를 사용한다. 동일한 계산이 참조 프레임에 대해 평균화기들(2706 및 2708)에 의해 수행된다. 분석되고 있는 어떤 파티션과 맞거나 아니면 연관된 블록들의 평균 값들은 이후 합산되고 파티션을 위한 평균 값을 획득하기 위해 이후 평균화된다. 이것은 각각의 이용가능한 파티션 패턴 상의 각각의 파티션에 대해 반복된다.
마찬가지로, 두 번째 방법은 현재 및 참조 프레임 밝기 픽셀 값들의 평균 곱과 평균 픽셀 값 또는 레벨을 현재 프레임에 대해 각각의 파티션을 위해 결정하기 위해 평균화기(2802 및 2804)를 각각 사용하고, 픽셀들의 평균 제곱과 평균 픽셀 값 또는 레벨을 참조 프레임에 대해 각각의 파티션을 위해 결정하기 위해 평균화기(2806 및 2808)를 각각 사용하는 로직(2800)을 갖는다.
프로세스(2400)는 이후, 예컨대 방금 설명된 파티션 평균 값들을 사용함으로써 이득 a 및 오프셋 b 값들을 계산하는 것(2408)을 포함할 수 있다. 하나의 형태에서, 값들(또는 파라미터들)의 하나의 쌍, 예컨대 이득 a 및 오프셋 b가 잠재적 파티션 패턴들 내의 각각의 파티션에 대해 계산된다. 다음의 식은 프레임 't' 내의 (i,j) 위치에서의 픽셀의 밝기 s t ( i,j )를 이전의 프레임(참조 프레임) 't-1' 내의 동일한 위치 (i,j)에서의 픽셀의 밝기에 관련시키는데, 'a' 및 'b'는 각각 이득 및 오프셋 인자이다. 움직임이 작다고 가정되고 오직 밝기 변화가 모델링된다.
언급된 바와 같이, 비디오 장면 내의 한 쌍의 프레임들 간의 밝기 변화의 보상을 위한 두 가지 방법이 다음과 같이 사용된다.
방법 1: 모멘트 기반 기법
이 방법에 의해, s t ( i,j ) 및 ( s t 2 ( i,j ))의 기대값(expected value) E를 취하고, 동등화의 방법을 따라서 이전의 프레임 't-1'과, 현재의 프레임 't'의 제1 및 제2 모멘트가 다음과 같이 계산될 수 있다:
여기서 참조 프레임이 반드시 예측되고 있는 현재의 프레임에 대해 인접한 이전 프레임인 것은 아니도록 t-k는 식의 일반적 형태를 위해 t-1을 대체한다. 프레임 t-k는 할당된 참조 프레임, 예를 들어 키 프레임(key frame), 또는 현재의 프레임에 대한 움직임 보상에 관한 다른 프레임일 수 있다.
방법 2: MSE 그래디언트 최소화 기반 기법
이 방법에 의해, 프레임 't'와, 't-1' 간의 이득 a 및 오프셋 b 파라미터가 다음과 같이 계산될 수 있다.
여기서 e는 오차이고 다른 변수들은 이미 전술되었다. 'a'에 대한 평균 제곱 오차(Mean Square Error: MSE) 그래디언트는:
'b'에 대한 평균 제곱 오차(Mean Square Error: MSE) 그래디언트는:
두 선형 방정식을 'a' 및 'b'에 대해 풀면 결과는:
여기서 앞서 언급된 바와 같이 참조 프레임이 반드시 예측되고 있는 현재의 프레임에 대해 인접한 이전 프레임인 것은 아니도록 t-k는 식의 일반적 형태를 위해 t-1을 대체한다.
도 27 및 도 28을 다시 참조하면, 로직(2700 및 2800)은 앞서 설명된 평균 파티션 값들과 모멘트 기반 방법 1을 사용하여 파티션을 위해 이득 a 및 오프셋 b를 계산하기 위한 수학식 29 및 수학식 30을, 그리고 MSE 방법 2를 사용하여 파티션을 위해 이득 a 및 오프셋 b를 계산하기 위한 수학식 41 및 수학식 42를 설명하기 위해 제공된다. 모멘트 방법을 위해, 현재 프레임 (t)에서의 파티션을 위한 그리고 평균화기(2704)로부터의 평균 픽셀 값이 승산기(multiplier)(2710)에서 제곱이 되고, 이후 감산기(subtractor)(2712)에서 평균화기(2702)로부터의 그리고 현재의 프레임의 동일한 파티션에 대한 픽셀들의 평균 제곱으로부터 감산된다. 마찬가지로, 참조 프레임 (t-k)의 대응하는 파티션을 위한 그리고 평균화기(2708)로부터의 평균 픽셀 값이 승산기(2714)에서 제곱이 되고, 이후 감산기(2716)에서 평균화기(2706)로부터의 그리고 참조 프레임의 대응하는 파티션에 대한 픽셀들의 평균 제곱으로부터 감산된다.
감산기(2712)의 결과는 제산기(divider)(2718)에서 감산기(2716)의 결과에 의해 나뉘고, 그 결과의 제곱근이 컴포넌트(2720)에서 취해지는데 이는 분석되고 있는 파티션을 위한 이득 a을 초래한다. 이득 a는 승산기(2722)에서 참조 프레임의 평균 픽셀 레벨에 의해 곱해지는데, 그 곱은 이후 감산기(2724)에서 평균화기(2704)로부터의 현재의 프레임의 파티션의 평균 픽셀 값으로부터 감산된다. 이것은 분석되고 있는 파티션을 위한 오프셋 b를 초래한다. 이 프로세스는 당해 현재 프레임을 위해 이용가능한 잠재적인 대안적 패턴 각각 내의 각각의 파티션 또는 여러 개에 대해 반복된다. 완료되면, 그 결과는 함께 파라미터들의 세트를 형성하는 각각의 이용가능한 파티션 패턴의 각각의 파티션을 위한 파라미터들(이득 a 및 오프셋 b)일 수 있다.
MSE 방법을 위해, 현재의 프레임 (t)에서의 파티션을 위한 그리고 평균화기(2804)로부터의 평균 픽셀 값은 참조 프레임 (t-k)에서의 대응하는 파티션을 위한 그리고 평균화기(2808)로부터의 평균 픽셀 값과 곱해진다. 이 곱은 이후 감산기(2812)에서 그리고 평균화기(2802)로부터의 (대응하는 현재 및 참조 밝기 픽셀 값들의) 평균 곱으로부터도, 그리고 감산기(2814)에서 그리고 평균화기(2814)에서 그리고 평균화기(2806)로부터의 평균 제곱 픽셀 값으로부터도 감산된다. 감산기(2812)의 결과는 제산기(2816)에서 감산기(2814)의 결과에 의해 나뉘며, 그 결과는 분석되고 있는 파티션을 위한 이득 a이다. 이득 a는 평균화기(2808)로부터의 참조 프레임의 파티션의 평균 픽셀 값에 의해 곱해지도록 승산기(2818)에 제공된다. 그 곱은 이후 분석되고 있는 파티션을 위한 오프셋 b를 형성하도록 평균화기(2804)로부터의 현재의 프레임의 파티션의 평균 픽셀 값으로부터 감산된다.
일단 이용가능한 패턴들의 파티션들을 위한 이득 a 및 오프셋 b가 계산되면, 프로세스(2400)는 이후 최선의 파티션 패턴을 결정한다(2410). 이것은 참조 및 현재 프레임 간의 왜곡 D를 계산하는 것(2412)을 포함할 수 있다.
도 29a 내지 도 29b를 참조하면, 예시적인 효율 표(2900)가 제공되고 방법 I에 대한 절대차 합(Sum of Absolute Difference: SAD) 값 및 방법 II에 대한 MSE 기반 SAD 값의 형태로 된 효율 값이 비교를 위해 제공된다. 특히, 표 29는 제1 62개의 파티션 패턴들(패턴 63 내지 패턴 127은 도시되지 않음)을 위한 패턴 번호를 위한 열(column), 수평 대 수직 크기로 된 패턴 배열 및 크기를 위한 열을 도시한다. 방법 I을 사용하여 이득 보상 파라미터들에 의해 조절된 참조 프레임의 밝기 픽셀 값들 및 현재의(또 달리 부르면 원래의) 프레임의 대응하는 픽셀들의 밝기 값들 간의 차이(또는 왜곡 또는 변화)를 제공하는 SAD 값들로서 방법 1에 대한 효율 값들을 도시하기 위한 열이 또한 제공된다. 두 번째 방법 II의 MSE 기반 SAD 값들을 사용하여 효율 값을 위한 다른 열이 제공된다. MSE는 수정된 참조 프레임 및 현재 프레임 간의 루마 또는 밝기 변화를 SAD 값에 대한 대안으로서 제공할 수 있다. 이들 예시적인 계산을 위해 사용된 프레임들은 우주선 승무원(shuttle crew) 비디오 시퀀스 프레임들이다(도 10 내지 도 11).
SAD 오차 값이 더 작을수록, 표(2900) 상의 개선이 상대적으로 더 높다. 그러나, 때로는 방법 I이 더 낫고 때로는 방법 II가 더 낫다는 점에 유의할 것이다. 첫 번째 값 13.45는 참조 프레임이 수정되지 않은 경우 결과적인 왜곡을 보여준다. 보여진 예에서는, 따라서 최선의 효율은 방법 I에 있어서의 5.4311이라는 가장 낮은 값과, 방법 II의 5.32906이라는 훨씬 더 좋은 값을 가진 패턴 61이다. 방법 I을 사용하거나, 방법 II를 위한 MSE의 형태로 되거나 양자 모두인 이들 차이 또는 왜곡은 프레임을 위해 이용가능한 각각의 파티션 패턴에 대해 제공될 수 있다. 최선의 패턴을 결정하기 위해 아래에서 사용되는 바와 같은 이 왜곡 D는 여기서 방법 I에 있어서 동일한 SAD 계산이거나 (MSE 기반 SAD보다는) 방법 II에 있어서 MSE일 수 있다. 그러나, 이득 파라미터들을 발신하는 것의 비트 비용은 여기에 포함되지 않는다. 기본적으로, 파티션의 개수가 더 클수록, SAD는 감소될 수 있으나, 비트 비용은 또한 증가하는바 더 많은 파티션을 발신함으로써 발생하는 비트 비용과 SAD 감소 간의 최선의 트레이드오프를 산출하기 위해 레이트 왜곡 최적화(Rate Distortion Optimization: RDO)가 수행될 수 있다. 그러므로 최선의 파티션을 결정하기 위해 RDO에 비트 비용 또는 비트레이트(프레임당 비트의 경우에서와 같음)이 감안된다.
그러므로, 프로세스(2400)는 프레임에 대해 비트레이트 R을 계산하는 것(2414)을 포함할 수 있다. 적어도 사용되고 어떤 개수의 양자화 비트로 고정된 파티션 패턴에 따라, 프레임에 대한 비트 카운트(bit count)는 고정되거나 조정가능할 수 있다. 구체적으로, 오버헤드의 실제적인 이유로, 선택된 최선의 파티션 패턴의 계산된 'a' 및 'b' 파라미터들의 완전한 정밀도(full precision)은 디코더로의 송신을 위해 유지될 수 없는데 그것이 비트 카운트에 있어 너무 높을 것이기 때문이다. 그러므로, 이 파라미터들은 그것들의 실효성에 대한 많은 영향 없이 코딩 비트비용이 효율적일 수 있도록 정확도에 있어 적응적으로 감소될 수 있다. 이것은 또한 유용한 허용 범위(permissible range)로의 이 파라미터들의 제약을 가능케 한다. 파라미터들의 정확도의 감소의 이 프로세스는 양자화라고 칭해지는바 이 파라미터들의 각각의 값들의 범위는 선택된 대표적 레벨에 의해 표현된다.
더욱 상세하게는, 보여진 예에서, 양자화는 각각의 이득 값 및 오프셋 값을 고정된 수의 비트의 값, 예를 들어 하나의 예에서, 그리고 파티션 패턴 내의 각각의 파티션에 대해 8 비트 값으로 제한할 수 있으면서, 파티션 패턴의 인덱스 번호는 또한 허용 개수의 비트의 값, 예를 들어 하나의 예에 의해 7 비트 값으로 양자화될 수 있다. 그러면, 파티션 패턴의 더욱 비트가 많은 서술(more bit-heavy description)을 디코더로 송신하는 것보다는 메모리 내에 파티션 패턴들의 인덱스를 디코더가 이미 가지고 있을 수 있다. 그러므로, 최선의 파티션 패턴을 선택하기 위해서, 최선의 파티션 패턴에 대응하는 이득 보상 파라미터들의 실제 양자화 전에 최선의 파티션 패턴이 수행될 수 있도록 실제 양자화 값들보다는 비트 카운트가 필요로 되는 것이다. 단일 이득 및 오프셋 파라미터에 대해(또는 다시 말해, 파티션당), 예를 들면, 이득 및 오프셋 파라미터의 단일 세트가 이득의 보상에 충분한 경우에, 그러한 파라미터를 위한 표현 오버헤드(representation overhead)는 다음과 같이 계산될 수 있다(이것은 전체 프레임을 위해 하나의 파티션이 있거나 어떠한 파티션도 없는 경우이다).
모든 패턴들에 (128 패턴으로 인해) 7 비트의 동일한 코드 길이가 할당된다고 가정하고, 'a' 파라미터와, 'b' 파라미터를 위한 각각의 양자화 레벨에 양자화를 위해 8 비트의 동일한 비트 길이가 할당된다고 가정하면, 총 비트 비용 R은 다음과 같이 계산될 수 있다.
전역적 밝기 변화 보상을 위한 총 비트 비용= 7 + 8 + 8 = 23 bits.
또한, 단일 프레임을 위해 여러 파티션이 있는 더 발전된 경우를 가정하면, 비트 카운트 또는 비트레이트 R은:
그러므로, 하나의 예에 의해, 여섯 개의 파티션을 사용하는 패턴 번호 11의 사용을 수반하는 프레임을 위한 비트레이트 R로서, 이 패턴을 사용함으로써 밝기 변화 보상을 수행하는 것의 전체적인 비트 비용은 다음과 같이 주어진다. 패턴 번호 11을 사용하는 국부적 밝기 변화 보상을 위한 총 비트 비용은:
표(2600)의 코드북은 여섯 개보다 훨씬 더 많은 파티션을 가진 패턴들을 또한 포함하므로, 이 패턴들을 선택하는 것의 비트 비용은 훨씬 더 클(이를테면 500 비트를 넘어설 만큼 클) 수 있다. 또한, 이웃 파티션들의 이들 파라미터들 간의 차이들을 인코딩하는 것에 의한 이득 및 오프셋 비트 비용의 감소와 같은 다른 방법이 가능하나, 단순성을 위해 각각의 파티션을 위한 파라미터들의 각각의 세트는 독립적으로 코딩된다고 가정된다. 그리하여, 밝기 변화 보상에 얼마나 많은 비트를 쓸 것인지를 결정하기(또는 실질적으로는, 최선의 파티션 패턴을 결정하기(2416) 또는 128개 패턴들의 선택범위로부터 어느 패턴을 선택할지 결정하기) 위해 RDO가 사용된다. 최적의 또는 최선의 패턴은 레이트 왜곡 최적화(Rate Distortion Optimization: RDO) 식에 의해 다음과 같이 주어진다.
를 만족하도록, 최소치 {J}를 계산할 필요가 있는데,
여기서 D는 왜곡(표(2900)와 함께 전술된 바와 같은 SAD)이고, R은 수학식 44에서와 같이 파라미터들과 연관된 비트레이트이며, λ는 라그랑쥬 승수이다. 만약 일단의 왜곡이 SAD이고, Q는 (시스템 내에서 프레임들을 위한 이미지 데이터 및 다른 잔차를 양자화하기 위해 사용되는) 변환 계수를 위해 사용되는 양자화수이며, c는 상수이면:
NGV 코덱에 있어서, 'c'의 적합한 값은 어림법(heuristics)에 의해 0.65 및 0.75 사이라고 발견되는바 0.7이라는 중간 값이 사용되어, 다음과 같이 λ의 값을 초래한다.
그러므로, 최소치 {J}를 제공하는 파티션 패턴은 이미지 품질(예컨대 가장 정확한 밝기 값들 또는 수정된 참조 프레임과 현재의 프레임 간의 최저 왜곡) 및 그 패턴을 선택하기 위한 비트 비용 간 최선의 밸런스(balance)를 제공하는 최선의 파티션 패턴으로 간주된다. 이것은 높은 비트 비용으로써 밝기 정확도에서의 비교적 미미한 증가를 제공하는 패턴이 선택될 가능성을 제한한다.
대안적으로, 왜곡 D 및 비트레이트 R은 다른 특성을 감안하도록 계산될 수 있음이 또한 인식될 것이다. 예컨대, 왜곡 D는 이득 값 및 오프셋 값이 양자화되고 이후 덜 정확한 값들로 역양자화된 후에 수행될 수 있고, 그러면 양자화되지 않은 이득 값 및 오프셋 값을 사용하는 것보다는 SAD 및 MSE 왜곡이 계산된다. 또한, 왜곡 D는 움직임 보상이 현재의 프레임에 대해 수행된 후 계산될 수 있다. 비트레이트 R을 위한 대안에 관해서는, R은 비트 카운트를 확인하기 위해 양자화 후에 비트 카운트를 제시함으로써 계산될 수 있는데, 특히 허용되는 비트 카운트가 예컨대 이득 및 오프셋을 위해 8 비트로 고정된다기보다 가변적인 경우에 그러하다. 아니면, 양자화된 값들은 RDO 식 내의 R을 위해 발신된 실제 비트를 나타내도록 엔트로피 인코딩될 수 있다. 다른 대안들이 고려된다.
도 30a 내지 도 30b를 참조하면, 이후 프로세스(2400)는 선택된 파티션 패턴(또는 지시자) 및 이득/오프셋 값들을 사전결정된 비트 크기로 양자화하는 것(2418)을 진행될 수 있다. 앞서 언급된 바와 같이, 이것은, 하나의 예에 의해, 파티션 패턴 인덱스 번호가 일곱 비트 값으로 양자화되나, 이득 값 및 오프셋 값은 여덟 비트 값들로 양자화됨을 의미한다. 원하는 대로 (일곱 또는 여덟 개가 아닌) 많은 다른 비트 카운트 한도가 사용될 수 있음이 인식될 것이다. 이것은 손실성 압축(lossy compression)이며, 다음과 같이 수행됨이 또한 이해될 것이다.
8 비트로의 루마 이득 파라미터 'a'의 양자화(Quantization of Luma Gain parameter 'a' to 8 bits)라는 제목이 붙은 표(3000)는 이득 'a' 파라미터의 양자화를 보여준다. 이것은 'a' 파라미터의 유용한 범위를 (0 내지 39로 번호표시가 된) 40개의 구간(interval)들로 분할하는 프로세스를 포함하며, 구간의 중요성에 따라, 구간은 하나 이상의 서브구간(sub-interval)으로 분할될 수 있다. 예를 들면 구간 범위 0.90 내지 1.00(표(3000) 상의 구간 19)은 그것의 높은 중요성으로 인해, 40개의 서브구간으로 분할되나, 구간 범위 0.45 내지 0.50(구간 14)는 단지 두 개의 구간으로 분할된다. 전반적으로 'a'를 위한 허용 범위는 -0.45 내지 +2.45 사이에 있는 것으로 정의되고, 256개의 가능한 엔트리들에 대응한다. (좌측으로부터 제2 열 내에 도시된 서브구간 번호 0 내지 255의 인덱스를 도시하는) 표(300) 상의 서브간격 열의 인덱스는 각각의 인덱스 번호를 도시하지 않지만, 서브구간들이 있는 주요한 구간들에 대해, 첫 번째 서브구간 인덱스 번호가 도시되고, 다른 인덱스 번호들은 거기서부터 번호 순으로 세어서 찾아질 수 있다는 점이 이해될 것이다. 예컨대, 만약 이득 값이 하나의 예에 의해 (또한 좌측 열 내의 주요한 구간 인덱스 번호 16에 의해) 0.62083에 가장 가깝다면, 서브구간 인덱스 번호는 21 + 2 = 23이다. 이것은 8 비트 표현을 가능케 한다.
우측 열은 이득 'a'를 위해 사용되는 양자화된 이득 값을 도시한다. 하나의 접근법에 의하면, 가장 가까운 구간/서브구간이 사용된다. 다른 접근법에 의하면, 사용되는 것은 다음의 더 큰 구간/서브구간 값이거나 다음의 더 작은 값이다. 다른 가능성이 고려된다. 일단 구간/서브구간이 선택되면, 이득 보상을 위해 어느 구간 또는 서브구간 표현 값을 사용할 것인지를 나타내기 위해 구간 인덱스를 갖는 디코더로 송신하는 데에는 구간 또는 서브구간의 인덱스 번호(0 내지 255)의 8 비트 이진 표현이 사용된다.
도 31a 내지 도 31b를 참조하면, 오프셋 b 파라미터의 양자화를 위해, 그리고 이득 값이 서브간격 인덱스 번호로 줄어든 것처럼, 오프셋을 어떤 개수의 비트, 예를 들어 서브간격 인덱스 번호를 위한 8 비트로 제한하는 하나의 형태에 의해 표(3100)가 제공된다. 그러므로, 표(300)과 유사하게, 표(3100)는 구간의 중요성에 따라, 간격이 하나 이상의 서브구간 0 내지 255로 분할될 수 있도록 오프셋 'b' 파라미터의 유용한 범위를 40개의 구간으로 분할하는 프로세스를 또한 도시한다. 예를 들면 구간 범위 -10 내지 -1(좌측 열 내의 주요 구간 18)은 서브구간 인덱스 번호 88로 시작하는 36개의 서브구간으로 분할되나, 구간 범위 -40 내지 -30(주요 구간 번호 15)은 단지 12개의 서브구간으로 분할되고 서브구간 인덱스 번호 21로 시작한다. 전반적으로, 보여진 예에 있어서의 'b'를 위한 허용 범위는 -155 내지 +155 사이에 있는 것으로 정의될 수 있고, 256개의 엔트리들에 대응하여, 8 비트 표현을 가능케 한다.
일단 양자화되면, 프로세스(2400)는 최선의 패턴(인덱스 번호나 다른 서술에 의한 패턴의 식별이든)을 포함하는 이득 보상 값들 및 선택된 패턴 내의 각각의 파티션을 위한 이득 값 및 오프셋 값을 포함하는 파라미터들을 송신할 수 있다(2420). 아니면, 최선의 패턴 및 파라미터들은 (적어도 픽셀 밝기 값에서) 원래의 참조 프레임보다 오차가 더 적은 수정된 참조 프레임을 형성하기 위한 사용(2424)을 위해 역양자화된다(2422). 이후 프로세스(2400)는 수정된 참조 프레임을 현재의 프레임을 위해 사용하여 움직임 보상을 수행할 수 있다(2426).
도 32를 참조하면, 예시적인 비디오 인코더(3200)는 패턴 코드북(2600)을 사용하는 이득 및 오프셋 계산, 최선의 패턴을 계산하기 위한 RDO의 사용, 이득 및 오프셋 파라미터의 인코딩을 수행하고, 이들 파라미터를 사용하고 그것들을 인코딩하며 그것들을 디코더로 발신하는 기본 비디오 인코더의 이득 추정 및 보상 컴포넌트를 위한 인터페이스를 제공한다.
움직임 보상이 필요한 비디오 시퀀스의 현재의(또는 원래의) 프레임은, 이득 보상에 의해 수정되거나 모핑된 참조 프레임을 수정하는 데에, 그리고 특히 참조 프레임을 조절하기 위해 이득 및 오프셋 파라미터들을 추정하는 데에, 또한 사용된다(여기서 참조 프레임은 하나의 예에 의해 현재의 프레임에 비해 과거의 또는 인접한 이전의 디코딩된 프레임일 수 있다). 현재의 프레임은 도 1의 생성기(105)와 유사한 예측 파티션 생성기(3202)에도, 그리고 비디오 프레임 이득 파티셔닝기(Video Frame Gain Partitioner)(3216)로 지칭되고 패턴 인덱스 생성기 루프(Pattern Index Generator Loop)(3218)에 의해 생성된 어드레스(address)에 응답하여 다른 입력에서 패턴들의 코드북(3220)으로부터 파티셔닝을 위한 패턴을 수신하는 처리 유닛에도 입력될 수 있다. 하나의 예에 의해, 패턴 인덱스 생성기 루프(3218)는 코드북 내의 각각의 패턴을 위한 어드레스를 한 번에 하나씩 생성한다. 대안적으로, 복잡도를 감소시키는 것이 바람직한 경우, 모든 패턴보다 적은 패턴들의 선정 범위가 프레임을 위해 이용가능하게 된다. 참조 프레임은 또한 비디오 프레임 이득 파티셔닝기(3216)에 입력될 수 있다. 어떠한 경우든, 비디오 프레임 이득 파티셔닝기(3216)는 참조 프레임뿐만 아니라 현재의 프레임을 파티셔닝하기 위해 패턴 정보를 사용하고, 모든 패턴 또는 각각의 이용가능한 패턴의 파티션당 이득 값 및 오프셋 값을 계산하는 파티션 이득 및 오프셋 파라미터 계산기(Partitions Gain & Offset Params Computer)(3222)에 이 이득 파티션들을 입력한다.
다음으로, 하나의 예에 의해, 계산된 이득 값 및 오프셋 값은 그것들의 정확도를 감소시키도록 양자화기(3224)에 의해 양자화되나, 코드북(2600)으로부터의 패턴들에 따라 파티셔닝된 참조 프레임과 현재의 프레임을 위한 이득 보상된 예측 차이 또는 왜곡 D를 계산하는 데에는 비양자화된 이득 값 및 오프셋 값이 이득 보상 예측 차이 계산기(Gain Compensation Prediction Diff Computer)(3228)에 의해 사용된다. 잠재적 패턴들 각각에 대해, 이득 및 오프셋 파라미터들의 코딩 비트 비용 R도 물론이고, 대응하는 왜곡 D(통상적으로는 SAD인데, 다만 MSE가 또한 사용될 수는 있음)도 레이트 왜곡 분석기 및 최선 선택 선별기(Rate Distortion Analyzer and Best Choice Selector)(3230)에 제공될 수 있다. 앞서 언급된 바와 같이, 비트 카운트는 분석되고 있는 패턴에 기반하여 계산되거나, 양자화기(3224)에 의해 제공되거나, 심지어는 도시된 바와 같이 엔트로피 인코더(3226)로부터 제공될 수 있다. 패턴의 최선 선택은 이후, 앞서 기술된 레이트 왜곡 최적화(Rate Distortion Optimization: RDO) 분석에서의 J 함수의 최소화에 기반하여 선택될 수 있다. 최선 패턴 선택, 그리고 파티션당 대응 이득 및 오프셋 파라미터들은 엔트로피 인코더(3226)에 의해 엔트로피 인코딩되고 비트스트림을 통하여 비트스트림 생성기(2110)에서 디코더로 발신된다.
인코더에서, 선택된 패턴, 이득 및 오프셋 파라미터들, 그리고 디코딩된 참조 프레임을 사용하여, 이득 보상된 예측 프레임이 생성된다. 이것은 파티션들과 이득 및 오프셋 파라미터들을 역양자화기(3232)에서 역양자화하는 것 및 역양자화된 값들을 이득 보상 유닛 및 국부적 버퍼(3238)에 제공하는 것에 의해 수행된다. 반면, 역변환 및 역양자화기(3212)는 이미 양자화된 이미지 및 인터 또는 인트라 코딩 데이터에 대해 반대 동작들을 수행하고 인코더(100)에서 이미 상술된 파티션 집결기, 역블록화 필터 및 기타 등등이 있는 디코딩 루프(3224)에 그 데이터를 제공한다. 이 디코딩된 프레임들은 비디오 프레임 이득 파티셔닝기(3216)에 그리고 디코딩된 픽처 버퍼(3236)에 제공되는 이전의 또는 과거의 디코딩된 참조 프레임으로서 이후 사용된다. 디코딩된 프레임들은 이후 모핑 분석기(120)와 유사한 이득 보상 유닛 및 국부적 버퍼(3238)에 제공된다. 이득 보상 유닛(3238)은 하나의 예에 의해 수학식 18에 따라 이득 값 및 오프셋 값로써 참조 프레임의 밝기 또는 루마 값들을 조절하는 것에 의해서 역양자화된 이득 보상 파라미터들로써 수정된 참조 프레임을 형성한다. 수정된 참조 프레임들로써, 움직임 추정 및 움직임 보상된 예측기(3240)는, 가산기(3204)에서 현재의 프레임들에 가산되고 순방향 변환에서 (가령, DCT에 의해) 변환되고 순방향 변환 및 양자화 컴포넌트(3206)에서 양자화되며 인코더(3208)에서 엔트로피 코딩되는 움직임 보상된 예측 오차(차이) 신호를 생성하기 위해 움직임 추정 및 보상을 수행한다. 움직임 벡터들과 차이 신호가 비트스트림(3210) 내에 놓이기 전에 움직임 벡터들은 또한 엔트로피 디코더(3242)에 제공된다. 그러므로 인코딩된 비트스트림은 엔트로피 코딩된 이득 패턴 및 이득 파라미터들뿐만 아니라, 또한 엔트로피 코딩된 움직임 벡터들, 엔트로피 코딩된 변환 계수들은 물론, 엔트로피 코딩된 예측 및 코딩 파티셔닝 정보(도시되지 않음)도 전달한다.
도 33을 참조하면, 이득 및 오프셋 보상의 인터페이스를 가진 이득 및 오프셋 디코더(3300)는 비트스트림을 통해 발신되는 이득 파라미터들을 사용한다. 특히, 디코더(3300)에서, 선택된 파티션 패턴의 식별과 이득 값 및 오프셋 값(파라미터들)이 있는 비트스트림이 비트스트림 파싱기(bitstream parser)(3302)에서 수신된다. 비디오 디코더 내의 이득 및 오프셋 보상의 동작은 인코더에 비해 더 단순하다. 여기서, 일단 비트스트림이 파싱되면(parsed), 엔트로피 디코더(3304)는 파티션 패턴 및 패턴의 이득 및 오프셋 파라미터들을 디코딩한다. 엔트로피 디코더(3306)는 움직임 벡터를 디코딩하나, 엔트로피 디코더(3308)는 변환 계수들은 물론 예측 및 코딩 파티션 정보(도시되지 않음)를 디코딩한다. 역양자화기(3310)는 파티션 패턴 인덱스 번호는 물론 이득 값 및 오프셋 값(또는 적어도 서브구간 값)을 제공한다. 이득 보상 유닛 및 국부적 버퍼(3312)는 패턴 및 이득 파라미터들은 물론 디코딩된 참조 프레임을 디코딩된 픽처 버퍼(3314)로부터 획득하고, 패턴 맵(pattern map)을 코드북(3316)으로부터 획득한다. 참조 프레임의 밝기 픽셀 값들을 조절하기 위해 디코딩된 참조 프레임에 대해 디코딩된 이득 및 오프셋 패턴 및 파라미터들을 적용함으로써, 이득 보상된 참조 프레임이 생성된다. 참조 프레임 상의 변경된 픽셀 값들을 계산하기 위해서, 이득 'a' 및 오프셋 'b'의 디코딩된 역양자화된 값들은 하나의 예에 의해 수학식 18로 도로 대입되고, 이전의 또는 다른 참조 프레임 내의 픽셀들의 디코딩된 값들을 사용하여, 참조 프레임의 이득 보상된 수정된 버전(원래의 참조 프레임보다 오차가 더 적음)이 계산되고, (이득 보상된) 움직임 보상된 예측을 생성하기 위해 이후에 사용된다.
특히, 수정된 참조 프레임은 움직임 보상된 예측 컴포넌트(3318)로 이후에 제공되는데, 여기에서 움직임 벡터들이 예측을 위한 합당한 블록들을 인덱싱하되, 여기에는 디코딩된 예측 에러 블록들이 가산기(3322)에 의해 그리고 역양자화기 및 역변환 유닛(3320)으로부터 가산되어, 재구성된 블록들 또는 비디오를 생성한다. 그러므로, 수정된 참조 프레임들로부터의 대응하는 예측들은 최종적인 디코딩된 재구성된 프레임(또는 프레임의 블록들)을 생성하기 위해 (역변환되고 역양자화된) 디코딩된 예측 오차 블록들에 가산된다. 재구성된 블록들은 디코더(200)에 대해 기술된 것과 유사한 디코딩 루프를 형성하는 파티션 집결기 및 역블록화 필터(3324) 및 기타 등등에 제공된다. 동일하거나 유사한 디코딩 루프는 인코더 및 디코더에서의 프로세스가 동기화된 채 있도록 역시 인코더에서 캡슐화된다(encapsulated).
국부적 움직임 보상을 위해, 전체 프레임을 위한 (a, b) 파라미터들의 단일 세트 대신에, 이 코더 또는 코딩 시스템은, 계산되고서는 프레임의 어느 부분이 어느 파라미터에 대응하는지의 맵(또는 인덱스 번호)과 더불어, 그리고 디코더로 송신되며 기술된 바와 같이 이득 보상을 위해 사용되는 파라미터들의 여러 세트들을 제공한다.
도 34를 참조하면, 예시적 비디오 코딩 시스템(3500) 및 동작중인 비디오 코딩 프로세스(3400)가, 본 개시의 적어도 몇몇 구현에 따라 배열된다. 예시된 구현에서, 프로세스(3400)는 하나 이상의 동작, 기능 또는 행동을 포함할 수 있는데 행동(3401 내지 3411) 중 하나 이상에 의해 예시되는 바와 같다. 비한정적 예로서, 프로세스(3400)는, 도 35에 관해 본 문서에서 추가로 아래에서 논의되는 바와 같이, 도 1의 인코더(100) 및 도 2의 디코더(200)를 포함하는 예시적 비디오 코딩 시스템(3500)을 참조하여 본 문서에서 기술될 것이다. 다양한 예에서, 프로세스(3400)는 인코더 및 디코더 양자 모두를 포함하는 시스템에 의해 또는 하나의 시스템은 인코더(와 선택적으로 디코더)를 이용하고 다른 시스템은 디코더(와 선택적으로 인코더)를 이용하는 별개의 시스템들에 의해 시행될 수 있다. 앞서 논의된 바와 같이, 인코더는 인코더 시스템의 일부로서 국부적 디코더를 이용하는 국부적 디코드 루프를 포함할 수 있음에 또한 유의한다.
예시된 구현에서, 비디오 코딩 시스템(3500)은 로직 회로망(3550), 유사한 것 및/또는 이의 조합을 가진 그래픽 처리 유닛(graphics processing unit)(3520)과 같은 처리 유닛을 포함할 수 있다. 예컨대, 로직 회로망(3550)은 도 1의 인코더 시스템(100), 또는 대안적으로는 도 2의 3200 및/또는 도 2의 디코더 시스템(200) 또는 대안적으로는 도 33의 3300을 포함할 수 있고, 본 문서에서 기술된 인코더 시스템 또는 서브시스템 및/또는 본 문서에서 기술된 디코더 시스템 또는 서브시스템 중 임의의 것에 관해 논의된 바와 같은 임의의 모듈을 포함할 수 있다. 비디오 코딩 시스템(3500)은 도 34에 도시된 바와 같이 특정한 모듈과 연관된 행동 또는 블록의 하나의 특정한 세트를 포함할 수 있지만, 이들 블록 또는 행동은 여기서 예시된 특정한 모듈과는 상이한 모듈과 연관될 수 있다. 프로세스(3500)는 예시된 바와 같이 인코딩 및 디코딩으로 지향되지만, 기술된 개념 및/또는 동작은 인코딩 및/또는 디코딩에 따로따로, 그리고 더욱 일반적으로는 비디오 코딩에 적용될 수 있다.
프로세스(3400)는 "비디오 시퀀스의 입력 비디오 프레임들을 수신하는 것"(3401)으로 시작할 수 있는데, 여기서 비디오 시퀀스의 입력 비디오 프레임들은 예컨대 인코더(100)를 통하여 수신될 수 있다. 이것은 현재의 프레임 및 (참조 프레임으로서 사용될 것인) 과거의 또는 이전의 프레임을 포함할 수 있고, 예측된 프레임을 현재의 프레임으로서 재구성할 움직임 보상을 위해 사용될 것이다.
프로세스(3400)는 또한 "예측 및 코딩 파티셔닝, 양자화, 그리고 참조 프레임을 디코딩하기 위한 디코딩 루프를 수행하는 것"(3402)을 포함한다. 참조 프레임은 앞서 설명된 바와 같은 모핑 또는 합성에 의해 수정될 수 있는데, 여기서 모핑 옵션들 중 하나는 현재의 프레임에 대한 움직임 보상을 위해 참조 프레임을 사용하기 전에 밝기 값들이 더욱 정확하도록 참조 프레임에 대해서 이득 보상을 수행하는 것이다.
프로세스(3400)는 "현재 프레임 및 참조 프레임을 사용하여 잠재적 이득 파티션 패턴들의 이득 파티션들을 위해 밝기 이득 a 및 오프셋 b를 계산하는 것"(3403)을 또한 포함한다. 이것은, 앞서 설명된 바와 같이, 이용가능한 파티션 패턴들을 결정하고, 이후 각각의 잠재적 패턴 내의 각각의 파티션을 위한 이득 값 및 오프셋 값을 계산함으로써, 수행될 수 있다. 이득 및 오프셋은 모멘트 방법을 위한 수학식 29 및 수학식 30, 또는 MSE 방법을 위한 수학식 41 및 수학식 42를 사용함으로써 계산될 수 있다.
프로세스(3400)는 "비트 부하 및 품질을 밸런싱하기 위해 최선의 파티션을 결정하는 것"(3404)을 또한 포함한다. 이것은 하나의 예에 의해, RDO를 사용하고 수학식 46의 최소 {J} 함수를 위해 왜곡 D 및 비트레이트 R을 결정하여 수행될 수 있다.
프로세스(3400)는 "참조 프레임의 밝기 값들을 조절하기 위해 패턴 번호, 이득 값 및 오프셋 값을 역양자화하는 것"(3405)을 또한 포함한다. 그러므로, 디코더에서 재현될 수 있는 움직임 보상을 수행하기 위해서, 움직임 벡터 및 잔차를 형성하기 위한 인코더에서의 움직임 보상은 디코더에 의해 형성될 동일한 이득 값 및 오프셋 값에 기반하여야 한다. 그러므로, 이 동작은 이득 파라미터들과 파티션 패턴 지시자를, 또한 하나의 형태에서는 비트레이트 R을 위해 형성된 바와 같은 사전결정되거나 고정된 비트 크기로 양자화하는 것을 포함한다. 역양자화된 값들은 이후 참조 프레임의 밝기 값들을 수정하는 데에 사용된다.
프로세스(3400)는 "조절된 참조 프레임을 사용함으로써 현재의 프레임에 대해 움직임 보상을 수행하는 것"(3406)을 또한 포함한다. 이것은 현재의 프레임이 재구성될 수 있도록 디코더로 발신될 잔차들과 움직임 벡터들을 형성할 것이다.
프로세스(3400)는 "움직임 데이터 및 이득 보상 파라미터들을 디코더로 송신하는 것"(3407)을 또한 포함한다. 움직임 데이터는 잔차들과 움직임 벡터들을 포함할 수 있고, 이득 보상 파라미터들은 선택된 파티션 패턴의 지시자와, 패턴 내의 파티션들 중 각각 또는 다수를 위한 이득 값 및 오프셋 값을 포함할 수 있다.
프로세스(3400)는 "비트스트림을 수신하고 디코딩하는 것"(3408)을 또한 포함한다. 이것은 비트스트림을 이득 데이터, 움직임 또는 다른 잔차 데이터, 그리고 이미지 또는 프레임 데이터로 파싱하는 것과 이후 데이터를 엔트로피 디코딩하는 것을 포함할 수 있다.
프로세스(3400)는 "이득 보상 파라미터들인 이득 a, 이득 b 및 파티션 패턴은 물론 프레임 데이터 및 움직임 데이터를 획득하기 위해 역 디코딩(inverse decoding) 동작을 수행하는 것"(3409)을 또한 포함한다. 이것은 결국 각각의 유형의 데이터를 위한 해당 값들을 재구성할 것이다.
프로세스(3400)는 "이득 보상 파라미터들을 사용하여 참조 프레임의 밝기 값들을 조절하는 것"(3410)을 또한 포함한다. 그러므로, 이득 값 및 오프셋 값은 참조 프레임의 밝기 값을 바꾸고 수정된 참조 프레임을 형성하기 위해 다시 수학식 18에 대입된다.
프로세스(3400)는 "현재의 프레임에 대해 움직임 보상을 수행하는 것과 디스플레이를 위해 프레임을 형성하는 데에 수정된 참조 프레임을 사용하는 것"(3411)을 또한 포함한다. 이것은 최종적으로 재구성된 블록들 또는 프레임들을 형성하도록 역양자화된 예측 블록들에 가산될 수 있는 잔차들을 형성한다.
본 문서에 기술된 시스템들의 다양한 컴포넌트들은 소프트웨어, 펌웨어 및/또는 하드웨어 및/또는 이들의 임의의 조합으로 구현될 수 있다. 예컨대, 시스템(300)의 다양한 컴포넌트는, 적어도 부분적으로는, 예컨대 스마트 폰과 같은 컴퓨팅 시스템에서 발견될 수 있는 것과 같은 컴퓨팅 시스템 온 칩(System-on-a-Chip: SoC)의 하드웨어에 의해, 제공될 수 있다. 본 문서에 기술된 시스템은 대응하는 도면에 묘사되지 않은 추가적인 컴포넌트를 포함할 수 있음을 당업자는 인식할 수 있다. 예컨대, 본 문서에서 논의된 시스템은 명확성을 위하여 묘사되지 않은 비트 스트림 다중화기(multiplexer) 또는 역다중화기(de-multiplexer) 모듈 및 유사한 것과 같은 추가적인 컴포넌트를 포함할 수 있다.
본 문서에서의 예시적 프로세스들의 구현은 예시된 순서로 도시된 모든 동작들의 시행을 포함할 수 있으나, 본 개시는 이에 관하여 한정되지 않고, 다양한 예에서, 본 문서에서의 예시적 프로세스들의 구현은 도시된 동작들의 서브세트만의 및/또는 예시된 것과는 상이한 순서로의 시행을 포함할 수 있다.
프로세스(2200, 2300 및 2400) 및 본 문서에서 논의된 다른 프로세스들에 관련된 몇몇 추가적 및/또는 대안적 세부사항이 본 문서에서 논의된 구현 중 하나 이상의 예에서, 그리고 특히 아래의 도 35에 관해서 예시될 수 있다.
도 35는 본 개시의 적어도 몇몇 구현에 따라 배열된, 예시적인 비디오 코딩 시스템(3500)의 설명도이다. 예시된 구현에서, 비디오 코딩 시스템(3500)은 촬영 디바이스(들)(3501), 비디오 인코더(100), 비디오 디코더(200)(및/또는 처리 유닛(들)(3520)의 로직 회로망(3550)을 통하여 구현된 비디오 코더), 안테나(3502), 하나 이상의 프로세서(들)(3503), 하나 이상의 메모리 스토어(들)(3504) 및/또는 디스플레이 디바이스(3505)를 포함할 수 있다.
예시된 바와 같이, 촬영 디바이스(들)(3501), 안테나(3502), 처리 유닛(들)(3520), 로직 회로망(3550), 비디오 인코더(100), 비디오 디코더(200), 프로세서(들)(3503), 메모리 스토어(들)(3504) 및/또는 디스플레이 디바이스(3505)는 서로와의 통신이 가능할 수 있다. 논의된 바와 같이, 비디오 디코더(100) 및 비디오 디코더(200) 양자 모두와 함께 예시되나, 비디오 코딩 시스템(3500)은 다양한 예에서 비디오 인코더(100)만 또는 비디오 디코더(200)만 포함할 수 있다.
도시된 바와 같이, 몇몇 예에서, 비디오 코딩 시스템(3500)은 안테나(3502)를 포함할 수 있다. 안테나(3502)는 예컨대, 비디오 데이터의 인코딩된 비트스트림을 송신하거나 수신하도록 구성될 수 있다. 또한, 몇몇 예에서, 비디오 코딩 시스템(3500)은 디스플레이 디바이스(3505)를 포함할 수 있다. 디스플레이 디바이스(3505)는 비디오 데이터를 제시하도록 구성될 수 있다. 도시된 바와 같이, 몇몇 예에서, 로직 회로망(3550)은 처리 유닛(들)(3520)을 통하여 구현될 수 있다. 처리 유닛(들)(3520)은 애플리케이션 특정 집적 회로(Application-Specific Integrated Circuit: ASIC) 로직, 그래픽 프로세서(들), 일반 목적 프로세서(들), 또는 유사한 것을 포함할 수 있다. 비디오 코딩 시스템(3500)은, 유사하게 애플리케이션 특정 집적 회로(Application-Specific Integrated Circuit: ASIC) 로직, 그래픽 프로세서(들), 일반 목적 프로세서(들), 또는 유사한 것을 포함할 수 있는 선택적인 프로세서(들)(3503)를 또한 포함할 수 있다. 몇몇 예에서, 로직 회로망(3550)은 하드웨어, 비디오 코딩 전용 하드웨어, 또는 유사한 것을 통하여 구현될 수 있고, 프로세서(들)(3505)는 일반 목적 소프트웨어, 운영 체제, 또는 유사한 것을 구현할 수 있다. 추가로, 메모리 스토어(들)(3504)는 휘발성 메모리(volatile memory)(가령, 정적 랜덤 액세스 메모리(Static Random Access Memory: SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory: DRAM) 등등) 또는 비휘발성 메모리(nonvolatile memory)(가령, 플래시 메모리(flash memory) 등등) 및 기타 등등과 같은 임의의 유형의 메모리일 수 있다. 비한정적인 예에서, 메모리 스토어(들)(3504)는 캐시 메모리(cache memory)에 의해 구현될 수 있다. 몇몇 예에서, 로직 회로망(3550)은 (예컨대 이미지 버퍼의 구현을 위해) 메모리 스토어(들)(3504)를 액세스할 수 있다. 다른 예에서, 로직 회로망(3550) 및/또는 처리 유닛(들)(3520)은 이미지 버퍼 또는 유사한 것의 구현을 위해 메모리 스토어(가령, 캐시 또는 유사한 것)를 포함할 수 있다.
몇몇 예에서, 로직 회로망을 통하여 구현된 비디오 인코더(100)는 (가령, 처리 유닛(들)(3520) 아니면 메모리 스토어(들)(3504)를 통하여) 이미지 버퍼 및 (가령, 처리 유닛(들)(3520)을 통하여) 그래픽 처리 유닛을 포함할 수 있다. 그래픽 처리 유닛은 이미지 버퍼에 통신가능하게 커플링될(communicatively coupled) 수 있다. 그래픽 처리 유닛은 도 1에 관해서 논의된 바와 같은 다양한 모듈 및/또는 본 문서에서 기술된 임의의 다른 인코더 시스템 또는 서브시스템을 실체화하기(embody) 위해 로직 회로망(3550)을 통하여 구현된 바와 같은 비디오 인코더(100)를 포함할 수 있다. 예컨대, 그래픽 처리 유닛은 코딩 파티션 생성기 로직 회로망, 적응적 변환 로직 회로망, 콘텐츠 사전분석기, 인코드 제어기 로직 회로망, 적응적 엔트로피 인코더 로직 회로망 및 기타 등등을 포함할 수 있다. 로직 회로망은 본 문서에서 논의된 바와 같은 다양한 동작을 수행하도록 구성될 수 있다.
몇몇 구현에서, 비디오 인코더는 이미지 버퍼 및 그래픽 처리 유닛을 포함할 수 있다. 그래픽 처리 유닛은 픽셀 데이터의 프레임들을 획득하고 현재의 프레임과 현재의 프레임을 위한 움직임 보상 참조 프레임으로서 사용할 디코딩된 참조 프레임을 구비하도록 구성될 수 있다. 그 유닛은 프레임을 형성하기 위해 변동 개수(varying number)의 또는 변동 배열(varying arrangement)의 또는 양자 모두인 파티션을 사용하는 패턴들 중에서, 각각의 파티션이 하나보다 많은 픽셀과 연관된 파티션 패턴을 또한 선택할 수 있다. 그 유닛은 개별적인 파티션들을 위해 이득 값 및 오프셋 값을 제공함으로써 참조 프레임에 대한 밝기 이득 보상 값들을 결정할 수 있고, 여러 이득 보상 값들이 단일 프레임을 위해 제공되고 프레임 내의 파티션의 위치에 의존하도록, 이득 보상 값에 의해 조절되는 참조 프레임의 파티션의 밝기를 조절함으로써 국부적으로 적응적인 이득 보상을 적용할 수 있다.
몇몇 예에서, 그래픽 처리 유닛은, 각각의 세트가 프레임의 일부분을 위한 이득 값 및 오프셋 값을 포함하는 파라미터들의 여러 세트들을 현재 프레임 및 참조 프레임의 픽셀들의 밝기를 사용함으로써 계산하는 것을 포함하여 밝기에서의 인터프레임 변화의 보상을 수행하도록 또한 구성될 수 있다. 그래픽 처리 유닛은 파라미터들의 세트들과 프레임의 어느 부분이 어느 파라미터에 대응하는지의 표시를 디코더로 송신하는 것을 또한 수행할 수 있다. 그래픽 처리 유닛은 원래의 참조 프레임보다 오차가 더 적은 수정된 참조 프레임을 형성하기 위해 파라미터들을 사용하는 것을 또한 수행할 수 있다. 그래픽 처리 유닛은 비트스트림을 송신하도록 또한 구성될 수 있다.
비디오 디코더(200)는 도 2의 디코더(200)에 관해서 논의된 바와 같은 다양한 모듈 및/또는 본 문서에 기술된 임의의 다른 디코더 시스템 또는 서브시스템을 실체화하기 위해 로직 회로망(3550)을 통하여 구현된 바와 유사한 방식으로 구현될 수 있다.
몇몇 예에서, 비디오 코딩 시스템(3500)의 안테나(3502)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 논의된 바와 같이, 인코딩된 비트스트림은 코딩 파티션(가령, 변환 계수들 또는 양자화된 변환 계수들, 선택적인 지시자들(논의된 바와 같음)과 연관된 데이터 및/또는 코딩 파티션을 정의하는 데이터(가령, 심볼 런 코딩 또는 코드북 기법 또는 유사한 것을 사용하여 bi-tree 파티션들 또는 k-d tree 파티션들을 정의하는 것과 연관된 데이터)를 포함할 수 있다. 비디오 코딩 시스템(3500)은 안테나(3502)에 커플링되고 인코딩된 비트스트림을 디코딩하도록 구성된 비디오 디코더(200)를 또한 포함할 수 있다.
몇몇 실시예에서, 본 문서에 기술된 특징들은 하나 이상의 컴퓨터 프로그램 제품에 의해 제공되는 명령어에 응답하여 시행될 수 있다. 그러한 프로그램 제품은, 예컨대 프로세서에 의해 실행되는 경우, 본 문서에 기술된 기능성을 제공할 수 있는 명령어를 제공하는 신호 함유(signal bearing) 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 임의의 형태의 하나 이상의 머신 판독가능(machine-readable) 매체로 제공될 수 있다. 그러므로, 예컨대, 하나 이상의 프로세서 코어(들)를 포함하는 프로세서는 하나 이상의 머신 판독가능 매체에 의해 프로세서로 전달되는 프로그램 코드 및/또는 명령어 또는 명령어 세트에 응답하여 본 문서에 기술된 하나 이상의 특징을 시행할 수 있다. 일반적으로, 머신 판독가능 매체는 본 문서에 기술된 디바이스 및/또는 시스템 중 임의의 것으로 하여금 본 문서에 기술된 특징 중 적어도 일부분을 구현하게 할 수 있는 프로그램 코드 및/또는 명령어 또는 명령어 세트의 형태로 소프트웨어를 전달할 수 있다.
도 36은 본 개시의 적어도 몇몇 구현에 따라 배열된, 예시적인 시스템(3600)의 설명도이다. 다양한 구현에서, 시스템(3600)은 미디어 시스템(media system)일 수 있는데 다만 시스템(3600)은 이 맥락에 한정되지는 않는다. 예컨대, 시스템(3600)은 개인용 컴퓨터(Personal Computer: PC), 랩톱 컴퓨터(laptop computer), 울트라 랩톱 컴퓨터(ultra-laptop computer), 태블릿(tablet), 터치 패드(touch pad), 휴대가능 컴퓨터(portable computer), 핸드헬드 컴퓨터(handheld computer), 팜톱 컴퓨터(palmtop computer), 개인용 디지털 보조기기(Personal Digital Assistant: PDA), 셀룰러 전화(cellular telephone), 조합 셀룰러 전화/PDA(combination cellular telephone/PDA), 텔레비전, 스마트 디바이스(smart device)(가령, 스마트 폰(smart phone), 스마트 태블릿(smart tablet) 또는 스마트 텔레비전(smart television)), 모바일 인터넷 디바이스(Mobile Internet Device: MID), 메시징 디바이스(messaging device), 데이터 통신 디바이스(data communication device), 카메라(가령, 전자동(point-and-shoot) 카메라, 수퍼 줌(super-zoom) 카메라, 디지털 단일 렌즈 반사식(Digital Single-Lens Reflex: DSLR) 카메라) 및 기타 등등에 포함될 수 있다.
다양한 구현에서, 시스템(3600)은 디스플레이(3620)에 커플링된 플랫폼(platform)(3602)을 포함한다. 플랫폼(3602)은 콘텐츠 서비스 디바이스(들)(3630) 또는 콘텐츠 전달 디바이스(들)(3640) 또는 다른 유사한 콘텐츠 소스와 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수 있다. 하나 이상의 내비게이션 특징부(navigation feature)를 포함하는 내비게이션 제어기(navigation controller)(3650)는, 예컨대 플랫폼(3602) 및/또는 디스플레이(3620)과 상호작용하는 데에 사용될 수 있다. 이들 컴포넌트 각각은 아래에서 더욱 상세히 기술된다.
다양한 구현에서, 플랫폼(3602)은 칩세트(chipset)(3605), 프로세서(3610), 메모리(3612), 안테나(3613), 스토리지(storage)(3614), 그래픽 서브시스템(3615), 애플리케이션(3616) 및/또는 무선기기(radio)(3618)의 임의의 조합을 포함할 수 있다. 칩세트(3605)는 프로세서(3610), 메모리(3612), 스토리지(3614), 그래픽 서브시스템(3615), 애플리케이션(3616) 및/또는 무선기기(3618) 간의 상호통신을 제공할 수 있다. 예컨대, 칩세트(3605)는 스토리지(3614)와의 상호통신을 제공하는 것이 가능한 저장 어댑터(storage adapter)(묘사되지 않음)를 포함할 수 있다.
프로세서(3610)는 복합 명령어 세트 컴퓨터(Complex Instruction Set Computer: CISC) 또는 축소 명령어 세트 컴퓨터(Reduced Instruction Set Computer: RISC) 프로세서, x86 명령어 세트 호환가능 프로세서, 다중 코어(multi-core), 또는 임의의 다른 마이크로프로세서 또는 중앙 처리 유닛(Central Processing Unit: CPU)으로서 구현될 수 있다. 다양한 구현에서, 프로세서(3610)는 이중 코어(dual-core) 프로세서(들), 이중 코어 모바일 프로세서(들) 및 기타 등등일 수 있다.
메모리(3612)는 랜덤 액세스 메모리(Random Access Memory: RAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory: DRAM), 또는 정적 RAM(Static RAM: SRAM)와 같은, 다만 이에 한정되지 않는 휘발성 메모리 디바이스로서 구현될 수 있다.
스토리지(3614)는 자기 디스크 드라이브(magnetic disk drive), 광학 디스크 드라이브(optical disk drive), 테이프 드라이브(tape drive), 내부 저장 디바이스(internal storage device), 부착된 저장 디바이스(attached storage device), 플래시 메모리(flash memory), 배터리 예비된(battery backed-up) SDRAM(동기식 DRAM(Synchronous DRAM)) 및/또는 네트워크 액세스가능 저장 디바이스(network accessible storage device)와 같은, 다만 이에 한정되지 않는 비휘발성 저장 디바이스로서 구현될 수 있다. 다양한 구현에서, 스토리지(3614)는, 예컨대 여러 하드 드라이브가 포함된 경우 귀중한 디지털 매체를 위해 저장 성능 향상된 보호(storage performance enhanced protection)를 늘리기 위한 기술을 포함할 수 있다.
그래픽 서브시스템(3615)은 디스플레이를 위해 정지 또는 비디오와 같은 이미지의 처리를 수행할 수 있다. 그래픽 서브시스템(3615)은 예컨대 그래픽 처리 유닛(Graphics Processing Unit: GPU) 또는 시각적 처리 유닛(Visual Processing Unit: VPU)일 수 있다. 그래픽 서브시스템(3615) 및 디스플레이(3620)를 통신가능하게 커플링하는 데에 아날로그 또는 디지털 인터페이스가 사용될 수 있다. 예컨대, 인터페이스는 고선명 멀티미디어 인터페이스(High-Definition Multimedia Interface), 디스플레이포트(DisplayPort), 무선 HDMI 및/또는 무선 HD 준수 기법 중 임의의 것일 수 있다. 그래픽 서브시스템(3615)은 프로세서(3610) 또는 칩세트(3605) 내에 통합될 수 있다. 몇몇 구현에서, 그래픽 서브시스템(3615)은 칩세트(3605)에 통신가능하게 커플링된 단독형(stand-alone) 디바이스일 수 있다.
본 문서에 기술된 그래픽 및/또는 비디오 처리 기법은 다양한 하드웨어 아키텍처로 구현될 수 있다. 예컨대, 그래픽 및/또는 비디오 기능성은 칩세트 내에 통합될 수 있다. 대안적으로, 별개의 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 또 다른 구현으로서, 그래픽 및/또는 비디오 기능은 다중 코어 프로세서를 포함하는 일반 목적 프로세서에 의해 제공될 수 있다. 추가의 실시예에서, 그 기능은 가전기기 디바이스(consumer electronics device) 내에 구현될 수 있다.
무선기기(3618)는 다양한 적합한 무선 통신 기법을 사용하여 신호를 송신하는 것 및 수신하는 것이 가능한 하나 이상의 무선기기를 포함할 수 있다. 그러한 기법은 하나 이상의 무선 네트워크에 걸친 통신을 수반할 수 있다. 예시적인 무선 네트워크는 무선 로컬 영역 네트워크(Wireless Local Area Network: WLAN), 무선 개인 영역 네트워크(Wireless Personal Area Network: WPAN), 무선 대도시 영역 네트워크(Wireless Metropolitan Area Network: WMAN), 셀룰러 네트워크 및 위성 네트워크를 포함(하지만 이에 한정되지 않는다). 그러한 네트워크에 걸쳐 통신하는 데에서, 무선기기(3618)는 임의의 버전으로 된 하나 이상의 적용가능한 표준에 따라 동작할 수 있다.
다양한 구현에서, 디스플레이(3620)는 임의의 텔레비전 유형 모니터 또는 디스플레이를 포함할 수 있다. 디스플레이(3620)는, 예컨대, 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비전 계통 디바이스 및/또는 텔레비전을 포함할 수 있다. 디스플레이(3620)는 디지털 및/또는 아날로그일 수 있다. 다양한 구현에서, 디스플레이(3620)는 홀로그램 디스플레이(holographic display)일 수 있다. 또한, 디스플레이(3620)는 시각적 투영(visual projection)을 수신할 수 있는 투명한 표면일 수 있다. 그러한 투영은 다양한 형태의 정보, 이미지 및/또는 객체를 전달할 수 있다. 예컨대, 그러한 투영은 모바일 증강 현실(Mobile Augmented Reality: MAR) 애플리케이션을 위한 시각적 오버레이(visual overlay)일 수 있다. 하나 이상의 소프트웨어 애플리케이션(3616)의 제어 하에서, 플랫폼(3602)은 디스플레이(3620) 상에 사용자 인터페이스(3622)를 디스플레이할 수 있다.
다양한 구현에서, 예컨대, 콘텐츠 서비스 디바이스(들)(3630)는 임의의 국립, 국제 및/또는 독립적 서비스에 의해 호스팅되고(hosted) 인터넷을 통하여 플랫폼(3602)이 액세스할 수 있는 것일 수 있다. 콘텐츠 서비스 디바이스(들)(3630)는 플랫폼(3602)에 및/또는 디스플레이(3620)에 커플링될 수 있다. 플랫폼(3602) 및/또는 콘텐츠 서비스 디바이스(들)(3630)는 네트워크(3660)로 및 네트워크(3660)로부터 미디어 정보를 통신(가령, 발신 및/또는 수신)하기 위해 네트워크(3660)에 커플링될 수 있다. 콘텐츠 전달 디바이스(들)(3640)는 플랫폼(3602)에 및/또는 디스플레이(3620)에 또한 커플링될 수 있다.
다양한 구현에서, 콘텐츠 서비스 디바이스(들)(3630)는 케이블 텔레비전 박스(cable television box), 개인용 컴퓨터, 네트워크, 전화, 인터넷 가능화된 디바이스 또는 기기(디지털 정보 및/또는 콘텐츠를 전달하는 것이 가능함), 그리고 콘텐츠 제공자 및 플랫폼(3602) 및/디스플레이(3620) 간에, 네트워크(3660)를 통하여 또는 직접적으로 콘텐츠를 단방향으로 또는 양방향으로 통신하는 것이 가능한 임의의 다른 유사한 디바이스를 포함할 수 있다. 콘텐츠는 네트워크(366)를 통하여 콘텐츠 제공자 및 시스템(3600) 내의 컴포넌트 중 임의의 하나로 및 이로부터 단방향으로 및/또는 양방향으로 통신될 수 있음이 인식될 것이다. 콘텐츠의 예는, 예컨대 비디오, 음악, 의료 및 게이밍(gaming) 정보 및 기타 등등을 포함하는 임의의 미디어 정보를 포함할 수 있다.
콘텐츠 서비스 디바이스(들)(3630)는 미디어 정보, 디지털 정보 및/또는 다른 콘텐츠를 포함하여 케이블 텔레비전 프로그래밍(cable television programming)과 같은 콘텐츠를 수신할 수 있다. 콘텐츠 제공자의 예는 임의의 케이블 또는 위성 텔레비전 또는 라디오 또는 인터넷 콘텐츠 제공자를 포함할 수 있다. 제공되는 예들은 어떤 식으로든 본 개시에 따른 구현들을 한정하도록 의도되지 않는다.
다양한 구현에서, 플랫폼(3602)은 하나 이상의 내비게이션 특징부를 갖는 내비게이션 제어기(3650)로부터 제어 신호를 수신할 수 있다. 제어기(3650)의 내비게이션 특징부는 예컨대 사용자 인터페이스(3622)와 상호작용하는 데에 사용될 수 있다. 다양한 실시예에서, 내비게이션 제어기(3650)는 사용자로 하여금 공간적(가령, 연속적이고 다차원적인) 데이터를 컴퓨터에 입력할 수 있게 하는 컴퓨터 하드웨어 컴포넌트(특히, 인간 인터페이스 디바이스(human interface device)일 수 있는 포인팅 디바이스(pointing device)일 수 있다. 그래픽 사용자 인터페이스(Graphical User Interface: GUI)와, 텔레비전 및 모니터와 같은 많은 시스템이 사용자로 하여금 물리적 제스처를 사용하여 데이터를 제어하고 컴퓨터 또는 텔레비전에 제공할 수 있게 한다.
제어기(3650)의 내비게이션 특징부의 이동은 디스플레이 상에 디스플레이되는 포인터(pointer), 커서(cursor), 포커스 링(focus ring), 또는 다른 시각적 지시자의 이동에 의해 디스플레이(가령, 디스플레이(3620)) 상에 모사될 수 있다. 예컨대, 소프트웨어 애플리케이션(3616)의 제어 하에, 내비게이션 제어기(365) 상에 위치된 내비게이션 특징부는 사용자 인터페이스(3622) 상에 디스플레이되는 가상 내비게이션 특징부에 맵핑될 수 있다. 다양한 실시예에서, 제어기(3650)는 별개의 컴포넌트가 아닐 수 있지만 플랫폼(3602) 및/또는 디스플레이(3620) 내로 통합될 수 있다. 그러나, 본 개시는 본 문서에서 도시되거나 기술된 맥락 내에 또는 구성요소로 한정되지 않는다.
다양한 구현에서, 드라이버(도시되지 않음)는, 예컨대, 가능하게 된 경우, 초기 시동(boot-up) 후에 버튼의 터치로써 텔레비전과 같은 플랫폼(3602)을 사용자가 즉각적으로 켜고 끌 수 있게 하기 위한 기술을 포함할 수 있다. 프로그램 로직은 플랫폼(3602)으로 하여금 플랫폼이 "꺼진" 경우에도 미디어 어댑터 또는 다른 콘텐츠 서비스 디바이스(들)(3630) 또는 콘텐츠 전달 디바이스(들)(36640)에 콘텐츠를 스트리밍할 수 있게 할 수 있다. 추가로, 칩세트(3605)는, 예컨대 5.1 서라운드 음향 오디오 및/또는 고선명 7.1 서라운드 음향 오디오를 위한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버는 통합된 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 다양한 실시예에서, 그래픽 드라이버는 주변 컴포넌트 상호연결 익스프레스(Peripheral Component Interconnect (PCI) Express) 그래픽 카드를 포함할 수 있다.
다양한 구현에서, 시스템(3600) 내에 도시된 컴포넌트 중 임의의 하나 이상이 통합될 수 있다. 예컨대, 가령, 플랫폼(3602) 및 콘텐츠 서비스 디바이스(들)(3630)가 통합될 수 있거나, 플랫폼(3602) 및 콘텐츠 전달 디바이스(들)(3640)가 통합될 수 있거나, 플랫폼(3602), 콘텐츠 서비스 디바이스(들)(3630) 및 콘텐츠 전달 디바이스(들)(3640)가 통합될 수 있다. 다양한 실시예에서, 플랫폼(3602) 및 디스플레이(3620)는 통합된 유닛일 수 있다. 예컨대, 디스플레이(3620) 및 콘텐츠 서비스 디바이스(들)(3630)가 통합될 수 있거나, 디스플레이(3620) 및 콘텐츠 전달 디바이스(들)(3640)가 통합될 수 있다. 이 예들은 본 개시를 한정하도록 의도되지 않는다.
다양한 실시예에서, 시스템(3600)은 무선 시스템, 유선 시스템, 또는 양자의 조합으로서 구현될 수 있다. 무선 시스템으로서 구현되는 경우, 시스템(3600)은, 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 제어 로직 및 기타 등등과 같은, 무선 공유 매체(wireless shared media) 상에서 통신하기에 적합한 컴포넌트와 인터페이스를 포함할 수 있다. 무선 공유 매체의 일례는 RF 스펙트럼 및 기타 등등과 같은 무선 스펙트럼의 부분을 포함할 수 있다. 유선 시스템으로서 구현되는 경우, 시스템(3600)은, 입력/출력(Input/Output: I/O) 어댑터, I/O 어댑터를 대응하는 유선 통신 매체와 연결하기 위한 물리적 커넥터, 네트워크 인터페이스 카드(Network Interface Card: NIC), 디스크 제어기(disc controller), 비디오 제어기, 오디오 제어기 및 유사한 것과 같은, 유선 통신 매체 상에서 통신하기에 적합한 컴포넌트와 인터페이스를 포함할 수 있다. 유선 통신 매체의 예는 전선, 케이블, 금속 리드(metal lead), 인쇄 회로 보드(Printed Circuit Board: PCB), 배면판(backplane), 스위치 패브릭(switch fabric), 반도체 제재(semiconductor material), 꼬임쌍선(twisted-pair wire), 동축 케이블(co-axial cable), 광섬유 및 기타 등등을 포함할 수 있다.
플랫폼(3602)은 정보를 통신하기 위해 하나 이상의 논리적 또는 물리적 채널을 수립할 수 있다. 정보는 미디어 정보 및 제어 정보를 포함할 수 있다. 미디어 정보는 사용자를 위해 의도된 콘텐츠를 나타내는 임의의 데이터를 나타낼 수 있다. 콘텐츠의 예는, 예컨대 음성 대화, 비디오 컨퍼런스(videoconference), 스트리밍 비디오(streaming video), 전자 메일("이메일") 메시지, 음성 메일 메시지, 문자 숫자 심볼, 그래픽, 이미지, 비디오, 텍스트 및 기타 등등을 포함할 수 있다. 음성 대화로부터의 데이터는, 예컨대, 발화 정보(speech information), 묵음 구간, 배경 잡음, 컴포트 잡음(comfort noise), 톤 및 기타 등등일 수 있다. 제어 정보는 자동화된 시스템을 위해 의도된 커맨드(command), 명령어, 제어어(control word)를 나타내는 임의의 데이터를 나타낼 수 있다. 예컨대, 제어 정보는 시스템을 통해 미디어 정보를 라우팅하거나, 사전결정된 방식으로 미디어 정보를 처리하도록 노드(node)에 지시하는 데에 사용될 수 있다. 그러나, 그 구현들은 도 36에 기술되거나 도시된 맥락에서 또는 구성요소로 한정되지 않는다.
전술된 바와 같이, 시스템(3600)은 갖가지 물리적 형식 또는 폼 팩터(form factor)로 실체화될 수 있다. 도 37은 시스템(3700)이 실체화될 수 있는 소형 폼 팩터 디바이스(3700)의 구현을 예시한다. 다양한 실시예에서, 예컨대, 디바이스(3700)는 무선 능력을 가진 모바일 컴퓨팅 디바이스로서 구현될 수 있다. 모바일 컴퓨팅 디바이스는, 예컨대 하나 이상의 배터리와 같은 모바일 전력 소스 또는 공급부와 처리 시스템을 갖는 임의의 디바이스를 나타낼 수 있다.
전술된 바와 같이, 모바일 컴퓨팅 디바이스의 예는 개인용 컴퓨터(Personal Computer: PC), 랩톱 컴퓨터, 울트라 랩톱 컴퓨터, 태블릿, 터치 패드, 휴대가능 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인용 디지털 보조기기(Personal Digital Assistant: PDA), 셀룰러 전화, 조합 셀룰러 전화/PDA, 텔레비전, 스마트 디바이스(가령, 스마트 전화, 스마트 태블릿, 스마트 텔레비전), 모바일 인터넷 디바이스(Mobile Internet Device: MID), 메시징 디바이스, 데이터 통신 디바이스, 카메라(가령, 전자동 카메라, 수퍼 줌 카메라, 디지털 단일 렌즈 반사식(Digital Single Lens Reflex: DSLR) 카메라) 및 기타 등등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예는 사람에 의해 착용되도록 배열된 컴퓨터, 예를 들어 손목 컴퓨터(wrist computer), 손가락 컴퓨터(finger computer), 반지 컴퓨터(ring comptuer), 안경 컴퓨터(eyeglass computer), 벨트 클립 컴퓨터(belt-clip computer), 암밴드 컴퓨터(arm-band computer), 신발 컴퓨터(shoe computer), 의류 컴퓨터(clothing computer) 및 다른 착용가능(wearable) 컴퓨터를 또한 포함할 수 있다. 다양한 실시예에서, 예컨대, 모바일 컴퓨팅 디바이스는, 음성 통신 및/또는 데이터 통신뿐만 아니라, 컴퓨터 애플리케이션을 실행하는 것이 가능한 스마트 폰으로서 구현될 수 있다. 몇몇 실시예는 예로서 스마트폰으로서 구현된 모바일 컴퓨팅 디바이스와 함께 기술될 수 있으나, 역시 다른 무선 모바일 컴퓨팅 디바이스를 사용하여 다른 실시예가 구현될 수 있음이 인식될 수 있다. 실시예들은 이 맥락 내에 한정되지 않는다.
도 37에 도시된 바와 같이, 디바이스(3700)는 하우징(housing)(3702), 사용자 인터페이스(3710)를 포함할 수 있는 디스플레이(3704), 입력/출력(Input/Output: I/O) 디바이스(3706), 그리고 안테나(3708)를 포함할 수 있다. 디바이스(3700)는 내비게이션 특징부(3712)를 또한 포함할 수 있다. 디스플레이(3704)는 모바일 컴퓨팅 디바이스에 적절한 정보를 디스플레이하기 위한 임의의 적합한 디스플레이 유닛을 포함할 수 있다. I/O 디바이스(3706)는 정보를 모바일 컴퓨팅 디바이스에 입력하기 위한 임의의 적합한 I/O 디바이스를 포함할 수 있다. I/O 디바이스(3706)를 위한 예는 문자 숫자 키보드(alphanumeric keyboard), 숫자 키보드, 터치 패드, 입력 키, 버튼, 스위치, 로커 스위치(rocker switch), 마이크, 스피커, 음성 인식 디바이스 및 소프트웨어, 그리고 기타 등등을 포함할 수 있다. 정보는 마이크(도시되지 않음)를 거쳐서 디바이스(3700) 내에 또한 입력될 수 있다. 그러한 정보는 음성 인식 디바이스(도시되지 않음)에 의해 디지털화될(digitized) 수 있다. 실시예들은 이 맥락 내에 한정되지 않는다.
본 문서에서의 예시적 프로세스들의 구현은 예시된 순서로 도시된 모든 동작의 시행을 포함할 수 있으나, 본 개시는 이에 관하여 한정되지 않고, 다양한 예에서, 본 문서에서의 예시적 프로세스들의 구현은 도시된 동작들의 서브세트만의 및/또는 예시된 것과는 상이한 순서로의 시행을 포함할 수 있다.
추가로, 본 문서에서 논의된 동작 중 임의의 하나 이상은 하나 이상의 컴퓨터 프로그램 제품에 의해 제공되는 명령어에 응답하여 시행될 수 있다. 그러한 프로그램 제품은, 예컨대 프로세서에 의해 실행되는 경우, 본 문서에 기술된 기능성을 제공할 수 있는 명령어를 제공하는 신호 함유 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 임의의 형태의 하나 이상의 머신 판독가능 매체로 제공될 수 있다. 그러므로, 예컨대, 하나 이상의 프로세서 코어(들)를 포함하는 프로세서는 하나 이상의 머신 판독가능 매체에 의해 프로세서로 전달되는 프로그램 코드 및/또는 명령어 또는 명령어 세트에 응답하여 본 문서에서의 예시적 프로세스의 동작 중 하나 이상을 시행할 수 있다. 일반적으로, 머신 판독가능 매체는 본 문서에 기술된 디바이스 및/또는 시스템 중 임의의 것으로 하여금 본 문서에서 논의된 바와 같은 비디오 시스템의 적어도 일부분을 구현하게 할 수 있는 프로그램 코드 및/또는 명령어 또는 명령어 세트의 형태로 소프트웨어를 전달할 수 있다.
본 문서에 기술된 임의의 구현에서 사용되는 바와 같이, 용어 "모듈"은 본 문서에 기술된 기능성을 제공하도록 구성된 소프트웨어 로직, 펌웨어 로직 및/또는 하드웨어 로직의 임의의 조합을 나타낸다. 소프트웨어는 소프트웨어 패키지, 코드 및/또는 명령어 세트 또는 명령어로서 실체화될 수 있고, 본 문서에 기술된 임의의 구현에서 사용되는 바와 같이, "하드웨어"는, 예컨대, 단독으로 또는 임의의 조합으로, 고정배선된 회로망(hardwired circuitry), 프로그램가능 회로망(programmable circuitry), 상태 머신 회로망(state machine circuitry), 그리고/또는 프로그램가능 회로망에 의해 실행되는 명령어를 저장하는 펌웨어를 포함할 수 있다. 모듈들은, 집합적으로 또는 개별적으로, 더 큰 시스템, 예컨대 집적 회로(Integrated Circuit: IC), 시스템 온 칩(System on-chip: SoC) 및 기타 등등의 일부를 형성하는 회로망으로서 실체화될 수 있다. 예컨대, 본 문서에서 논의된 코딩 시스템의 소프트웨어, 펌웨어 또는 하드웨어를 통한 구현을 위한 로직 회로망 내에 모듈이 실체화될 수 있다.
하드웨어 구성요소, 소프트웨어 구성요소, 또는 양자의 조합을 사용하여 다양한 실시예가 구현될 수 있다. 하드웨어 구성요소의 예는 프로세서, 마이크로프로세서, 회로, 회로 구성요소(가령, 트랜지스터, 저항기, 커패시터, 인덕터 및 기타 등등), 집적 회로, 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC), 프로그램가능 로직 디바이스(Programmable Logic Device: PLD), 디지털 신호 프로세서(Digital Signal Processor: DSP), 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array: FPGA), 로직 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩 세트 및 기타 등등을 포함할 수 있다. 소프트웨어의 예는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어(middleware), 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메쏘드(method), 프로시저(procedure), 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(Application Program Interface: API), 명렁어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 이들의 임의의 조합을 포함할 수 있다. 하드웨어 구성요소 및/또는 소프트웨어 구성요소를 사용하여 일 실시예를 구현할 것인지를 정하는 것은, 원하는 계산 속도(computational rate), 전력 레벨, 내열성, 처리 사이클 예산, 입력 데이터 속도, 출력 데이터 속도, 메모리 리소스, 데이터 버스 속도 및 다른 설계 또는 성능 제약과 같은 임의의 개수의 인자에 따라 달라질 수 있다.
적어도 하나의 실시예의 하나 이상의 양상은, 머신에 의해 판독되는 경우 머신으로 하여금 본 문서에 기술된 기법을 수행하기 위한 로직을 만들게 하는 것으로서, 프로세서 내의 다양한 로직을 표현하는, 머신 판독가능 매체 상에 저장된 표현적 명령어에 의해 구현될 수 있다. "IP 코어"로 알려진 그러한 표현은 유형적인(tangible) 머신 판독가능 매체 상에 저장되고 로직 또는 프로세서를 실제로 만드는 제조 머신 내에 로딩하기 위해 다양한 소비자 또는 제조 설비에 공급될 수 있다.
본 문서에 개진된 어떤 특징은 다양한 구현을 참조하여 서술되었으나, 이 서술은 한정적인 의미에서 해석되도록 의도되지 않는다. 따라서, 본 문서에 기술된 구현의 다양한 수정은 물론, 본 개시가 관련된 업계에서 숙련된 자에게 명백한 다른 구현들은 본 개시의 사상 및 범주 내에 있는 것으로 여겨진다.
이하의 예들은 추가 구현들에 관련된다. 하나의 예에서, 컴퓨터로 구현된 비디오 코딩 방법은 현재 프레임과 상기 현재 프레임을 위한 움직임 보상 참조 프레임으로서 사용할 디코딩된 참조 프레임을 갖는 픽셀 데이터의 프레임들을 획득하는 단계를 포함한다. 위 방법은, 프레임을 형성하기 위해 변동 개수(varying number)의 또는 변동 배열(varying arrangement)의 또는 양자 모두인 파티션을 사용하는 패턴들 중에서, 각각의 파티션(partition)이 한 개보다 많은 픽셀과 연관된 파티션 패턴을 선택하는 단계를 포함할 수 있다. 위 방법은, 개별 파티션에 대한 이득 값 및 오프셋 값을 제공하는 것에 의해 상기 참조 프레임에 대한 밝기 이득 보상 값을 결정하는 단계를 또한 포함할 수 있다. 위 방법은, 다수의 이득 보상 값들이 단일 프레임을 위해 제공되고 프레임 내의 파티션의 위치에 의존하도록, 상기 이득 보상 값에 의해 조절되는 상기 참조 프레임의 파티션의 밝기를 조절함으로써 국부적으로 적응적인 이득 보상(locally adaptive gain compensation)을 적용하는 단계를 또한 포함할 수 있다.
다른 접근법에 의해, 위 컴퓨터로 구현된 방법은, 각각의 파티션은, 적어도 부분적으로는, 상기 파티션 내의 픽셀 값들의 평균에 기반하여 평균 이득 값 및 평균 오프셋 값을 갖는 것을 또한 포함할 수 있다. 상기 파티션 패턴은, 레이트 왜곡 최적화(Rate Distortion Optimization: RDO), 그리고 특정한 파티션을 사용하기 위한 비트 비용과 이미지의 품질을 밸런싱하는 방법 중 적어도 하나를 사용함으로써 선택될 수 있다. 또한 적어도 부분적으로는, 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡, 상기 이득 값 및 오프셋 값과 연관된 비트레이트, 그리고 변환 계수들을 위해 사용되는 양자화수에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하기 위해 다수의 파티션이 시험될 수 있다. 위 방법은, 또한 적어도 부분적으로는,
에 있어서 J를 최소화하는 것에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하는 단계를 포함할 수 있되,
D는 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡이고, 비트레이트 R은 상기 이득 값 및 오프셋 값과 연관되며, λ는 라그랑주 승수이되 Q는 변환 계수를 위해 사용되는 양자화수이고, c는 어림법에 의해 발견되고 중간 값으로서 0.7에서 설정된 상수이다. 상기 파티션 패턴은 사전결정된 파티션 패턴의 인덱스로부터 선택될 수 있는데, 상기 인덱스는 상이한 패턴과 각각 연관된 인덱스 번호들을 포함하고, 상기 인덱스 번호들 중 일부는 대응하는 패턴 내의 파티션의 개수를 나타내며, 일부 인덱스 번호는 파티션의 개수를 명시적으로 언급하지 않고 대응하는 패턴 내의 파티션의 크기를 나타낸다.
상기 파티션 패턴은 상기 픽셀들의 이미지 데이터 내의 크로마 값 및 루마 값들의 변환 코딩 및 양자화를 위해 형성된 파티션들을 위해 그리고 예측 블록들을 위해 형성된 임의의 파티션으로부터 별도로 선택된다. 상기 이득 값 및 오프셋 값은 인코더로부터의 송신을 위해, 그리고 상기 이득 값 및 오프셋 값의 송신을 사전결정된 개수의 비트로 유지하기 위해 고정된 개수의 구간을 갖는 사전결정된 인덱스를 사용함으로써 양자화되고, 실제 이득 또는 오프셋 값 대신에 양자화 인덱스 번호가 양자화된다. 인코더로부터 프레임을 위한 상기 이득 보상의 표시(indication)를 송신하기 위해 패턴 지시자(pattern indicator), 각각의 파티션을 위한 이득 지시자(gain indicator) 및 각각의 파티션을 위한 오프셋 지시자(offset indicator)가 각각 7비트, 8비트 및 8비트로 제한되고, 상기 이득 보상을 재구성하기 위해 인코더로부터 오직 파라미터 인덱스 번호 및 양자화된 이득 값(들) 및 양자화된 오프셋 값(들)이 송신된다.
(A) 모멘트 방법(moment method)을 사용하여
E는 기대치 연산자(expectation operator), St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값인
로서 계산되는 것과,
(B) 평균 제곱 오차 그래디언트 최소화 방법(mean square error gradient minimization method)을 사용하여
로서 계산되는 것 중 적어도 하나이고,
오프셋 b는
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값이고, a는 두 대응하는 픽셀들 간의 이득 값인
로서 계산된다.
위 방법은, 프레임의 개별 블록들의 평균화된 블록 픽셀 값들을 계산하는 단계와, 상이한 파티션들에 대한 이득 값 및 오프셋 값을 계산하기 위한 합들을 결정하기 위해 상이한 블록들의 블록 값들을 합산하는 단계를 또한 포함할 수 있고, 위 블록들은 4 x 4 픽셀들이며, 상기 평균화된 블록 픽셀 값들은 (1) 블록 내의 픽셀 밝기 값들의 평균과, (2) 블록 내의 픽셀 밝기의 제곱의 평균과, (3) 블록 내의, 그리고 상기 현재 프레임 및 참조 프레임 내의 대응하는 픽셀 밝기 값들의 (승산(multiplication)에 의한) 곱들의 평균 중 적어도 하나를 포함한다. 상기 파티션들은 예측 파티션들 및 코딩 파티션들과 무관하게 정의된 이득 파티션들이다.
다른 접근법에 의해, 상기 현재 프레임은, 과거 프레임, 장래 프레임 또는 양자 모두를 참조로서 사용하는 옵션(option)을 제공하고 모핑 또는 합성에 의해 수정된 것인 수정된 참조 프레임을 사용하는 옵션을 제공하는 F-픽처이되 이득 보상은 하나 또는 복수의 모핑 옵션이다.
다른 예에 의해, 비디오 코딩의 방법은, 밝기에서의 인터프레임 변화의 보상을 수행하는 단계를 포함하되, 이는 각각의 세트가 프레임의 일부분을 위한 이득 값 및 오프셋 값을 포함하는 파라미터들의 다수의 세트들을 현재 프레임 및 참조 프레임의 픽셀들의 밝기를 사용함으로써 계산하는 단계를 포함한다. 위 방법은, 파라미터들의 상기 세트들과, 상기 프레임의 어느 부분이 어느 파라미터에 대응하는지의 표시를 디코더에 송신하는 단계를 또한 포함한다. 위 방법은 원래의 참조 프레임보다 오차가 더 적은 수정된 참조 프레임을 형성하기 위해 상기 파라미터들을 사용하는 단계를 포함한다.
또 다른 예에 의해, 코더(coder)는, 이미지 버퍼(image buffer)와, 현재 프레임과 상기 현재 프레임을 위한 움직임 보상 참조 프레임으로서 사용할 디코딩된 참조 프레임을 갖는 픽셀 데이터의 프레임들을 획득하고, 각각의 파티션이 한 개보다 많은 픽셀들과 연관된 파티션 패턴으로서, 프레임을 형성하기 위해 변동 개수의 또는 변동 배열의 또는 양자 모두인 파티션을 사용하는 패턴들 중에 있는 것을 선택하며, 개별 파티션에 대한 이득 값 및 오프셋 값을 제공하는 것에 의해 상기 참조 프레임에 대한 밝기 이득 보상 값을 결정하고, 다수의 이득 보상 값들이 단일 프레임을 위해 제공되고 프레임 내의 파티션의 위치에 의존하도록, 상기 이득 보상 값에 의해 조절되는 상기 참조 프레임의 파티션의 밝기를 조절함으로써 국부적으로 적응적인 이득 보상을 적용하게 구성된 그래픽 처리 유닛을 포함한다.
추가의 예에 의해, 위 그래픽 처리 유닛은, 각각의 파티션은, 적어도 부분적으로는, 상기 파티션 내의 픽셀 값들의 평균에 기반하여 평균 이득 값 및 평균 오프셋 값을 갖는 것을 포함할 수 있다. 상기 파티션 패턴은, 레이트 왜곡 최적화(Rate Distortion Optimization: RDO), 그리고 특정한 파티션을 사용하기 위한 비트 비용과 이미지의 품질을 밸런싱하는 방법 중 적어도 하나를 사용함으로써 선택될 수 있다. 또한 적어도 부분적으로는, 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡, 상기 이득 값 및 오프셋 값과 연관된 비트레이트, 그리고 변환 계수들을 위해 사용되는 양자화수에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하기 위해 다수의 파티션이 시험될 수 있다. 위 방법은, 또한 적어도 부분적으로,
에 있어서 J를 최소화하는 것에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하는 것을 포함할 수 있되,
D는 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡이고, 비트레이트 R은 상기 이득 값 및 오프셋 값과 연관되며, λ는 라그랑주 승수이되 Q는 변환 계수를 위해 사용되는 양자화수이고, c는 어림법에 의해 발견되고 중간 값으로서 0.7에서 설정된 상수이다. 상기 파티션 패턴은 사전결정된 파티션 패턴의 인덱스로부터 선택될 수 있는데, 상기 인덱스는 상이한 패턴과 각각 연관된 인덱스 번호들을 포함하고, 상기 인덱스 번호들 중 일부는 대응하는 패턴 내의 파티션의 개수를 나타내며, 일부 인덱스 번호는 파티션의 개수를 명시적으로 언급하지 않고 대응하는 패턴 내의 파티션의 크기를 나타낸다.
상기 파티션 패턴은 상기 픽셀들의 이미지 데이터 내의 크로마 값 및 루마 값들의 변환 코딩 및 양자화를 위해 형성된 파티션들을 위해 그리고 예측 블록들을 위해 형성된 임의의 파티션으로부터 별도로 선택된다. 상기 이득 값 및 오프셋 값은 인코더로부터의 송신을 위해, 그리고 상기 이득 값 및 오프셋 값의 송신을 사전결정된 개수의 비트로 유지하기 위해 고정된 개수의 구간을 갖는 사전결정된 인덱스를 사용함으로써 양자화되고, 실제 이득 또는 오프셋 값 대신에 양자화 인덱스 번호가 양자화된다. 인코더로부터 프레임을 위한 상기 이득 보상의 표시를 송신하기 위해 패턴 지시자, 각각의 파티션을 위한 이득 지시자 및 각각의 파티션을 위한 오프셋 지시자가 각각 7비트, 8비트 및 8비트로 제한되고, 상기 이득 보상을 재구성하기 위해 인코더로부터 오직 파라미터 인덱스 번호 및 양자화된 이득 값(들) 및 양자화된 오프셋 값(들)이 송신된다.
(A) 모멘트 방법을 사용하여
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값인
로서 계산되는 것과,
(B) 평균 제곱 오차 그래디언트 최소화 방법을 사용하여
로서 계산되는 것 중 적어도 하나이고,
오프셋 b는
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값이고, a는 두 대응하는 픽셀들 간의 이득 값인
로서 계산된다.
상기 그래픽 처리 유닛은 프레임의 개별 블록들의 평균화된 블록 픽셀 값들을 계산하고, 상이한 파티션들에 대한 이득 값 및 오프셋 값을 계산하기 위한 합들을 결정하기 위해 상이한 블록들의 블록 값들을 합산하도록 구성될 수 있고, 상기 블록들은 4 x 4 픽셀이며, 상기 평균화된 블록 픽셀 값들은 (1) 블록 내의 픽셀 밝기 값들의 평균과, (2) 블록 내의 픽셀 밝기의 제곱의 평균과, (3) 블록 내의, 그리고 상기 현재 프레임 및 참조 프레임 내의 대응하는 픽셀 밝기 값들의 (승산에 의한) 곱들의 평균 중 적어도 하나를 포함한다. 상기 파티션들은 예측 파티션들 및 코딩 파티션들과 무관하게 정의된 이득 파티션들이다.
다른 접근법에 의해, 적어도 하나의 컴퓨터 판독가능 메모리는, 컴퓨팅 디바이스에 의해 실행되는 경우 상기 컴퓨팅 디바이스로 하여금, 현재 프레임과 상기 현재 프레임을 위한 움직임 보상 참조 프레임으로서 사용할 디코딩된 참조 프레임을 갖는 픽셀 데이터의 프레임들을 획득하고, 프레임을 형성하기 위해 변동 개수의 또는 변동 배열의 또는 양자 모두인 파티션을 사용하는 패턴들 중에서, 각각의 파티션이 한 개보다 많은 픽셀들과 연관된 파티션 패턴을 선택하며, 개별 파티션에 대한 이득 값 및 오프셋 값을 제공하는 것에 의해 상기 참조 프레임에 대한 밝기 이득 보상 값을 결정하고, 다수의 이득 보상 값들이 단일 프레임을 위해 제공되고 프레임 내의 파티션의 위치에 의존하도록, 상기 이득 보상 값에 의해 조절되는 상기 참조 프레임의 파티션의 밝기를 조절함으로써 국부적으로 적응적인 이득 보상을 적용하게 하는 명령어를 포함한다.
또 다른 예에 의해, 위 명령어는 상기 컴퓨팅 디바이스로 하여금, 적어도 부분적으로는, 상기 파티션 내의 픽셀 값들의 평균에 기반하여 평균 이득 값 및 평균 오프셋 값을 갖는 각각의 파티션을 제공하게 한다. 상기 파티션 패턴은, 레이트 왜곡 최적화(Rate Distortion Optimization: RDO), 그리고 특정한 파티션을 사용하기 위한 비트 비용과 이미지의 품질을 밸런싱하는 방법 중 적어도 하나를 사용함으로써 선택될 수 있다. 또한 적어도 부분적으로는, 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡, 상기 이득 값 및 오프셋 값과 연관된 비트레이트, 그리고 변환 계수들을 위해 사용되는 양자화수에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하기 위해 다수의 파티션이 시험될 수 있다. 상기 명령어는 상기 컴퓨팅 디바이스로 하여금, 또한 적어도 부분적으로는,
에 있어서 J를 최소화하는 것에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하게 하되,
D는 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡이고, 비트레이트 R은 상기 이득 값 및 오프셋 값과 연관되며, λ는 라그랑주 승수이되 Q는 변환 계수를 위해 사용되는 양자화수이고, c는 어림법에 의해 발견되고 중간 값으로서 0.7에서 설정된 상수이다. 상기 파티션 패턴은 사전결정된 파티션 패턴의 인덱스로부터 선택될 수 있되, 상기 인덱스는 상이한 패턴과 각각 연관된 인덱스 번호들을 포함하고, 상기 인덱스 번호들 중 일부는 대응하는 패턴 내의 파티션의 개수를 나타내며, 일부 인덱스 번호는 파티션의 개수를 명시적으로 언급하지 않고 대응하는 패턴 내의 파티션의 크기를 나타낸다.
상기 파티션 패턴은 상기 픽셀들의 이미지 데이터 내의 크로마 값 및 루마 값들의 변환 코딩 및 양자화를 위해 형성된 파티션들을 위해 그리고 예측 블록들을 위해 형성된 임의의 파티션으로부터 별도로 선택된다. 상기 이득 값 및 오프셋 값은 인코더로부터의 송신을 위해, 그리고 상기 이득 값 및 오프셋 값의 송신을 사전결정된 개수의 비트로 유지하기 위해 고정된 개수의 구간을 갖는 사전결정된 인덱스를 사용함으로써 양자화되고, 실제 이득 또는 오프셋 값 대신에 양자화 인덱스 번호가 양자화된다. 인코더로부터 프레임을 위한 상기 이득 보상의 표시를 송신하기 위해 패턴 지시자, 각각의 파티션을 위한 이득 지시자 및 각각의 파티션을 위한 오프셋 지시자가 각각 7비트, 8비트 및 8비트로 제한되고, 상기 이득 보상을 재구성하기 위해 인코더로부터 오직 파라미터 인덱스 번호 및 양자화된 이득 값(들) 및 양자화된 오프셋 값(들)이 송신된다.
(A) 모멘트 방법을 사용하여
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값인
로서 계산되는 것과,
(B) 평균 제곱 오차 그래디언트 최소화 방법을 사용하여
로서 계산되는 것 중 적어도 하나이고,
오프셋 b는
로서 계산되되,
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값이고, a는 두 대응하는 픽셀들 간의 이득 값이다.
상기 명령어는 상기 컴퓨팅 디바이스로 하여금, 프레임의 개별 블록들의 평균화된 블록 픽셀 값들을 계산하고, 상이한 파티션들에 대한 이득 값 및 오프셋 값을 계산하기 위한 합들을 결정하기 위해 상이한 블록들의 블록 값들을 합산하게 하고, 상기 블록들은 4 x 4 픽셀이며, 상기 평균화된 블록 픽셀 값들은 (1) 블록 내의 픽셀 밝기 값들의 평균과, (2) 블록 내의 픽셀 밝기의 제곱의 평균과, (3) 블록 내의, 그리고 상기 현재 프레임 및 참조 프레임 내의 대응하는 픽셀 밝기 값들의 (승산에 의한) 곱들의 평균 중 적어도 하나를 포함한다. 상기 파티션들은 예측 파티션들 및 코딩 파티션들과 무관하게 정의된 이득 파티션들이다.
추가의 예에서, 적어도 하나의 머신 판독가능 매체는, 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 상기 컴퓨팅 디바이스로 하여금 위 예들 중 임의의 것에 따른 방법을 수행하게 하는 복수의 명령어를 포함할 수 있다.
또 다른 예에서, 장치는, 위 예들 중 임의의 것에 따른 방법을 수행하는 수단을 포함할 수 있다.
위 예들은 특징들의 특정 조합을 포함할 수 있다. 그러나, 그러한 위의 예들은 이에 관하여 한정되지 않고, 다양한 구현에서, 위 예들은 그러한 특징의 서브세트만을 시행하는 것, 그러한 특징의 상이한 순서를 시행하는 것, 그러한 특징의 상이한 조합을 시행하는 것 및/또는 명시적으로 열거된 특징보다 추가적인 특징을 시행하는 것을 포함할 수 있다. 예컨대, 예시적 방법에 관해 기술된 모든 특징은 예시적 장치, 예시적 시스템 및/또는 예시적 물품에 관해 구현될 수 있고, 반대의 경우도 마찬가지다.
Claims (29)
- 현재 프레임(current frame)과 상기 현재 프레임을 위한 움직임 보상 참조 프레임(motion compensation reference frame)으로서 사용할 디코딩된 참조 프레임을 갖는, 픽셀 데이터의 프레임들을 획득하는 단계와,
프레임을 형성하기 위해 변동 개수(varying number)의 또는 변동 배열(varying arrangement)의 또는 양자 모두인 파티션을 사용하는 패턴들 중에서, 각각의 파티션(partition)이 한 개보다 많은 픽셀과 연관된 파티션 패턴(partition pattern)을 선택하는 단계와,
개별 파티션에 대한 이득 값(gain value) 및 오프셋 값(offset value)을 제공하는 것에 의해 상기 참조 프레임에 대한 밝기 이득 보상 값을 결정하는 단계와,
다수의 이득 보상 값들이 단일 프레임을 위해 제공되고 프레임 내의 파티션의 위치에 의존하도록, 상기 이득 보상 값에 의해 조절되는 상기 참조 프레임의 파티션의 밝기를 조절함으로써 국부적으로 적응적인 이득 보상(locally adaptive gain compensation)을 적용하는 단계를 포함하는
컴퓨터로 구현된(computer-implemented) 비디오 코딩 방법.
- 제1항에 있어서,
각각의 파티션은, 적어도 부분적으로는, 상기 파티션 내의 픽셀 값들의 평균에 기반하여 평균 이득 값 및 평균 오프셋 값을 갖는
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
상기 파티션 패턴은
레이트 왜곡 최적화(Rate Distortion Optimization: RDO), 및
특정한 파티션을 사용하기 위한 비트 비용(bit cost)과 이미지의 품질을 밸런싱하는(balance) 방법
중 적어도 하나를 사용함으로써 선택되는
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
적어도 부분적으로는, 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡(distortion), 상기 이득 값 및 상기 오프셋 값과 연관된 비트레이트(bitrate), 및 변환 계수들을 위해 사용되는 양자화수(quantizer)에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스(best balance)를 초래하는지를 결정하기 위해 다수의 파티션이 시험되는
컴퓨터로 구현된 비디오 코딩 방법. - 제1항에 있어서,
적어도 부분적으로는,
에 있어서 J를 최소화하는 것에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하는 단계를 포함하되,
이고,
D는 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡이고, 비트레이트 R은 상기 이득 값 및 상기 오프셋 값과 연관되며, λ는 라그랑주 승수(lagrangian multiplier)이되 Q는 변환 계수를 위해 사용되는 양자화수이고, c는 어림법(heuristics)에 의해 발견되고 중간 값(middle value)으로서 0.7에서 설정된 상수인
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
상기 파티션 패턴은 사전결정된 파티션 패턴의 인덱스(index)로부터 선택되는
컴퓨터로 구현된 비디오 코딩 방법. - 제6항에 있어서,
상기 인덱스는 상이한 패턴과 각각 연관된 인덱스 번호들을 포함하고, 상기 인덱스 번호들 중 일부는 대응하는 패턴 내의 파티션의 개수를 나타내며, 일부 인덱스 번호는 파티션의 개수를 명시적으로 언급하지 않고 대응하는 패턴 내의 파티션의 크기를 나타내는
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
상기 파티션 패턴은 상기 픽셀들의 이미지 데이터 내의 크로마(chroma) 값 및 루마(luma) 값의 변환 코딩 및 양자화를 위해 형성된 파티션들을 위해, 그리고 예측 블록들을 위해 형성된 임의의 파티션으로부터 별도로 선택되는
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
상기 이득 값 및 상기 오프셋 값은 인코더(encoder)로부터의 송신을 위해, 그리고 상기 이득 값 및 상기 오프셋 값의 송신을 사전결정된 개수의 비트로 유지하기 위해 고정된 개수의 구간을 갖는 사전결정된 인덱스를 사용함으로써 양자화되는
컴퓨터로 구현된 비디오 코딩 방법.
- 제9항에 있어서,
실제 이득 값 또는 실제 오프셋 값 대신에 양자화 인덱스 번호가 양자화되는
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
인코더로부터 프레임을 위한 상기 이득 보상의 표시(indication)를 송신하기 위해 패턴 지시자(pattern indicator), 각각의 파티션을 위한 이득 지시자(gain indicator) 및 각각의 파티션을 위한 오프셋 지시자(offset indicator)가 각각 7비트, 8비트 및 8비트로 제한되는
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
상기 이득 보상을 재구성하기 위해 인코더로부터 오직 파라미터 인덱스 번호 및 양자화된 이득 값(들) 및 양자화된 오프셋 값(들)이 송신되는
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
상기 이득 보상이 적용된 후 움직임 보상을 계산하는 단계를 포함하는
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
프레임의 개별 블록들의 평균화된 블록 픽셀 값들을 계산하는 단계와,
상이한 파티션들에 대한 이득 값 및 오프셋 값을 계산하기 위한 합들을 결정하기 위해 상이한 블록들의 블록 값들을 합산하는 단계를 포함하는
컴퓨터로 구현된 비디오 코딩 방법.
- 제17항에 있어서,
상기 블록들은 4 x 4 픽셀인
컴퓨터로 구현된 비디오 코딩 방법.
- 제17항에 있어서,
상기 평균화된 블록 픽셀 값들은 (1) 블록 내의 픽셀 밝기 값들의 평균과, (2) 블록 내의 픽셀 밝기의 제곱의 평균과, (3) 블록 내의, 그리고 상기 현재 프레임 및 상기 참조 프레임 내의 대응하는 픽셀 밝기 값들의 (승산(multiplication)에 의한) 곱들의 평균 중 적어도 하나를 포함하는
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
상기 파티션들은 예측 파티션들 및 코딩 파티션들과 무관하게 정의된 이득 파티션들인
컴퓨터로 구현된 비디오 코딩 방법.
- 제1항에 있어서,
각각의 파티션은, 적어도 부분적으로는, 상기 파티션 내의 픽셀 값들의 평균에 기반하여 평균 이득 값 및 평균 오프셋 값을 갖고,
상기 파티션 패턴은
레이트 왜곡 최적화(Rate Distortion Optimization: RDO), 및
특정한 파티션을 사용하기 위한 비트 비용과 이미지의 품질을 밸런싱하는 방법
중 적어도 하나를 사용함으로써 선택되며,
적어도 부분적으로는, 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡, 상기 이득 값 및 상기 오프셋 값과 연관된 비트레이트, 및 변환 계수들을 위해 사용되는 양자화수에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하기 위해 다수의 파티션이 시험되고,
상기 방법은, 또한 적어도 부분적으로는,
에 있어서 J를 최소화하는 것에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하는 단계를 포함하되,
이고,
D는 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡이고, 비트레이트 R은 상기 이득 값 및 상기 오프셋 값과 연관되며, λ는 라그랑주 승수이되 Q는 변환 계수를 위해 사용되는 양자화수이고, c는 어림법에 의해 발견되고 중간 값으로서 0.7에서 설정된 상수이며,
상기 파티션 패턴은 사전결정된 파티션 패턴의 인덱스로부터 선택되고,
상기 인덱스는 상이한 패턴과 각각 연관된 인덱스 번호들을 포함하고, 상기 인덱스 번호들 중 일부는 대응하는 패턴 내의 파티션의 개수를 나타내며, 일부 인덱스 번호는 파티션의 개수를 명시적으로 언급하지 않고 대응하는 패턴 내의 파티션의 크기를 나타내고,
상기 파티션 패턴은 상기 픽셀들의 이미지 데이터 내의 크로마 값 및 루마 값의 변환 코딩 및 양자화를 위해 형성된 파티션들을 위해 그리고 예측 블록들을 위해 형성된 임의의 파티션으로부터 별도로 선택되며,
상기 이득 값 및 상기 오프셋 값은 인코더로부터의 송신을 위해, 그리고 상기 이득 값 및 상기 오프셋 값의 송신을 사전결정된 개수의 비트로 유지하기 위해 고정된 개수의 구간을 갖는 사전결정된 인덱스를 사용함으로써 양자화되고,
실제 이득 값 또는 실제 오프셋 값 대신에 양자화 인덱스 번호가 양자화되며,
인코더로부터 프레임을 위한 상기 이득 보상의 표시를 송신하기 위해 패턴 지시자, 각각의 파티션을 위한 이득 지시자 및 각각의 파티션을 위한 오프셋 지시자가 각각 7비트, 8비트 및 8비트로 제한되고,
상기 이득 보상을 재구성하기 위해 인코더로부터 오직 파라미터 인덱스 번호 및 양자화된 이득 값(들) 및 양자화된 오프셋 값(들)이 송신되며,
상기 방법은 상기 이득 보상이 적용된 후 움직임 보상을 계산하는 단계를 포함하되,
총 이득 보상은 이고, 이득 a는
(A) 모멘트 방법을 사용하여
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값인
로서 계산되는 것과,
(B) 평균 제곱 오차 그래디언트 최소화 방법을 사용하여
로서 계산되는 것 중 적어도 하나이고,
오프셋 b는
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값이고, a는 두 대응하는 픽셀들 간의 이득 값인
로서 계산되며,
상기 방법은 프레임의 개별 블록들의 평균화된 블록 픽셀 값들을 계산하는 단계와, 상이한 파티션들에 대한 이득 값 및 오프셋 값을 계산하기 위한 합들을 결정하기 위해 상이한 블록들의 블록 값들을 합산하는 단계를 포함하되,
상기 블록들은 4 x 4 픽셀이며,
상기 평균화된 블록 픽셀 값들은 (1) 블록 내의 픽셀 밝기 값들의 평균과, (2) 블록 내의 픽셀 밝기의 제곱의 평균과, (3) 블록 내의, 그리고 상기 현재 프레임 및 상기 참조 프레임 내의 대응하는 픽셀 밝기 값들의 (승산에 의한) 곱들의 평균 중 적어도 하나를 포함하고,
상기 파티션들은 예측 파티션들 및 코딩 파티션들과 무관하게 정의된 이득 파티션들인
컴퓨터로 구현된 비디오 코딩 방법.
- 밝기에서의 인터프레임(inter-frame) 변화의 보상을 수행하는 단계를 포함하되, 상기 단계는
각각의 세트가 프레임의 일부분을 위한 이득 값 및 오프셋 값을 포함하는 파라미터들의 다수의 세트들을 현재 프레임 및 참조 프레임의 픽셀들의 밝기를 사용함으로써 계산하는 단계와,
파라미터들의 상기 세트들과, 상기 프레임의 어느 부분이 어느 파라미터에 대응하는지의 표시를 디코더(decoder)에 송신하는 단계와,
원래의 참조 프레임보다 오차가 더 적은 수정된 참조 프레임을 형성하기 위해 상기 파라미터들을 사용하는 단계를 포함하는
컴퓨터로 구현된 비디오 코딩 방법.
- 이미지 버퍼(image buffer)와,
현재 프레임과 상기 현재 프레임을 위한 움직임 보상 참조 프레임으로서 사용할 디코딩된 참조 프레임을 갖는, 픽셀 데이터의 프레임들을 획득하고,
프레임을 형성하기 위해 변동 개수의 또는 변동 배열의 또는 양자 모두인 파티션을 사용하는 패턴들 중에서 각각의 파티션이 한 개보다 많은 픽셀들과 연관된 파티션 패턴을 선택하며,
개별 파티션에 대한 이득 값 및 오프셋 값을 제공하는 것에 의해 상기 참조 프레임에 대한 밝기 이득 보상 값을 결정하고,
다수의 이득 보상 값들이 단일 프레임을 위해 제공되고 프레임 내의 파티션의 위치에 의존하도록, 상기 이득 보상 값에 의해 조절되는 상기 참조 프레임의 파티션의 밝기를 조절함으로써 국부적으로 적응적인 이득 보상을 적용하게 구성된 그래픽 처리 유닛(graphics processing unit)을 포함하는
코더.
- 제23항에 있어서,
각각의 파티션은, 적어도 부분적으로는, 상기 파티션 내의 픽셀 값들의 평균에 기반하여 평균 이득 값 및 평균 오프셋 값을 갖고,
상기 파티션 패턴은
레이트 왜곡 최적화(Rate Distortion Optimization: RDO), 및
특정한 파티션을 사용하기 위한 비트 비용과 이미지의 품질을 밸런싱하는 방법
중 적어도 하나를 사용함으로써 선택되며,
적어도 부분적으로는, 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡, 상기 이득 값 및 상기 오프셋 값과 연관된 비트레이트, 및 변환 계수들을 위해 사용되는 양자화수에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하기 위해 다수의 파티션이 시험되고,
상기 그래픽 처리 유닛은, 적어도 부분적으로,
에 있어서 J를 최소화하는 것에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하도록 구성되되,
이고,
D는 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡이고, 비트레이트 R은 상기 이득 값 및 상기 오프셋 값과 연관되며, λ는 라그랑주 승수이되 Q는 변환 계수를 위해 사용되는 양자화수이고, c는 어림법에 의해 발견되고 중간 값으로서 0.7에서 설정된 상수이며,
상기 파티션 패턴은 사전결정된 파티션 패턴의 인덱스로부터 선택되고,
상기 인덱스는 상이한 패턴과 각각 연관된 인덱스 번호들을 포함하고, 상기 인덱스 번호들 중 일부는 대응하는 패턴 내의 파티션의 개수를 나타내며, 일부 인덱스 번호는 파티션의 개수를 명시적으로 언급하지 않고 대응하는 패턴 내의 파티션의 크기를 나타내고,
상기 파티션 패턴은 상기 픽셀들의 이미지 데이터 내의 크로마 값 및 루마 값의 변환 코딩 및 양자화를 위해 형성된 파티션들을 위해, 예측 블록들을 위해 형성된 임의의 파티션으로부터 별도로 선택되며,
상기 이득 값 및 상기 오프셋 값은 인코더로부터의 송신을 위해, 그리고 상기 이득 값 및 상기 오프셋 값의 송신을 사전결정된 개수의 비트로 유지하기 위해 고정된 개수의 구간을 갖는 사전결정된 인덱스를 사용함으로써 양자화되고,
실제 이득 값 또는 실제 오프셋 값 대신에 양자화 인덱스 번호가 양자화되며,
인코더로부터 프레임을 위한 상기 이득 보상의 표시를 송신하기 위해 패턴 지시자, 각각의 파티션을 위한 이득 지시자 및 각각의 파티션을 위한 오프셋 지시자가 각각 7비트, 8비트 및 8비트로 제한되고,
상기 이득 보상을 재구성하기 위해 인코더로부터 오직 파라미터 인덱스 번호 및 양자화된 이득 값(들) 및 양자화된 오프셋 값(들)이 송신되며,
상기 그래픽 처리 유닛은 상기 이득 보상이 적용된 후 움직임 보상을 계산하도록 구성되되,
총 이득 보상은 이고, 이득 a는
(A) 모멘트 방법을 사용하여
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값인
로서 계산되는 것과,
(B) 평균 제곱 오차 그래디언트 최소화 방법을 사용하여
로서 계산되는 것 중 적어도 하나이고,
오프셋 b는
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값이고, a는 두 대응하는 픽셀들 간의 이득 값인
로서 계산되며,
상기 그래픽 처리 유닛은 프레임의 개별 블록들의 평균화된 블록 픽셀 값들을 계산하고, 상이한 파티션들에 대한 이득 값 및 오프셋 값을 계산하기 위한 합들을 결정하기 위해 상이한 블록들의 블록 값들을 합산하도록 구성되되,
상기 블록들은 4 x 4 픽셀이며,
상기 평균화된 블록 픽셀 값들은 (1) 블록 내의 픽셀 밝기 값들의 평균과, (2) 블록 내의 픽셀 밝기의 제곱의 평균과, (3) 블록 내의, 그리고 상기 현재 프레임 및 상기 참조 프레임 내의 대응하는 픽셀 밝기 값들의 (승산에 의한) 곱들의 평균 중 적어도 하나를 포함하고,
상기 파티션들은 예측 파티션들 및 코딩 파티션들과 무관하게 정의된 이득 파티션들인
코더.
- 컴퓨팅 디바이스에 의해 실행되는 경우 상기 컴퓨팅 디바이스로 하여금,
현재 프레임과 상기 현재 프레임을 위한 움직임 보상 참조 프레임으로서 사용할 디코딩된 참조 프레임을 갖는 픽셀 데이터의 프레임들을 획득하고,
프레임을 형성하기 위해 변동 개수의 또는 변동 배열의 또는 양자 모두인 파티션을 사용하는 패턴들 중에서 각각의 파티션이 한 개보다 많은 픽셀들과 연관된 파티션 패턴을 선택하며,
개별 파티션에 대한 이득 값 및 오프셋 값을 제공하는 것에 의해 상기 참조 프레임에 대한 밝기 이득 보상 값을 결정하고,
다수의 이득 보상 값들이 단일 프레임을 위해 제공되고 프레임 내의 파티션의 위치에 의존하도록, 상기 이득 보상 값에 의해 조절되는 상기 참조 프레임의 파티션의 밝기를 조절함으로써 국부적으로 적응적인 이득 보상을 적용하게 하는 명령어를 포함하는
적어도 하나의 컴퓨터 판독가능 메모리.
- 제25항에 있어서,
각각의 파티션은, 적어도 부분적으로는, 상기 파티션 내의 픽셀 값들의 평균에 기반하여 평균 이득 값 및 평균 오프셋 값을 갖고,
상기 파티션 패턴은
레이트 왜곡 최적화(Rate Distortion Optimization: RDO), 및
특정한 파티션을 사용하기 위한 비트 비용과 이미지의 품질을 밸런싱하는 방법
중 적어도 하나를 사용함으로써 선택되며,
적어도 부분적으로는, 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡, 상기 이득 값 및 상기 오프셋 값과 연관된 비트레이트, 및 변환 계수들을 위해 사용되는 양자화수에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하기 위해 다수의 파티션이 시험되고,
상기 명령어는 상기 컴퓨팅 디바이스로 하여금, 적어도 부분적으로는,
에 있어서 J를 최소화하는 것에 기반하여, 어느 파티션이 품질 및 비트 비용의 최선의 밸런스를 초래하는지를 결정하게 하되,
이고,
D는 상기 현재 프레임 상의 파티션 및 상기 참조 프레임 상의 대응하는 파티션 간의 왜곡이고, 비트레이트 R은 상기 이득 값 및 상기 오프셋 값과 연관되며, λ는 라그랑주 승수이되 Q는 변환 계수를 위해 사용되는 양자화수이고, c는 어림법에 의해 발견되고 중간 값으로서 0.7에서 설정된 상수이며,
상기 파티션 패턴은 사전결정된 파티션 패턴의 인덱스로부터 선택되고,
상기 인덱스는 상이한 패턴과 각각 연관된 인덱스 번호들을 포함하고, 상기 인덱스 번호들 중 일부는 대응하는 패턴 내의 파티션의 개수를 나타내며, 일부 인덱스 번호는 파티션의 개수를 명시적으로 언급하지 않고 대응하는 패턴 내의 파티션의 크기를 나타내고,
상기 파티션 패턴은 상기 픽셀들의 이미지 데이터 내의 크로마 값 및 루마 값의 변환 코딩 및 양자화를 위해 형성된 파티션들을 위해 그리고 예측 블록들을 위해 형성된 임의의 파티션으로부터 별도로 선택되며,
상기 이득 값 및 상기 오프셋 값은 인코더로부터의 송신을 위해, 그리고 상기 이득 값 및 상기 오프셋 값의 송신을 사전결정된 개수의 비트로 유지하기 위해 고정된 개수의 구간을 갖는 사전결정된 인덱스를 사용함으로써 양자화되고,
실제 이득 값 또는 실제 오프셋 값 대신에 양자화 인덱스 번호가 양자화되며,
인코더로부터 프레임을 위한 상기 이득 보상의 표시를 송신하기 위해 패턴 지시자, 각각의 파티션을 위한 이득 지시자 및 각각의 파티션을 위한 오프셋 지시자가 각각 7비트, 8비트 및 8비트로 제한되고,
상기 이득 보상을 재구성하기 위해 인코더로부터 오직 파라미터 인덱스 번호 및 양자화된 이득 값(들) 및 양자화된 오프셋 값(들)이 송신되며,
상기 명령어는 상기 컴퓨팅 디바이스로 하여금 상기 이득 보상이 적용된 후 움직임 보상을 계산하게 하되,
총 이득 보상은 이고, 이득 a는
(A) 모멘트 방법을 사용하여
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값인
로서 계산되는 것과,
(B) 평균 제곱 오차 그래디언트 최소화 방법을 사용하여
로서 계산되는 것 중 적어도 하나이고,
오프셋 b는
로서 계산되되,
E는 기대치 연산자, St는 현재 프레임 t의 픽셀 (i,j)의 밝기 값, St-1은 현재 프레임을 위한 참조 프레임으로서 사용되도록 선택된 참조 프레임 t-k의 대응하는 픽셀 (i,j)의 밝기 값이고, a는 두 대응하는 픽셀들 간의 이득 값이며,
상기 명령어는 상기 컴퓨팅 디바이스로 하여금, 프레임의 개별 블록들의 평균화된 블록 픽셀 값들을 계산하고, 상이한 파티션들에 대한 이득 값 및 오프셋 값을 계산하기 위한 합들을 결정하기 위해 상이한 블록들의 블록 값들을 합산하게 하되,
상기 블록들은 4 x 4 픽셀이며,
상기 평균화된 블록 픽셀 값들은 (1) 블록 내의 픽셀 밝기 값들의 평균과, (2) 블록 내의 픽셀 밝기의 제곱의 평균과, (3) 블록 내의, 그리고 상기 현재 프레임 및 참조 프레임 내의 대응하는 픽셀 밝기 값들의 (승산에 의한) 곱들의 평균 중 적어도 하나를 포함하고,
상기 파티션들은 예측 파티션들 및 코딩 파티션들과 무관하게 정의된 이득 파티션들인
컴퓨터 판독가능 매체.
- 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여 상기 컴퓨팅 디바이스로 하여금 제1항 내지 제21항 중 어느 한 항에 따른 방법을 수행하게 하는 복수의 명령어를 포함하는
적어도 하나의 머신 판독가능 매체.
- 제1항 내지 제21항 중 어느 한 항에 따른 방법을 수행하는 수단을 포함하는
장치.
- 제1항 내지 제21항 중 어느 한 항에 있어서,
상기 현재 프레임은, 과거 프레임(past frame), 장래 프레임(future frame) 또는 양자 모두를 참조로서 사용하는 옵션(option)을 제공하고 모핑(morphing) 또는 합성(synthesis)에 의해 수정된 것인 수정된 참조 프레임을 사용하는 옵션을 제공하는 F-픽처(F-picture)이되 이득 보상은 하나 또는 복수의 모핑 옵션인
방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
USPCT/US2013/078114 | 2013-12-27 | ||
PCT/US2013/078114 WO2014120374A1 (en) | 2013-01-30 | 2013-12-27 | Content adaptive predictive and functionally predictive pictures with modified references for next generation video coding |
PCT/US2014/018077 WO2015099814A1 (en) | 2013-01-30 | 2014-02-24 | Content adaptive gain compensated prediction for next generation video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160077166A true KR20160077166A (ko) | 2016-07-01 |
KR101789954B1 KR101789954B1 (ko) | 2017-10-25 |
Family
ID=54198733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167014066A KR101789954B1 (ko) | 2013-12-27 | 2014-02-24 | 차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측 |
Country Status (4)
Country | Link |
---|---|
EP (2) | EP3087745A4 (ko) |
KR (1) | KR101789954B1 (ko) |
CN (1) | CN105850133B (ko) |
TW (1) | TWI583179B (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018169267A1 (ko) * | 2017-03-13 | 2018-09-20 | 에스케이텔레콤 주식회사 | 영상 부호화 또는 복호화하기 위한 장치 및 방법 |
CN112997499A (zh) * | 2018-09-14 | 2021-06-18 | 皇家Kpn公司 | 基于经全局运动补偿的运动矢量预测值的视频编码 |
US20210304703A1 (en) * | 2020-03-31 | 2021-09-30 | Apple Inc. | Peak luminance control to enable higher display brightness |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX2018003688A (es) | 2015-09-25 | 2018-08-01 | Huawei Tech Co Ltd | Aparato y metodo para compensacion de movimiento de video. |
US20190045213A1 (en) * | 2017-08-03 | 2019-02-07 | Intel Corporation | Reference frame reprojection for improved video coding |
US11889100B2 (en) * | 2017-11-14 | 2024-01-30 | Qualcomm Incorporated | Affine motion vector prediction in video coding |
US10681374B2 (en) * | 2017-11-16 | 2020-06-09 | Google Llc | Diversified motion using multiple global motion models |
CN109819253B (zh) * | 2017-11-21 | 2022-04-22 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、计算机设备和存储介质 |
KR102549936B1 (ko) * | 2018-03-29 | 2023-07-03 | 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 | 패딩을 위한 화면내-예측 모드 선택을 위한 장치 |
KR20210049822A (ko) * | 2018-09-07 | 2021-05-06 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | 비디오 코딩 시스템 및 방법 |
WO2020053329A1 (en) * | 2018-09-14 | 2020-03-19 | Koninklijke Kpn N.V. | Video coding based on global motion compensated motion vectors |
GB2579763B (en) | 2018-09-21 | 2021-06-09 | Canon Kk | Video coding and decoding |
GB2577318B (en) * | 2018-09-21 | 2021-03-10 | Canon Kk | Video coding and decoding |
EP3861746A1 (en) * | 2018-10-04 | 2021-08-11 | InterDigital VC Holdings, Inc. | Block size based motion vector coding in affine mode |
GB2578150C (en) | 2018-10-18 | 2022-05-18 | Canon Kk | Video coding and decoding |
GB2578151B (en) | 2018-10-18 | 2021-06-09 | Canon Kk | Video coding and decoding |
WO2020084470A1 (en) * | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Storage of motion parameters with clipping for affine mode |
WO2020098644A1 (en) * | 2018-11-12 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Bandwidth control methods for inter prediction |
CN109640081B (zh) * | 2019-02-14 | 2023-07-14 | 深圳市网心科技有限公司 | 一种帧内预测方法、编码器、电子设备及可读存储介质 |
KR20210152567A (ko) * | 2019-04-25 | 2021-12-15 | 오피 솔루션즈, 엘엘씨 | 픽처 헤더 내의 글로벌 모션 벡터의 시그널링 |
WO2020228835A1 (en) * | 2019-05-16 | 2020-11-19 | Beijing Bytedance Network Technology Co., Ltd. | Adaptive color-format conversion in video coding |
US11580621B2 (en) | 2019-12-06 | 2023-02-14 | Mediatek Inc. | AI frame engine for mobile edge |
CN111726555B (zh) * | 2020-06-04 | 2021-11-23 | 上海顺久电子科技有限公司 | 一种显示设备及运动估计方法、视频处理方法 |
CN112312131B (zh) * | 2020-12-31 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 一种帧间预测方法、装置、设备及计算机可读存储介质 |
CN115002482B (zh) * | 2022-04-27 | 2024-04-16 | 电子科技大学 | 使用结构性保持运动估计的端到端视频压缩方法及系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0697788A3 (en) * | 1994-08-19 | 1997-03-26 | Eastman Kodak Co | Adaptive and global motion compensated cancellation of the interlacing of successive video images with post-processing |
US6643387B1 (en) * | 1999-01-28 | 2003-11-04 | Sarnoff Corporation | Apparatus and method for context-based indexing and retrieval of image sequences |
US20030123738A1 (en) * | 2001-11-30 | 2003-07-03 | Per Frojdh | Global motion compensation for video pictures |
JP2004088722A (ja) * | 2002-03-04 | 2004-03-18 | Matsushita Electric Ind Co Ltd | 動画像符号化方法および動画像復号化方法 |
US20040001546A1 (en) * | 2002-06-03 | 2004-01-01 | Alexandros Tourapis | Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation |
HUP0301368A3 (en) * | 2003-05-20 | 2005-09-28 | Amt Advanced Multimedia Techno | Method and equipment for compressing motion picture data |
US7558320B2 (en) * | 2003-06-13 | 2009-07-07 | Microsoft Corporation | Quality control in frame interpolation with motion analysis |
JP2005223631A (ja) * | 2004-02-05 | 2005-08-18 | Sony Corp | データ処理装置およびその方法と符号化装置および復号装置 |
EP1675402A1 (en) * | 2004-12-22 | 2006-06-28 | Thomson Licensing | Optimisation of a quantisation matrix for image and video coding |
US8340185B2 (en) * | 2006-06-27 | 2012-12-25 | Marvell World Trade Ltd. | Systems and methods for a motion compensated picture rate converter |
JP5263967B2 (ja) * | 2009-06-10 | 2013-08-14 | Necカシオモバイルコミュニケーションズ株式会社 | 動画ストリーム処理装置及び動画ストリーム処理プログラム |
US20120127003A1 (en) * | 2009-08-06 | 2012-05-24 | Youji Shibahara | Coding method, decoding method, coding apparatus, and decoding apparatus |
US8837592B2 (en) * | 2010-04-14 | 2014-09-16 | Mediatek Inc. | Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus |
WO2012092787A1 (en) * | 2011-01-09 | 2012-07-12 | Mediatek Inc. | Apparatus and method of efficient sample adaptive offset |
US9602819B2 (en) * | 2011-01-31 | 2017-03-21 | Apple Inc. | Display quality in a variable resolution video coder/decoder system |
-
2014
- 2014-02-24 KR KR1020167014066A patent/KR101789954B1/ko active IP Right Grant
- 2014-03-12 EP EP14873838.8A patent/EP3087745A4/en not_active Withdrawn
- 2014-03-12 CN CN201480070427.7A patent/CN105850133B/zh not_active Expired - Fee Related
- 2014-04-14 EP EP14874767.8A patent/EP3087744B1/en active Active
- 2014-11-27 TW TW103141224A patent/TWI583179B/zh not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018169267A1 (ko) * | 2017-03-13 | 2018-09-20 | 에스케이텔레콤 주식회사 | 영상 부호화 또는 복호화하기 위한 장치 및 방법 |
CN112997499A (zh) * | 2018-09-14 | 2021-06-18 | 皇家Kpn公司 | 基于经全局运动补偿的运动矢量预测值的视频编码 |
US20210304703A1 (en) * | 2020-03-31 | 2021-09-30 | Apple Inc. | Peak luminance control to enable higher display brightness |
US11756505B2 (en) * | 2020-03-31 | 2023-09-12 | Apple Inc. | Peak luminance control to enable higher display brightness |
Also Published As
Publication number | Publication date |
---|---|
TW201528777A (zh) | 2015-07-16 |
CN105850133A (zh) | 2016-08-10 |
EP3087745A4 (en) | 2017-06-28 |
TWI583179B (zh) | 2017-05-11 |
KR101789954B1 (ko) | 2017-10-25 |
EP3087744A4 (en) | 2017-07-05 |
EP3087744B1 (en) | 2020-12-02 |
CN105850133B (zh) | 2020-09-01 |
EP3087745A1 (en) | 2016-11-02 |
EP3087744A1 (en) | 2016-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101789954B1 (ko) | 차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측 | |
US9973757B2 (en) | Content adaptive predictive and functionally predictive pictures with modified references for next generation video coding | |
US9894372B2 (en) | Content adaptive super resolution prediction generation for next generation video coding | |
US9883198B2 (en) | Video codec architecture for next generation video |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |