KR20130030300A - 사이즈 및 인트라 모드에 기초한 또는 에지 검출에 기초한 인트라 블록들 코딩을 위한 적응적 주파수 변환들 - Google Patents

사이즈 및 인트라 모드에 기초한 또는 에지 검출에 기초한 인트라 블록들 코딩을 위한 적응적 주파수 변환들 Download PDF

Info

Publication number
KR20130030300A
KR20130030300A KR20137003485A KR20137003485A KR20130030300A KR 20130030300 A KR20130030300 A KR 20130030300A KR 20137003485 A KR20137003485 A KR 20137003485A KR 20137003485 A KR20137003485 A KR 20137003485A KR 20130030300 A KR20130030300 A KR 20130030300A
Authority
KR
South Korea
Prior art keywords
block
prediction mode
intra prediction
edge
sub
Prior art date
Application number
KR20137003485A
Other languages
English (en)
Other versions
KR101469394B1 (ko
Inventor
마르타 카르체비츠
무하메드 제이드 코반
페이송 천
샤오-창 추앙
라잔 렉스맨 조쉬
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20130030300A publication Critical patent/KR20130030300A/ko
Application granted granted Critical
Publication of KR101469394B1 publication Critical patent/KR101469394B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection 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/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Abstract

제 1 일 예에서, 장치는 인트라 예측 모드를 선택하고, 블록이 서브 블록의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브 블록을 포함하는지 여부를 결정하고, 다수의 가능한 변환들 중 하나를 선택하여 서브 블록을 변환하며, 선택된 변환의 표시를 제공하도록 구성된다. 제 2 예에서, 장치는 인트라 예측 인코딩될 블록이 블록 내에 에지를 포함한다는 것을 결정하고, 에지 기반 인트라 예측 모드를 선택하고, 에지의 각도에 근사한 각도를 갖는 방향성 인트라 예측 모드로부터 맵핑된 방향성 변환을 사용하여 잔여 블록을 변환하며, 블록이 DC 인트라 예측 모드를 사용하여 예측되었다는 것을 나타내는 정보를 출력하도록 구성된다.

Description

사이즈 및 인트라 모드에 기초한 또는 에지 검출에 기초한 인트라 블록들 코딩을 위한 적응적 주파수 변환들{ADAPTING FREQUENCY TRANSFORMS FOR INTRA BLOCKS CODING BASED ON SIZE AND INTRA MODE OR BASED ON EDGE DETECTION}
본 개시물은 비디오 코딩에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대정보 단말기들 (PDAs), 랩탑 또는 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 원격화상회의 디바이스들, 및 기타 등등을 포함한 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 디지털 비디오 정보를 보다 효율적으로 송신 및 수신하기 위해서 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, AVC (Advanced Video Coding), 향후 HEVC (High Efficiency Video Coding) 표준 (또한, H.265 로도 지칭됨), 및 이러한 표준들의 확장들에 의해 정의되는 표준들에서 설명되는 비디오 압축 기법들과 같은 비디오 압축 기법들을 구현한다.
비디오 압축 기법들은 비디오 시퀀스들에 고유한 리던던시를 감소시키거나 또는 제거하기 위해 공간 예측 및/또는 시간 예측을 수행한다. 블록-기반의 비디오 코딩에 있어, 비디오 프레임 또는 슬라이스는 매크로블록들로 파티셔닝될 수도 있다. 각각의 매크로블록은 더 파티셔닝될 수도 있다. 인트라-코딩된 (I) 프레임 또는 슬라이스에서 매크로블록들은 이웃하는 매크로블록들에 대한 공간 예측을 이용하여 인코딩된다. 인터-코딩된 (P 또는 B) 프레임 또는 슬라이스에서 매크로블록들은 동일한 프레임 또는 슬라이스에서 이웃하는 매크로블록들에 대한 공간 예측, 또는 다른 참조 프레임들에 대한 시간 예측을 이용할 수도 있다.
일반적으로, 본 개시물은 비디오 데이터를 코딩하는 기법들을 설명한다. 본 개시물은 비디오 코딩 프로세스 동안 잔여 비디오 데이터를 변환하고 변환 계수들을 스캔하는 기법들을 설명한다. 일반적으로, 코딩되는 픽처 블록들은 인트라-모드 인코딩되거나 (예컨대, 동일한 픽처의 다른 블록들에 대해 인코딩되거나) 또는 인터-모드 인코딩될 수도 있다 (예컨대, 이전에 코딩된 픽처의 블록들에 대해 인코딩될 수도 있다). 어느 경우에나, 비디오 인코더는 예측 데이터 및 잔여 데이터를 형성한다. 비디오 인코더는 잔여 값을, 이산 사인 변환들, 이산 코사인 변환들, 방향 변환들 및/또는 회전 변환들과 같은 하나 이상의 여러 변환들을 이용하여 변환할 수도 있다. 비디오 인코더는 예를 들어, 블록을 인트라-모드 인코딩할 때에 사용되는 예측 방향과 같은 어떤 기준들에 기초하여, 적용할 하나 이상의 변환들을 선택하도록 구성될 수도 있다.
비디오 인코더는 비디오 데이터의 블록에 대한 잔여 데이터를 변환함으로써 변환 계수들을 계산할 수도 있으며, 여기서 잔여 데이터는 오리지널 블록과 예측된 블록 사이의 픽셀 차이 값들에 대응한다. 변환 계수들은 변환된 블록과 (계수들의 개수의 관점에서) 동일한 사이즈를 갖는 2 차원 매트릭스에 대응할 수도 있다. 비디오 인코더는 변환 계수들을 스캔하여 2 차원 매트릭스를 1 차원 어레이로 변환함으로써, 변환 계수들을 직렬화할 수도 있다. 본 개시물의 기법들에 따르면, 비디오 인코더는 그 블록을 변환하는데 사용되는 변환(들) 에 기초하여 선택되는 미리 결정된 스캔 패턴을 적용할 수도 있다. 일부 예들에서, 본 개시물의 기법들에 따르면, 비디오 인코더는 미리 결정된 스캔 패턴보다는, 적응적 스캔 패턴을 적용할 수도 있으며, 여기서 비디오 인코더는 적응적 스캔 패턴을 주기적으로 업데이트할 수도 있다. 일부 예들에서, 스캔 패턴은 변환(들) 및/또는 블록을 예측하는데 사용되는 인트라 예측 모드에 기초할 수도 있다.
일 예에서, 비디오 데이터를 인코딩하는 방법은 인트라 예측 모드를 이용하여 형성된 예측된 블록에 기초하여 비디오 데이터의 블록에 대한 잔여 블록을 계산하는 단계, 및 인트라 예측 모드로부터 맵핑되는 변환을 이용하여 잔여 블록을 변환하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치로서, 본 장치는 인트라 예측 모드를 이용하여 형성된 예측된 블록에 기초하여 비디오 데이터의 블록에 대한 잔여 블록을 계산하고, 인트라 예측 모드로부터 맵핑되는 변환을 이용하여 잔여 블록을 변환하도록 구성된 비디오 인코더를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 인트라 예측 모드를 이용하여 형성된 예측된 블록에 기초하여 비디오 데이터의 블록에 대한 잔여 블록을 계산하는 수단, 및 인트라 예측 모드로부터 맵핑되는 변환을 이용하여 잔여 블록을 변환하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 인코딩하는 디바이스의 프로세서로 하여금, 인트라 예측 모드를 이용하여 형성되는 예측된 블록에 기초하여 비디오 데이터의 블록에 대한 잔여 블록을 계산하고, 인트라 예측 모드로부터 맵핑되는 변환을 이용하여 잔여 블록을 변환하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 저장 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 방법은 비디오 데이터의 블록을 예측하는데 사용되는 인트라 예측 모드를 결정하는 단계, 및 인트라 예측 모드로부터 맵핑되는 역변환을 이용하여 그 블록의 변환된 잔여 데이터를 역변환하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 비디오 데이터의 블록을 예측하는데 사용되는 인트라 예측 모드를 결정하고, 인트라 예측 모드로부터 맵핑되는 역변환을 이용하여 그 블록의 변환된 잔여 데이터를 역변환하도록 구성된 비디오 디코더를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 비디오 데이터의 블록을 예측하는데 사용되는 인트라 예측 모드를 결정하는 수단, 및 인트라 예측 모드로부터 맵핑되는 역변환을 이용하여 그 블록의 변환된 잔여 데이터를 역변환하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 디코딩하는 디바이스의 프로세서로 하여금 비디오 데이터의 블록을 예측하는데 사용되는 인트라 예측 모드를 결정하고, 인트라 예측 모드로부터 맵핑되는 역변환을 이용하여 그 블록의 변환된 잔여 데이터를 역변환하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 저장 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 방법은 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시 (indication) 를 수신하는 단계, 인트라 예측 모드들의 제 2 세트로부터, 인트라 예측 모드들의 제 1 세트보다 더 작고 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하는 단계, 제 2 인트라 예측 모드가 맵핑되는 방향 변환을 결정하는 단계, 및 블록의 잔여 데이터에 방향 변환을 적용하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하고, 인트라 예측 모드들의 제 2 세트로부터, 인트라 예측 모드들의 제 1 세트보다 더 작고 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하고, 제 2 인트라 예측 모드가 맵핑되는 방향 변환을 결정하고, 그리고 방향 변환을 블록의 잔여 데이터에 적용하도록 구성된 비디오 인코더를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하는 수단, 인트라 예측 모드들의 제 2 세트로부터, 인트라 예측 모드들의 제 1 세트보다 더 작고 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하는 수단, 제 2 인트라 예측 모드가 맵핑되는 방향 변환을 결정하는 수단, 및 방향 변환을 블록의 잔여 데이터에 적용하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 인코딩하는 디바이스의 프로세서로 하여금, 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하고, 인트라 예측 모드들의 제 2 세트로부터, 인트라 예측 모드들의 제 1 세트보다 더 작고 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하고, 제 2 인트라 예측 모드가 맵핑되는 방향 변환을 결정하고, 그리고 방향 변환을 블록의 잔여 데이터에 적용하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 방법은 인코딩된 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하는 단계, 인트라 예측 모드들의 제 2 세트로부터, 인트라 예측 모드들의 제 1 세트보다 더 작고 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하는 단계, 제 2 인트라 예측 모드가 맵핑되는 역 방향 변환을 결정하는 단계, 및 역 방향 변환을 그 블록의 변환된 잔여 데이터에 적용하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 인코딩된 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하고, 인트라 예측 모드들의 제 2 세트로부터, 인트라 예측 모드들의 제 1 세트보다 더 작고 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하고, 제 2 인트라 예측 모드가 맵핑되는 역 방향 변환을 결정하고, 그리고 역 방향 변환을 그 블록의 변환된 잔여 데이터에 적용하도록 구성된 비디오 디코더를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 인코딩된 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하는 수단, 인트라 예측 모드들의 제 2 세트로부터, 인트라 예측 모드들의 제 1 세트보다 더 작고 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하는 수단, 제 2 인트라 예측 모드가 맵핑되는 역 방향 변환을 결정하는 수단, 및 역 방향 변환을 그 블록의 변환된 잔여 데이터에 적용하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 디코딩하는 디바이스의 프로세서로 하여금 인코딩된 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하고, 인트라 예측 모드들의 제 2 세트로부터, 인트라 예측 모드들의 제 1 세트보다 더 작고 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하고, 제 2 인트라 예측 모드가 맵핑되는 역 방향 변환을 결정하고, 그리고 역 방향 변환을 그 블록의 변환된 잔여 데이터에 적용하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 방법은 비디오 데이터의 블록을 인코딩하는데 사용할 인트라 예측 모드를 선택하는 단계, 및 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하는 단계를 포함한다. 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 본 방법은 다수의 가능한 변환들 중 하나를 선택하는 단계, 다수의 가능한 변환들 중 선택된 하나를 이용하여 서브-블록들을 변환하는 단계, 및 블록의 사이즈에 대해 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 비디오 데이터의 블록을 인코딩하는데 사용할 인트라 예측 모드를 선택하고, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하고, 다수의 가능한 변환들 중 하나를 선택하고, 다수의 가능한 변환들 중 선택된 하나를 이용하여 그 서브-블록들을 변환하고, 그리고 블록의 사이즈에 대해 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하도록 구성된 비디오 인코더를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 비디오 데이터의 블록을 인코딩하는데 사용할 인트라 예측 모드를 선택하는 수단, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하는 수단, 다수의 가능한 변환들 중 하나를 선택하는 수단, 다수의 가능한 변환들 중 선택된 하나를 이용하여 서브-블록들을 변환하는 수단, 및 블록의 사이즈에 대해 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 인코딩하는 디바이스의 프로세서로 하여금, 비디오 데이터의 블록을 인코딩하는데 사용할 인트라 예측 모드를 선택하고, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하고, 다수의 가능한 변환들 중 하나를 선택하고, 다수의 가능한 변환들 중 선택된 하나를 이용하여 그 서브-블록들을 변환하고, 그리고 블록의 사이즈에 대해 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 방법은 비디오 데이터의 블록을 디코딩하는데 사용할 인트라 예측 모드의 제 1 표시를 수신하는 단계, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 역변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하는 단계, 다수의 가능한 역변환들 중 하나의 제 2 표시를 수신하는 단계, 및 다수의 가능한 역변환들 중 나타낸 하나를 이용하여 그 서브-블록들을 역변환하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 비디오 데이터의 블록을 디코딩하는데 사용할 인트라 예측 모드의 제 1 표시를 수신하고, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 역변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하고, 다수의 가능한 역변환들 중 하나의 제 2 표시를 수신하고, 그리고 다수의 가능한 역변환들 중 그 나타낸 하나를 이용하여 그 서브-블록들을 역변환하도록 구성된 비디오 디코더를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 비디오 데이터의 블록을 디코딩하는데 사용할 인트라 예측 모드의 제 1 표시를 수신하는 수단, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 역변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하는 수단, 다수의 가능한 역변환들 중 하나의 제 2 표시를 수신하는 수단, 및 다수의 가능한 역변환들 중 그 나타낸 하나를 이용하여 그 서브-블록들을 역변환하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 디코딩하는 디바이스의 프로세서로 하여금, 비디오 데이터의 블록을 디코딩하는데 사용할 인트라 예측 모드의 제 1 표시를 수신하고, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 역변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하고, 다수의 가능한 역변환들 중 하나의 제 2 표시를 수신하고, 그리고 다수의 가능한 역변환들 중 그 나타낸 하나를 이용하여 그 서브-블록들을 역변환하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 방법은 변환 계수들의 1 차원 벡터를 생성하기 위해 변환 계수들의 2 차원 블록을 스캔하는 단계, 1 차원 벡터에서 변환 계수들이 유효한지 여부를 나타내는 값들을 결정하는 단계, 및 그 값들 중 적어도 하나 앞에서 인코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 인코딩하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 변환 계수들의 1 차원 벡터를 생성하기 위해 변환 계수들의 2 차원 블록을 스캔하고, 1 차원 벡터에서 변환 계수들이 유효한지 여부를 나타내는 값들을 결정하고, 그리고 그 값들 중 적어도 하나 앞에서 인코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 인코딩하도록 구성된 비디오 인코더를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 변환 계수들의 1 차원 벡터를 생성하기 위해 변환 계수들의 2 차원 블록을 스캔하는 수단, 1 차원 벡터에서 변환 계수들이 유효한지 여부를 나타내는 값들을 결정하는 수단, 및 그 값들 중 적어도 하나 앞에서 인코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 인코딩하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 인코딩하는 디바이스의 프로세서로 하여금, 변환 계수들의 1 차원 벡터를 생성하기 위해 변환 계수들의 2 차원 블록을 스캔하고, 1 차원 벡터에서 변환 계수들이 유효한지 여부를 나타내는 값들을 결정하고, 그리고 그 값들 중 적어도 하나 앞에서 인코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 인코딩하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 방법은 인코딩된 변환 계수들의 수신된 1 차원 벡터에서 인코딩된 변환 계수들이 유효한지 여부를 나타내는 값들을 수신하는 단계, 그 값들 중 적어도 하나 앞에 디코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 디코딩하는 단계, 그리고 변환 계수들의 2 차원 블록을 생성하기 위해 그 1 차원 벡터를 역 스캔하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 인코딩된 변환 계수들의 수신된 1 차원 벡터에서 인코딩된 변환 계수들이 유효한지 여부를 나타내는 값들을 수신하고, 그 값들 중 적어도 하나 앞에 디코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 디코딩하고, 그리고 변환 계수들의 2 차원 블록을 생성하기 위해 그 1 차원 벡터를 역 스캔하도록 구성된 비디오 디코더를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 인코딩된 변환 계수들의 수신된 1 차원 벡터에서 인코딩된 변환 계수들이 유효한지 여부를 나타내는 값들을 수신하는 수단, 그 값들 중 적어도 하나 앞에 디코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 디코딩하는 수단, 및 변환 계수들의 2 차원 블록을 생성하기 위해 1 차원 벡터를 역 스캔하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 디코딩하는 디바이스의 프로세서로 하여금, 인코딩된 변환 계수들의 수신된 1 차원 벡터에서 인코딩된 변환 계수들이 유효한지 여부를 나타내는 값들을 수신하고, 그 값들 중 적어도 하나 앞에 디코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 디코딩하고, 그리고 변환 계수들의 2 차원 블록을 생성하기 위해 그 1 차원 벡터를 역 스캔하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 매체를 포함한다.
일 예에서, 비디오 데이터를 인코딩하는 방법은 변환 계수들의 중간, 2 차원 블록을 생성하기 위해 제 1 변환을 이용하여 비디오 데이터의 블록에 대한 잔여 데이터를 변환하는 단계, 변환 계수들의 2 차원 블록을 생성하기 위해 회전 변환을 이용하여 변환 계수들의 중간, 2 차원 블록을 변환하는 단계, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는 통계치들의 세트를 선택하는 단계로서, 상기 통계치들의 세트는 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 상기 통계치들의 세트를 선택하는 단계, 및 그 통계치들의 선택된 세트에 기초하여 변환 계수들의 2 차원 블록을 적응적으로 스캔하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 변환 계수들의 중간, 2 차원 블록을 생성하기 위해 제 1 변환을 이용하여 비디오 데이터의 블록에 대한 잔여 데이터를 변환하고, 변환 계수들의 2 차원 블록을 생성하기 위해 회전 변환을 이용하여 변환 계수들의 중간, 2 차원 블록을 변환하고, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는, 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 통계치들의 세트를 선택하고, 그리고 통계치들의 선택된 세트에 기초하여 변환 계수들의 2 차원 블록을 적응적으로 스캔하도록 구성된 비디오 인코더를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 변환 계수들의 중간, 2 차원 블록을 생성하기 위해 제 1 변환을 이용하여 비디오 데이터의 블록에 대한 잔여 데이터를 변환하는 수단, 변환 계수들의 2 차원 블록을 생성하기 위해 회전 변환을 이용하여 변환 계수들의 중간, 2 차원 블록을 변환하는 수단, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는 통계치들의 세트를 선택하는 단계로서, 상기 통계치들의 세트는 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 상기 통계치들의 세트를 선택하는 수단, 및 그 통계치들의 선택된 세트에 기초하여 변환 계수들의 2 차원 블록을 적응적으로 스캔하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 인코딩하는 디바이스의 프로세서로 하여금, 변환 계수들의 중간, 2 차원 블록을 생성하기 위해 제 1 변환을 이용하여 비디오 데이터의 블록에 대한 잔여 데이터를 변환하고, 변환 계수들의 2 차원 블록을 생성하기 위해 회전 변환을 이용하여 변환 계수들의 중간, 2 차원 블록을 변환하고, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는, 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 통계치들의 세트를 선택하고, 그리고 통계치들의 선택된 세트에 기초하여 변환 계수들의 2 차원 블록을 적응적으로 스캔하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 방법은 비디오 데이터의 블록에 대한 잔여 데이터가 변환 계수들의 2 차원 블록을 생성하기 위해 제 1 변환 및 회전 변환 양자를 이용하여 변환되었다는 표시를 수신하는 단계, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는 통계치들의 세트를 선택하는 단계로서, 상기 통계치들의 세트는 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 상기 통계치들의 세트를 선택하는 단계, 및 그 블록에 대한 변환 계수들의 2 차원 매트릭스를 생성하기 위해 그 통계치들의 선택된 세트에 기초하여 그 블록에 대한 잔여 데이터의 인코딩된 버전을 포함하는 수신된 1 차원 벡터를 적응적으로 역 스캔하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 비디오 데이터의 블록에 대한 잔여 데이터가 변환 계수들의 2 차원 블록을 생성하기 위해 양자의 제 1 변환 및 회전 변환을 이용하여 변환되었다는 표시를 수신하고, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는, 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 통계치들의 세트를 선택하고, 그리고 그 블록에 대한 변환 계수들의 2 차원 매트릭스를 생성하기 위해 그 통계치들의 선택된 세트에 기초하여 그 블록에 대한 잔여 데이터의 인코딩된 버전을 포함하는 수신된 1 차원 벡터를 적응적으로 역 스캔하도록 구성된 비디오 디코더를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 비디오 데이터의 블록에 대한 잔여 데이터가 변환 계수들의 2 차원 블록을 생성하기 위해 양자의 제 1 변환 및 회전 변환을 이용하여 변환되었다는 표시를 수신하는 수단, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는 통계치들의 세트를 선택하는 단계로서, 상기 통계치들의 세트는 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 상기 통계치들의 세트를 선택하는 수단, 및 그 블록에 대한 변환 계수들의 2 차원 매트릭스를 생성하기 위해 그 통계치들의 선택된 세트에 기초하여 그 블록에 대한 잔여 데이터의 인코딩된 버전을 포함하는 수신된 1 차원 벡터를 적응적으로 역 스캔하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 비디오 데이터를 디코딩하는 디바이스의 프로세서로 하여금, 비디오 데이터의 블록에 대한 잔여 데이터가 변환 계수들의 2 차원 블록을 생성하기 위해 양자의 제 1 변환 및 회전 변환을 이용하여 변환되었다는 표시를 수신하고, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는, 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 통계치들의 세트를 선택하고, 그리고 그 블록에 대한 변환 계수들의 2 차원 매트릭스를 생성하기 위해 통계치들의 선택된 세트에 기초하여 그 블록에 대한 잔여 데이터의 인코딩된 버전을 포함하는 수신된 1 차원 벡터를 적응적으로 역 스캔하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 방법은 비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하는 단계, 에지가 비디오 데이터의 블록에 존재하는지 여부를 결정하는 단계, 에지가 그 블록에 존재한다고 결정한 후, 그 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보 및 에지가 그 블록에 존재한다는 결정에 기초하여 그 에지에 대한 각도를 결정하는 단계, 에지의 각도에 근사하는 각도를 갖는 방향 인트라 예측 모드로부터 맵핑된 방향 역변환을 이용하여 그 블록을 역변환하는 단계, 및 그 역변환된 블록을 디코딩하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하고, 에지가 비디오 데이터의 블록에 존재하는지 여부를 결정하고, 에지가 그 블록에 존재한다고 결정한 후, 그 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보 및 에지가 그 블록에 존재한다는 결정에 기초하여 그 에지에 대한 각도를 결정하고, 에지의 각도에 근사하는 각도를 갖는 방향 인트라 예측 모드로부터 맵핑된 방향 역변환을 이용하여 그 블록을 역변환하고, 그리고 그 역변환된 블록을 디코딩하도록 구성된 비디오 디코더를 포함한다.
또 다른 예에서, 비디오 데이터를 디코딩하는 장치는 비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하는 수단, 에지가 비디오 데이터의 블록에 존재하는지 여부를 결정하는 수단, 에지가 그 블록에 존재한다고 결정한 후 그 에지에 대한 각도를 결정하는 수단, 에지의 각도를 결정한 후, 그 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보 및 에지가 그 블록에 존재한다는 결정에 기초하여, 에지의 각도에 근사하는 각도를 갖는 방향 인트라 예측 모드로부터 맵핑된 방향 역변환을 이용하여, 그 블록을 역변환하는 수단, 및 그 역변환된 블록을 디코딩하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 프로세서로 하여금, 비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하고, 에지가 비디오 데이터의 블록에 존재하는지 여부를 결정하고, 에지가 그 블록에 존재한다고 결정한 후, 그 에지에 대한 각도를 결정하고, 그 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보 및 에지가 그 블록에 존재한다는 결정에 기초하여, 에지의 각도에 근사하는 각도를 갖는 방향 인트라 예측 모드로부터 맵핑된 방향 역변환을 이용하여 그 블록을 역변환하고, 그리고 그 역변환된 블록을 디코딩하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 매체를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 방법은 인트라 예측 인코딩되는 블록이 그 블록 내에 에지를 포함한다고 결정하는 단계, 에지 방향 인트라 예측 모드를 이용하여 계산된 예측 값에 기초하여 그 블록에 대한 잔여 블록을 계산하는 단계, 에지가 그 블록에 존재한다는 결정 및 에지-기반의 인트라 예측 모드의 선택에 기초하여, 에지의 각도에 근사하는 각도를 갖는 방향 인트라 예측 모드로부터 맵핑되는 방향 변환을 이용하여 그 잔여 블록을 변환하는 단계, 및 그 변환된 잔여 블록을 나타내는 정보 및 그 블록이 DC 인트라 예측 모드를 이용하여 예측되었다는 것을 나타내는 정보를 출력하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 인트라 예측 인코딩되는 블록이 그 블록 내에 에지를 포함한다고 결정하고, 에지 방향 인트라 예측 모드를 이용하여 계산된 예측 값에 기초하여 그 블록에 대한 잔여 블록을 계산하고, 에지가 그 블록에 존재한다는 결정 및 에지-기반의 인트라 예측 모드의 선택에 기초하여, 에지의 각도에 근사하는 각도를 갖는 방향 인트라 예측 모드로부터 맵핑되는 방향 변환을 이용하여 그 잔여 블록을 변환하고, 그리고 그 변환된 잔여 블록을 나타내는 정보 및 그 블록이 DC 인트라 예측 모드를 이용하여 예측되었다는 것을 나타내는 정보를 출력하도록 구성된 비디오 인코더를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 장치는 인트라 예측 인코딩되는 블록이 그 블록 내에 에지를 포함한다고 결정하는 수단, 에지 방향 인트라 예측 모드를 이용하여 계산된 예측 값에 기초하여 그 블록에 대한 잔여 블록을 계산하는 수단, 에지가 그 블록에 존재한다는 결정 및 에지-기반의 인트라 예측 모드의 선택에 기초하여, 그 잔여 블록을 에지의 각도에 근사하는 각도를 갖는 방향 인트라 예측 모드로부터 맵핑되는 방향 변환을 이용하여 변환하는 수단, 및 그 변환된 잔여 블록을 나타내는 정보 및 그 블록이 DC 인트라 예측 모드를 이용하여 예측되었다는 것을 나타내는 정보를 출력하는 수단을 포함한다.
또 다른 예에서, 컴퓨터 프로그램 제품은 실행될 때, 프로세서로 하여금, 인트라 예측 인코딩되는 블록이 그 블록 내에 에지를 포함한다고 결정하고, 에지 방향 인트라 예측 모드를 이용하여 계산된 예측 값에 기초하여 그 블록에 대한 잔여 블록을 계산하고, 에지가 그 블록에 존재한다는 결정 및 에지-기반의 인트라 예측 모드의 선택에 기초하여, 에지의 각도에 근사하는 각도를 갖는 방향 인트라 예측 모드로부터 맵핑되는 방향 변환을 이용하여 그 잔여 블록을 변환하고, 그리고 그 변환된 잔여 블록을 나타내는 정보 및 그 블록이 DC 인트라 예측 모드를 이용하여 예측되었다는 것을 나타내는 정보를 출력하도록 하는 명령들을 안에 저장하고 있는 컴퓨터 판독가능 저장 매체를 포함한다.
도 1 은 코딩 유닛의 변환 유닛들을 인코딩 및 디코딩하는 기법들을 이용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템을 나타내는 블록도이다.
도 2 는 본 개시물에 설명되는 비디오 데이터의 변환 유닛들을 인코딩하는 기법들 중 어느 하나 또는 모두를 구현할 수도 있는 비디오 인코더의 일 예를 나타내는 블록도이다.
도 3 은 인코딩된 비디오 시퀀스를 디코딩하는 비디오 디코더의 일 예를 나타내는 블록도이다.
도 4 는 여러 인트라 예측 모드들과 연관되는 예측 방향들의 예시적인 세트를 도시하는 그래프를 나타내는 개념도이다.
도 5 는 ITU-T H.264/AVC 표준에 의해 지정된 여러 인트라 예측 모드들을 나타내는 개념도이다.
도 6 은 변환 계수들의 블록에 대한 지그-재그 스캔을 나타내는 개념도이다.
도 7a 및 도 7b 는 예시적인 쿼드트리 및 대응하는 가장 큰 코딩 유닛 (LCU) 를 나타내는 개념도들이다.
도 8 은 블록에 대해 선택된 인트라 예측 모드에 기초하여 블록에 적용할 변환 및 스캔을 선택하는 예시적인 방법을 나타내는 플로우차트이다.
도 9 는 블록에 대해 선택된 인트라 예측 모드에 기초하여 블록에 적용할 변환 및 스캔을 선택하는 또 다른 예시적인 방법을 나타내는 플로우차트이다.
도 10 은 인트라 예측 모드 및 변환을 특정-사이즈의 서브-CUs 에 적용하는 예시적인 방법을 나타내는 플로우차트이다.
도 11 은 잔여 값들의 블록에 적용되는 선택된 변환에 기초하여 변환 계수들의 적응적 스캔을 수행하는 예시적인 방법을 나타내는 플로우차트이다.
도 12 는 적응적으로 스캔되는 계수들을 기술하는 신택스 (syntax) 엘리먼트들을 스캔 및 엔트로피 인코딩할 때 사용할 컨텍스트 모델을 선택하는 예시적인 방법을 나타내는 플로우차트이다.
도 13 은 본 개시물의 기법들 중 하나 이상을 이용하여 인코딩되어 있는 변환 유닛을 디코딩하는 예시적인 방법을 나타내는 플로우차트이다.
도 14 는 DC 인트라 예측 모드가 시그널링되는 에지를 포함하는 인트라-코딩된 블록에 적용할 변환을 선택하는 예시적인 방법을 나타내는 플로우차트이다.
일반적으로, 본 개시물은 비디오 데이터를 코딩하는 기법들을 설명한다. 보다 구체적으로는, 본 개시물은 잔여 데이터를 변환하고 비디오 코딩 프로세스 동안 변환 계수들을 스캔하는 것에 관련한 기법들을 설명한다. 인코딩된 비디오 데이터는 예측 데이터 및 잔여 데이터를 포함할 수도 있다. 비디오 인코더는 인트라 예측 모드 또는 인터 예측 모드 동안 예측 데이터를 생성할 수도 있다. 인트라 예측은 일반적으로 동일한 픽처의 이웃하는, 이전에 코딩된 블록들에 관련한 픽처의 블록을 예측하는 것을 수반한다. 인터 예측은 일반적으로 이전에 코딩된 픽처의 데이터에 관련한 픽처의 블록을 예측하는 것을 수반한다.
인트라 예측 또는 인터 예측 다음에, 비디오 인코더는 그 블록에 대해 잔여 값을 계산할 수도 있다. 잔여 값은 일반적으로 그 블록에 대해 예측된 데이터와 그 블록의 실제 값 (true value) 사이의 차이에 대응한다. 블록의 잔여 값을 추가로 압축하기 위해, 잔여 값은 가능한 한 많은 데이터 (또한, "에너지" 로도 지칭됨) 를 가능한 한 적은 계수들로 압축하는 변환 계수들의 세트로 변환될 수도 있다. 변환 계수들은 오리지널 블록과 동일한 사이즈인 계수들의 2 차원 매트릭스에 대응한다. 즉, 단지, 오리지널 블록에서의 픽셀들만큼 많은 변환 계수들이 있다. 그러나, 변환으로 인해, 변환 계수들 중 많은 계수들이 0 과 같은 값들을 가질 수도 있다.
일부 경우들에서, 회전 변환과 같은 2 차 변환이 제 1 변환에 의해 생성된 변환 계수들의 서브세트에 적용될 수도 있다. 예를 들어, 16×16 잔여 블록을 변환 계수들의 16×16 매트릭스로 변환한 후, 회전 변환이 최저 주파수 변환 계수들의 8×8 블록에 적용될 수도 있다. 이 예는 회전 변환을 2 차 변환으로서 설명하지만, 다른 2 차 변환들 (예컨대, KLTs, DCTs 및 기타 등등) 이 또한 2 차 변환들로서 적용될 수도 있다. 이러한 2 차 변환들은 또한 그 블록에 대한 시그널링된 인트라 예측 모드에 기초하여 선택될 수도 있다.
"DCT 변환들" 에 대한 참조들은 양자의 고정-소수점 구현예들 및 부동 소수점 구현예들을 포함하는 것으로 이해되어야 한다. 즉, DCT 변환의 구현예는 실제로 DCT 변환이 유리수 계수들 보다는 정수 계수들 (즉, 고정 소수점 계수들) 을 갖도록, DCT 의 근사치를 포함할 수도 있다.
일부 예들에서, 변환은 분리 불가능한 (non-separable) 변환을 포함할 수도 있다. 분리 불가능한 변환들은 일반적으로 계산적으로 (computationally) 고가이며, 따라서, 비디오 코딩 디바이스들은 분리가능한 변환들을 대신 적용할 수도 있다. 일반적으로, 분리가능한 변환들은 블록의 로우들에 적용되는 수평 성분 및 블록의 칼럼들에 적용되는 수직 성분을 포함한다. 이 방식에서, 분리가능한 변환은 또한 2 개의 직교 변환 성분들로도 지칭되는, 로우 (row) 변환 성분 및 칼럼 (column) 변환 성분을 가질 수도 있다. 2 개의 매트릭스들이 분리가능한 변환을 정의하는데 사용될 수도 있으며, 매트릭스들의 각각은 직교 변환 성분들 중의 하나에 대응한다. 분리 불가능한 변환은 적용될 때, 분리가능한 변환의 적용과 개념적으로 유사한 결과를 생성하지만, 상대적으로 더 집약된 계산들을 통해서 생성하는 단지 하나의 매트릭스를 포함할 수도 있다.
잔여 데이터의 블록을 변환하는 것은 그 블록에 대한 변환 계수들의 세트를 생성한다. 비디오 인코더는 그 후 비디오 데이터를 추가로 압축하기 위해서 변환 계수들을 양자화할 수도 있다. 양자화는 일반적으로 상대적으로 큰 세트 내의 값들을 상대적으로 작은 세트 내의 값들에 맵핑하는 것을 수반하며, 따라서, 양자화된 변환 계수들을 나타내는데 필요한 데이터의 양을 감소시킨다. 양자화 다음에, 비디오 인코더는 양자화된 변환 계수들을 포함하는 2 차원 매트릭스로부터 1 차원 벡터를 생성하는 변환 계수들을 스캔할 수도 있다. 비디오 인코더는 그 스캔 이전 또는 다음의 소정 계수들, 예컨대, 그 매트릭스의 거의 상부-좌측 코너의 소정 계수들, 또는 그 어레이에서 위치 N 으로부터 어레이의 끝까지의 모든 계수들을 제로 아웃 (zero out) 할 수도 있다.
비디오 인코더는 그 후 데이터를 더 추가로 압축하기 위해서, 그 결과의 어레이를 엔트로피 인코딩할 수도 있다. 일부 예들에서, 비디오 인코더는 예컨대, 컨텍스트-적응적 가변-길이 코딩 (CAVLC) 을 이용하여 어레이의 여러 가능한 양자화된 변환 계수들을 나타내기 위해, 가변 길이 코드들 (VLCs) 을 이용하도록 구성될 수도 있다. 다른 예들에서, 비디오 인코더는 결과의 양자화된 계수들을, 예컨대, 컨텍스트-적응적 바이너리 산술 코딩 (CABAC) 을 이용하여 인코딩하기 위해 바이너리 산술 코딩을 이용하도록 구성될 수도 있다.
본 개시물은 비디오 코딩 프로세스 동안 잔여 값들의 변환, 양자화, 스캔, 및 엔트로피 인코딩에 관련된 여러 기법들을 설명한다. 본 기법들은 비디오 인코더/디코더들 (코덱들) 및 비디오 인코딩 및/또는 디코딩을 수행하도록 구성된 프로세싱 유닛들을 포함한 양자의 비디오 인코딩 및 디코딩 유닛들에 의해 적용될 수도 있다. "비디오 코딩 유닛들" 또는 "비디오 코딩 디바이스들" 에 대한 참조들은 비디오 데이터를 인코딩하거나, 디코딩하거나, 또는 인코딩 및 디코딩 양자를 행할 수 있는 유닛들 또는 디바이스들을 지칭하는 것으로 이해되어야 한다.
고효율 비디오 코딩 (HEVC) 로서 현재 지칭되는 새로운 비디오 코딩 표준을 개발하려는 노력들이 현재 진행중에 있다. 이 향후 (upcoming) 표준은 또한 H.265 로서 지칭된다. 표준화 노력들은 HEVC 테스트 모델 (HM) 로서 지칭되는 비디오 코딩 디바이스의 모델에 기초한다. HM 은 예컨대, ITU-T H.264/AVC 에 따른 디바이스들보다 많은 비디오 코딩 디바이스들의 여러 능력들을 가정한다. 예를 들어, H.264 은 9 개의 인트라 예측 인코딩 모드들을 제공하는 반면, HM 은 인트라 예측 인코딩 모드들을 무려 34 개나 제공한다.
HM 은 비디오 데이터의 블록을 코딩 유닛 (CU; Coding Unit) 으로 지칭하며, 그 코딩 유닛은 하나 이상의 예측 유닛들 (PUs; Prediction Units) 및/또는 하나 이상의 변환 유닛들 (TUs; Transform Units) 을 포함할 수도 있다. 비트스트림 내 신택스 데이터는 가장 큰 코딩 유닛 (LCU) 을 정의할 수도 있으며, 이 가장 큰 코딩 유닛은 픽셀들의 개수의 관점에서 가장 큰 코딩 유닛이다. 일반적으로, CU 는 CU 가 사이즈 차이를 갖지 않는다는 점을 제외하고는, H.264 의 매크로블록과 유사한 목적을 갖고 있다. 따라서, CU 는 서브-CUs 로 분할될 수도 있다. 일반적으로, 본 개시물에서 CU 에 대한 참조들은 픽처의 가장 큰 코딩 유닛 또는 LCU 의 서브-CU 를 지칭할 수도 있다. LCU 는 서브-CUs 로 분할될 수도 있으며, 각각의 서브-CU 는 서브-CUs 로 더 분할될 수도 있다. 비트스트림에 대한 신택스 데이터는 CU 깊이 (depth) 로서 지칭되는, LCU 가 분할될 수도 있는 최대 횟수를 정의할 수도 있다. 따라서, 비트스트림은 또한 가장 작은 코딩 유닛 (SCU) 을 정의할 수도 있다. 본 개시물은 또한 CU, PU, 또는 TU 중 임의의 것을 지칭하기 위해 용어 "블록" 을 사용한다.
LCU 는 쿼드트리 데이터 구조와 연관될 수도 있다. 일반적으로, 쿼드트리 데이터 구조는 CU 당 하나의 노드를 포함하며, 여기서, 루트 노드 (root node) 는 LCU 에 대응한다. CU 가 4 개의 서브-CUs 로 분할되면, 그 CU에 대응하는 노드는 4 개의 리프 노드들 (leaf nodes) 을 포함하며, 그 노드들 각각은 서브-CUs 중의 하나에 대응한다. 쿼드트리 데이터 구조의 각각의 노드는 대응하는 CU 에 대해 신택스 데이터를 제공할 수도 있다. 예를 들어, 그 쿼드트리에서 노드는 그 노드에 대응하는 CU 가 서브-CUs 로 분할되는지 여부를 나타내는 분할 플래그를 포함할 수도 있다. CU 에 대한 신택스 엘리먼트들은 회귀적으로 정의될 수도 있으며, CU 가 서브-CUs 로 분할되는지 여부에 의존할 수도 있다. CU 가 더 분할되지 않으면, 리프-CU 로서 지칭된다. 본 개시물에서, 리프-CU 의 4 개의 서브-CUs 는 또한 오리지널 리프-CU 의 명시적인 분할이 없더라도 리프-CUs 로서 지칭될 것이다. 예를 들어, 16 x 16 사이즈인 CU 가 더 분할되지 않으면, 4 개의 8 x 8 서브-CUs 가 또한 16 x 16 CU 가 전혀 분할되지 않았더라도, 리프-CUs 로서 지칭될 것이다.
더욱이, 리프-CUs 의 TUs 는 또한 각각의 쿼드트리 데이터 구조들과 연관될 수도 있다. 즉, 리프-CU 는 어떻게 리프-CU 가 TUs 로 파티셔닝되는지를 나타내는 쿼드트리를 포함할 수도 있다. 본 개시물은, 어떻게 LCU 가 CU 쿼드트리로서 파티셔닝되는지를 나타내는 쿼드트리, 및 어떻게 리프-CU 가 TUs 로 TU 쿼드트리로서 파티셔닝되는지를 나타내는 쿼드트리를 참조한다. TU 쿼드트리의 루트 노드는 일반적으로 리프-CU 에 대응하는 반면, CU 쿼드트리의 루트 노드는 일반적으로 LCU 에 대응한다. 분할되지 않은 TU 쿼드트리의 TUs 는 리프-TUs 로서 지칭된다.
리프-CU 는 하나 이상의 예측 유닛들 (PUs) 을 포함할 수도 있다. 일반적으로, PU 는 대응하는 CU 의 모두 또는 일부를 나타내며, 그 PU 에 대한 참조 샘플을 취출하기 위한 데이터를 포함할 수도 있다. 예를 들어, PU 가 인터-모드 인코딩될 때, PU 는 그 PU 에 대한 모션 벡터를 정의하는 데이터를 포함할 수도 있다. 모션 벡터를 정의하는 데이터는 예를 들어, 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터에 대한 해상도 (예컨대, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 가리키는 참조 프레임, 및/또는 모션 벡터에 대한 참조 리스트 (예컨대, 리스트 0 또는 리스트 1) 를 기술한다. PU(s) 을 정의하는 리프-CU 에 대한 데이터는 또한 예를 들어, 하나 이상의 PUs 로의 CU 의 파티셔닝을 기술할 수도 있다. 파티셔닝 모드들은 CU 가 코딩되지 않거나, 인트라 예측 모드 인코딩되거나, 또는 인터 예측 모드 인코딩되는지 여부에 따라서 상이할 수도 있다. 인트라 코딩에 있어, PU 는 아래에서 설명하는 리프 변환 유닛과 동일하게 취급될 수도 있다.
리프-CU 는 하나 이상의 변환 유닛들 (TUs) 을 포함할 수도 있다. 변환 유닛들은 위에서 설명한 바와 같이, TU 쿼드트리 구조를 이용하여 지정될 수도 있다. 즉, 분할 플래그는 리프-CU 가 4 개의 변환 유닛들로 분할되는지 여부를 나타낼 수도 있다. 그 후, 각각의 변환 유닛은 4 개의 서브 TUs 로 더 분할될 수도 있다. TU 가 더 분할되지 않을 때, 리프-TU 로서 지칭될 수도 있다. 일반적으로, 인트라 코딩에 있어, 리프-CU 에 속하는 모든 리프-TUs 는 동일한 인트라 예측 모드를 공유한다. 즉, 동일한 인트라 예측 모드는 일반적으로 리프-CU 의 모든 TUs 에 대해 예측된 값들을 계산하기 위해 적용된다. 인트라 코딩에 있어, 비디오 인코더는 각각의 리프-TU 에 대한 잔여 값을 인트라 예측 모드를 이용하여, TU 에 대응하는 예측 값들의 일부와 오리지널 블록 사이의 차이로서, 계산할 수도 있다. 이 잔여 값은 변환되고, 양자화되며, 스캔될 수도 있다. 인터 코딩에 있어, 비디오 인코더는 PU 레벨에서 예측을 수행할 수도 있으며, 각각의 PU 에 대해 잔여 값을 계산할 수도 있다. 리프-CU 에 대응하는 잔여 값들은 변환되고, 양자화되고, 및 스캔될 수도 있다. 인터 코딩에 있어, 리프-TU는 PU 보다 더 크거나 또는 더 작을 수도 있다. 인트라 코딩에 있어, PU 는 대응하는 리프-TU 과 연어를 이룰 수도 있다. 일부 예들에서, 리프-TU 의 최대 사이즈는 대응하는 리프-CU 의 사이즈일 수도 있다.
일반적으로, 본 개시물은 달리 언급하지 않는 한, 리프-CU 및 리프-TU 을 각각 지칭하기 위해 용어들 CU 및 TU 를 사용한다. 일반적으로, 본 개시물의 기법들은 CU 의 데이터를 변환하고, 양자화하고, 스캔하며, 엔트로피 인코딩하는 것에 관한 것이다. 일 예로서, 본 개시물의 기법들은 블록을 예측하는데 사용되는 인트라 예측 모드에 기초하여 인트라 예측된 블록의 잔여 값을 변환하는데 사용하는 변환의 선택을 포함한다. 본 개시물은 또한 인트라 예측 모드 방향에 의존하는 이러한 변환을 지칭하기 위해 용어 "방향 변환" 또는 "설계된 변환" 을 사용한다. 즉, 비디오 인코더는 변환 유닛 (TU) 에 적용할 방향 변환을 선택할 수도 있다. 위에서 언급한 바와 같이, 인트라 예측은 동일한 픽처의 이전에 코딩된 CUs 및 TUs 로부터 픽처의 현재 CU 의 TU 를 예측하는 것을 포함할 수도 있다. 보다 구체적으로는, 비디오 인코더는 픽처의 현재의 TU 를 특정의 인트라 예측 모드를 이용하여 인트라 예측할 수도 있다.
본 개시물의 기법들은 어떤 변환들을 인트라 예측 모드들과 연관시키는 것을 포함한다. 따라서, 본 개시물의 기법들에 따르면 인트라 예측 모드들과 변환들 사이에 일-대-일 대응이 존재할 수도 있다. 일부 예들에서, 그 인트라 예측 모드들과 변환들 사이에 다-대-일 대응이 존재할 수도 있다. 예를 들어, 인트라 예측 모드들의 큰 세트는 인트라 예측 모드들의 더 작은 세트에 맵핑될 수도 있으며, 인트라 예측 모드들의 더 작은 세트의 각각은 각각의 변환들에 일-대-일 맵핑될 수도 있다.
변환들은 또한 각각의 스캔 패턴들에 맵핑될 수도 있다. 일부 예들에서, 인트라 예측 모드들은 변환들 및 스캔들 양자에 맵핑될 수도 있지만, 다른 예들에서, 인트라 예측 모드들은 변환들에 맵핑될 수도 있으며, 변환들은 스캔들 (scans) 에 맵핑될 수도 있다. 여러 예들에서, 변환들과 계수 스캔들의 여러 조합들이 사용될 수도 있다. 예를 들어, 인트라 예측 모드들은 모드 의존적 방향 변환들에 맵핑될 수도 있으며, 지그-재그 스캔이 모든 경우들에서 사용될 수도 있다.
일부 예들에서, 인트라 예측 모드들을 변환들 및/또는 스캔 패턴들에 맵핑하기 보다는 비디오 인코더 (20) 는 적용할 스캔 패턴 및 하나 이상의 변환들의 조합을 시그널링하도록 구성될 수도 있다. 이와 유사하게, 비디오 디코더 (30) 는 인트라 예측 모드와 변환들 및 스캔 패턴 사이의 맵핑 보다는, 수신된 표시에 기초하여 적용할 변환 및 스캔 패턴을 결정하도록 구성될 수도 있다.
변환들은 또한, Karhunen-Loeve 변환들 (KLTs) 로도 지칭되는 8 개의 방향 변환들 및 이산 코사인 변환 (DCT) 을 포함할 수도 있다. DCT 는 일반적으로 상이한 주파수들을 갖는 코사인 함수들의 합이며, 여기서, 이 함수들은 잔여 값들에 적용된다. KLTs 는 일반적으로 2 개의 매트릭스들을 각각 포함한다. KLT 에서 각각의 매트릭스는 변환되는 잔여 블록과 동일한 사이즈이다. KLTs 는 트레이닝 (training) 세트 데이터로부터 도출되거나, 또는 비디오 프레임들 및/또는 예측 잔여에 대한 모델을 분석적으로 가정하는 것으로부터 도출될 수도 있다.
HM 인코더는 어떤 블록 사이즈들에 대해 34 개의 인트라 예측 모드들로 구성될 수도 있다. 따라서, 방향성 인트라 예측 모드들과 방향 변환들 사이의 일-대-일 맵핑을 지원하기 위해, HM 인코더들 및 디코더들은 각각의 지원되는 변환 사이즈에 대해 68 개까지의 매트릭스들을 저장하는 것을 필요로 할 것이다. 더욱이, 모든 34 개의 인트라 예측 모드들이 지원되는 블록 사이즈들은 상대적으로 큰 블록들, 예컨대, 16 x 16 픽셀들, 32 x 32 픽셀들이거나, 또는 심지어 더 클 수도 있다.
일부 예들에서, 본 개시물은 인코더들 및 디코더들이 지원하는 것을 필요로하는 방향 변환들의 개수를 감소시키는 기법들을 제공한다. 즉, 인코더들 및 디코더들은 가용 인트라 예측 모드들의 개수보다 더 적은 방향 변환들을 지원할 수도 있다. 이들 기법들에 따른 인코더는, 예를 들어, 인트라 예측 모드들의 상대적으로 큰 세트를 인트라 예측 모드들의 서브세트에 맵핑할 수도 있다. 서브세트에서 인트라 예측 모드들의 각각은 방향 변환과 연관될 수도 있다. 즉, 서브세트에서 인트라 예측 모드들은 방향 변환들의 세트와 일-대-일 대응을 할 수도 있다. 따라서, 큰 세트에서 인트라 예측 모드들은 방향 변환들의 세트와 다-대-일 대응을 할 수도 있다.
예를 들어, 34 개의 HM 방향성 인트라 예측 모드들의 각각은 H.264 의 8 개의 방향성 인트라 예측 모드들 중 하나에 맵핑될 수도 있다. 비디오 인코더는 따라서 현재의 TU 에 대한 값을 인트라 예측하기 위해 방향 예측 모드를 선택하고, 그 선택된 모드가 맵핑되는 서브세트로부터 인트라 예측 모드를 결정하고, 그 후 현재의 TU 를 변환하기 위해 그 서브세트로부터 인트라 예측 모드에 맵핑된 방향 변환을 이용할 수도 있다. 게다가, 방향 변환들의 각각은 각각의 스캔 패턴과 연관될 수도 있다. 따라서, 인코더는 그 방향 변환과 연관되는 스캔을 수행하여, 이후 양자화될 수 있는 변환 계수들의 벡터를 생성할 수도 있다. 더욱이, 인코더는 그 벡터에 대해 최대 사이즈로 구성될 수도 있다. 즉, 인코더는 스캔되는 다음 계수가 논-제로이든 아니든, 최대 사이즈에 도달하자 마자 변환 계수들을 스캔하는 것을 중지할 수도 있다.
위에서 설명한 기법들을 적용함으로써, 인코더는 위에서 설명한 기법들이 사용될 때 특정의 TU 에 대해 사용되는 변환을 시그널링할 필요가 없다. 즉, 인코더 및 디코더는 각각 서브세트의 인트라 예측 모드들에의 큰 세트의 인트라 예측 모드들의 다-대-일 맵핑, 및 방향 변환들에의 서브세트의 인트라 예측 모드들의 일-대-일 맵핑으로 구성될 수도 있다. 따라서, 그 큰 세트로부터 인트라 예측 모드를 시그널링함으로써, 디코더는 그 블록을 변환하는데 사용되는 변환을 도출할 수 있다. 더욱이, 이들 기법들은 여러 방향 변환들에 대해 매트릭스들의 저장에 할당될 수 있는 제한된 메모리를 갖는 레거시 디바이스들에 의해 구현될 수도 있다.
HM 인코더는 블록에 대한 인트라 예측 모드들의 가용 세트가 블록의 사이즈에 기초하여 상이하도록 구성될 수도 있다. 즉, CU 의 사이즈는 CU 에 이용가능한 인트라 예측 모드들의 개수를 결정할 수도 있으며, 이로부터, 인코더는 TUs 의 계수들을 계산하는데 사용되는 값들을 예측하기 위해 인트라 예측 모드를 선택할 수도 있다. 아래 표 1 은 CU 사이즈들과 그 사이즈의 CUs 에 대해 이용가능한 인트라 예측 모드들의 개수 사이의 대응의 일 예를 도시한다. 본 개시물에서, 리프-CU 의 4 개의 서브-CUs 은 또한 오리지널 리프-CU 의 어떤 명시적인 분할이 없더라도, 리프-CUs 으로서 지칭된다. 리프-CU 가 가장 작은 CU 사이즈를 가지면, 이들 4 개의 서브-CUs 는 상이한 인트라 예측 모드들을 선택할 수 있다. 그러므로, 표는 4 x 4 CU 사이즈에 대한 엔트리를 갖는다.
CU 사이즈 인트라 예측 모드들의 개수
4 x 4 17
8 x 8 34
16 x 16 34
32 x 32 34
64 x 64 5
일반적으로, 비디오 인코더는 비디오 디코더가 블록을 적절하게 디코딩하도록 하기 위해, 블록에 대한 예측 방향을 시그널링할 수도 있다. 일부 예들에서, 비디오 인코더는 CU 에 속하는 모든 TUs 에 적용될 수도 있는 CU 에 대한 단일 예측 방향을 결정하도록 구성될 수도 있다. 그러나, 위의 표 1 에서 언급한 바와 같이, 어떤 사이즈들의 블록들은 블록들의 다른 사이즈들에 비해 덜 이용가능한 인트라 예측 모드들을 갖고 있다. 이러한 경우들은 TU 블록들 사이즈들에 대해 사용되는 CU 블록 사이즈에서 예측 방향들의 개수를 허용함으로써 해결될 수도 있다. 이의 대안으로, 더 큰 세트의 인트라 예측 모드들이 더 작은 세트, 예컨대, 서브세트의 인트라 예측 모드들에 맵핑될 수도 있다. 위에서 설명한 바와 같이, 더 큰 세트의 인트라 예측 모드들과 더 작은 세트의 인트라 예측 모드들 사이에 다-대-일 관계가 존재할 수도 있다.
TU 쿼드트리 구조들은 더 작은 블록들 (TUs) 로의 큰 블록 (CU) 의 분해를 일으킬 수도 있다. (CU 에 대한) 루트 블록의 공간 예측 모드는 비트스트림으로 명백하게 시그널링될 수도 있다. 결과의 더 작은 TU 쿼드트리 블록들 (TUs) 은 (CU 에 대응하는) TU 쿼드트리의 루트 블록의 예측 모드들로부터 그들의 예측 모드들을 상속받을 수도 있다. 그러나, 더 작은 블록들 (TUs) 에 의해 지원되는 공간 예측 방향들의 개수는 루트 블록 (CU) 의 공간 예측 방향들의 개수와는 상이할 수 있다. 이것은 더 작은 블록들 (TUs) 에 대해 더 많은 예측 방향들을 허용함으로써 해결될 수 있다. 이의 대안으로, 더 작은 블록들 (TUs) 의 예측 모드들은 루트 블록 (CU) 의 예측 모드들로부터, CU 에 대한 인트라 예측 방향과 더 작은 블록에서 그 지원되는 예측 방향들 사이의 예측 방향 각도 차이를 최소화하는 것과 같은, 미리 결정된 기준에 따른 다-대-일 또는 일-대-일 맵핑에 의해 도출될 수도 있다. 방향 변환들 및 스캔 패턴들은 이 맵핑에 기초하여 선택될 수도 있다.
이 방식에서, 비디오 인코더는 CU 에 대해 한번 인트라 예측 방향을 시그널링할 수도 있다. 그 CU 가 그 시그널링된 인트라 예측 방향을 지원하지 않는 사이즈의 TU 를 포함한다고 가정하면, 비디오 인코더는 그 맵핑에 기초하여 그 TU 에 대한 인트라 예측 모드를 결정할 수도 있다. 즉, 비디오 인코더는 TU 를 계산하는데 사용되는 예측된 블록을, 더 큰 세트의 시그널링된 인트라 예측 모드가 맵핑되는 더 작은 세트의 인트라 예측 모드를 이용하여, 인트라 예측할 수도 있다. 이와 유사하게, 비디오 디코더는 비디오 디코더가 수신된 CU 의 각각의 TU 에 대해 인트라 예측 모드들을 결정할 수 있도록 동일한 구성을 포함할 수도 있다. 이의 대안으로, TU 에 대한 예측 모드들의 개수는 대응하는 CU 에 대한 예측 모드들의 개수와 매칭하도록 증가될 수도 있다.
일부 예들에서, 일부 인트라 예측 모드들에 있어, 특정의 사이즈들의 TUs 에 대해 다수의 변환들이 가능할 수도 있다. 이러한 경우, 비디오 디코더는 TU 에 적용할 변환을 단지 인트라 예측 모드로부터 도출할 수 없을 수도 있다. 따라서, 비디오 인코더는 다수의 변환들이 가능한 사이즈들의 TUs 에 대해 사용할 변환을 시그널링할 필요가 있을 수도 있다. 이러한 TU 각각에 대해 변환을 시그널링하기 보다는, 이 정보는 CU 레벨에서 시그널링될 수도 있다. 이러한 경우, 이 변환은 그 CU 에 포함된 모든 TUs 에 적용할 수도 있다. 오직 하나의 변환만이 그 시그널링된 인트라 예측 모드에 맵핑되는 사이즈들의 TUs 에 대해, 그 맵핑된 변환이 사용될 수도 있다.
더욱이, CU 가 다수의 변환들이 가능한 사이즈의 TU 를 포함하는 경우에 그 변환을 규정하는 구문이 단지 존재할 필요가 있다. 오직 하나의 변환이 가능한 TUs 에 대해, 비디오 인코더 및 디코더는 사용할 변환을 그 선택된 인트라 예측 모드에 기초하여 결정할 수도 있다. 그러나, 다수의 변환들이 가능한 사이즈의 TUs 에 대해, 비디오 인코더는 그 CU 에서 모든 유사한 사이즈의 TUs 에 대해 사용할 변환을, 예컨대, 그 CU 에 대한 TU 쿼드트리의 루트에서 사용할 변환을 시그널링함으로써, 명백하게 시그널링할 수도 있다.
이 방식에서, 비디오 디코더가 그 TU 에 대응하는 CU 에 대한 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 TU 에 인카운터링 (encountering) 하면, 디코더는 적용할 변환을 그 명시적인 시그널링에 기초하여 결정할 수도 있다. 다른 TUs 에 대해, 비디오 디코더는 그 CU 에 대해 시그널링된 인트라 예측 모드와 연관되는 변환을 이용할 수도 있다.
일부 예들에서, 비디오 인코더는 하나 보다 많은 변환 (예컨대, 하나 보다 많은 분리가능한 변환) 을 CU 에 대한 잔여 값에 적용할 수도 있다. 예를 들어, 비디오 인코더는 제 1 변환을 이용하여 그 CU 의 TU 를 한번 변환하여, 변환 계수들의 제 1 세트를 생성하고, 그 후 제 2 변환을 변환 계수들의 제 1 세트에 적용하여, 변환 계수들의 제 2 세트를 생성할 수도 있다. TU 에 2 개의 이상 변환들을 적용하는 이 프로세스는 캐스케이드된 변환으로서 지칭될 수도 있다. 일부 예들에서, 제 2 변환은 오직 제 1 변환에 의해 생성된 계수들의 서브세트에만 적용될 수도 있다. 제 2 변환이 제 2 분리가능한 변환을 포함할 수도 있는 반면, 제 1 변환이 제 1 분리가능한 변환을 포함할 수도 있는 것으로 이해되어야 한다. 따라서, 캐스케이드된 변환들은 4 개의 매트릭스들 전체를 계수들에, 즉, 2 개는 제 1 분리가능한 변환에, 그리고 또 다른 2 개는 제 2 분리가능한 변환에 적용함으로써 적용될 수도 있다.
일부 예들에서, 제 2 변환 (즉, 제 2 분리가능한 변환) 은 회전 변환 (ROT) 에 대응할 수도 있다. 회전 변환은 일반적으로 변환 베이시스의 좌표계를 변경하기 위해 고려될 수 있다. 예를 들어, 비디오 인코더는 먼저 TU 에 방향 변환을 적용한 후, 회전 변환을 적용할 수도 있다. 또 다른 예로서, 비디오 인코더는 먼저 TU 에 DCT 를 적용한 후, TU 에 회전 변환을 적용할 수도 있다. 비디오 인코더는 다수의 회전 변환들로 구성될 수도 있다. 비디오 인코더는 어떤 방향 변환들 다음에, 그리고/또는 어떤 인트라 예측 모드들과 함께 회전 변환을 적용하도록 더 구성될 수도 있다. 즉, 비디오 인코더는 방향 변환들과 소정 인트라 예측 모드들의 소정 조합들에 대해 회전 변환을 적용하도록 구성될 수도 있다. 상이한 회전 변환들은 어떤 값, 예컨대, 회전의 각도로 인덱스될 수도 있다. 일부 예들에서, 계수들 모두가 다 회전 변환을 이용하여 변환되지는 않는다. 예를 들어, 비디오 인코더는 TU 의 낮은-주파수 변환 계수들을 오직 회전 변환하도록 구성될 수도 있다.
더욱이, 일부 예들에서, 본 개시물의 기법들은 그 TU 내에 검출된 에지를 갖는 TU 를 인트라 모드 예측하는 것을 포함한다. 예를 들어, 비디오 코딩 유닛은 이웃하는 블록에서 에지의 존재를 검출하고, 그 후 에지가 현재의 TU 에 이어진다고 결정할 수도 있다. 에지-처리 (handing) 예측 모드들이 이러한 TU 를 인트라 예측하기 위해 제공될 수도 있다. 비디오 인코더는 에지 기반 예측 모드 또는 또 다른 방향성 인트라 예측 모드를 이용하여 TU 를 예측할지 여부를 결정할 수도 있다. 에지가 TU 에 존재하는 것으로 결정될 때, 그리고 에지 기반 예측 모드가 선택될 때, DC 예측 모드를 나타내는 값이 사용되는 인트라 예측 모드를 시그널링하는데 사용될 수도 있지만, 에지의 존재의 결정으로 인해, 이 값은 에지-처리 예측 모드를 나타내는 것으로 해석될 수도 있다. 더욱이, 에지의 각도는 결정되어, 위에서 설명한 방향 변환들에의 방향성 인트라 예측 모드들의 맵핑과 유사한 방법으로 방향 변환에 맵핑될 수도 있다. 이와 유사하게, 방향 변환에 맵핑된 스캔 패턴이 또한 이 예에서 사용될 수도 있다.
본 개시물은 또한 이후 엔트로피 인코딩될 수 있는 1 차원 벡터를 생성하기 위해 변환 계수들을 스캔하는 기법들을 제공한다. 이들 기법들에 따르면, 비디오 인코더는 여러 인자들에 기초하여 고정적 스캔 패턴을 선택하거나, 또는 적응적 스캔을 수행하도록 구성될 수도 있다. 예를 들어, 비디오 인코더는 고정적 스캔 패턴들의 세트를 포함할 수도 있다. 비디오 인코더는 여러 기준들, 예컨대 인트라 예측 모드, TU 에 대해 선택된 변환, TU 가 캐스케이드된 변환, TU 에 대해 선택된 회전 변환, 또는 이들의 임의의 조합을 이용하여 변환되는지 여부에 기초하여 고정적 스캔 패턴들 중 하나를 선택할 수도 있다. 예를 들어, 비디오 인코더는 미리 정의된 스캔들의 세트 중 하나를 인트라 예측 모드, 2 차 변환, 또는 이들의 조합에 기초하여 선택할 수도 있다. 일부 예들에서, 비디오 인코더는 스캔 인덱스를 위에서 설명한 인자들 중 하나 이상에 기초하여 선택할 수도 있으며, 여기서, 스캔 인덱스는 고정적 또는 적응적 스캔 중 어느 하나에 대응할 수도 있다.
일부 예들에서, 비디오 인코더는 변환 계수들을 적응적으로 스캔하도록 구성될 수도 있다. 비디오 인코더는 초기, 고정적 스캔 패턴을 저장할 수도 있다. 비디오 인코더가 픽처의 블록들을 인코딩함에 따라, 비디오 인코더는 스캔 패턴을 적응적으로 업데이트할 수도 있다. 비디오 인코더는 예를 들어, 로케이션들에서의 계수들이 제로-값이 되는 경향이 있는지 여부를 나타내는 통계치들을 수집할 수도 있으며, 특정의 로케이션에서의 계수가 일반적으로 제로-값이면, 비디오 인코더는 일반적으로 논-제로 값들을 갖는 다른 계수들보다 이후의 계수를 스캔하도록 선택할 수도 있다. 더욱이, 비디오 인코더는 TU 가 TU 에 대해 선택된 캐스케이드된 변환, 회전 변환, 또는 이들의 임의의 조합을 이용하여 변환되든 아니든, 예를 들어, 인트라 예측 모드, TU 에 대해 선택된 변환과 같은 인자들의 여러 조합들에 대해 스캔 통계치들 및/또는 별개의 고정적 스캔들을 저장할 수도 있다. 일부 예들에서, 비디오 인코더는 캐스케이드된 변환들의 각각의 조합, 예컨대, 제 1 변환에 뒤이은 회전 변환에 대해, 별개의 통계치들을 저장할 수도 있다. 일부 예들에서, 비디오 인코더는 비디오 인코더가 캐스케이드된 변환을 적용할 때에 적응적 스캔을 이용할 수도 있으며, 비디오 인코더가 단일 변환을 적용할 때에 고정적 스캔을 이용할 수도 있다.
위에서 언급한 바와 같이, 변환 계수들의 2 차원 매트릭스를 스캔하는 것은 이후 엔트로피 인코딩될 수 있는 1 차원 벡터를 생성한다. 일부 예들에서, 비디오 인코더는 컨텍스트-적응 바이너리 산술 코딩 (CABAC) 을 이용하여 변환 계수들을 엔트로피 인코딩할 수도 있다. 비디오 인코더는 또한 예를 들어, 유효 계수 플래그 및 최종 계수 플래그와 같은 신택스 엘리먼트들을 엔트로피-인코딩할 수도 있다. 변환 계수들을 적응적으로 스캔할 때, 비디오 인코더는 그 계수가 유효한지 아닌지 여부를 나타내기 위해 유효 계수 플래그의 값을 설정할 수도 있다. 비디오 인코더는 예를 들어, 그 계수의 값이 논-제로일 때에 그 계수가 유효하다고 결정하도록 구성될 수도 있다. 비디오 인코더는 또한 적응적 스캔에 의해 생성된 벡터에서 최종 계수를 나타내기 위해 최종 계수 플래그의 값을 설정할 수도 있다. 비디오 디코더는 엔트로피 인코딩된 계수들을 적응적으로 역스캔하기 위해, 이들 신택스 엘리먼트들을 이용하여 그 저장된 통계치들을 국부적으로 업데이트할 수도 있다. 본 개시물은 이러한 신택스 엘리먼트들을 인코딩하기 위해 CABAC 을 수행할 때에 컨텍스트 모델을 선택하는 기법들을 제공한다. 비디오 인코더는 예를 들어, 다른 엘리먼트들 중에서, 인코딩되는 CU 에 대한 인트라 예측 모드에 기초하여 컨텍스트 모델을 선택할 수도 있다.
도 1 은 코딩 유닛의 변환 유닛들을 인코딩 및 디코딩하는 기법들을 이용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 나타내는 블록도이다. 도 1 에 나타낸 바와 같이, 시스템 (10) 은 인코딩된 비디오를 착신 디바이스 (14) 로 통신 채널 (16) 을 통해서 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 착신 디바이스 (14) 는 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 일부의 경우, 소스 디바이스 (12) 및 착신 디바이스 (14) 는 무선 통신 디바이스들, 예컨대, 무선 핸드셋들, 소위 셀룰러 또는 위성 무선 전화기들, 또는 통신 채널 (16) 이 무선인 경우에서 통신 채널 (16) 을 통해서 비디오 정보를 통신하는 임의의 무선 디바이스들을 포함할 수도 있다.
그러나, 변환 유닛들의 인코딩 및 디코딩에 관한 본 개시물의 기법들은 반드시 무선 애플리케이션들 또는 설정들에 한정될 필요가 없다. 예를 들어, 이들 기법들은 공중 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 인터넷 비디오 송신들, 저장 매체 상에 인코딩된 인코딩 디지털 비디오, 또는 다른 시나리오들에 적용할 수도 있다. 따라서, 통신 채널 (16) 은 인코딩된 비디오 데이터의 송신 또는 저장에 적합한 무선 또는 유선 매체들의 임의의 조합을 포함할 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 변조기/복조기 (모뎀) (22) 및 송신기 (24) 를 포함한다. 착신 디바이스 (14) 는 수신기 (26), 모뎀 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (20) 는 본 개시물의 변환 유닛들의 인코딩 및 디코딩하는 기법들을 적용하도록 구성될 수도 있다. 다른 예들에서, 소스 디바이스 및 착신 디바이스는 다른 컴포넌트들 또는 배열들을 포함할 수도 있다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스 (18) 로부터 비디오 데이터를 수신할 수도 있다. 이와 유사하게, 착신 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하기 보다는, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
도 1 의 도시된 시스템 (10) 는 단지 일 예이다. 변환 유닛들의 인코딩 및 디코딩을 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 본 개시물의 기법들이 일반적으로 비디오 인코딩 디바이스 또는 비디오 디코딩 디바이스에 의해 수행되지만, 기법들은 또한, 일반적으로 "코덱" 으로서 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 착신 디바이스 (14) 는 소스 디바이스 (12) 가 착신 디바이스 (14) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 단지 이러한 코딩 디바이스들의 예들이다. 일부 예들에서, 디바이스들 (12, 14) 은 디바이스들 (12, 14) 의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록, 실질적으로 대칭적 방식으로 동작할 수도 있다. 그러므로, 시스템 (10) 은 예컨대, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 전화 통신을 위해, 비디오 디바이스들 (12, 14) 사이에 1-방향 또는 2-방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 캡쳐 디바이스, 예컨대 비디오 카메라, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브 (archive), 및/또는 비디오 콘텐츠 제공자로부터의 비디오 공급을 포함할 수도 있다. 추가 대안적인 예로서, 비디오 소스 (18) 는 컴퓨터 그래픽-기반의 데이터를 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합으로서 생성할 수도 있다. 일부의 경우, 비디오 소스 (18) 가 비디오 카메라이면, 소스 디바이스 (12) 및 착신 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 위에서 언급한 바와 같이, 본 개시물에서 설명하는 기법들은 비디오 코딩에 일반적으로 적용할 수도 있으며, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각 경우에, 캡쳐되거나, 사전-캡쳐되거나, 또는 컴퓨터-생성된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 그 후, 인코딩된 비디오 정보는 모뎀 (22) 에 의해 통신 표준에 따라서 변조되어, 송신기 (24) 를 통해 착신 디바이스 (14) 로 송신될 수도 있다. 모뎀 (22) 은 여러 믹서들, 필터들, 증폭기들 또는 신호 변조용으로 설계된 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함한, 데이터를 송신하기 위해 설계된 회로들을 포함할 수도 있다.
착신 디바이스 (14) 의 수신기 (26) 는 채널 (16) 을 통해서 정보를 수신하고, 모뎀 (28) 은 그 정보를 복조한다. 또, 비디오 인코딩 프로세스는 변환 유닛들을 인코딩하고 디코딩하는 본원에서 설명되는 기법들 중 하나 이상을 구현할 수도 있다. 채널 (16) 을 통해서 통신되는 정보는 비디오 인코더 (20) 에 의해 정의되고 또한 비디오 디코더 (30) 에 의해 사용되며 코딩 유닛들 또는 다른 유닛들의 특성들 및/또는 코딩된 비디오 데이터, 예컨대, 픽처 그룹들 (GOPs), 슬라이스들, 프레임들 및 기타 등등의 프로세싱을 기술하는 신택스 엘리먼트들을 포함하는 신택스 정보를 포함할 수도 있다. CU 쿼드트리 데이터 구조는 가장 큰 코딩 유닛에 대한 신택스 정보의 일부를 형성할 수도 있다. 즉, 각각의 LCU 는 CU 쿼드트리의 형성 시에 신택스 정보를 포함할 수도 있으며, 그 신택스 정보는 어떻게 LCU 가 서브-CUs 로 분할되는지 뿐만 아니라, LCU 및 서브-CUs 가 어떻게 인코딩되는지에 관한 시그널링 정보를 기술할 수도 있다. 이와 유사하게, TU 쿼드트리 데이터 구조들은 LCU 의 리프-CUs 에 대한 신택스 정보의 일부를 형성할 수도 있으며, 그 신택스 정보의 일부는 어떻게 각각의 리프-CUs 가 TUs 로 분할되는지를 기술할 수도 있다.
비디오 디코더 (30) 는 CUs 의 TUs 를 포함한, 수신된 픽처의 CUs 를 디코딩하는 방법을 결정하기 위해 CU 쿼드트리 및 TU 쿼드트리들을 이용할 수도 있다. 그 후, 비디오 디코더 (30) 는 CUs 를 디코딩하여, 그 디코딩된 비디오 데이터를 디스플레이 디바이스 (32) 로 전송할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 다양한 디스플레이 디바이스들, 예컨대, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스 중 임의의 디스플레이 디바이스를 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (16) 은 임의의 무선 또는 유선 통신 매체, 예컨대, 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들, 또는 무선 및 유선 매체들의 임의의 조합을 포함할 수도 있다. 통신 채널 (16) 은 패킷-기반 네트워크의 일부, 예컨대, 로칼 영역 네트워크, 광역 네트워크, 또는 글로벌 네트워크, 예컨대, 인터넷을 형성할 수도 있다. 통신 채널 (16) 은 일반적으로 소스 디바이스 (12) 로부터 착신 디바이스 (14) 로 비디오 데이터를 송신하는, 유선 또는 무선 매체들 중 임의의 적합한 조합을 포함한, 임의의 적합한 통신 매체, 또는 상이한 통신 매체들의 컬렉션을 나타낸다. 통신 채널 (16) 은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 착신 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 비디오 압축 표준, 예컨대, MPEG 4, 파트 10, 진보된 비디오 코딩 (AVC) 로서 달리 지칭되는, ITU-T H.264 표준에 따라서 동작할 수도 있다. 또 다른 예로서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 고효율 비디오 코딩 (HEVC) 표준에 따라서 동작될 수도 있으며, HEVC 테스트 모델 (HM) 에 따를 수도 있다. 그러나, 본 개시물의 기법들은 임의의 특정의 코딩 표준에 한정되지 않는다. 다른 예들은 MPEG-2 및 ITU-T H.263 을 포함한다. 도 1 에 나타내지는 않지만, 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있으며, 오디오 및 비디오 양자의 인코딩을 공통 데이터 스트림 또는 별개의 데이터 스트림들로 처리하기 위해 적합한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 다른 프로토콜들, 예컨대 사용자 데이터그램 프로토콜 (UDP) 에 따를 수도 있다.
ITU-T H.264/MPEG-4 (AVC) 표준은 ISO/IEC 동화상 전문가 그룹 (MPEG) 과 함께, ITU-T 비디오 코딩 전문가 그룹 (VCEG) 에 의해 조인트 비디오 팀 (JVT) 으로서 알려진 공동 협력의 산물로서 공식화되었다. 일부 양태들에서, 본 개시물에서 설명하는 기법들은 H.264 표준에 일반적으로 따르는 디바이스들에 적용될 수도 있다. H.264 표준은 H.264 표준 또는 H.264 사양, 또는 H.264/AVC 표준 또는 사양으로서 본원에서 지칭될 수도 있는, 2005년 3월자, ITU-T 연구 그룹에 의한, ITU-T 권고안 H.264, Advanced Video Coding for generic audiovisual services 에 기술되어 있다. 조인트 비디오 팀 (JVT) 은 H.264/MPEG-4 AVC 에 대한 확장들에 관해 계속 연구하고 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 다양한 적합한 인코더 회로, 예컨대, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSPs), 주문형 집적회로들 (ASICs), 필드 프로그래밍가능 게이트 어레이들 (FPGAs), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 임의의 이들의 조합들 중 임의의 것으로서 구현될 수도 있다. 본 기법들이 소프트웨어로 구현되는 경우, 디바이스는 본 개시물의 기법들을 수행하기 위해 소프트웨어에 대한 명령들을 적합한, 비일시성 컴퓨터 판독가능 매체에 저장하고, 그 명령들을 하나 이상의 프로세서들을 이용하여 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이 중 어느 하나가 각각의 카메라, 컴퓨터, 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 셋-탑 박스, 서버, 또는 기타 등등에 결합형 인코더/디코더 (코덱) 의 일부로서 통합될 수도 있다.
비디오 시퀀스는 일반적으로 일련의 비디오 프레임들을 포함한다. 픽처 그룹 (GOP) 은 일반적으로 일련의 하나 이상의 비디오 프레임들을 포함한다. GOP 는 GOP 의 헤더, GOP 의 하나 이상의 프레임들의 헤더, 또는 다른 곳에, 그 GOP 에 포함되는 다수의 프레임들을 기술하는 신택스 데이터를 포함할 수도 있다. 각각의 프레임은 각각의 프레임에 대한 인코딩 모드를 기술하는 프레임 신택스 데이터를 포함할 수도 있다. 비디오 인코더 (20) 는 일반적으로 비디오 데이터를 인코딩하기 위해, 개개의 비디오 프레임들 내 코딩 유닛들 상에서 동작한다. 코딩 유닛은 LCU 또는 서브-CU 에 대응할 수도 있으며, 용어 CU 는 LCU 또는 서브-CU 를 지칭할 수도 있다. LCU 에 대한 헤더 정보는 LCU 의 사이즈, LCU 가 분할될 수도 있는 횟수 (본 개시물에서 CU 깊이로 지칭됨), 및 다른 정보를 기술할 수도 있다. 각각의 비디오 프레임은 복수의 슬라이스들을 포함할 수도 있으며, 각각의 슬라이스는 복수의 LCUs 을 포함할 수도 있다.
일부 예들에서, 여러 CU 사이즈들에 대해 예측이 수행될 수도 있다. LCU 의 사이즈는 신택스 정보에 의해 정의될 수도 있다. 특정의 리프-노드 CU 의 사이즈가 2N x 2N 임을 가정하면, 일부 예들에서, 인트라 예측 사이즈들은 2N x 2N 또는 N x N 을 포함할 수도 있으며, 인터 예측 대칭 사이즈들은 2N x 2N, 2N x N, N x 2N, 또는 N x N 을 포함할 수도 있다. 일부 예들에서, 2N x nU, 2N x nD, nL x 2N, 및 nR x 2N 의 사이즈들을 갖는 인터 예측에 비대칭적인 분할이 사용될 수도 있다. 비대칭적인 분할에서, CU 의 하나의 방향이 분할되지 않지만, 다른 방향은 25% 및 75% 로 분할된다. 25% 분할되는 CU 의 일부가 "n" 다음에 "상측 (Up)", "하측 (Down)", "좌측 (Left)", 또는 "우측 (Right)" 의 표시로 나타내어진다. 따라서, 예를 들어, "2N x nU" 는 상부에서 .2N x .5N PU 그리고 하부에서 2N x 1.5N PU 로 수평하게 분할되는 2N x 2N CU 를 지칭한다.
본 개시물에서, "N x N" 과 "N 곱하기 (by) N" 은 수직 및 수평 치수들의 관점에서 블록 (예컨대, CU, PU, 또는 TU) 의 픽셀 치수들, 예컨대, 16 x 16 픽셀들 또는 16 곱하기 16 픽셀들을 교환가능하게 지칭하는데 사용될 수도 있다. 일반적으로, 16 x 16 블록은 수직 방향으로 16 개의 픽셀들 (y = 16) 및 수평 방향으로 16 개의 픽셀들 (x = 16) 을 가질 것이다. 이와 유사하게, N x N 블록은 일반적으로 수직 방향으로 N 개의 픽셀들 및 수평 방향으로 N 개의 픽셀들을 가지며, 여기서, N 은 음이 아닌 정수 값을 나타낸다. 블록에서 픽셀들은 로우들 및 칼럼들에 배열될 수도 있다. 더욱이, 블록들은 수평 방향에서, 수직 방향과 동일한 개수의 픽셀들을 반드시 가질 필요가 없다. 예를 들어, 블록들은 N x M 픽셀들을 포함할 수도 있으며, 여기서, M 은 N 과 반드시 같을 필요는 없다.
CU 의 PUs 는 공간 도메인 (또한, 픽셀 도메인으로도 지칭됨) 에 픽셀 데이터를 포함할 수도 있지만, CU 의 TUs 는 예컨대, 잔여 비디오 데이터에의 이산 코사인 변환 (DCT), 정수 변환, 웨이블릿 변환, 또는 개념적으로 유사한 변환과 같은 변환의 적용에 뒤이어서, 그 변환 도메인에서 계수들을 생성하도록 변환될 수도 있다. 잔여 데이터는 일반적으로 PU 의 값들과, 입력 비디오 데이터로부터의 연어를 이루는 (collocated), 인코딩되지 않은 픽셀들의 값들 사이의 픽셀 차이들을 나타낸다. 이 계수들은 더 양자화될 수도 있다. TU 의 변환된 계수들은 주파수 도메인에 있는 것으로 말할 수도 있다.
비디오 인코더 (20) 는 코딩 유닛의 변환 유닛들의 인코딩을 향상시키기 위해 본 개시물의 기법들 중 임의의 기법 또는 모두를 구현할 수도 있다. 이와 유사하게, 비디오 디코더 (30) 는 코딩 유닛의 변환 유닛들의 디코딩을 향상시키기 위해 이들 기법들 중 임의의 기법 또는 모두를 구현할 수도 있다. 일반적으로, 본 개시물의 기법들은 인트라 모드 예측에 기초한 계수들의 계산 후에, 변환 유닛들의 계수들의 변환으로 나아간다. 그러나, 본 개시물의 소정 양태들은 또한 인터 예측 인코딩에 대해 구현될 수도 있다. 예시의 목적을 위해, 이들 기법들은 TUs 의 인트라 예측 인코딩에 대해 설명된다. 이들 기법들의 어떤 양태들이 또한 인터 예측 인코딩과 함께 수행될 수도 있는 것으로 이해되어야 한다.
비디오 인코더 (20) 는 LCU 을 수신하고, LCU 를 서브-CU 를 각각 포함하는 4 개의 쿼드런트 (quadrant) 들로 분할할지 여부, 또는 분할 없이 LCU 를 인코딩할지 여부를 결정할 수도 있다. LCU 를 서브-CUs 로 분할하는 결정 이후에, 비디오 인코더 (20) 는 각각의 서브-CU 를 서브-CU 를 각각 포함하는 4 개의 쿼드런트들로 분할할지 여부를 결정할 수도 있다. 비디오 인코더 (20) 는 LCU 깊이로 표시되는 분할들의 최대 수로, CU 를 분할할지 여부를 회귀적으로 계속 결정할 수도 있다. 비디오 인코더 (20) 는 LCU 및 LCU 의 서브-CUs 의 분할을 나타내는 CU 쿼드트리 데이터 구조를 제공할 수도 있다. LCU 는 CU 쿼드트리의 루트 노드에 대응할 수도 있다. CU 쿼드트리의 각각의 노드는 LCU 의 CU 에 대응할 수도 있다. 더욱이, 각각의 노드는 대응하는 CU 가 분할되는지 여부를 나타내는 분할 플래그 값을 포함할 수도 있다.
LCU 가 분할되면, 예를 들어, 비디오 인코더 (20) 는 그 LCU 가 분할된다는 것을 나타내기 위해 분할 플래그의 값을 루트 노드에 설정할 수도 있다. 그 후, 비디오 인코더 (20) 는, 만약 있다면 LCU 의 서브-CUs 중 어느 것이 분할되는지를 나타내기 위해 루트 노드의 차일드 노드들의 값들을 설정할 수도 있다. 분할되지 않은 CU 는 CU 쿼드트리 데이터 구조의 리프 노드에 대응할 수도 있으며, 여기서, 리프 노드는 어떤 차일드 노드들도 갖지 않는다. 더욱이, 각각의 리프-노드 CU 는 리프-노드 CU 에 대한 TU 쿼드트리에 의해 나타낸 바와 같이, 하나 이상의 TUs 을 포함할 수도 있다.
비디오 인코더 (20) 는 쿼드트리 데이터 구조에서 리프 노드에 대응하는 LCU 의 각각의 서브-CU 를 인코딩할 수도 있다. 예시의 목적을 위해, 본 개시물은 리프-노드 CU 에 대응하는 TUs 의 인트라 예측 인코딩에 대한 기법들을 설명한다. 인트라 모드 인코딩에서, 비디오 인코더 (20) 는 TU 쿼드트리 데이터 구조에서 리프-노드에 대응하는 각각의 TU 에 대해 예측 유닛들 (PUs) 을 형성할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 그 CU 에 대해 34 개의 상이한 인트라 예측 모드들 중 하나를 선택하고 TU 쿼드트리의 루트 노드에서 그 선택된 인트라 예측 모드를 시그널링할 수도 있다. 먼저, (CU 쿼드트리에서 리프-노드 CU 와 사이즈가 동일한) 가장 큰 TU 에 대해 시작하면, 비디오 인코더 (20) 는 가장 큰 TU 를 파티셔닝할지 여부, 및 회귀적으로 페어런트 TU 의 서브-TUs 를 파티셔닝할지 여부를 결정할 수도 있다. 비디오 인코더 (20) 는 TU 쿼드트리를 포함한 CU 에 대한 리프-노드 CU 쿼드트리에서 인트라 예측 모드를 더 시그널링할 수도 있으며, 여기서, 시그널링된 인트라 예측 모드는 CU 에 대응하는 TU 쿼드트리에서 TUs 의 각각에 대해 예측된 값들을 계산하는데 사용되는 인트라 예측 모드를 기술할 수도 있다. 비디오 인코더 (20) 는 그 선택된 인트라 예측 모드에 따라서, 이웃하는, 이전에 코딩된 비디오 데이터로부터 TUs 에 대한 예측 데이터를 취출한다. 이 방식에서, 인트라 예측 모드를 이용하여 예측된 CU 의 PUs 는 CU 의 TUs 와 사이즈가 동일하다.
본 개시물의 기법들에 따르면, 그 선택된 인트라 예측 모드가 예컨대, 그의 사이즈로 인해, 현재의 CU 에 대해 이용 가능하지 않으면, 비디오 인코더 (20) 는 쿼드트리의 루트에서 시그널링된 모드가 맵핑된 인트라 예측 모드를 선택할 수도 있다. 즉, 비디오 인코더 (20) 는 큰 모드들의 세트의 모드들 각각을 더 작은 세트, 예컨대, 큰 세트의 서브세트의 모드들에, 다-대-일 대응으로 맵핑하는 정보를 포함할 수도 있다. 그 후, 비디오 인코더 (20) 는 더 작은 세트로부터 인트라 예측 모드를 이용하여 CU 에 대한 하나 이상의 PUs 를 인트라 예측할 수도 있다. 이 방식에서, 비록 비디오 인코더 (20) 가 그 모드들의 각각 및 그 모드들이 사용되는 서브-CUs 을 명백하게 시그널링함이 없이, LCU 의 서브-CUs 를 인트라 예측하기 위해 다수의 모드들을 이용할 수도 있지만, 비디오 인코더 (20) 는 LCU 에 대해 오직 하나의 인트라 예측 모드만을 시그널링할 것을 필요로 한다. 따라서, 다수의 인트라 예측 모드들이 비트스트림에 포함되는 정보의 양을 증가시킴이 없이 사용되므로, 오버헤드를 감소시킬 수도 있다. 또 다른 실시형태에서, 서브-CU 사이즈들 또는 PU 사이즈들에 무관하게, LCU 에 대해 동일한 인트라 예측 모드를 사용하는 것을 가능하게 하기 위해 CU 레벨에서 다수의 예측 방향들이 허용될 수도 있다.
비디오 인코더 (20) 는 비디오 인코더 (20) 가 에지를 포함한다고 결정한 CU 에서 TUs 를 예측하는 에지 기반 예측 모드들로 추가로 구성될 수도 있다. 일반적으로, 에지는 TU 를 통과하는, 비교적 직선을 따른 높은-주파수 변화에 대응한다. 예를 들어, 에지는 또한 TU 에 나타낸 백그라운드에 대조된 TU 에 나타낸 오브젝트의 경계를 따라서 발생할 수도 있다. TU 에서 에지를 검출하기 위해, 비디오 인코더 (20) 는 그 TU 의 픽셀들에 대해 기울기 (gradient) 들을 계산하고 그 기울기들이 TU 까지의 라인을 식별하는지 여부를 결정할 수도 있다. 현재의 TU 가 에지를 포함한다고 결정한 후, 비디오 인코더 (20) 는 에지 기반 예측 모드를 이용할지 여부를 결정할 수도 있다. 이러한 에지가 검출되면, 그리고 에지 기반 예측 모드가 선택될 때, 비디오 인코더 (20) 는 다르게는 DC 예측 모드의 사용을 나타내는 값을 이용하여 에지 기반 예측 모드의 사용을 시그널링할 수도 있다. 즉, 에지의 존재를 현재의 블록에서 검출한 후, 비디오 인코더 (20) 는 에지 기반 예측 모드 및 다른 방향 예측 모드들 (그러나, DC 모드를 제외함) 을 포함한 세트로부터 인트라 예측 모드를 선택할 수도 있으며, 에지 기반 예측 모드가 선택될 때, 마치 DC 예측 모드의 사용을 시그널링하는 것처럼 에지 기반 예측 모드의 사용을 시그널링할 수도 있다.
CU 의 TU 에 대해 예측된 데이터를 생성하기 위해 인트라 예측 또는 인터 예측 코딩 다음에, 비디오 인코더 (20) 는 TU 에 대한 예측된 데이터와 오리지널 데이터 사이의 픽셀단위의 (pixel-by-pixel) 차이들을 나타내는 TUs 의 계수들을 포함하는 잔여 데이터를 계산할 수도 있다. 이 방식에서, 비디오 인코더 (20) 는 그 CU 에 대한 잔여 데이터를 포함하는 하나 이상의 TUs 를 포함할 수도 있다. 그 후, 비디오 인코더 (20) 는 TUs 를 변환할 수도 있다. 본 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 TU 에 대한 데이터를 인트라 모드 예측하는데 사용되는 인트라 예측 모드에 기초하여, TU 에 적용할 변환을 선택할 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 인트라 예측 모드들의 큰 세트와, 인트라 예측 모드들의 더 작은 세트 사이의 다-대-일 맵핑을 제공하는 구성 데이터를 포함할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 HM 의 34 개의 인트라 예측 모드들과 H.264 의 9 개의 인트라 예측 모드들 사이의 맵핑을 제공하는 구성 데이터를 포함할 수도 있다. 더욱이, 비디오 인코더 (20) 는 인트라 예측 모드들의 더 작은 세트와 방향 변환들 사이에 맵핑을 제공하는 구성 데이터를 포함할 수도 있다. 방향 변환들의 세트는, 인트라 예측 모드들의 더 작은 세트와 방향 변환들의 세트 사이에 일-대-일 맵핑이 존재하도록, 인트라 예측 모드들의 더 작은 세트와 동일한 사이즈일 수도 있다. 이 방식에서, 비디오 인코더 (20) 에 대한 구성 데이터가 인트라 예측 모드들의 큰 세트와 방향 변환들의 세트 사이에 간접적인, 다-대-일 맵핑을 제공할 수도 있다. 이의 대안으로, 일부 예들에서, 방향 변환들 또는 다른 설계된 변환들, 예컨대, 이산 코사인 변환들, 이산 사인 변환들, 또는 다른 개념적으로 유사한 변환들의 큰 세트로의 방향 변환들의 큰 세트의 일-대-일 맵핑이 있을 수도 있다. 임의의 경우, 맵핑을 이용하여, 비디오 인코더 (20) 는 TU 를 포함한 CU 에 대해 선택된 인트라 예측 모드에 기초하여 각각의 TU 에 대한 변환을 선택할 수도 있다.
일부 예들에서, 특정의 사이즈의 TU 에 대해 가능한 다수의 방향 변환들이 있을 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 CU 에 대응하는 TU 쿼드트리 데이터 구조의 루트 (즉, CU 쿼드트리에서 리프-노드 CU) 에서, 선택된 인트라 예측 모드 (예컨대, 선택된 인트라 예측 방향) 를 시그널링할 수도 있으며, 그 선택된 인트라 예측 모드는 그 CU 의 모든 TUs 에 적용할 수도 있다. 그 CU 에서 모든 TUs 가 오직 하나의 변환만이 가능한 사이즈들을 가지면, 비디오 인코더 (20) 는 LCU 에 대한 시그널링된 인트라 예측 모드로부터 변환이 도출되는 위의 예에 따라서 진행할 수도 있다. 그러나, 그 CU 에서 적어도 하나의 TU 가 다수의 변환들이 가능한 사이즈이면, 비디오 인코더 (20) 는 가능한 변환들 중 하나를 선택하고 그 선택된 변환을 TU 쿼드트리의 루트 노드에서 시그널링할 수도 있다. 따라서, 비디오 인코더 (20) 는 그 시그널링된 변환을 이용하여, 다수의 가능한 변환들과 연관되는 사이즈를 갖는 CU 에서의 각각의 TU 를 변환할 수 있다. 이 방식에서, 비디오 인코더 (20) 는 초과하는 추가적인 대역폭을 소비함이 없이, 변환을 명백하게 시그널링할 수도 있다.
일부 예들에서, 비디오 인코더 (20) 가 TU 에 대한 값을 예측하기 위해 에지-기반의 인트라 예측 모드를 적용할 때, 비디오 인코더 (20) 는 에지의 각도에 기초하여 TU 에 적용할 변환을 선택할 수도 있다. 위에서 설명한 바와 같이, 비디오 인코더 (20) 는 현재의 TU 와 경계를 공유하는 이웃하는 TU 에서의 에지의 검출에 기초하여, 에지가 현재의 TU 에 존재하는지 여부를 결정할 수도 있다. 본 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 에지의 상대 각도를 계산하고 그 에지의 각도를 이용하여 인트라 예측 모드에 대한 방향 변환을 선택하는 것과 유사한 방식으로 방향 변환을 선택할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 에지의 각도를 방향성 인트라 예측 모드들에 대한 각도들과 비교하고, 그 에지의 각도에 가장 가까운 각도를 갖는 방향성 인트라 예측 모드를 결정하고, 그 후 에지 기반 예측 모드-예측된 TU 를 그 결정된 인트라 예측 모드에 맵핑되는 변환을 이용하여 변환할 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 본 개시물이 캐스케이드된 변환으로서 지칭하는, 하나 보다 많은 변환을 TU 에 적용하도록 구성될 수도 있다. 예를 들어, 제 1 변환은 또한 일반적으로 방향 변환으로도 지칭되는, 이산 코사인 변환 (DCT) 또는 KLT (Karhunen-Loeve transform) 에 대응할 수도 있다. 방향 변환이 방향 변환에 맵핑된 인트라 예측 모드에 기초하여 선택될 때, 변환은 모드-의존적 방향 변환 (MDDT) 으로서 지칭될 수도 있다. 본 개시물은 또한 설계된 변환으로서 인트라 예측 모드에 기초하여 선택된 변환을 지칭하며, 설계된 변환은 방향 변환들, 이산 코사인 변환들, 이산 사인 변환들, 또는 예측 모드에 대해 특히 선택된 다른 개념적으로 유사한 변환들을 포함할 수도 있다.
제 2 변환은 회전 변환에 대응할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 다수의 회전 변환들로 구성될 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 회전 변환들의 각각에 대한 레이트-왜곡 비용들을 계산하는 것을 통해서, 적용할 회전 변환들 중 하나를 선택할 수도 있다. 비디오 인코더 (20) 는 제 1 변환보다 더 작은 개수의 계수들에 회전 변환을 적용하도록 구성될 수도 있다. 본 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 칼럼 변환 매트릭스 및 로우 변환 매트릭스를 포함한, 모드-의존적 회전 변환들 (MDROT) 에 대한 구성 데이터를 포함할 수도 있다. 인트라 예측 모드들은 제 1 변환들, 예컨대, MDDTs 중 하나 뿐만 아니라, 회전 변환들의 하나, 예컨대, MDROTs 중 하나에 맵핑될 수도 있다. 따라서, CU 에 대한 시그널링된 인트라 예측 모드는 또한 LCU 의 TU 에 적용할 제 1 변환 및 TU 에 적용할 제 2 변환의 표시를 제공할 수도 있다. MDROTs 가 예들로서 설명되지만, 제 2 변환은 다른 변환들, 예컨대 방향 변환들을 포함할 수도 있는 것으로 이해되어야 한다.
TU 의 계수들을 변환함으로써, 비디오 인코더 (20) 는 변환 계수들의 매트릭스를 생성한다. 이 매트릭스는 TU 와 동일한 사이즈를 갖는다. 일반적으로, 변환 프로세스는 데이터를 더 압축하는 양자화를 위한 잔여 데이터를 준비한다. 양자화는 일반적으로 계수들을 나타내는데 사용되는 데이터의 양을 아마도 감소시키기 위해 변환 계수들이 양자화되는 프로세스를 지칭한다. 양자화 프로세스는 계수들의 일부 또는 모두와 연관되는 비트 깊이를 감소시킬 수도 있다. 예를 들어, n-비트 값은 양자화 동안 m-비트 값까지 라운드 다운 (round-down) 될 수도 있으며, 여기서 n 은 m 보다 더 크다.
일부 예들에서, 비디오 인코더 (20) 는 양자화된 변환 계수들을 스캔하여 엔트로피 인코딩될 수 있는 벡터를 생성하기 위해, 미리 정의된 스캔 순서를 이용할 수도 있다. 예를 들어, 종래의 변환 또는 모드-의존적 변환 다음에, 비디오 인코더 (20) 는 지그-재그 스캔을 적용하도록 구성될 수도 있다. 비디오 인코더 (20) 는 인트라 예측 모드 및/또는 그 블록에 적용할 하나 이상의 변환들에 기초하여 스캔을 적용하도록 구성될 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 TU 의 계수들의 변환 및 양자화 다음에 적응적 스캔을 수행할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 각각의 가능한 변환 방식에 대해 상이한 스캔 방식들을 정의하는 구성 데이터를 포함할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 방향 변환들의 세트와 미리 정의된 스캔 패턴들의 세트 사이의 일-대-일 맵핑을 포함하는 구성 데이터를 포함할 수도 있다. 스캔 패턴들은, 대응하는 방향 변환에 뒤이어 그 벡터에서 변환 계수들의 변위 (placement) 를 최적화하기 위해, 특정의 방향 변환에 뒤이은 스캔들의 경험적 테스트에 기초하여 정의될 수도 있다. 이의 대안으로, 비디오 인코더 (20) 는 인트라 예측 모드들 (또는 변환 방식들) 이 맵핑될 수도 있는 스캔 인덱스들을 정의하는 구성 데이터를 포함할 수도 있으며, 여기서, 스캔 인덱스들은 미리 정의된 스캔들 또는 적응적 스캔들을 나타낼 수도 있다.
따라서, 각각의 방향 변환은 경험적 테스트에 기초하여, 그 방향 변환에 대해 상대적으로 최적화되는 연관된 스캔 패턴을 가질 수도 있다. 위에서 언급한 바와 같이, TU 를 포함한 CU 에 대한 TU 쿼드트리에서 시그널링되는 인트라 예측 모드와, 방향 변환 및 스캔 패턴 사이에 맵핑이 있다고 가정하면, 비디오 인코더 (20) 는 특정의 TU 에 사용되는 방향 변환 또는 스캔 패턴을 시그널링할 필요가 없다. 여러 예들에서, 스캔 패턴들은 선택된 제 1 변환 (예컨대, DCT 또는 MDDT), 선택된 제 2 변환 (예컨대, MDROT, DCT, 또는 다른 2 차 분리가능한 변환), 또는 양자의 조합에 의존할 수 있다. 일부 예들에서, 2 개의 캐스케이드된 변환들 중 하나는 특정의 방향 (예컨대, 수평 또는 수직) 에서 적용되는 설계된 변환을 포함할 수도 있으며, 비디오 인코더 (20) 는 그 구성 데이터에 기초하여, 동일한 방향 또는 직교 방향에 일반적으로 대응하는 스캔 순서를 선택할 수도 있다.
비디오 인코더 (20) 가 TU 에 캐스케이드된 변환을 적용하는 예들에서, 비디오 인코더 (20) 는 그 캐스케이드된 변환에 기인하는 계수들을 적응적으로 스캔할 수도 있다. 적응적 스캔을 수행하기 위해, 비디오 인코더 (20) 는 일반적으로 변환 계수들의 매트릭스에서 특정의 위치가 거의 유효할 가능성이 있는지 (예컨대, 논-제로인지) 여부를 나타내는 통계치들을 추적할 수도 있다. 비디오 인코더 (20) 는 스캔 패턴이 이들 통계적 우도 (likelihood) 들에 대응하도록, 시간 경과에 따라 스캔 패턴을 적응시킬 수도 있다. 즉, 상대적으로 더 높은, 유효한 (예컨대, 논-제로일) 확률을 갖는 변환 계수들이 상대적으로 더 낮은, 유효한 확률을 갖는 변환 계수들 전에 스캔되는 것을 보장하기 위해, 적응적 스캔 패턴이 시도될 수도 있다. 이의 대안으로, 비디오 인코더 (20) 는 캐스케이드된 변환이 맵핑되는 스캔 인덱스를 선택할 수도 있다.
비디오 인코더 (20) 는 각각의 가능한 캐스케이드된 변환에 대한 스캔 통계치들을 별개로 추적할 수도 있다. 예를 들어, 변환 매트릭스에서 특정의 계수 로케이션이 상이할 수도 있는 우도는 캐스케이드된 변환 동안 적용되는 제 1 및 제 2 변환들에 기초하여 상이할 수도 있다. 따라서, 비디오 인코더 (20) 는 각각의 가능한 캐스케이드된 변환에 대해 별개의 독립적인 통계치들의 세트들을 추적할 수도 있다. 일 예로서, 인트라 예측 모드들이 MDDT 및 MDROT (또는, 다른 2 차 분리가능한 변환) 양자에 맵핑된다고 가정하면, 비디오 인코더 (20) 는 TUs 에 적용되는 MDDT 와 MDROT (또는, 다른 2 차 변환) 의 각각의 조합에 대해 독립적인 통계치들을 추적할 수도 있다. 또 다른 예로서, 비디오 인코더 (20) 는 비디오 인코더 (20) 가 DCT 를 TU 에 적용할 때에만 캐스케이드된 변환을 수행하도록 구성될 수도 있다. 따라서, 비디오 인코더 (20) 는 적응적 스캔을 수행하고, 그 DCT 다음에 적용되는 TU 에 대한 선택된 MDROT (또는 다른 2 차 분리가능한 변환) 에 기초하여, 적응적 스캔을 수행하기 위한 독립적인 통계치들을 추적할 수도 있다.
일부 예들에서, 적응적 스캔 또는 미리 결정된 스캔을 이용하든, 비디오 인코더 (20) 는 그 스캔 다음에 그 어레이에서 계수들을 제로 아웃할 수도 있다. 즉, 비디오 인코더 (20) 는 계수들에 대한 값들을, 위치들 N 내지 그 어레이의 끝을 제로와 같이 설정한다. N 의 값은 CU 의 사이즈 및/또는 TU 의 사이즈에 관련될 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 그 매트릭스에서의 변환 계수들을, 스캔되기 전에, 예컨대, 그 매트릭스의 상부-좌측 코너에서의 계수들 이외의 그 매트릭스에서의 모든 계수들을 제로 아웃할 수도 있다.
1 차원 벡터를 형성하기 위해 변환 매트릭스를 스캔한 후, 비디오 인코더 (20) 는 1 차원 벡터를 예컨대, 콘텐츠 적응 가변 길이 코딩 (CAVLC), 컨텍스트 적응 바이너리 산술 코딩 (CABAC), 구문-기반의 컨텍스트-적응 바이너리 산술 코딩 (SBAC), 또는 또 다른 엔트로피 코딩 방법론에 따라서, 엔트로피 인코딩할 수도 있다.
CAVLC 를 수행하기 위해, 비디오 인코더 (20) 는 송신될 심볼에 대한 가변 길이 코드를 선택할 수도 있다. VLC 에서 코드워드들은 상대적으로 더 짧은 코드들이 심볼들에 대응할 가능성이 보다 있지만 더 긴 코드들은 심볼들에 대응할 가능성이 더 적게, 구성될 수도 있다. 이 방식으로, VLC 의 사용은 예를 들어, 송신될 각각의 심볼에 대해 동일-길이 코드워드들을 이용하는 것을 통해서, 비트 절감을 달성할 수도 있다.
CABAC 를 수행하기 위해, 비디오 인코더 (20) 는 소정의 컨텍스트에 적용할 컨텍스트 모델을 선택하여, 송신될 심볼들을 인코딩할 수도 있다. 이 컨텍스트는 예를 들어, 이웃하는 값들이 논-제로인지 아닌지 여부에 관련될 수도 있다. 비디오 인코더 (20) 는 또한 신택스 엘리먼트들, 예컨대, 적응적 스캔을 수행할 때에 생성되는 유효 계수 플래그 및 최종 계수 플래그를 엔트로피 인코딩할 수도 있다. 본 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 이들 신택스 엘리먼트들을 인코딩하는데 사용되는 컨텍스트 모델을, 예를 들어, 컨텍스트 모델 선택에 사용되는 다른 인자들 중에서, 인트라 예측 방향, 그 신택스 엘리먼트들에 대응하는 계수의 스캔 위치, 블록 유형, 및/또는 변환 유형에 기초하여 선택할 수도 있다.
비디오 디코더 (30) 는 비디오 인코더 (20) 의 방식에 본질적으로 대칭적인 방식으로 동작할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 인코딩된 TU 데이터를 포함한, 인코딩된 CU 를 나타내는 엔트로피 인코딩된 데이터를 수신할 수도 있다. 이 수신된 데이터는 CU 가 인트라 예측 인코딩되었다고 가정하면, PU 데이터를 인코딩하는데 사용되는 인트라 예측 모드를 나타내는 정보를 포함할 수도 있다. 비디오 디코더 (30) 는 그 수신된 데이터를 역 엔트로피 인코딩하여, 인코딩된 양자화 계수들을 형성할 수도 있다. 비디오 인코더 (20) 가 가변 길이 코드 알고리즘을 이용하여 데이터를 엔트로피 인코딩할 때, 비디오 디코더 (30) 는 수신된 코드워드에 대응하는 심볼을 결정하기 위해 하나 이상의 VLC 표들을 이용할 수도 있다. 비디오 인코더 (20) 가 산술 코딩 알고리즘을 이용하여 데이터를 엔트로피 인코딩할 때, 비디오 디코더 (30) 는 데이터를 디코딩하기 위해 컨텍스트 모델을 이용할 수도 있으며, 그 컨텍스트 모델은 데이터를 인코딩하기 위해 비디오 인코더 (20) 에 의해 사용되는 동일한 컨텍스트 모델에 대응할 수도 있다.
그 후, 비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 사용되는 스캔을 반영하는 역 스캔을 이용하여, 디코딩된 계수들을 역 스캔할 수도 있다. 계수들을 적응적으로 역 스캔하기 위해, 비디오 디코더 (30) 는 적응적 스캔을 수행하기 위해 비디오 인코더 (20) 에 의해 사용된 통계치들을 복원하기 위해, 유효 계수 플래그들 및 최종 계수 플래그들을 포함한 신택스 엘리먼트들을 디코딩할 수도 있다. 이에 의해, 비디오 디코더 (30) 는 엔트로피 디코딩 프로세스로부터 생성하는 1 차원 벡터로부터 2 차원 매트릭스를 형성할 수도 있다.
다음으로, 비디오 디코더 (30) 는 역 스캔에 의해 생성된 2 차원 매트릭스에서 그 계수들을 역 양자화할 수도 있다. 그 후, 비디오 디코더 (30) 는 그 2 차원 매트릭스에 하나 이상의 역변환들을 적용할 수도 있다. 이 역변환들은 비디오 인코더 (20) 에 의해 적용된 변환들에 대응할 수도 있다. 비디오 디코더 (30) 는 적용할 역변환들을, 예를 들어, TU 에 대한 계수들을 계산하는데 사용된 인트라 예측 모드, 그리고, 다수의 변환들이 특정의 사이즈의 TU 에 이용가능하면, 현재 디코딩중인 TU 를 포함하는 CU 에 대응하는 TU 쿼드트리의 루트에서 시그널링되는 정보에 기초하여 결정할 수도 있다. 이 방식에서, 비디오 디코더 (30) 는 TU 를 복원하기 위해, TU 에 대한 역양자화된 계수들에 적용될 하나 이상의 역변환들을 그 TU 에 대해 시그널링된 인트라 예측 모드에 기초하여 선택할 수도 있다. 더욱이, 비디오 디코더 (30) 는 TU 에 대한 예측된 값을, 예컨대, TU 쿼드트리에서, 인트라 예측 모드의 시그널링된 표시에 대응하는 인트라 예측 모드를 이용하여 계산할 수도 있다. 일부 예들에서, 비디오 디코더 (30) 는 이웃하는 TU 에서 검출된 에지에 기초하여, 에지가 TU 에 존재한다고 결정할 수도 있으며, DC 모드가 시그널링될 때 대신에 TU 에 대한 값을 예측하기 위해 에지-기반의 모드를 사용할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 적용가능한 경우, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSPs), 주문형 집적회로들 (ASICs), 필드 프로그래밍가능 게이트 어레이들 (FPGAs), 이산 로직 회로, 소프트웨어, 하드웨어, 펌웨어 또는 임의의 이들의 조합들과 같은 다양한 적합한 인코더 또는 디코더 회로 중 임의의 것으로 구현될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 그 중 어느 것이 결합된 비디오 인코더/디코더 (코덱) 의 일부분으로서 통합될 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 를 포함하는 장치는 집적 회로, 마이크로프로세서, 및/또는 무선 통신 디바이스, 예컨대 셀룰러 전화기를 포함할 수도 있다.
도 2 는 본 개시물에서 설명되는 비디오 데이터의 변환 유닛들을 인코딩하는 기법들 중 임의의 기법 또는 모두를 구현할 수도 있는 비디오 인코더 (20) 의 일 예를 도시하는 블록도이다. 비디오 인코더 (20) 는 비디오 프레임들 내의 CUs 의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라 코딩은 주어진 비디오 프레임 내 비디오에서 공간 리던던시를 감소시키거나 또는 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 현재의 프레임과 이전에 코딩된 프레임들 사이에 시간 리던던시를 감소시키거나 또는 제거하기 위해 시간 예측에 의존한다. 인트라 모드 (I-모드) 는 여러 공간 기반의 압축 모드들 중 임의의 모드를 지칭할 수도 있으며, 인터-모드, 예컨대 단방향 예측 (P-모드) 또는 양방향 예측 (B-모드) 는 여러 시간-기반의 압축 모드들의 임의의 모드를 지칭할 수도 있다.
도 2 에 나타낸 바와 같이, 비디오 인코더 (20) 는 인코딩되는 비디오 프레임 내에서 현재의 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (20) 는 모션 보상 유닛 (44), 모션 추정 유닛 (42), 인트라 예측 유닛 (46), 참조 프레임 스토어 (64), 합산기 (50), 변환 유닛 (52), 양자화 유닛 (54), 및 엔트로피 코딩 유닛 (56) 을 포함한다. 도 2 에 도시된 변환 유닛 (52) 은 CU 의 TU 와 혼동되지 않게, 실제 변환을 수행하는 유닛이다. 비디오 블록 재구성을 위해, 비디오 인코더 (20) 는 또한 역양자화 유닛 (58), 역변환 유닛 (60), 및 합산기 (62) 를 포함한다. 게다가, 비디오 인코더 (20) 는 구성 데이터, 예컨대 맵핑 데이터 (66) 를 포함할 수도 있다. 디블로킹 (deblocking) 필터 (도 2 에 미도시) 는 또한 블록 경계들을 필터링하여 재구성된 비디오로부터 블록킹 (blockiness) 아티팩트들을 제거하기 위해 포함될 수도 있다. 원할 경우, 디블로킹 필터는 일반적으로 합산기 (62) 의 출력을 필터링할 것이다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩될 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 다수의 비디오 블록들, 예컨대, 가장 큰 코딩 유닛들 (LCUs) 로 분할될 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간 압축을 제공하기 위해, 하나 이상의 참조 프레임들에서 하나 이상의 블록들에 대해 그 수신된 비디오 블록의 인터 예측 코딩을 수행한다. 인트라 예측 유닛 (46) 은 공간 압축을 제공하기 위해, 코딩될 블록과 동일한 프레임 또는 슬라이스에서 하나 이상의 이웃하는 블록들에 대해 그 수신된 비디오 블록의 인트라 예측 코딩을 수행할 수도 있다.
모드 선택 유닛 (40) 은 코딩 모드들, 즉 인트라 또는 인터 중 하나를, 예컨대, 에러 결과들 (종종, 왜곡으로 지칭됨) 에 기초하여 선택하고, 결과의 인트라- 또는 인터-코딩된 블록을, 잔여 블록 데이터를 생성하기 위해 합산기 (50) 에 제공하고, 참조 프레임에 사용하기 위한 인코딩된 블록을 재구성하기 위해 합산기 (62) 에 제공할 수도 있다. 일부 비디오 프레임들은 I-프레임들로 지정될 수도 있으며, I-프레임 내 모든 블록들은 인트라 예측 모드에서 인코딩된다. 일부의 경우, 인트라 예측 유닛 (46) 은 예컨대, 모션 추정 유닛 (42) 에 의해 수행되는 모션 탐색이 그 블록의 충분한 예측을 초래하지 않을 때, P- 또는 B-프레임 내 블록의 인트라 예측 인코딩을 수행할 수도 있다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위해 따로 도시되어 있다. 모션 추정은 모션 벡터들을 생성하여 비디오 블록들에 대해 모션을 추정하는 프로세스이다. 모션 벡터는, 예를 들어, 참조 프레임의 참조 샘플에 대한 현재의 프레임에서의 예측 유닛의 변위를 나타낼 수도 있다. 참조 샘플은 코딩될 PU 를 포함한 CU 의 부분에 픽셀 차이의 관점에서 밀접하게 매칭하는 것으로 발견되는 블록이며, 절대 차이의 합 (SAD), 제곱 차이의 합 (square difference) (SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 모션 보상 유닛 (44) 에 의해 수행되는 모션 보상은 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 유닛에 대한 값들을 페치하거나 또는 생성하는 것을 수반할 수도 있다. 또, 일부 예들에서, 모션 추정 유닛 (42) 과 모션 보상 유닛 (44) 은 기능적으로 통합될 수도 있다.
모션 추정 유닛 (42) 은 예측 유닛을 참조 프레임 스토어 (64) 에 저장된 참조 프레임의 참조 샘플들과 비교함으로써, 인터-코딩된 프레임의 예측 유닛에 대한 모션 벡터를 계산한다. 일부 예들에서, 비디오 인코더 (20) 는 참조 프레임 스토어 (64) 에 저장된 참조 프레임들의 서브-정수 픽셀 위치들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 그 참조 프레임의 1/4 픽셀 위치들, 1/8 픽셀 위치들, 또는 다른 분수 (fractional) 픽셀 위치들의 값들을 계산할 수도 있다. 따라서, 모션 추정 유닛 (42) 은 풀 (full) 픽셀 위치들 및 분수 픽셀 위치들에 대한 모션 탐색을 수행하고, 분수 픽셀 정밀도를 가진 모션 벡터를 출력할 수도 있다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다. 모션 벡터에 의해 식별되는 참조 프레임의 부분은 참조 샘플로서 지칭될 수도 있다. 모션 보상 유닛 (44) 은 현재의 CU 의 예측 유닛에 대한 예측 값을, 예컨대, 그 PU 에 대한 모션 벡터에 의해 식별되는 참조 샘플을 취출함으로써, 계산할 수도 있다.
인트라 예측 유닛 (46) 은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행되는 인터 예측에 대한 대안으로서, 수신된 블록을 인트라 예측 인코딩할 수도 있다. 인트라 예측 유닛 (46) 은 그 수신된 블록을 이웃하는, 이전에 코딩된 블록들에 대해, 예컨대, (래스터 스캔 순서와 같이) 블록들에 대해 좌우, 상하 인코딩 순서를 가정하면, 현재의 블록의, 상측으로, 위로 그리고 우측으로, 위로 그리고 좌측으로, 또는 좌측으로, 블록들을 인코딩할 수도 있다. 인트라 예측 유닛 (46) 은 다양한 상이한 인트라 예측 모드들로 구성될 수도 있다. 예를 들어, 인트라 예측 유닛 (46) 은 그 인코딩되는 CU 의 사이즈에 기초하여, 어떤 개수의 방향 예측 모드들, 예컨대, 34 개의 방향 예측 모드들로 구성될 수도 있다.
인트라 예측 유닛 (46) 은 예를 들어, 여러 인트라 예측 모드들에 대한 에러 값들을 계산하고 최저 에러 값을 얻는 모드를 선택함으로써, 인트라 예측 모드를 선택할 수도 있다. 방향 예측 모드들은 공간적으로 이웃하는 픽셀들의 값들을 결합하고 그 결합된 값들을 PU 내 하나 이상의 픽셀 위치들에 적용하는 기능들을 포함할 수도 있다. 일단 PU 내 모든 픽셀 위치들에 대한 값들이 계산되었으면, 인트라 예측 유닛 (46) 은 그 PU 와 인코딩되는 수신된 블록 사이의 픽셀 차이들에 기초하여 그 예측 모드에 대한 에러 값을 계산할 수도 있다. 인트라 예측 유닛 (46) 은 허용가능한 에러 값을 얻는 인트라 예측 모드가 발견될 때까지 인트라 예측 모드들을 계속 테스트할 수도 있다. 그 후, 인트라 예측 유닛 (46) 은 PU 를 합산기 (50) 로 전송할 수도 있다.
본 개시물의 기법들에 따르면, 인트라 예측 유닛 (46) 은 에지를 포함하는 블록을 에지 기반 예측 모드를 이용하여 예측하도록 구성될 수도 있다. 특히, 인트라 예측 유닛 (46) 은 이웃하는 블록들의 적어도 하나에서 에지가 검출되는지 여부, 및 에지가 이전에 코딩된 블록과 현재의 블록 사이의 보더 (border) 를 횡단하는지 여부를 결정하기 위해, 이웃하는, 이전에 코딩된 블록들의 픽셀들을 분석할 수도 있다. 에지를 검출하기 위해, 인트라 예측 유닛 (46) 은 이웃하는, 이전에 코딩된 블록들에서 픽셀들에 대한 기울기들을 수평 방향 및 수직 방향 양쪽으로 계산할 수도 있다. 이웃하는 블록들 중 하나에서 복수의 픽셀들에 대한 기울기들이 이웃하는 블록과 현재의 블록 사이의 보더를 횡단하는 공통 라인에 상대적으로 수직할 때, 인트라 예측 유닛 (46) 은 현재의 블록이 또한 에지 (특히, 위에서 설명한 바와 같이 그 라인을 따라 검출되는 에지) 를 포함한다고 결정할 수도 있다. 이 상황에서 용어 "에지" 는 별개로 코딩된 블록들 사이의 보더 또는 경계가 아닌, 픽셀들의 블록 내에서 비교적 직선을 따른 높은 주파수 변화를 지칭하는 것으로 이해되어야 한다.
따라서, 에지가 그 블록에서 검출될 때, 인트라 예측 유닛 (46) 은 그 블록을 에지 기반 예측 모드 또는 방향성 인트라 예측 모드를 이용하여 예측할지 여부를 결정할 수도 있다. 인트라 예측 유닛 (46) 이 에지 기반 예측 모드를 선택할 때, 인트라 예측 유닛 (46) 은 인트라 예측 모드들을 시그널링하는데 요구되는 값들의 개수를 증가시키는 것을 피하기 위해, 그 블록을 예측하는데 DC 예측 모드가 이용되었다고 시그널링할 수도 있다. 따라서, 도 3 에 대해 보다 자세하게 설명한 바와 같이, 비디오 디코더 (30) 와 같은 비디오 디코더는 비디오 디코더가 에지가 그 블록에 존재한다고 결정할 때, 블록을 에지 기반 예측 모드의 표시로서 예측하는데 DC 예측 모드가 사용되었다는 표시 (예컨대, 신호 또는 신택스 정보) 를 해석하도록 구성될 수도 있다.
비디오 인코더 (20) 는 모션 보상 유닛 (44) 또는 인트라 예측 유닛 (46) 에 의해 계산된 예측 데이터를 코딩되는 오리지널 비디오 블록으로부터 감산함으로써 잔여 블록을 형성한다. 합산기 (50) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 잔여 블록은 값들의 2 차원 매트릭스에 대응할 수도 있으며, 여기서, 잔여 블록에서 값들의 개수는 그 잔여 블록에 대응하는 PU 에서의 픽셀들의 개수와 동일하다. 잔여 블록에서 값들은 그 PU 에서 연어를 이루는 픽셀과, 코딩되는 오리지널 블록에서 연어를 이루는 픽셀 사이의 차이들에 대응할 수도 있다.
변환 유닛 (52) 은 하나 이상의 변환 유닛들 (TUs) 을 그 잔여 블록으로부터 형성할 수도 있다. 변환 유닛 (52) 은 변환, 예컨대 이산 코사인 변환 (DCT), 방향 변환, 또는 개념적으로 유사한 변환을, TU 에 적용하여, 변환 계수들을 포함하는 비디오 블록을 발생시킨다. 본 개시물의 기법들에 따르면, 인트라 예측 유닛 (46) 은 TU 에 대해 선택된 인트라 예측 모드의 표시를 변환 유닛 (52) 으로, 예컨대, 그 모드를 그 TU 에 대응하는 TU 쿼드트리의 노드에서 시그널링함으로써, 전송할 수도 있다. 따라서, 변환 유닛 (52) 은 그 TU 에 적용할 변환을 인트라 예측 유닛 (46) 으로부터 수신된 인트라 예측 모드의 표시에 기초하여 선택할 수도 있다.
일부 예들에서, 변환 유닛 (52) 은 TU 에 적용할 변환, 예컨대 방향 변환을, 그 TU 를 예측하는데 사용된 인트라 예측 모드에 기초하여 선택하도록 구성된다. 즉, 맵핑 데이터 (66) 는 적용될 변환을 그 TU 를 예측하는데 사용된 인트라 예측 모드에 기초하여 기술하는 구성 데이터를 저장할 수도 있다. 이 방식에서, 변환 유닛 (52) 은 잔여 블록을, 잔여 블록을 계산하는데 사용된 인트라 예측 모드에 맵핑되는 변환을 이용하여 변환할 수도 있다. 이와 유사하게, 맵핑 데이터 (66) 는 인트라 예측 모드, 변환, 또는 양자를, 특정의 스캔 인덱스에 맵핑할 수도 있으며, 그 스캔 인덱스는 그 블록의 양자화된 변환 계수들에 적용될 스캔을 선택하는데 사용될 수도 있다.
일부 예들에서, 맵핑 데이터 (66) 는 인트라 예측 모드들의 큰 세트와, 인트라 예측 모드들의 더 작은 세트 사이의 다-대-일 맵핑을 포함한 구성 데이터를 저장할 수도 있다. 더 작은 세트는 인트라 예측 모드들의 서브세트를 포함할 수도 있다. 일부 예들에서, 큰 세트는 HEVC 테스트 모델에 의해 지원되는 인트라 예측 모드들을 포함할 수도 있지만, 더 작은 세트는 H.264 에 의해 지원되는 인트라 예측 모드들을 포함할 수도 있다. 맵핑 데이터 (66) 는 또한 인트라 예측 모드들과 변환들의 더 작은 세트 사이의 맵핑, 예컨대 일-대-일 맵핑을 포함할 수도 있다. 인트라 예측 모드들의 더 작은 세트는 대응하는 인트라 예측 모드에 대해 경험적으로 최상의 변환 결과들을 제공하도록 설계된 방향 변환들에 일-대-일 맵핑될 수도 있다.
일부 예들에서, 큰 세트 및 더 작은 세트의 인트라 예측 모드들은 각각의 예측 각도들과 연관될 수도 있다. 따라서, 예측 모드들의 큰 세트와 더 작은 세트 사이의 맵핑은, 큰 세트의 인트라 예측 모드들의 예측 각도를 근사화하는 더 작은 세트에서 인트라 예측 모드들 중 하나의 예측 각도를 선택함으로써 결정될 수도 있다. α 가 큰 세트의 인트라 예측 모드들 중 하나의 예측 각도를 나타내고, βi 가 더 작은 세트의 i번째 인트라 예측 모드의 예측 각도를 나타낸다고 하자. 인트라 예측 모드를 더 작은 세트의 인트라 예측 모드들 중 하나에 맵핑하기 위해, 비디오 인코더 (20) 는 α 가 주어질 때 하기 방정식 1 이 만족되는 βi 를 발견할 수도 있다:
arg{βi} min (min(abs(α - βi),abs(-α - βi))) (1)
변환 유닛 (52) 은 그 선택된 인트라 예측 모드의 표시를 인트라 예측 유닛 (46) 으로부터 수신하고, 그 후, 합산기 (50) 로부터 수신된 잔여 값들을 포함하는 TU 를 변환하는데 사용할 변환을 결정하기 위해 맵핑 데이터 (66) 에 대해 질의할 수도 있다. TU 가 다수의 가능한 변환들이 가능한 사이즈이면, 변환 유닛 (52) 또는 비디오 인코더 (20) 의 또 다른 유닛은 그 사이즈의 TUs 에 대한 변환을, 변환 유닛 (52) 이 동일한 변환을 동일한 CU 에서 그 사이즈의 모든 TUs 에 적용할 수 있도록, 선택할 수도 있다. 일부 예들에서, 변환 유닛 (52) 은 제 1 변환으로부터 캐스케이드된 회전 변환을 수행하도록 추가로 구성될 수도 있다. 즉, 제 1 변환 다음에, 변환 유닛 (52) 은 회전 변환을 선택하여 변환 계수들에 적용할 수도 있다. 변환 유닛 (52) 은 회전 변환을, 예를 들어, 현재의 TU 에 대한 PU 를 예측하는데 사용된 인트라 예측 모드에 기초하여, 선택할 수도 있다.
위에서 설명한 바와 같이, 일부 예들에서, 인트라 예측 유닛 (46) 은 블록이 에지 (즉, 그 블록 내 픽셀들 사이의 높은-주파수 변화) 를 포함하는지 여부를 결정하도록 구성된다. 에지가 검출될 때, 인트라 예측 유닛 (46) 은 에지- 기반의 예측 모드 또는 종래의 방향성 인트라 예측 모드를 선택할 수도 있다. 즉, 인트라 예측 유닛 (46) 은 에지 기반 예측 모드를 DC 예측 모드로 대체할 수도 있다. 일부 예들에서, 블록이 에지 기반 예측 모드를 이용하여 예측될 때, 변환 유닛 (52) 은 에지의 각도에 가깝게 근사하는 각도를 갖는 인트라 예측 모드의 방향에 맵핑된 변환 (예컨대, 방향 변환) 을 선택한다. 즉, 일부 예들에서, 변환 유닛 (52) 은 그 블록 내 에지의 각도를 결정하고 에지의 각도에 가깝게 근사하는 (예컨대, 에지 각도에 대해 최소 거리를 갖는) 각도를 갖는 방향성 인트라 예측 모드에 맵핑되는 변환을 선택한다. 일부 예들에서, 변환 유닛 (52) 은 블록에서 검출된 에지의 각도에 가깝게 근사하는 각도를 갖는 방향성 인트라 예측 모드에 맵핑되는 변환을 선택하도록 구성된다.
비디오 인코더 (20) 는 또한 에지 기반 예측 모드의 사용을, 다른 상황에서는 DC 예측 모드의 사용을 시그널링하는데 사용되는 값을 이용하여 시그널링할 수도 있다. 따라서, DC 예측 모드가 시그널링되더라도, 에지 기반 예측 모드가 블록을 예측하는데 사용될 수도 있다. 이와 유사하게, 에지 기반 예측 모드가 블록을 예측하는데 사용될 수도 있지만, 변환 유닛 (52) 은 그 블록에서 검출된 에지의 각도에 근사하는 각도를 갖는 인트라 예측 모드에 맵핑되는 변환을 이용할 수도 있다.
맵핑 데이터 (66) 는, DC 예측 모드가 시그널링되는 블록에서 에지가 검출될 때 변환 유닛 (52) 이 에지의 각도에 근사하는 각도를 갖는 변환을 선택하는 것을 나타내는 구성 데이터를 제공할 수도 있다. 더욱이, 위에서 설명한 바와 같이, 맵핑 데이터 (66) 는 인트라 예측 모드들 및 (인트라 예측 모드들을 정의할 수도 있는) 그 인트라 예측 모드들에 대한 각도들로부터 방향 변환들에의 맵핑을 포함할 수도 있다. 따라서, 변환 유닛 (52) 은 블록 내 에지의 각도에 가깝게 근사하는 각도를 갖는 인트라 예측 모드를 결정할 뿐만 아니라, 그 결정된 인트라 예측 모드에 맵핑된 변환을 결정하기 위해, 맵핑 데이터 (66) 에 대해 질의할 수도 있다.
이 방식에서, 비디오 인코더 (20) 는 인트라 예측 모드를 이용하여 형성된 예측된 블록에 기초하여 비디오 데이터의 블록에 대한 잔여 블록을 계산하고, 그 잔여 블록을 인트라 예측 모드에 맵핑되는 변환을 이용하여 변환하도록 구성된 비디오 인코더의 일 예이다. 비디오 인코더 (20) 는 또한 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하고, 제 2 인트라 예측 모드를 제 1 인트라 예측 모드가 맵핑된 인트라 예측 모드들의 더 작은 세트로부터 결정하고, 제 2 인트라 예측 모드가 맵핑되는 방향 변환을 결정하고, 그리고 블록의 잔여 데이터에 방향 변환을 적용하도록 구성된 비디오 인코더의 일 예이다.
더욱이, 비디오 인코더 (20) 는 또한 비디오 데이터의 블록을 인코딩하는데 사용할 인트라 예측 모드를 선택하고, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하고, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 다수의 가능한 변환들 중 하나를 선택하고, 다수의 가능한 변환들 중 선택된 하나를 이용하여 그 서브-블록들을 변환하고, 그리고 블록의 사이즈에 대해 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하도록 구성된 비디오 인코더의 일 예이다.
더욱이, 비디오 인코더 (20) 는 인트라 예측 인코딩되는 블록이 그 블록 내에 에지를 포함한다고 결정하고, 에지 방향성 인트라 예측 모드를 이용하여 계산된 예측 값에 기초하여 그 블록에 대한 잔여 블록을 계산하고, 그 잔여 블록을 에지의 각도에 근사하는 각도를 갖는 방향성 인트라 예측 모드에 맵핑된 방향 변환을 이용하여 변환하고, 그리고 그 변환된 잔여 블록을 나타내는 정보 및 그 블록이 DC 인트라 예측 모드를 이용하여 예측되었다는 것을 나타내는 정보를 출력하도록 구성된 비디오 인코더의 일 예이다.
변환 유닛 (52) 은 결과의 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다. 그 후, 양자화 유닛 (54) 은 그 변환 계수들을 양자화할 수도 있다. 일부 예들에서, 그 후 양자화 유닛 (54) 이 그 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 이의 대안으로, 엔트로피 코딩 유닛 (56) 이 그 스캔을 수행할 수도 있다. 본 개시물은 엔트로피 코딩 유닛 (56) 이 그 스캔을 수행하는 것으로 설명하지만, 다른 예들에서는, 다른 프로세싱 유닛들, 예컨대 양자화 유닛 (54) 이 그 스캔을 수행할 수도 있는 것으로 이해되어야 한다.
일부 예들에서, 엔트로피 코딩 유닛 (56) 은 그 선택된 인트라 예측 모드의 표시를 인트라 예측 유닛 (46) 으로부터 또는 변환 유닛 (52) 으로부터 수신할 수도 있다. 엔트로피 코딩 유닛 (56) 은 2 차원 매트릭스를 1 차원 벡터로 변환하기 위해, 그 변환 계수들의 매트릭스에 적용할 스캔을 선택할 수도 있다. 일부 예들에서, 엔트로피 코딩 유닛 (56) 은 스캔들의 미리 결정된 세트로부터 스캔을 선택한다. 맵핑 데이터 (66) 는 인트라 예측 모드들의 더 작은 세트를 스캔들의 미리 결정된 세트에 맵핑할 수도 있다. 엔트로피 코딩 유닛 (56) 은 예를 들어, 블록 유형 (인터 또는 인트라), (인트라-코딩된 블록을 가정하면) 인트라 예측 모드, 및/또는 TU 에 적용되는 변환의 유형 (예컨대, DCT 또는 KLT) 과 같은 현재의 TU 의 여러 특성들에 기초하여, 스캔을 선택할 수도 있다.
일부 예들에서, 엔트로피 코딩 유닛 (56) 은 적응적 스캔을 수행하도록 구성될 수도 있다. 먼저 (예컨대, 현재의 프레임의 제 1 TU 에 대해), 엔트로피 코딩 유닛 (56) 은 미리 결정된 스캔 패턴을 사용할 수도 있다. 시간 경과에 따라, 엔트로피 코딩 유닛 (56) 은 적응적 스캔을 수행하기 위해 그 스캔 패턴을 업데이트할 수도 있다. 일반적으로, 적응적 스캔의 목표는 특정의 변환 계수가 논-제로일 확률을 결정하는 것이다. 그 후, 스캔 순서는 일반적으로 논-제로일 최고 확률을 가진 계수들로부터 논-제로일 최저 확률을 가진 계수들로 진행한다. 엔트로피 코딩 유닛 (56) 은 이들 확률들을 시간 경과에 따라서 여러 통계치들 및 계산들을 이용하여 결정할 수도 있다. 더욱이, 엔트로피 코딩 유닛 (56) 은 각각의 인트라 예측 모드, 변환, 캐스케이드된 변환, 또는 이들의 임의의 조합에 대한 별개의 통계치들을 추적할 수도 있다.
엔트로피 코딩 유닛 (56) 은 높은-동적-범위 표 및 동적-업데이팅 스캔 표들을 이용하여, 논-제로일 변환 계수들의 확률들을 결정하고 적응적 스캔 순서를 결정할 수도 있다. N x N TU 를 가정하면, 이들 표들 각각은 TU 의 변환 계수들에 대응하는 값들을 갖는 N x N 표들일 수도 있다. 높은-동적-범위 표는 각각의 변환 계수가 논-제로일 확률들을 제공하는 고정된, 미리 결정된 표일 수도 있다. 이 표는 트레이닝 (training) 데이터의 세트에 기초하여 계산될 수도 있다. 더욱이, 이 표는 적응적 스캔 순서에 시작 지점을 제공하기 위해 사용될 수도 있다.
엔트로피 코딩 유닛 (56) 은 변환 계수들에 대한 최근에 결정된 통계치들을 반영하기 위해, 동적-업데이팅 스캔 표를 시간 경과에 따라 업데이트할 수도 있다. 엔트로피 코딩 유닛 (56) 은 N x N 변환 매트릭스에서 특정의 로케이션에서의 각각의 계수가 논-제로인 횟수를 계속 카운트할 수도 있다. 즉, 현재의 프레임의 각각의 TU 에 대해, 엔트로피 코딩 유닛 (56) 은 현재의 변환 블록에서, 특히, 현재의 CU 에 대한 인트라 예측 모드, 변환, 및/또는 캐스케이드된 변환과 연관되는 동적-업데이팅 스캔 표에서 논-제로 계수들에 대응하는 동적-업데이팅 스캔 표에서의 값들을 증분할 수도 있다. 예를 들어, 로우 2 및 칼럼 1 에서의 변환 계수가 논-제로이면, 엔트로피 코딩 유닛 (56) 은 1 을 동적 업데이팅 스캔 표의 로우 2 및 칼럼 1 의 값에 가산할 수도 있다. 엔트로피 코딩 유닛 (56) 은 또한 그 값들이 최대 값을 초과하는 것을 방지하기 위해 동적-업데이팅 스캔 표에서의 값들을 주기적으로 정규화할 수도 있다.
현재의 프레임의 제 1 TU 에 대해 적응적 스캔을 수행하기 위해, 엔트로피 코딩 유닛 (56) 은 높은-동적-범위 표에 단독으로 기초하여 스캔할 수도 있다. 엔트로피 코딩 유닛 (56) 은 또한 동적-업데이팅 스캔 표를, 예컨대, 동적-업데이팅 스캔 표의 모든 값들을 제로로 설정함으로써, 초기화할 수도 있다. 변환 블록에서 각각의 논-제로 계수에 대해, 엔트로피 코딩 유닛 (56) 은 현재의 TU 에 대한 인트라 예측 모드 및 변환 또는 캐스케이드된 변환과 연관되는 동적-업데이팅 스캔 표에서의 연어를 이루는 값에 1 을 가산할 수도 있다. 동일한 인트라 예측 모드 및 변환 또는 캐스케이드된 변환을 이용하는 후속 TUs 에 대해, 엔트로피 코딩 유닛 (56) 은, 그 변환 계수들 중 어느 계수가 가장 논-제로일 가능성이 있는지를 결정하고 그 후 계수들이 논-제로일 우도를 감소시키는 순서로 스캔하기 위해, 동적-업데이팅 스캔 표를 먼저 참조할 수도 있다. 일부의 경우, 동적-업데이팅 스캔 표에서 2 개의 이상 값들이 동일할 수도 있다. 이러한 경우, 엔트로피 코딩 유닛 (56) 은 어느 계수를 다음에 스캔할지를 결정하기 위해 높은-동적-범위 표를 참조한다. 이 방식에서, 엔트로피 코딩 유닛 (56) 은 높은-동적-범위 표와 동적-업데이팅 스캔 표의 조합에 기초하여 각각의 인트라 예측 모드, 변환, 또는 캐스케이드된 변환 (또는 이들의 임의의 조합) 에 대해 적응적 스캔을 수행할 수도 있다.
변환 계수들의 2 차원 매트릭스를 스캔함으로써, 엔트로피 코딩 유닛 (56) 은 변환 계수들을 포함하는 1 차원 어레이를 생성할 수도 있다. 그 후, 엔트로피 코딩 유닛 (56) 은 어레이를 형성하기 위해 그 TU 를 스캔하고, 비트 레이트를 추가로 감소시키기 위해 그 스캔 이후에 그 어레이에서의 변환 계수들을 양자화할 수도 있다. 양자화 프로세스는 그 계수들의 일부 또는 모두와 연관되는 비트 깊이를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 변경될 수도 있다.
엔트로피 코딩 유닛 (56) 은 또한 적응적 스캔 이전에 또는 그 동안에, 매트릭스의 계수들에 대한 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 신택스 엘리먼트들은 특정의 계수가 유효한지 (예컨대, 논-제로인지) 여부를 나타내는 유효 계수 플래그, 및 특정의 계수가 적응적 스캔에서 스캔된 최종 계수인지 여부를 나타내는 최종 계수 플래그를 포함할 수도 있다. 비디오 디코더는 비디오 디코더가 엔트로피 코딩 유닛 (56) 에 의해 인코딩된 계수들을 역 스캔할 수 있도록, 이들 신택스 엘리먼트들을 이용하여 동적 업데이팅 스캔 표를 재구성할 수도 있다.
신택스 엘리먼트들을 엔트로피 인코딩하기 위해, 엔트로피 코딩 유닛 (56) 은 CABAC 을 수행하고 컨텍스트 모델들을, 예를 들어, 이전에 스캔되는 N 개의 계수들에서 유효 계수들의 개수에 기초하여 선택할 수도 있으며, 여기서 N 은 스캔되는 블록의 사이즈에 관련될 수도 있는 정수 값이다. 엔트로피 코딩 유닛 (56) 은 또한 컨텍스트 모델을 변환 계수들의 블록으로 변환된 잔여 데이터를 계산하는데 사용된 예측 모드, 및 그 잔여 데이터를 변환 계수들의 블록으로 변환하는데 사용된 변환의 유형에 기초하여 선택할 수도 있다. 대응하는 예측 데이터가 인트라 예측 모드를 이용하여 예측되었을 때, 엔트로피 코딩 유닛 (56) 은 또한 컨텍스트 모델의 선택을 인트라 예측 모드의 방향에 기초할 수도 있다.
이 방식에서, 비디오 인코더 (20) 는 변환 계수들의 중간, 2 차원 블록을 생성하기 위해 제 1 변환을 이용하여 비디오 데이터의 블록에 대한 잔여 데이터를 변환하고, 변환 계수들의 2 차원 블록을 생성하기 위해 회전 변환을 이용하여 변환 계수들의 중간, 2 차원 블록을 변환하고, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는, 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 통계치들의 세트를 선택하고, 그리고 통계치들의 선택된 세트에 기초하여 변환 계수들의 2 차원 블록을 적응적으로 스캔하도록 구성된 비디오 인코더의 일 예를 나타낸다.
비디오 인코더 (20) 는 또한 변환 계수들의 1 차원 벡터를 생성하기 위해 변환 계수들의 2 차원 블록을 스캔하고, 1 차원 벡터에서 변환 계수들이 유효한지 여부를 나타내는 값들을 결정하고, 그리고 그 값들 중 적어도 하나 앞에서 인코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 인코딩하도록 구성된 비디오 인코더의 일 예를 나타낸다.
일부 예들에서, 변환 유닛 (52) 은 어떤 변환 계수들 (즉, 어떤 로케이션들에서 변환 계수들) 을 제로 아웃하도록 구성될 수도 있다. 예를 들어, 변환 유닛 (52) 은 그 변환 다음에 TU 의 상부-좌측 쿼드런트 바깥의 모든 변환 계수들을 제로 아웃하도록 구성될 수도 있다. 또 다른 예로서, 엔트로피 코딩 유닛 (56) 은 그 어레이에서의 어떤 위치 다음에 그 어레이에서의 변환 계수들을 제로 아웃하도록 구성될 수도 있다. 일부 예들에서, 엔트로피 코딩 유닛 (56) 은 2 차원 매트릭스를 양자화할 수도 있으며, 엔트로피 코딩 유닛 (56) 은 스캔을 수행할 수도 있다. 임의의 경우, 비디오 인코더 (20) 는 변환 계수들의 어떤 부분을, 예컨대, 그 스캔 전후에, 제로 아웃하도록 구성될 수도 있다. 어구 "제로 아웃 (zero out)" 은 계수의 값을 0 과 같게 설정하지만, 그 계수를 건너 뛰거나 또는 제외할 필요는 없다는 것을 의미하도록 하기 위해 사용된다.
양자화 다음에, 엔트로피 코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛 (56) 은 콘텐츠 적응 가변 길이 코딩 (CAVLC), 컨텍스트 적응 바이너리 산술 코딩 (CABAC), 또는 또 다른 엔트로피 코딩 기법을 수행할 수도 있다. 엔트로피 코딩 유닛 (56) 에 의한 엔트로피 코딩 다음에, 인코딩된 비디오는 또 다른 디바이스로 송신되거나 또는 추후 송신 또는 취출을 위해 아카이브될 수도 있다. 컨텍스트 적응 가변 길이 코딩의 경우에, 컨텍스트는 이웃하는 블록들에 기초할 수도 있다.
일부의 경우, 엔트로피 코딩 유닛 (56) 또는 비디오 인코더 (20) 의 또 다른 유닛은 엔트로피 코딩에 더해서, 다른 코딩 기능들을 수행하도록 구성될 수도 있다. 예를 들어, 엔트로피 코딩 유닛 (56) 은 그 블록들에 대한 코딩된 블록 패턴 (CBP) 값들을 결정하도록 구성될 수도 있다. 또한, 일부의 경우, 엔트로피 코딩 유닛 (56) 은 블록에서의 계수들의 런 길이 (run length) 코딩을 수행할 수도 있다.
역양자화 유닛 (58) 및 역변환 유닛 (60) 은 예컨대, 추후 참조 블록으로서의 사용을 위해, 픽셀 도메인에서 그 잔여 블록을 재구성하기 위해, 역양자화 및 역변환을 각각 적용한다. 모션 보상 유닛 (44) 은 잔여 블록을 참조 프레임 스토어 (64) 의 프레임들 중 하나의 예측 블록에 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한 모션 추정에서 사용하기 위한 서브-정수 픽셀 값들을 계산하기 위해 하나 이상의 내삽 필터들을 그 재구성된 잔여 블록에 적용할 수도 있다. 합산기 (62) 는 참조 프레임 스토어 (64) 에 저장을 위한 재구성된 비디오 블록을 생성하기 위해, 그 재구성된 잔여 블록을 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 가산한다. 재구성된 비디오 블록은 후속 비디오 프레임에서 블록을 인터-코딩하는데, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 사용될 수도 있다.
도 3 은 인코딩된 비디오 시퀀스를 디코딩하는 비디오 디코더 (30) 의 일 예를 도시하는 블록도이다. 도 3 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (70), 모션 보상 유닛 (72), 인트라 예측 유닛 (74), 역양자화 유닛 (76), 역변환 유닛 (78), 참조 프레임 스토어 (82) 및 합산기 (80) 를 포함한다. 비디오 디코더 (30) 는 일부 예들에서, 비디오 인코더 (20) (도 2) 에 대해 설명한 인코딩 단계에 일반적으로 반대인 디코딩 단계 (pass) 를 수행할 수도 있다. 모션 보상 유닛 (72) 은 예측 데이터를 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들에 기초하여 생성할 수도 있다. 인트라 예측 유닛 (74) 은 현재의 프레임의 현재의 블록에 대한 예측 데이터를, 시그널링된 인트라 예측 모드 및 현재의 프레임의 이전에 디코딩된 블록들로부터의 데이터에 기초하여, 생성할 수도 있다.
일부 예들에서, 엔트로피 디코딩 유닛 (70) 또는 역양자화 유닛 (76) 은 그 수신된 값들을 비디오 인코더 (20) 에 의해 사용되는 것을 반영하는 스캔을 이용하여 스캔할 수도 있다. 도 3 의 예에서, 비디오 디코더 (30) 는 맵핑 데이터 (84) 를 포함하며, 이 맵핑 데이터 (84) 는 맵핑 데이터 (66) 의 데이터와 유사하거나 또는 동일한 데이터를 포함할 수도 있다. 따라서, 비디오 디코더 (30) 는 예를 들어, (예컨대, 현재의 블록을 포함하는 LCU 에 대한 쿼드트리의 루트 노드에 나타나는) 현재의 블록에 대한 인트라-코딩 모드, 현재의 블록에 대한 변환, 현재의 블록에 대한 캐스케이드된 변환, 또는 스캔을 선택하기 위해 비디오 인코더 (20) 에 의해 사용되는 다른 인자들의 표시에 기초하여, 스캔을 선택할 수도 있다. 이와 유사하게, 비디오 디코더 (30) 는 적응적 스캔을 수행하거나, 또는 미리 결정된 스캔을 이들 인자들에 기초하여 선택하도록 구성될 수도 있다. 이 방식에서, 비디오 디코더 (30) 는 양자화된 변환 계수들의 2 차원 매트릭스를 수신된 계수들의 1 차원 어레이로부터 생성할 수도 있다.
역양자화 유닛 (76) 은 비트스트림으로 제공되어 엔트로피 디코딩 유닛 (70) 에 의해 디코딩된 양자화된 변환 계수들을 역 양자화, 즉, 양자화 해제한다. 역양자화 프로세스는 예컨대, H.264 디코딩 표준에 의해 또는 HEVC 에 의해 정의된 바와 같은, 종래의 프로세스를 포함할 수도 있다. 역양자화 프로세스는 양자화의 정도 및 이와 유사하게, 적용되어야 하는 역양자화의 정도를 결정하기 위해, CU 에 대해 비디오 인코더 (20) 에 의해 계산된 양자화 파라미터 QPY 의 사용을 포함할 수도 있다.
역변환 유닛 (58) 은 역변환, 예컨대, 역 DCT, 역 정수 변환, 역 회전 변환, 또는 역 방향 변환을 적용한다. 일부 예들에서, 역변환 유닛 (78) 은 수신된 인트라 예측 인코딩된 블록을 위한 시그널링된 인트라 예측 모드에 기초하여 역변환을 결정할 수도 있다. 그 블록이 하나 보다 많은 변환이 가능한 사이즈이면, 인트라 예측 모드에 기초하여, 역변환 유닛 (78) 은 현재의 블록에 적용할 변환을, 현재의 블록을 포함하는 LCU 에 대한 쿼드트리의 루트 노드에서의 시그널링된 변환에 기초하여 결정할 수도 있다. 일부 예들에서, 역변환 유닛 (78) 은 캐스케이드된 역변환, 예컨대, 역 방향 변환이 뒤따르는 역 회전 변환을 먼저 적용할 수도 있다.
일부 예들에서, 예컨대, 시그널링된 인트라 예측 모드가 DC 예측 모드인 경우, 역변환 유닛 (58) (또는, 비디오 디코더 (30) 의 또 다른 유닛) 이 에지가 현재의 블록에 존재하는지 여부를 결정할 수도 있다. 역변환 유닛 (58) 은 에지가 존재하는지 여부를, 도 2 의 비디오 인코더 (20) 에 대해 설명한 기법들에 실질적으로 대응하는 기법들을 이용하여, 결정할 수도 있다. 에지가 현재의 블록에 존재하면, 역변환 유닛 (78) 은 그 블록 내 에지의 각도를 결정하고 에지의 각도에 근사하는 각도를 갖는 인트라 예측 모드에 맵핑되는 역변환을 선택할 수도 있다.
위에서 설명한 바와 같이, 맵핑 데이터 (84) 는 인트라 예측 모드들에 대한 각도들, 및 인트라 예측 모드들과 역변환들 사이의 맵핑들을 제공할 수도 있다. 따라서, 역변환 유닛 (78) 은 DC 예측 모드가 시그널링될 때 에지의 각도에 가깝게 근사하는 각도를 갖는 인트라 예측 모드에 맵핑되는 역변환을 결정하기 위해, 맵핑 데이터 (84) 에 대해 질의할 수도 있다. 더욱이, 인트라 예측 유닛 (74) 은 그 블록에서 에지가 검출될 때, 블록을 예측하기 위해, 그 블록용으로 시그널링되는 DC 예측 모드 대신, 에지 기반 예측 모드를 적용할 수도 있다. 맵핑 데이터 (84) 는 또한 수신된 양자화된 변환 계수들에 대한 역 스캔을 선택하기 위해, 인트라 예측 모드, 2 차 변환, 예컨대 회전 변환, 또는 이들의 조합으로부터, 스캔 인덱스에 맵핑을 제공할 수도 있다.
모션 보상 유닛 (72) 은 아마도, 내삽 필터들에 기초한 내삽을 수행하여, 모션 보상된 블록들을 생성한다. 서브-픽셀 정밀도를 갖는 모션 추정에 사용되는 내삽 필터들을 위한 식별자들이 신택스 엘리먼트들에 포함될 수도 있다. 모션 보상 유닛 (72) 은 비디오 블록의 인코딩 동안 비디오 인코더 (20) 에 의해 사용되는 내삽 필터들을 이용하여, 참조 블록의 서브-정수 픽셀들에 대해 내삽된 값들을 계산할 수도 있다. 모션 보상 유닛 (72) 은 수신된 신택스 정보에 따라서 비디오 인코더 (20) 에 의해 사용되는 내삽 필터들을 결정하고, 그 내삽 필터들을 이용하여 예측 블록들을 생성할 수도 있다.
모션 보상 유닛 (72) 및 인트라 예측 유닛 (74) 은 (예컨대, 쿼드트리에 의해 제공되는) 신택스 정보의 일부를 이용하여, 인코딩된 비디오 시퀀스의 프레임(들) 을 인코딩하는데 사용되는 LCUs 의 사이즈들, 인코딩된 비디오 시퀀스의 프레임의 각각의 CU 가 어떻게 분할되는지 (그리고, 마찬가지로, 서브-CUs 가 어떻게 분할되는지) 를 기술하는 분할 정보, 각각의 분할이 어떻게 인코딩되는지를 나타내는 모드들 (예컨대, 인트라- 또는 인터 예측, 및 인트라 예측 인코딩 모드에 대해), 각각의 인터-인코딩된 PU 에 대한 하나 이상의 참조 프레임들 (및/또는, 그 참조 프레임들에 대한 식별자들을 포함하는 참조 리스트들), 및 인코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보를 결정한다.
합산기 (80) 는 잔여 블록들을 모션 보상 유닛 (72) 또는 인트라 예측 유닛 (74) 에 의해 생성된 대응하는 예측 블록들과 결합하여, 디코딩된 블록들을 형성한다. 원할 경우, 디블로킹 필터가 또한 디코딩된 블록들을 필터링하여 블록킹 아티팩트들을 제거하기 위해, 적용될 수도 있다. 그 후, 디코딩된 비디오 블록들이 참조 프레임 스토어 (82) 에 저장되며, 참조 프레임 스토어 (82) 는 후속 모션 보상을 위해 참조 블록들을 제공하고 또한 디스플레이 디바이스 (예컨대, 도 1 의 디스플레이 디바이스 (32)) 상에의 프리젠테이션을 위해 디코딩된 비디오를 생성한다.
이 방식에서, 비디오 디코더 (30) 는 비디오 데이터의 블록을 예측하는데 사용되는 인트라 예측 모드를 결정하고, 그 블록의 변환된 잔여 데이터를 인트라 예측 모드에 맵핑되는 역변환을 이용하여 역변환하도록 구성된 비디오 디코더의 일 예이다. 비디오 디코더 (30) 는 또한 인코딩된 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하고, 제 2 인트라 예측 모드를 제 1 인트라 예측 모드가 맵핑된 인트라 예측 모드들의 더 작은 세트로부터 결정하고, 제 2 인트라 예측 모드가 맵핑되는 역 방향 변환을 결정하고, 그리고 그 블록의 변환된 잔여 데이터에 역 방향 변환을 적용하도록 구성된 비디오 디코더의 일 예이다.
비디오 디코더 (30) 는 또한 비디오 데이터의 블록을 디코딩하는데 사용할 인트라 예측 모드의 제 1 표시를 수신하고, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하고, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 역변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 다수의 가능한 역변환들 중 하나의 제 2 표시를 수신하고, 그리고 다수의 가능한 역변환들 중 나타낸 하나를 이용하여 그 서브-블록들을 역변환하도록 구성된 비디오 디코더의 일 예이다.
비디오 디코더 (30) 는 또한 인코딩된 변환 계수들의 수신된 1 차원 벡터에서 인코딩된 변환 계수들이 유효한지 여부를 나타내는 값들을 수신하고, 그 값들 중 적어도 하나 앞에 디코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 디코딩하고, 그리고 변환 계수들의 2 차원 블록을 생성하기 위해 그 1 차원 벡터를 역 스캔하도록 구성된 비디오 디코더의 일 예이다.
비디오 디코더 (30) 는 또한 비디오 데이터의 블록에 대한 잔여 데이터가 변환 계수들의 2 차원 블록을 생성하기 위해 양자의 제 1 변환 및 회전 변환을 이용하여 변환되었다는 표시를 수신하고, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는, 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 통계치들의 세트를 선택하고, 그리고, 그 블록에 대한 변환 계수들의 2 차원 매트릭스를 생성하기 위해 그 통계치들의 선택된 세트에 기초하여 그 블록에 대한 잔여 데이터의 인코딩된 버전을 포함하는 수신된 1 차원 벡터를 적응적으로 역 스캔하도록 구성된 비디오 디코더의 일 예이다.
비디오 디코더 (30) 는 또한 비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하고, 비디오 데이터의 블록에서의 그 에지에 대한 각도를 그 블록에 대한 DC 인트라 예측 모드의 표시에 기초하여 결정하고, 그 블록을 에지의 각도에 근사하는 각도를 갖는 방향성 인트라 예측 모드에 맵핑된 방향 역변환을 이용하여 역변환하고, 그리고 그 역변환된 블록을 디코딩하도록 구성된 비디오 디코더의 일 예이다.
도 4 는 인트라 예측 모드들과 연관되는 방향들의 예시적인 세트를 나타낸 그래프 (104) 를 도시하는 개념도이다. 도 4 의 예에서, 블록 (106) 은 선택된 인트라 예측 모드에 따라서 이웃하는 픽셀들 (100A-100AG) (이웃하는 픽셀들 (100)) 로부터 예측될 수 있다. 화살표들 (102A-102AG) (화살표들 (102)) 은 여러 인트라 예측 모드들과 연관되는 방향들 또는 각도들을 나타낸다. 도 4 의 예는 HM 에 의해 제공되는 인트라 예측 모드들을 나타낸다. 그러나, 다른 예들에서, 더 많거나 또는 더 적은 인트라 예측 모드들이 제공될 수도 있다. 블록 (106) 의 예는 8 x 8 픽셀 블록이지만, 일반적으로, 블록은 임의 개수의 픽셀들, 예컨대, 4 x 4, 8 x 8, 16 x 16, 32 x 32, 64 x 64, 128 x 128 등을 가질 수도 있다. HM 이 정사각형 PUs 에 대해 제공하지만, 본 개시물의 기법들은 또한 다른 블록 사이즈들, 예컨대, N x M 블록들에도 적용될 수도 있으며, 여기서 N 은 반드시 M 과 같지는 않다.
인트라 예측 모드는 예를 들어, 블록 (106) 의 수직 측면들에 수직한 수평축에 대한 예측 방향의 각도에 따라서 정의될 수도 있다. 따라서, 화살표들 (102) 의 각각은 대응하는 인트라 예측 모드의 예측 방향의 특정의 각도를 나타낼 수도 있다. 일부 예들에서, 인트라 예측 방향 모드는 정수 쌍 (dx, dy) 에 의해 정의될 수도 있으며, 이 정수 쌍은 대응하는 인트라 예측 모드가 컨텍스트 픽셀 외삽을 위해 사용하는 방향을 나타낼 수도 있다. 즉, 인트라 예측 모드의 각도는 dy/dx 로서 계산될 수도 있다. 즉, 각도는 수평 오프셋 dx 및 수직 오프셋 dy 에 따라서 나타낼 수도 있다. 블록 (106) 에서 로케이션 (x, y) 에서의 픽셀의 값은 라인이 dy/dx 의 각도를 갖는 로케이션 (x, y) 을 통과하는 이웃하는 픽셀들 (100) 중 하나로부터 결정될 수도 있다.
일부 예들에서, 화살표들 (102) 로 나타낸 각도들에 대응하는 인트라 예측 모드들의 각각이 특정의 변환에 맵핑될 수도 있다. 일부 예들에서는, 2 개의 이상 인트라 예측 모드들이 동일한 변환에 맵핑될 수도 있다. 변환들은 방향 변환들, KLTs, 회전 변환들, 이산 코사인 변환들, 이산 사인 변환들, Fourier 변환들, 또는 특정의 인트라 예측 모드들에 대해 구체적으로 선택된 다른 변환들에 대응할 수도 있다. 이러한 변환들은, 변환들이 특정의 인트라 예측 모드들에 대해 선택된다는 점에서, 일반적으로 "설계된" 변환들로서 지칭될 수도 있다.
위에서 설명한 바와 같이, 일부 예들에서, 인트라 예측 모드들의 세트는 다-대-일 대응에 의해, 인트라 예측 모드들의 더 작은 세트, 예컨대, 서브세트에 맵핑될 수도 있다. 달리 말하면, 모드들의 큰 세트에서 인트라 예측 모드들에 대한 각도들은 모드들의 더 작은 세트에서의 인트라 예측 모드들의 각도들에 맵핑될 수도 있다. 일부 예들에서, 맵핑은 수식을 이용하여 실현될 수도 있다. 예를 들어, 수식은 본원에서 α 로 지칭되는 실제 예측 방향 각도와, 본원에서 βi 로 지칭되는 인트라 예측 모드들의 더 작은 세트의 예측 방향 각도들 사이의 절대 예측 각도 차이를 최소화하는 맵핑을 제공할 수도 있다. 예측 방향 각도 α 가 주어지면, 수식은 상기 수식 (1) 이 만족되도록 βi 를 제공할 수도 있다. 수식 (1) 이 편의상 아래에 다시 언급된다:
arg{βi} min (min(abs(α - βi),abs(-α - βi))) (1)
일 예에서, 인트라 예측 모드들의 더 작은 세트는 화살표들 (102E, 102I, 102M, 102Q, 102U, 102Y, 102AC, 및 102AG) 과 동일한 각도들을 가질 수도 있다. 따라서, 화살표들 (102) 의 각도들의 각각은 화살표들 (102E, 102I, 102M, 102Q, 102U, 102Y, 102AC, 및 102AG) 에 대한 각도들 중 하나에 맵핑될 수도 있다. 일 예로서, 화살표들 (102A-102E) 에 대한 각도들은 화살표 (102E) 에 대한 각도에 맵핑될 수도 있으며, 화살표들 (102F-102I) 에 대한 각도들은 화살표 (102I) 에 대한 각도에 맵핑될 수도 있으며, 화살표들 (102J-102M) 에 대한 각도들은 화살표 (102M) 에 대한 각도에 맵핑될 수도 있으며, 화살표들 (102N-102Q) 에 대한 각도들은 화살표 (102Q) 에 대한 각도에 맵핑될 수도 있으며, 화살표들 (102R-102U) 에 대한 각도들은 화살표 (102U) 에 대한 각도에 맵핑될 수도 있으며, 화살표들 (102V-102Y) 에 대한 각도들은 화살표 (102Y) 에 대한 각도에 맵핑될 수도 있으며, 화살표들 (102Z-102AC) 에 대한 각도들은 화살표 (102AC) 에 대한 각도에 맵핑될 수도 있으며, 그리고 화살표들 (102AD-102AG) 에 대한 각도들은 화살표 (102AG) 에 대한 각도에 맵핑될 수도 있다.
다른 맵핑들이 또한 제공될 수도 있다. 일부 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 다양한 상이한 맵핑들로 구성될 수도 있으며, 비디오 인코더 (20) 는 특정의 비트스트림에 대해 사용되는 맵핑을 나타내는 정보를, 예컨대, 헤더 데이터, 시퀀스 파라미터 세트 (SPS), 또는 다른 시그널링된 데이터에, 제공할 수도 있다.
위에서 설명한 바와 같이, 일부 예들에서, 비디오 코딩 디바이스 (예컨대, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는 에지가 블록에 존재하는지 여부를 결정하도록 구성될 수도 있다. 예를 들어, 비디오 코딩 디바이스는 에지가 블록 (106) 에 존재하는지 여부를 하나 이상의 이웃하는 블록들의 픽셀들의 분석에 기초하여 결정하도록 구성될 수도 있으며, 여기서, 이웃하는 블록들은 이웃하는 픽셀들 (100) 중 하나 이상을 포함할 수도 있다. 일반적으로, 이웃하는, 이전에 코딩된 블록은 블록 (106) 과 보더를 공유할 수도 있으며, 여기서, 보더는 이웃하는 픽셀들 (100) 중 하나 이상에 대응할 수도 있다. 예를 들어, 블록 (106) 에 좌측-이웃하는 블록은 이웃하는 픽셀들 (100I-100P) 을 포함할 수도 있으며, 이웃하는 픽셀들 (100I-100P) 은 좌측-이웃하는 블록과 블록 (106) 사이의 보더를 정의한다.
비디오 코딩 디바이스는 에지가 이웃하는, 이전에 코딩된 블록에 존재하는지 여부를 결정하기 위해, 이웃하는, 이전에 코딩된 블록에서 픽셀들에 대한 기울기들을 계산하도록 구성될 수도 있다. 비디오 코딩 디바이스는 또한, 에지가 이웃하는, 이전에 코딩된 블록과 현재의 블록, 예컨대 블록 (106) 사이의 보더를 횡단하는지 (즉, 교차하는지) 여부를 결정할 수도 있다. 위에서 설명한 블록 (106) 에 대해 좌측-이웃하는 블록의 예에 있어, 비디오 코딩 디바이스는 좌측-이웃하는 블록에서의 픽셀들에 대한 기울기들이 좌측-이웃하는 블록과 블록 (106) 사이의 보더를 교차하는 에지의 존재를 나타내는지 여부를 결정할 수도 있으며, 이 예에서, 보더는 픽셀들 (100I-100P) 에 의해 정의된다. 비디오 코딩 디바이스가 좌측-이웃하는 블록에서의 픽셀들에 대한 기울기들이 에지의 존재를 나타내고 그 에지가 픽셀들 (100I-100P) 에 의해 정의되는 보더를 횡단한다고 결정할 때, 비디오 코딩 디바이스는 에지가 블록 (106) 으로 진행하고, 이에 따라서, 블록 (106) 이 에지를 포함한다고 결정할 수도 있다.
일부 예들에서, 블록 (106) 에 대한 시그널링된 인트라 예측 모드가 DC 예측 모드이고, 그리고 블록 (106) 이 에지를 포함한다고 비디오 코딩 디바이스가 결정할 때, 비디오 코딩 디바이스는 블록 (106) 을 에지-기반의 인트라 예측 모드를 이용하여 예측할 수도 있다. 더욱이, 비디오 코딩 디바이스는 에지의 각도를 결정할 수도 있다. 그 후, 비디오 코딩 디바이스는 그 에지의 각도에 가장 가깝게 근사하는, 일반적으로 화살표들 (102) 로 나타낸, 예측 모드의 각도를 결정할 수도 있다. 그 후, 비디오 코딩 디바이스는 에지의 각도에 가장 가깝게 근사하는 각도를 갖는 인트라 예측 모드에 맵핑된 변환 (디코딩할 때 역변환에 대응할 수도 있음) 을 선택하고, 그 선택된 변환을 블록 (106) 의 잔여 데이터에 적용할 수도 있다. 인코딩 프로세스 동안에는, 비디오 코딩 디바이스가 그 변환을 블록 (106) 의 TU 에 적용하는 반면, 디코딩 프로세스 동안에는, 비디오 코딩 디바이스가 역변환을 블록 (106) 에 대한 변환된 잔여 데이터에 적용할 수도 있다.
도 5 는 H.264 의 인트라 예측 모드들 (110A-110I) (인트라 예측 모드들 (110)) 를 도시하는 개념도이다. 인트라 예측 모드 (110C) 는 DC 인트라 예측 모드에 대응하며, 따라서 반드시 실제 각도와 연관될 필요가 없다. 나머지 인트라 예측 모드들 (110) 은 도 4 의 화살표들 (102) 의 각도들과 유사한 각도와 연관될 수도 있다. 예를 들어, 인트라 예측 모드 (110A) 의 각도는 화살표 (102Y) 에 대응하고, 인트라 예측 모드 (110B) 의 각도는 화살표 (102I) 에 대응하고, 인트라 예측 모드 (110D) 의 각도는 화살표 (102AG) 에 대응하고, 인트라 예측 모드 (110E) 의 각도는 화살표 (102Q) 에 대응하고, 인트라 예측 모드 (110F) 의 각도는 화살표 (102U) 에 대응하고, 인트라 예측 모드 (110G) 의 각도는 화살표 (102M) 에 대응하고, 인트라 예측 모드 (110H) 의 각도는 화살표 (102AD) 에 대응하고, 그리고 인트라 예측 모드 (110I) 의 각도는 화살표 (102E) 에 대응한다.
인트라 예측 모드들 (110) 중 하나에 직접 대응하지 않는 화살표들 (102) 의 각도들은 인트라 예측 모드들 (110) 중 하나에 맵핑될 수도 있다. 예를 들어, 화살표들 (102) 중 하나의 각도에 근사하는 인트라 예측 모드들 (110) 중 하나에 대한 각도는 화살표들 (102) 중 하나가 맵핑되는 각도에 대응할 수도 있다.
인트라 예측 모드들 (110) 의 각각은 특정의 변환에, 예컨대, 일-대-일 대응으로 맵핑될 수도 있다. 예를 들어, 비디오 코딩 디바이스, 예컨대 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 인트라 예측 모드 (110C) 를 DCT 에, 그리고 다른 인트라 예측 모드들 (110) 의 각각을 특정의 방향 변환, 예컨대, KLT 에 맵핑하는 구성 데이터를 포함할 수도 있다. 따라서, 화살표들 (102) (도 4) 과 연관되는 인트라 예측 모드들의 각각에 대한 각도들은 인트라 예측 모드들 (110) (도 5) 의 각도들에 맵핑될 수도 있다. 인트라 예측 모드들 (110) 은 따라서, 변환들, 예컨대, 방향 변환들에 맵핑될 수도 있다. 이 방식에서, 화살표들 (102) (도 4) 과 연관되는 인트라 예측 모드들의 각각에 대한 각도들이 방향 변환들에 맵핑될 수도 있다. 따라서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 TU 에 적용할 방향 변환을, 그 TU 에 대응하는 PU 에 대해 선택된 인트라 예측 모드에 기초하여 결정할 수도 있다.
도 6 은 계수들 (120A-120P) (계수들 (120)) 의 예시적인 지그-재그 스캔을 도시하는 개념도이다. 계수들 (120) 은 일반적으로 TU 의 픽셀들의 변환 및 양자화로부터 기인하는 양자화된 변환 계수들에 대응한다. 비디오 인코더 (20) 는 예컨대, 잔여 블록에의 DCT 의 적용 이후에, 도 6 의 지그-재그 스캔을 이용하여, 계수들의 블록을 스캔하도록 구성될 수도 있다. 이 예에서, 지그-재그 스캔은 계수 (120A) 에서 시작하여, 그 후 계수 (120B) 로, 그 후 계수 (120E) 로, 그 후 계수 (120I) 로, 그 후 계수 (120F) 로, 그 후 계수 (120C) 로, 그 후 계수 (120D) 로, 그 후 계수 (120G) 로, 그 후 계수 (120J) 로, 그 후 계수 (120M) 로, 그 후 계수 (120N) 로, 그 후 계수 (120K) 로, 그 후 계수 (120H) 로, 그 후 계수 (120L) 로, 그 후 계수 (120O) 로, 그리고 마지막으로 계수 (120P) 로 진행한다.
이 스캔을 수행함으로써, 픽셀들에 대한 계수들의 2 차원 배열은 계수들 (120) 의 각각에 대한 값들을 포함한 1 차원 어레이로 변환될 수도 있다. 이 값들은 어레이에 스캔의 순서로 배열될 수도 있다. 예를 들어, 계수 (120A) 에 대한 값이 먼저 어레이에 있고, 그 다음에, 계수들 (120B, 120E, 120I, 120F), 및 기타 등등에 대한 값들이 뒤이어질 수도 있다.
다른 미리 정의된 스캔 패턴들이 또한 다른 변환들에 대해 정의될 수도 있다. 예를 들어, 각각의 방향 변환은 그 방향 변환으로부터 기인하는 낮은 주파수 계수들을 어레이에서 더 높은 주파수 계수들보다 더 일찍 위치하도록 설계된 스캔 패턴과 연관될 수도 있다. 방향 변환들 중 하나는 낮은 주파수 계수들을 변환 계수들의 블록의 극좌 (far left) 칼럼을 따라서 생성하도록 할 수도 있으며, 이 경우, 대응하는 스캔은 계수 (120A) 에서 시작하여, 그 후 계수 (120E) 로, 그 후 계수 (120I) 로, 그 후 계수 (120M) 로, 그 후 (120B) 등으로 진행하도록 정의될 수도 있다. 또 다른 예로서, 방향 변환들 중 또 다른 하나는 낮은 주파수 계수들을 변환 계수들의 블록의 최상부 (top) 로우를 따라서 생성하도록 할 수도 있으며, 이 경우, 대응하는 스캔은 계수 (120A) 에서 시작하여, 그 후 계수 (120B) 로, 그 후 계수 (120C) 로, 그 후 계수 (120D) 로, 그 후 계수 (120E) 등으로 진행하도록 정의될 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 미리 정의된 스캔 대신, 적응적 스캔을 수행하도록 구성될 수도 있다. 적응적 스캔은 특정의 계수들 (즉, 계수들 (120) 에 대응하는 계수들) 이 유효한지 여부를 나타내는 통계치들에 기초하여 시간 경과에 따라 변할 수도 있다. 더욱이, 비디오 인코더 (20) 는 통계치들의 별개의 세트들을, 예를 들어, 블록을 예측하기 위해 선택된 인트라 예측 모드, 초기 변환 다음에 적용할 회전 변환의 인덱스, 또는 다른 인자들에 기초하여, 계산할 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 이들 통계치들에 대한 2 개의 표들, 즉 높은-동적-범위 표 및 동적-업데이팅 스캔 표를 포함할 수도 있다. 스캔되는 블록이 N x N 개의 계수들을 갖는다고 가정하면, 이들 2 개의 표들의 각각은 또한 N x N 개의 사이즈들을 가질 수도 있다. 높은-동적-범위 표는 각각의 변환 계수가 논-제로일 확률들을 제공하는, 고정된, 미리 결정된 표일 수도 있다. 이 표는 트레이닝 데이터의 세트에 기초하여 계산될 수도 있다. 더욱이, 이 표는 시작 지점을 그 적응적 스캔 순서에 제공하기 위해 사용될 수도 있다. 일반적으로, 높은-동적-범위 표는 비트스트림에 대해 정적일 수도 있다 (즉, 변경되지 않을 수도 있다).
동적-업데이팅 스캔 표는 변환 계수들에 대한 최근에 결정된 통계치들을 반영하기 위해 시간 경과에 따라서 업데이트될 수도 있다. 특히, 비디오 인코더 (20) 는 각각의 계수가 논-제로인 횟수를 계속 카운트할 수도 있다. 즉, 각각의 변환 블록에 대해, 비디오 인코더 (20) 는 현재의 변환 블록에서의 논-제로 계수들에 대응하는 동적-업데이팅 스캔 표에서의 값들을 증분할 수도 있다. 예를 들어, 계수 (120E) 에 대응하는 변환 계수가 논-제로이면, 비디오 인코더 (20) 는 계수 (120E) 에 대응하는 동적 업데이팅 스캔 표에서의 값에 1 을 가산할 수도 있다. 동적-업데이팅 스캔 표에서 값들은 또한 그 값들이 최대 값을 초과하는 것을 방지하기 위해, 주기적으로 정규화될 수도 있다.
프레임의 제 1 변환 유닛에 대해 적응적 스캔을 수행하기 위해, 비디오 인코더 (20) 는 단지 높은-동적-범위 표에만 기초하여 스캔할 수도 있다. 비디오 인코더 (20) 는 또한 동적-업데이팅 스캔 표를, 예컨대, 동적-업데이팅 스캔 표에서의 모든 값들을 제로로 설정함으로써, 초기화할 수도 있다. 변환 블록에서 각각의 논-제로 계수에 대해, 비디오 인코더 (20) 는 동적-업데이팅 스캔 표에서 연어를 이루는 값에 1 을 가산할 수도 있다. 후속 블록들에 대해, 비디오 인코더 (20) 는 먼저 동적-업데이팅 스캔 표를 참조하여, 어느 그 변환 계수들 중 어느 변환 계수가 가장 논-제로일 가능성이 있는지를 결정하고, 그 후 논-제로일 계수들의 우도를 감소시키는 순서로 스캔할 수도 있다. 일부의 경우, 동적-업데이팅 스캔 표에서 2 개의 이상 값들이 동일할 수도 있다. 이러한 경우, 양자화 유닛 (54) 은 높은-동적-범위 표를 참조하여, 다음에 어느 계수를 스캔할지를 결정한다. 이 방식에서, 양자화 유닛 (54) 은 적응적 스캔을 높은-동적-범위 표와 동적-업데이팅 스캔 표의 조합에 기초하여 수행할 수도 있다.
높은-동적-범위 표는 일부 예들에서, 모든 적응적 스캔 통계치들에 대해 동일할 수도 있다. 따라서, 비디오 인코더 (20) 는 예를 들어, 선택된 인트라 예측 모드, 회전 변환 인덱스, 또는 이들의 조합에 고유한 동적-업데이팅 스캔 표들을 포함할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 회전 변환이 적용되지 않을 때에는 미리 결정된 정적 스캔들 중에서 선택하고, 회전 변환이 적용될 때는 적응적 스캔을 수행하고, 게다가, 선택된 인트라 예측 모드 및 선택된 회전 변환의 인덱스 중 하나 또는 양자에 기초하여, 적응적 스캔을 수행하기 위한 통계치들을 선택하도록 구성될 수도 있다. 이의 대안으로, 비디오 인코더 (20) 는 미리 정의된 스캔을 회전 변환의 인덱스, 인트라 예측 모드, 또는 이들의 조합에 기초하여 선택하도록 구성될 수도 있다. 비디오 디코더 (30) 는 적합한 스캔을 선택하기 위해 비디오 인코더 (20) 와 유사하게 구성될 수도 있다.
도 7a 및 도 7b 는 예시적인 쿼드트리 (150) 및 대응하는 가장 큰 코딩 유닛 (172) 을 도시하는 개념도들이다. 도 7a 는 예시적인 쿼드트리 (150) 를 도시하며, 이 쿼드트리는 계층적 방식으로 배열된 노드들을 포함한다. 쿼드트리 (150) 와 같은, 쿼드트리에서 각각의 노드는 차일드를 갖지 않는 리프 노드이거나, 또는 4 개의 차일드 노드들을 가질 수도 있다. 도 7a 의 예에서, 쿼드트리 (150) 는 루트 노드 (152) 를 포함한다. 루트 노드 (152) 는 리프 노드들 (156A-156C) (리프 노드들 (156)) 및 노드 (154) 를 포함하는 4 개의 차일드 노드들을 갖는다. 노드 (154) 가 리프 노드가 아니기 때문에, 노드 (154) 는 이 예에서, 리프 노드들 (158A-158D) (리프 노드들 (158)) 인 4 개의 차일드 노드들을 포함한다.
쿼드트리 (150) 는 대응하는 가장 큰 코딩 유닛 (LCU), 예컨대 이 예에서는 LCU (172) 의 특성들을 기술하는 데이터를 포함할 수도 있다. 예를 들어, 쿼드트리 (150) 는, 그의 구조에 의해, 서브-CUs 로의 LCU 의 분할을 기술할 수도 있다. LCU (172) 가 2N x 2N 의 사이즈를 갖는다고 가정한다. LCU (172) 는, 이 예에서, 각각의 사이즈가 N x N 인 4 개의 서브-CUs (176A-176C (서브-CUs (176)) 및 174) 를 갖는다. 서브-CU (174) 는 각각의 사이즈가 N/2 x N/2 인 4 개의 서브-CUs (178A-178D (서브-CUs 178)) 로 더 분할된다. 쿼드트리 (150) 의 구조는 이 예에서, LCU (172) 의 분할에 대응한다. 즉, 루트 노드 (152) 는 LCU (172) 에 대응하고, 리프 노드들 (156) 은 서브-CUs (176) 에 대응하고, 노드 (154) 는 서브-CU (174) 에 대응하고, 리프 노드들 (158) 은 서브-CUs (178) 에 대응한다.
쿼드트리 (150) 의 노드들에 대한 데이터는 그 노드에 대응하는 CU가 분할되는지 여부를 기술할 수도 있다. CU 가 분할되면, 4 개의 추가적인 노드들이 쿼드트리 (150) 에 존재할 수도 있다. 일부 예들에서, 쿼드트리의 노드는 다음 의사 코드와 유사하게 구현될 수도 있다:
quadtree_node {
boolean split_flag(1);
// 시그널링 데이터
if (split_flag) {
quadtree_node child1;
quadtree_node child2;
quadtree_node child3;
quadtree_node child4;
}
}
split_flag 값은 현재의 노드에 대응하는 CU 가 분할되는지 여부를 나타내는 1-비트 값일 수도 있다. CU 가 분할되지 않으면, split_flag 값은 '0' 일 수도 있지만, 한편 CU 가 분할되면, split_flag 값은 '1' 일 수도 있다. 쿼드트리 (150) 의 예에 있어, 분할 플래그 값들의 어레이는 101000000 일 수도 있다.
일부 예들에서, 서브-CUs (176) 및 서브-CUs (178) 의 각각은 동일한 인트라 예측 모드를 이용하여 인트라 예측 인코딩될 수도 있다. 따라서, 비디오 인코더 (20) 는 인트라 예측 모드의 표시를 루트 노드 (152) 에 제공할 수도 있다. 더욱이, 어떤 사이즈들의 서브-CUs 는 특정의 인트라 예측 모드에 대해 다수의 가능한 변환들을 가질 수도 있다. 본 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 이러한 서브-CUs 에 사용할 변환의 표시를 루트 노드 (152) 에 제공할 수도 있다. 예를 들어, 사이즈 N/2 x N/2 의 서브-CUs 는 이용가능한 다수의 가능한 변환들을 가질 수도 있다. 비디오 인코더 (20) 는 루트 노드 (152) 에서 사용할 변환을 시그널링할 수도 있다. 따라서, 비디오 디코더 (30) 는 서브-CUs (178) 에 적용할 변환을 루트 노드 (152) 에서 시그널링된 인트라 예측 모드 및 루트 노드 (152) 에서 시그널링된 변환에 기초하여 결정할 수도 있다.
이와 같이, 본 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 리프 노드들 (156) 및 리프 노드들 (158) 에서 서브-CUs (176) 및 서브-CUs (178) 에 적용할 변환들을 시그널링할 필요가 없지만, 대신, 인트라 예측 모드 및 일부 예들에서는, 루트 노드 (152) 에서 어떤 사이즈들의 서브-CUs 에 적용할 변환을 간단히 시그널링할 수도 있다. 이 방식에서, 이들 기법들은 LCU 의 각각의 서브-CU, 예컨대 LCU (172) 에 대한 변환 함수들을 시그널링하는 오버헤드 비용을 감소시킬 수도 있다.
일부 예들에서, 서브-CUs (176) 및/또는 서브-CUs (178) 에 대한 인트라 예측 모드들은 LCU (172) 에 대한 인트라 예측 모드들과 상이할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 루트 노드 (152) 에서 시그널링된 인트라 예측 모드를 서브-CUs (176) 및/또는 서브-CUs (178) 에 대한 가용 인트라 예측 모드에 맵핑하는 기능들 (functions) 로 구성될 수도 있다. 이 기능은 서브-CUs (176) 및/또는 서브-CUs (178) 에 대한 인트라 예측 모드들에의, LCU (172) 에 이용가능한 인트라 예측 모드들의 다-대-일 맵핑을 제공할 수도 있다.
도 7a 는 CU 쿼드트리의 일 예를 도시하지만, 유사한 쿼드트리가 리프-노드 CU 의 TUs 에 적용될 수도 있는 것으로 이해되어야 한다. 즉, 리프-노드 CU 는 CU 에 대한 TUs 의 파티셔닝을 기술하는 TU 쿼드트리를 포함할 수도 있다. TU 쿼드트리는 일반적으로 TU 쿼드트리가 그 CU 의 TUs 에 대한 인트라 예측 모드들을 개별적으로 시그널링할 수도 있다는 점을 제외하고는, CU 쿼드트리와 유사할 수도 있다.
도 8 은 블록에 적용할 변환 및 스캔을 그 블록에 대해 선택된 인트라 예측 모드에 기초하여 선택하는 예시적인 방법을 도시하는 플로우차트이다. 설명의 목적을 위해서, 비디오 인코더 (20) (도 2) 의 컴포넌트들에 의해 수행되는 것으로 일반적으로 설명되지만, 프로세서들, 프로세싱 유닛들, 하드웨어-기반의 코딩 유닛들, 예컨대 인코더/디코더들 (코덱들), 및 기타 등등과 같은 다른 비디오 인코딩 유닛들이 또한 도 8 의 방법을 수행하도록 구성될 수도 있는 것으로 이해되어야 한다.
도 8 의 예에서, 변환 유닛 (52) 은 먼저 현재의 TU 에 대한 잔여 데이터를 수신할 수도 있다 (180). 게다가, 변환 유닛 (52) 은 또한 그 TU 에 대해 선택된 인트라 예측 모드의 표시를 수신할 수도 있다. 이 표시로부터, 변환 유닛 (52) 은 그 TU 에 대한 예측 방향을 결정할 수도 있다 (182). 예를 들어, 변환 유닛 (52) 은 그 나타낸 인트라 예측 모드에 대해 예측 방향의 각도를 결정할 수도 있다.
임의의 경우, 인트라 예측 모드를 결정한 후, 변환 유닛 (52) 은 그 잔여 데이터에 적용할 변환을 인트라 예측 모드로부터 그 변환에의 맵핑에 기초하여 선택할 수도 있다 (186). 예를 들어, 변환 유닛 (52) 은 적용할 변환을 그 인트라 예측 방향으로 맵핑 데이터 (66) 에 대해 질의함으로써 선택하고, 그 인트라 예측 방향이 맵핑되는 변환을 결정할 수도 있다. 이 변환은 이산 코사인 변환 또는 방향 변환, 예컨대 모드 의존적 방향 변환 (MDDT) 에 대응할 수도 있다. 그 후, 변환 유닛 (52) 은 그 선택된 변환을 잔여 데이터에 적용하여 그 잔여 데이터를 변환할 수도 있다 (188). 일부 예들에서, 맵핑 데이터 (66) 는 변환 유닛 (52) 이 2 개의 이상 변환들을, 예컨대 제 1 변환 다음에 회전 변환을 적용해야 한다는 표시를 더 포함할 수도 있으며, 이 경우 변환 유닛 (52) 은 그 나타낸 회전 변환을 추가로 적용할 수도 있다.
그 잔여 데이터를 변환함으로써, 변환 유닛 (52) 은 그 잔여 데이터와 동일한 개수의 계수들을 갖는 변환 계수들의 2 차원 매트릭스를 생성할 수도 있다. 그 후, 도 8 의 예에서, 양자화 유닛 (54) 은 변환 계수들을 양자화할 수도 있다 (190). 일부 예들에서, 양자화 유닛 (54) 은 1 차원 어레이를, 예컨대, 계수들을 양자화하기 전후에, 생성하기 위해, 계수들의 2 차원 매트릭스를 스캔할 수도 있다. 이의 대안으로, 엔트로피 코딩 유닛 (56) 이 2 차원 매트릭스를 스캔할 수도 있다.
이 예에서, 엔트로피 코딩 유닛 (56) 은 그 양자화된 변환 계수들에 적용할 스캔을 선택하기 위해 맵핑 데이터 (66) 에 대해 질의할 수도 있다 (192). 일부 예들에서, 맵핑 데이터 (66) 는 인트라 예측 모드들을 특정의 미리 정의된 스캔 패턴들에 맵핑하는 데이터를 포함할 수도 있다. 일부 예들에서, 맵핑 데이터 (66) 는 변환들을 미리 정의된 스캔 패턴들에 맵핑하는 데이터를 포함할 수도 있다. 일부 예들에서, 예컨대, 회전 변환이 변환 계수들에 적용되는 것으로 맵핑 데이터 (66) 가 나타내는 경우, 맵핑 데이터 (66) 는 적응적 스캔 또는 회전 변환이 맵핑되는 미리 정의된 스캔이 수행되어야 한다는 것을 추가로 나타낼 수도 있다. 적응적 스캔이 수행되는 예들에서, 맵핑 데이터 (66) 는 인트라 예측 모드, 제 1 변환의 인덱스, 회전 변환의 인덱스, 이들의 조합, 및/또는 다른 인자들에 맵핑되는 스캔 통계치들, 예컨대, 높은-동적-범위 표 및 동적-업데이팅 스캔 표를 더 포함할 수도 있다.
그 후, 엔트로피 코딩 유닛 (56) 은 선택된 스캔 통계치들에 기초하여, 그 양자화된 변환 계수들을 선택된 스캔 (194), 예컨대, 미리 정의된 스캔 또는 적응적 스캔을 이용하여 스캔할 수도 있다. 일부 예들에서, 엔트로피 코딩 유닛 (56) 은 스캔 위치 (변환 계수들의 개수보다 작거나 같을 수도 있음) 로 구성될 수도 있으며, 그 스캔 위치 이후에 엔트로피 코딩 유닛 (56) 은 그 어레이에서의 계수 값들을 제로 아웃할 수도 있다. 그 스캔 위치와 같은 다수의 계수들을 스캔한 후, 엔트로피 코딩 유닛 (56) 은 나머지 어레이 값들을 0 과 같게 설정할 수도 있다. 일부 예들에서, 변환 계수들을 제로 아웃하는 것은 그 스캔 전후에 일어날 수도 있다.
그 후, 일부 예들에서, 엔트로피 코딩 유닛 (56) 은 그 스캔 이후에, 그 어레이에서의 그 스캔된 계수들을 엔트로피 인코딩할 수도 있다 (196). 이의 대안으로, 일부 예들에서, 엔트로피 코딩 유닛 (56) 은 계수들이 스캔됨에 따라 그 계수들을 엔트로피 인코딩할 수도 있다. 임의의 경우, 엔트로피 코딩 유닛 (56) 은 CABAC 또는 CAVLC 을 이용하여, 그 계수들을 엔트로피 인코딩할 수도 있다.
CABAC 을 이용할 때, 그리고 적응적 스캔을 수행할 때, 엔트로피 코딩 유닛 (56) 은 유효 계수 플래그들 및 최종 계수 플래그를 포함하는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 엔트로피 코딩 유닛 (56) 은 블록 유형 (인트라 또는 인터), (블록이 인트라 모드에서 예측된다고 가정할 때) 선택된 인트라 예측 모드, 및/또는 적용된 변환의 유형 (예컨대, DCT 또는 방향/KLT) 에 기초하여, 유효 계수 플래그들을 엔트로피 인코딩하기 위한 컨텍스트 모델들을 선택할 수도 있다. 엔트로피 코딩 유닛 (56) 은 적응적 스캔에서의 순서 인덱스, 블록 유형, 공간 예측 방향, 및/또는 선택된 변환에 기초하여, 최종 계수 플래그들을 엔트로피 인코딩하기 위한 컨텍스트 모델들을 선택할 수도 있다.
이 방식에서, 도 8 의 방법은 인트라 예측 모드를 이용하여 형성된 예측된 블록에 기초하여 비디오 데이터의 블록에 대한 잔여 블록을 계산하는 단계, 및 그 잔여 블록을 인트라 예측 모드에 맵핑되는 변환을 이용하여 변환하는 단계를 포함하는 방법의 일 예를 나타낸다.
도 9 는 잔여 데이터의 블록에 적용할 변환 및 스캔을 선택하는 또 다른 예시적인 방법을 도시하는 플로우차트이다. 일반적으로, 도 9 는 실질적으로 도 8 에 합치한다. 그러나, 도 9 의 예에서, 잔여 데이터 (180) 및 그 TU 에 대해 선택된 인트라 예측 모드의 표시를 수신한 후, 변환 유닛 (52) 은 그 TU 를 예측하기 위한 제 1 예측 방향을 결정할 수도 있다 (183). 예를 들어, 변환 유닛 (52) 은 그 나타낸 인트라 예측 모드에 대한 예측 방향의 각도를 결정할 수도 있다.
그 후, 변환 유닛 (52) 은 제 1 예측 방향에 맵핑된 제 2 방향을 결정할 수도 있다 (184). 예를 들어, 변환 유닛 (52) 은 맵핑 데이터 (66) 에 대해 질의하여, 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정할 수도 있다. 일부 예들에서, 변환 유닛 (52) 은 그 나타낸 인트라 예측 모드의 각도에 근사하는 각도를 결정하고, 그 결정된 각도에 대응하는 제 2 인트라 예측 모드를 선택할 수도 있다. 그 후, 변환 유닛 (52) 은 제 2 예측 데이터에 맵핑된 변환을 선택할 수도 있다 (185). 다수의 변환들을 선택하는 것에 대응할 수도 있는 변환을 선택한 후, 비디오 인코더 (20) 는 일반적으로 도 9 의 나머지 단계들을 도 8 에 대해 설명한 대응하는 단계들과 유사한 방법으로 수행한다.
이 방식에서, 도 9 의 방법은 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하는 단계, 제 1 인트라 예측 모드가 맵핑된 인트라 예측 모드들의 더 작은 세트로부터 제 2 인트라 예측 모드를 결정하는 단계, 제 2 인트라 예측 모드가 맵핑되는 방향 변환을 결정하는 단계, 및 그 방향 변환을 블록의 잔여 데이터에 적용하는 단계를 포함하는 방법의 일 예이다.
도 10 은 인트라 예측 모드 및 변환을 특정-사이즈의 서브-CUs 에 적용하는 예시적인 방법을 도시하는 플로우차트이다. 설명의 목적을 위해, 비디오 인코더 (20) (도 2) 의 컴포넌트들에 의해 수행되는 것으로 일반적으로 설명되지만, 프로세서들, 프로세싱 유닛들, 하드웨어-기반의 코딩 유닛들, 예컨대 인코더/디코더들 (코덱들), 및 기타 등등과 같은 다른 비디오 인코딩 유닛들이 또한 도 10 의 방법을 수행하도록 구성될 수도 있는 것으로 이해되어야 한다. 또한, 다른 예들에서, 유사한 방법들은 도 10 에 도시된 단계들에 대한 추가적인 또는 대안적인 단계들을 포함할 수도 있거나, 또는 도시된 단계들을 상이한 순서로, 설명되는 기법들을 일탈함이 없이, 수행될 수도 있는 것으로, 이해되어야 한다.
도 10 에 대해 설명된 바와 같이 변환을 선택하고 적용하는 기법들은 도 8 의 단계들 (186 및 188) 에 대응할 수도 있다. 도 10 에 대해 설명한 바와 같이 여러 인트라 예측 모드들을 여러 사이즈들의 블록들에 적용하는 기법들은 도 8 의 단계 (180) 이전에 수행될 수도 있다.
인트라 예측 유닛 (46) 은 픽셀들의 블록, 예컨대, LCU 를 수신할 수도 있다 (200). 그 후, 인트라 예측 유닛 (46) 은 그 LCU 에 적용할 인트라 예측 모드를 결정하고 예컨대, 그 LCU 에 대응하는 쿼드트리 데이터 구조의 루트 노드에서, 그 LCU 에 대한 결정된 인트라 예측 모드를 시그널링할 수도 있다 (201). 그 후, 인트라 예측 유닛 (46) 은 오직 인트라 예측 모드들의 서브세트만이 이용가능한 서브-CUs 의 사이즈들을 결정할 수도 있다 (202). 인트라 예측 유닛 (46) 은 추가로 LCU 를 하나 이상의 서브-CUs 로 파티셔닝하고, 서브-CUs 중 임의의 서브-CU 가 오직 인트라 예측 모드들의 서브세트만이 이용가능한 사이즈를 갖는지 여부를 결정할 수도 있다 (204).
LCU 가 오직 인트라 예측 모드들의 서브세트만이 이용가능한 사이즈의 서브-CUs 를 포함하면 (184 의 "예" 분기), 인트라 예측 유닛 (46) 은 서브-CUs 를 그 LCU 에 대해 선택된 인트라 예측 모드가 맵핑되는 인트라 예측 모드를 이용하여 인트라 예측할 수도 있다 (206). 한편, LCU 가 이러한 사이즈인 임의의 서브-CUs 를 포함하지 않으면 (184 의 "아니오" 분기), 인트라 예측 유닛 (46) 은 그 LCU 에 대해 시그널링된 모드를 그 LCU 의 모든 서브-블록들에 적용할 수도 있다 (208).
그 후, 비디오 인코더 (20) 는 그 LCU 의 서브-CUs 에 대한 잔여 값들을 계산할 수도 있다. 그 후, 변환 유닛 (52) 은 다수의 변환들이 가능한 서브-CU 사이즈들을 그 LCU 에 대한 시그널링된 인트라 예측 모드에 기초하여 결정할 수도 있다 (210). 변환 유닛 (52) 은 추가로 그 LCU 의 서브-CUs 중 임의의 서브-CU 가 다수의 변환들이 가능한 사이즈인지 여부를 결정할 수도 있다 (212). 적어도 하나의 서브-CU 가 다수의 변환들이 가능한 사이즈이면 (192 의 "예" 분기), 변환 유닛 (52) 은 그 사이즈의 서브-CUs 에 적용할 변환을 선택하여 시그널링할 수도 있다 (214). 예를 들어, 변환 유닛 (52) 은 그 LCU 에 대한 쿼드트리의 루트 노드에서 그 사이즈의 서브-CUs 에 적용할 변환을 시그널링할 수도 있다. 변환 유닛 (52) 은 또한 그 시그널링된 변환을 그 사이즈의 LCU 에서의 모든 서브-블록들에 적용할 수도 있다 (216). 한편, LCU 가 다수의 변환들이 가능한 임의의 서브-CUs 를 포함하지 않으면 (192 의 "아니오" 분기), 변환 유닛 (52) 은 그 LCU 에 대한 시그널링된 인트라 예측 모드에 전적으로 기초하여, 변환들에 관련한 어떤 시그널링도 필요로 하지 않도록, 변환들을 그 LCU 의 서브-CUs 에 적용할 수도 있다 (218).
이 방식에서, 도 10 의 방법은 비디오 데이터의 블록을 인코딩하는데 사용할 인트라 예측 모드를 선택하는 단계, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하는 단계, 그 블록이 서브-블록들의 사이즈 및 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함할 때 다수의 가능한 변환들 중 하나를 선택하는 단계, 다수의 가능한 변환들 중 선택된 하나를 이용하여 서브-블록들을 변환하는 단계, 및 블록의 사이즈에 대해 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하는 단계를 포함하는 방법의 일 예이다.
도 11 은 적응적 스캔을 블록에 적용된 선택된 변환에 기초하여 수행하는 예시적인 방법을 도시하는 플로우차트이다. 설명의 목적을 위해, 비디오 인코더 (20) (도 2) 의 컴포넌트들에 의해 수행되는 것으로 일반적으로 설명되지만, 프로세서들, 프로세싱 유닛들, 하드웨어-기반의 코딩 유닛들, 예컨대 인코더/디코더들 (코덱들), 및 기타 등등과 같은 다른 비디오 인코딩 유닛들이 또한 도 11 의 방법을 수행하도록 구성될 수도 있는 것으로 이해되어야 한다.
또한, 다른 예들에서, 유사한 방법들이 도 11 에 도시된 단계들에 대한 추가적인 또는 대안적인 단계들을 포함할 수도 있거나, 또는 도시된 단계들을 상이한 순서로, 그 설명되는 기법들을 일탈함이 없이 수행될 수도 있는 것으로 이해되어야 한다. 캐스케이드된 변환 다음에 도 11 에 도시된 바와 같이 계수들을 적응적으로 스캔하는 기법들은 도 8 의 단계들 (192 및 194) 에 대응할 수도 있다. 도 11 의 잔여 계수들을 적응적으로 스캔하는 기법들은 인트라 예측 또는 인터 예측 이후에 잔여 데이터에 적용될 수도 있다.
먼저, 비디오 인코더 (20) 의 변환 유닛 (52) 은 잔여 블록을 수신할 수도 있다 (230). 이 잔여 블록은 CU 의 인트라 예측 또는 인터 예측 이후의 나머지 (residual) 에 대응할 수도 있다. 잔여 블록은 그 CU 의 대응하는 예측 유닛과 동일한 사이즈 또는 상이한 사이즈일 수도 있다. 그 후, 변환 유닛 (52) 은 그 잔여 블록을 변환할 수도 있다 (232). 일부 예들에서, 변환 유닛 (52) 은 본 개시물의 기법들에 따라서, 인트라 예측 모드들의 서브세트로부터의 인트라 예측 모드에 대응하는 방향 변환을 적용할 수도 있다. 다른 예들에서, 변환 유닛 (52) 은 이산 코사인 변환을 적용할 수도 있다.
그 후, 변환 유닛 (52) 은 회전 변환을 그 변환된 블록에 적용할 수도 있다 (234). 변환 유닛 (52) 이 DCT 를 적용하는, 사이즈들 8 x 8 및 더 큰 변환 유닛들 (TUs) 에 대해, 변환 유닛 (52) 은 회전 변환을 최저 주파수 8 x 8 DCT 계수들에 적용할 수도 있다. 8 x 8 보다 작은 TUs 에 대해, 변환 유닛 (52) 은 회전 변환을 그 전체 TU 에 적용할 수도 있다. TU 에 대응하는 PU 가 인트라 예측 인코딩되었으면, 변환 유닛 (52) 은 회전 변환을, 예컨대, 인트라 예측 모드들의 서브세트가 회전 변환들에 맵핑될 수도 있는 경우에, 그 PU 를 예측하는데 사용된 인트라 예측 모드에 기초하여 선택할 수도 있다. 이들 회전 변환들은 모드 의존적 회전 변환들 (MDROTs) 로서 지칭될 수도 있다. 일부 예들에서, 변환 유닛 (52) 은 모드 의존적 방향 변환 (MDDT) 에 뒤이어서 회전 변환 (또는, 다른 2 차 분리가능한 변환) 을 캐스케이드할 수도 있으며, 이 모드 의존적 방향 변환은 KLT 일 수도 있다.
회전 변환에 뒤이어서, 일부 예들에서, 양자화 유닛 (54) 은 변환된 계수들을 양자화할 수도 있다. 그 후, 엔트로피 코딩 유닛 (56) 은 변환 계수들의 적응적 스캔을 수행하는데 사용할 통계치들의 세트를 선택할 수도 있다. 통계치들의 세트는 높은 동적 범위 (HDR) 표 및 동적 업데이팅 (DU) 표를 포함할 수도 있다. HDR 및 DU 표들 중 하나 또는 양자는, 특정의 시나리오, 예컨대, 인트라 예측 또는 인터 예측이 PU 를 예측하는데 사용되었는지 여부, 인트라 예측이 사용될 때 그 PU 에 대한 특정의 인트라 예측 모드, DCT 또는 KLT 가 그 PU 에 대응하는 TU 에 적용되었는지 여부, 사용된 회전 변환의 인덱스, 또는 이들의 임의의 조합에 대해 선택될 수도 있다. 이 방식에서, 엔트로피 코딩 유닛 (56) 은 적응적 스캔 동안 사용하기 위한 HDR 및/또는 DU 표들을 선택할 수도 있다 (236).
위에서 설명한 바와 같이, HDR 표는 매트릭스에서 각각의 로케이션의 계수들이 논-제로일 확률들을 나타내는 미리 정의된 데이터의 세트를 포함할 수도 있다. HDR 표는 트레이닝 데이터의 세트를 이용하여 발생될 수도 있으며, 전체 비트스트림을 통해서 동일하게 유지할 수도 있다. 엔트로피 코딩 유닛 (56) 은 그 DU 표에 대한 값들을 계산하기 위해 프레임, 슬라이스, 픽처 그룹, 또는 비디오 데이터의 다른 유닛에 대한 개개의 통계치들을 수집할 수도 있다. 따라서, DU 표는 또한 매트릭스에서 각각의 로케이션의 계수들이 논-제로일 확률들을 나타낼 수도 있다.
적응적 스캔을 수행하기 위해, 엔트로피 코딩 유닛 (56) 은 먼저 논-제로 계수를 포함할 최고 확률을 갖는 매트릭스에서의 로케이션을 DU 표를 이용하여 결정할 수도 있다 (238). 일부의 경우, 논-제로 계수들을 가질 동일 확률들을 갖는, 그 매트릭스에서의 2 개의 이상의 로케이션들이 있을 수도 있다. 따라서, 엔트로피 코딩 유닛 (56) 은 논-제로 계수들을 포함할 동일한 확률들을 갖는, 그 매트릭스에서의 다수의 로케이션들이 있는지 여부를 결정할 수도 있다 (240). 논-제로 계수들을 포함할 동일한 확률들을 갖는, 그 매트릭스에서의 다수의 로케이션들이 있으면 (240 의 "예" 분기), 엔트로피 코딩 유닛 (56) 은 논-제로 계수를 포함할 최고 확률을 갖는 그 매트릭스에서의 로케이션을 HDR 표를 이용하여 결정할 수도 있다 (242).
그 후, 엔트로피 코딩 유닛 (56) 은 그 결정된 로케이션에서 계수를 스캔하고 엔트로피 인코딩할 수도 있다 (244). 또한, 엔트로피 코딩 유닛 (56) 은 그 스캔된 계수가 사실상 논-제로였는지 여부를 결정하고, 그 스캔된 계수가 논-제로였는지, 따라서 유효한지 여부를 나타내기 위해, 유효 계수 플래그에 그 값을 설정할 수도 있다. 그 후, 엔트로피 코딩 유닛 (56) 은 그 매트릭스에서의 모든 계수들이 스캔되었는지 여부를 결정할 수도 있다 (246). 모든 계수들이 스캔되지 않았으면 (246 의 "아니오" 분기), 엔트로피 코딩 유닛 (56) 은 논-제로 계수를 포함할 다음 최고 확률을 갖는 그 매트릭스에서의 로케이션을 DU 표 (또는, 어쩌면 HDR 표) 를 이용하여 결정하고, 이 로케이션에서 그 계수를 스캔할 수도 있다.
모든 계수들이 스캔된 후 (246 의 "예 분기), 엔트로피 코딩 유닛은 스캔을 중지할 수도 있다. 더욱이, 일부 예들에서, 엔트로피 코딩 유닛 (56) 은 그 대응하는 계수가 플래그에서 최종 계수인지 여부를 나타내기 위해, 각각의 계수에 대한 최종 계수 플래그의 값을 설정할 수도 있다. 모든 계수들이 스캔되었다고 결정한 후 (246 의 "예" 분기), 엔트로피 코딩 유닛 (56) 은 최종 스캔된 계수에 대응하는 최종 계수 플래그에 대한 값을 1 과 같게 설정할 수도 있다. 아래에서 설명되는 바와 같은 도 12 의 기법들을 이용하여, 엔트로피 코딩 유닛 (56) 은 유효 계수 플래그들 및 최종 계수 플래그들을 포함하는 신택스 엘리먼트들을 인코딩할 수도 있다.
일부 예들에서, 스캔 (적응적이든 또는 고정적이든) 이후, 비디오 인코더 (20) 는 그 스캔에 의해 생성된 어레이에서의 계수들, 예컨대, 그 어레이에서 위치 N 다음의 모든 계수들을 제로 아웃할 수도 있으며, 여기서 N 은 제로와 어레이의 길이 사이의 정수이다. 다른 예들에서, 비디오 인코더 (20) 는 그 변환(들) 또는 양자화 이후에 그 매트릭스의 어떤 로케이션들에서 계수들을 제로 아웃할 수도 있다. 이들 로케이션들은 예를 들어, 매트릭스의 상부-좌측 코너에 대응할 수도 있다. 일반적으로, 이들 계수들을 제로 아웃하는 것은 더 높은 주파수 계수들의 제로 아웃을 초래하여, 품질에 큰 충격 없이 코딩 효율을 향상시킬 수도 있다.
이 방식에서, 도 11 의 방법은 변환 계수들의 중간, 2 차원 블록을 생성하기 위해 제 1 변환을 이용하여 비디오 데이터의 블록에 대한 잔여 데이터를 변환하는 단계, 변환 계수들의 2 차원 블록을 생성하기 위해 회전 변환을 이용하여 변환 계수들의 중간, 2 차원 블록을 변환하는 단계, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는 통계치들의 세트를 선택하는 단계로서, 상기 통계치들의 세트는 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 상기 통계치들의 세트를 선택하는 단계, 및 그 통계치들의 선택된 세트에 기초하여 변환 계수들의 2 차원 블록을 적응적으로 스캔하는 단계를 포함하는 방법의 일 예이다.
도 12 는 적응적으로 스캔되는 계수들을 기술하는 신택스 엘리먼트들을 스캔 및 엔트로피 인코딩할 때 사용할 컨텍스트 모델을 선택하는 예시적인 방법을 도시하는 플로우차트이다. 설명의 목적을 위해, 비디오 인코더 (20) (도 2) 의 컴포넌트들에 의해 수행되는 것으로 일반적으로 설명되지만, 프로세서들, 프로세싱 유닛들, 하드웨어-기반의 코딩 유닛들, 예컨대 인코더/디코더들 (코덱들), 및 기타 등등과 같은 다른 비디오 인코딩 유닛들이 또한 도 12 의 방법을 수행하도록 구성될 수도 있는 것으로 이해되어야 한다.
또한, 다른 예들에서, 유사한 방법들이 도 12 에 도시된 단계들에 대한 추가적인 또는 대안적인 단계들을 포함할 수도 있거나, 또는 도시된 단계들을 상이한 순서로, 설명되는 기법들을 일탈함이 없이 수행될 수도 있는 것으로 이해되어야 한다. 도 11 에 도시된 바와 같이 적응적으로 스캔되는 계수들을 기술하는 신택스 엘리먼트들을 스캔 및 엔트로피 인코딩할 때 사용할 컨텍스트 모델을 선택하는 기법들은 도 8 의 단계들 (192-196) 에 대응할 수도 있다. 도 12 의 기법들은 도 11 의 적응적 스캔이 수행되는 이전, 그 동안, 또는 이후에 수행될 수도 있다.
엔트로피 코딩 유닛 (56) 은 양자화된 변환 계수들의 매트릭스를 예컨대, 양자화 유닛 (54) 으로부터 수신할 수도 있다 (250). 일반적으로, 도 12 의 예시적인 방법을 이용하여, 엔트로피 코딩 유닛 (56) 은 그 수신된 계수들을 기술하는 신택스 엘리먼트들을 인코딩할 수도 있다. 신택스 엘리먼트들은 각각의 계수에 대해, 유효 계수 플래그 및 최종 계수 플래그를 포함할 수도 있다. 유효 계수 플래그는 대응하는 계수가 유효한지 여부, 예컨대, 대응하는 계수의 값이 제로보다 더 큰지 여부를 나타낼 수도 있다. 최종 계수 플래그는 대응하는 계수가 적응적 스캔의 최종 계수인지 여부를 나타낼 수도 있다.
엔트로피 코딩 유닛 (56) 은 그 수신된 매트릭스에서 유효 계수들의 위치들을 결정할 수도 있다. 엔트로피 코딩 유닛 (56) 은 그 수신된 매트릭스에서 유효 계수들의 위치들을 나타내는 신택스 엘리먼트들을 형성할 수도 있다 (252). 예를 들어, 그 매트릭스에서 각각의 계수에 대해, 엔트로피 코딩 유닛 (56) 은 그 계수가 제로보다 더 큰지 여부를 결정할 수도 있으며, 만약 더 크다면, 그 계수와 연어를 이루는 신택스 엘리먼트 매트릭스에서의 값을 1 과 같게 설정하고, 아니면, 엔트로피 코딩 유닛은 그 계수와 연어를 이루는 값을 0 과 같게 설정할 수도 있다. 그 후, 엔트로피 코딩 유닛 (56) 은 그 신택스 엘리먼트 매트릭스를 이용하여 동적 업데이팅 스캔 표를 업데이트할 수도 있다 (254). 예를 들어, 엔트로피 코딩 유닛 (56) 은 그 동적 업데이팅 스캔 표에서 각각의 엘리먼트의 현재의 값에, 신택스 엘리먼트 매트릭스에서 연어를 이루는 신택스 엘리먼트의 값을 가산할 수도 있다.
그 후, 엔트로피 코딩 유닛 (56) 은 신택스 엘리먼트 매트릭스에서 신택스 엘리먼트들 중 첫번째 엘리먼트를 스캔할 수도 있다 (256). 엔트로피 코딩 유닛 (56) 은 도 6a 에 나타낸 것과 같은 지그-재그 스캔, 또는 블록 유형 (인터- 또는 인트라 예측된 블록), 그 블록이 인트라 예측 인코딩된 블록이면 공간 예측 방향, 및/또는 사용된 변환의 유형 (예컨대, DCT 또는 방향 변환) 에 기초하여 선택된 스캔을 적용할 수도 있다. 다음으로, 엔트로피 코딩 유닛 (56) 은 그 스캔된 신택스 엘리먼트를 인코딩하는 컨텍스트 모델을 선택할 수도 있다 (258). 일반적으로, 컨텍스트 모델은 이전에 스캔된 N 개의 계수들에서 유효한 (예컨대, 논-제로) 계수들의 개수에 기초하여 선택될 수도 있으며, 여기서 N 은 논-제로 정수 값이다. N 은 블록의 사이즈에 기초하여 선택될 수도 있다.
현재의 신택스 엘리먼트를 인코딩하는데 사용할 컨텍스트 모델을 선택한 후, 엔트로피 코딩 유닛 (56) 은 그 선택된 컨텍스트 모델을 이용하여 그 스캔된 신택스 엘리먼트를 엔트로피 인코딩할 수도 있다 (260). 그 후, 엔트로피 코딩 유닛 (56) 은 그 인코딩된 신택스 엘리먼트가 인코딩될 최종 신택스 엘리먼트인지 여부를 결정할 수도 있다 (262). 그 신택스 엘리먼트가 최종 신택스 엘리먼트이면 (262 의 "예" 분기), 엔트로피 코딩 유닛 (56) 은 계수들을 스캔하는 것을 중지할 수도 있다. 한편, 그 신택스 엘리먼트가 최종 신택스 엘리먼트가 아니면 (262 의 "아니오" 분기), 엔트로피 코딩 유닛 (56) 은 다음 신택스 엘리먼트를 스캔하고 (264), 다시 그 스캔된 신택스 엘리먼트를 인코딩하는 컨텍스트 모델을, 예컨대, 이전에 스캔된 N 개의 계수들에서 다수의 유효 계수들에 기초하여 선택할 수도 있다.
도 12 의 예가 특정의 계수들이 유효한지 여부를 기술하는 신택스 엘리먼트들에 대해 먼저 설명된다. 이들 신택스 엘리먼트들은 예를 들어, 유효 계수 플래그들, 예컨대, 대응하는 계수들이 유효한지, 예컨대, 논-제로인지 여부를 나타내는 1-비트 플래그들을 포함할 수도 있다. 특정의 계수가 그 적응적 스캔에서 최종 계수인지 여부를 기술하는 신택스 엘리먼트들에 대해서 유사한 기법들이 적용될 수도 있는 것으로 이해되어야 한다. 예를 들어, 유사한 기법들이 최종 계수 플래그에 적용될 수도 있다. 최종 계수 플래그들을 CABAC 를 이용하여 인코딩할 때, 그 컨텍스트 모델은 블록 유형, 공간 예측 방향, 및/또는 선택된 변환에 기초하는 적응적 스캔에서의 순서 인덱스에 기초할 수도 있다.
도 12 의 기법들은 비디오 인코딩 디바이스, 예컨대 비디오 인코더 (20) 에 의해 수행될 수도 있다. 비디오 디코더는 도 12 에 따라 인코딩된 신택스 엘리먼트들을 이용하여 역 스캔을 수행할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 인코딩된 블록을 예측하는데 사용된 인트라 예측 모드의 표시, 인코딩된 블록을 변환하는데 사용된 회전 변환의 표시, 또는 다른 이러한 데이터를 수신할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 동일한 높은 동적 범위 표로 각각 구성될 수도 있다. 비디오 인코더 (20) 가 다수의 높은 동적 범위 표들을 포함하는 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 높은 동적 범위 표들의 동일한 세트로 각각 구성될 수도 있다. 이러한 예들에서, 비디오 디코더 (30) 는 그 수신된 정보를 이용하여, 적응적 스캔을 수행하기 위해 비디오 인코더 (20) 에 의해 사용되는 것과 동일한 높은 동적 범위 표를 선택할 수도 있다.
위에서 언급한 바와 같이, 비디오 인코더 (20) 는 적응적 스캔을 그 매트릭스에서 특정의 위치의 계수가 논-제로일 우도 (또는, 확률) 를 나타내는 통계치들에 기초하여 수행할 수도 있다. 비디오 인코더 (20) 는 이 우도를 나타내는 동적 업데이팅 스캔 표를 유지함으로써, 각각의 스캔되는 블록에 대해 동적 업데이팅 스캔 표를 업데이트할 수도 있다. 어떤 블록의 계수들 중 어느 것이 유효한지, 및 어느 계수가 그 적응적 스캔에서 마지막인지를 나타내는 신택스 엘리먼트들을 인코딩함으로써, 비디오 인코더 (20) 는 비디오 디코더 (30) 에 수신된 계수들을 역 스캔하는데 사용될 수 있는 정보를 제공할 수도 있다.
예를 들어, 비디오 디코더 (30) 는 신택스 엘리먼트들을 디코딩하고, 그 후 그 신택스 엘리먼트들을 이용하여 동적 업데이팅 스캔 표의 로칼 버전을 업데이트할 수도 있다. 그 후, 비디오 디코더 (30) 는 인코딩된 계수들을 엔트로피 디코딩하고, 그 디코딩된 계수들을 유효할 (예컨대, 논-제로일) 다음-최고 확률을 갖는 매트릭스의 대응하는 위치에 배치할 수도 있다. 이 방식에서, 비디오 디코더 (30) 는 엔트로피 인코딩된 계수들의 수신된 벡터로부터 양자화된 변환 계수들의 매트릭스를 적응적 역 스캔을 이용하여 재구성할 수도 있다.
이 방식에서, 도 12 의 방법은 변환 계수들의 1 차원 벡터를 생성하기 위해 변환 계수들의 2 차원 블록을 스캔하는 단계, 1 차원 벡터에서 변환 계수들이 유효한지 여부를 나타내는 값들을 결정하는 단계, 및 그 값들 중 적어도 하나 앞에서 인코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 인코딩하는 단계를 포함하는 방법의 일 예이다.
도 13 은 본 개시물의 기법들 중 하나 이상을 이용하여 인코딩되어 있는 TU 를 디코딩하는 예시적인 방법을 도시하는 플로우차트이다. 설명의 목적을 위해, 비디오 디코더 (30) (도 3) 의 컴포넌트들에 의해 수행되는 것으로 일반적으로 설명되지만, 프로세서들, 프로세싱 유닛들, 하드웨어-기반의 코딩 유닛들, 예컨대 인코더/디코더들 (코덱들), 및 기타 등등과 같은 다른 비디오 디코딩 유닛들이 또한 도 13 의 방법을 수행하도록 구성될 수도 있는 것으로 이해되어야 한다. 또한, 다른 예들에서, 유사한 방법들이 도 13 에 도시된 단계들에 대한 추가적인 또는 대안적인 단계들을 포함할 수도 있거나, 또는 그 도시된 단계들을 상이한 순서로, 설명되는 기법들을 일탈함이 없이 수행될 수도 있는 것으로 이해되어야 한다.
먼저, 비디오 디코더 (30) 는 인코딩된 잔여 데이터를 수신할 수도 있다 (300). 도 13 의 예에서, 예시의 목적들을 위해, 이 잔여 데이터는 인트라 예측 모드에서 예측된 하나 이상의 PUs 를 포함하는 CU 의 나머지 (residual) 에 대응한다. 본 개시물의 기법들에 따르면, 비디오 디코더 (30) 는 그 수신된 잔여 데이터와 연관되는 예측 데이터에 대해 제 1 예측 방향을 결정할 수도 있다 (302). 예측 방향은 그 CU 에 대응하는 쿼드트리의 루트에서 시그널링된 인트라 예측 모드에 대응할 수도 있다.
비디오 디코더 (30) 는 제 1 예측 방향에 맵핑된 제 2 예측 방향을 결정할 수도 있다 (304). 예를 들어, 맵핑 데이터 (84) 는 인트라 예측 모드들의 더 작은 세트, 예컨대, 서브세트에의, 인트라 예측 모드들의 세트의 다-대-일 맵핑을 제공할 수도 있다. 따라서, 비디오 디코더 (30) 는 맵핑 데이터 (84) 를 참조하여, 제 1 예측 방향에 맵핑된 제 2 예측 방향을 결정할 수도 있다. 그 후, 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (70) 은 그 수신된 계수들을 엔트로피 디코딩하기 시작할 수도 있다 (306).
엔트로피 디코딩 유닛 (70) 은 또한 그 계수들을 엔트로피 디코딩 동안 또는 이후에 역 스캔할 수도 있다 (308). 일부 예들에서, 엔트로피 디코딩 유닛 (70) 은 제 2 예측 방향이 예컨대, 맵핑 데이터 (84) 에 의해 나타낸 바와 같이, 맵핑되는 고정적 스캔을 반대로 할 수도 있다. 다른 예들에서, 예컨대, 제 1 변환이 회전 변환에 의해 캐스케이드될 때, 엔트로피 디코딩 유닛 (70) 은 동적 스캔을 반대로 할 수도 있다. 위에서 설명한 바와 같이, 이러한 예들에서, 엔트로피 디코딩 유닛 (70) 은 엔트로피 디코딩 유닛 (70) 이 인코더가 잔여 데이터를 적응적으로 스캔할 때 인코더, 예컨대 비디오 인코더 (20) 에 의해 사용되는 것과 동일한 동적 업데이팅 표를 생성할 수 있도록, 신택스 엘리먼트들, 예컨대 유효 계수 플래그들 및 최종 계수 플래그들을 수신하여 디코딩할 수도 있다.
임의의 경우, 역 스캔 다음에, 엔트로피 디코딩 유닛 (70) 은 양자화된 변환 계수들을 포함하는 2 차원 매트릭스를 생성할 수도 있다. 따라서, 역양자화 유닛 (76) 은 그 매트릭스의 양자화된 변환 계수들을 역 양자화할 수도 있다 (310). 역변환 유닛 (78) 은 제 2 예측 방향에 맵핑된 역변환을 선택하고 (312) 그 선택된 역변환을 이용하여 변환 계수들을 역변환할 수도 있다 (314). 예를 들어, 역변환 유닛 (76) 은 맵핑 데이터 (84) 를 참조하여 그 역변환을 선택할 수도 있다. 일부 예들에서, 맵핑 데이터 (84) 는 적용할 양자의 역 회전 변환 및 또 다른 역변환을 나타낼 수도 있으며, 이 경우 역변환 유닛 (78) 은 먼저 변환 계수들에 역 회전 변환을 적용한 후 다른 역변환을 적용할 수도 있다.
본 개시물의 기법들에 따르면, 일부 예들에서, 다수의 역변환들이 가능한 변환 계수들의 서브-블록들이 있을 수도 있다. 이러한 예들에서, 비디오 디코더 (30) 는 적용할 역변환을 비디오 인코더에 의해 제공된 변환의 표시를 이용하여 결정할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 잔여 데이터를 포함하는 블록에 대응하는 쿼드트리의 루트 노드에서 그 서브-블록들에 대해 사용되는 변환의 표시를 수신할 수도 있다.
역변환(들) 을 적용한 후, 비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 계산된 잔여 블록들과 유사한 잔여 블록들을 비디오 데이터의 인코딩 동안 획득한다. 인트라 예측 유닛 (74) 은 잔여 데이터에 대한 예측 유닛을 합산기 (80) 에 제공할 수도 있으며, 합산기는 예측 유닛과 잔여 데이터를 합산하여 디코딩된 CU 를 생성할 수도 있다 (316). 비디오 디코더 (30) 는 참조 프레임 스토어 (82) 에 그 디코딩된 CU 를 포함하는 디코딩된 프레임을 집합할 수도 있다. 그 후, 디코딩된 프레임은 디스플레이용으로 렌더링되거나 및/또는 다른 프레임들을 디코딩할 때 참조용으로 사용될 수도 있다.
이 방식에서, 도 13 의 방법은 인코딩된 비디오 데이터의 블록에 대한 인트라 예측 모드들의 제 1 세트에서 제 1 인트라 예측 모드의 표시를 수신하는 단계, 제 1 인트라 예측 모드가 맵핑된 인트라 예측 모드들의 더 작은 세트로부터 제 2 인트라 예측 모드를 결정하는 단계, 제 2 인트라 예측 모드가 맵핑되는 역 방향 변환을 결정하는 단계, 및 역 방향 변환을 그 블록의 변환된 잔여 데이터에 적용하는 단계를 포함하는 방법의 일 예이다.
도 13 의 방법은 또한 비디오 데이터의 블록을 디코딩하는데 사용할 제 1 인트라 예측 모드의 표시를 수신하는 단계, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 사이즈의 서브-블록들을 포함하는지 여부를 결정하는 단계, 그 블록이 서브-블록들의 사이즈 및 나타낸 인트라 예측 모드에 기초하여 다수의 역변환들이 가능한 사이즈의 서브-블록들을 포함할 때, 다수의 가능한 역변환들 중 하나의 제 2 표시를 수신하는 단계, 및 다수의 가능한 역변환들 중 나타낸 하나를 이용하여 그 서브-블록들을 역변환하는 단계를 포함하는 방법의 일 예이다.
도 13 의 방법은 또한 비디오 데이터의 블록에 대한 잔여 데이터가 변환 계수들의 2 차원 블록을 생성하기 위해 제 1 변환 및 회전 변환 양자를 이용하여 변환되었다는 표시를 수신하는 단계, 제 1 변환 및 회전 변환 중 적어도 하나와 연관되는 통계치들의 세트를 선택하는 단계로서, 상기 통계치들의 세트는 변환 계수들의 2 차원 블록에서의 로케이션들이 논-제로일 우도들을 제공하는, 상기 통계치들의 세트를 선택하는 단계, 및 그 블록에 대한 변환 계수들의 2 차원 매트릭스를 생성하기 위해 그 통계치들의 선택된 세트에 기초하여 그 블록에 대한 잔여 데이터의 인코딩된 버전을 포함하는 수신된 1 차원 벡터를 적응적으로 역 스캔하는 단계를 포함하는 방법의 일 예이다.
도 13 의 방법은 또한 인코딩된 변환 계수들의 수신된 1 차원 벡터에서 인코딩된 변환 계수들이 유효한지 여부를 나타내는 값들을 수신하는 단계, 그 값들 중 적어도 하나 앞에 디코딩된 미리 결정된 개수의 값들에서 적어도 유효 계수들의 퍼센티지에 기초하여 선택된 컨텍스트 모델을 이용하여 그 값들 중 적어도 하나를 엔트로피 디코딩하는 단계, 및 변환 계수들의 2 차원 블록을 생성하기 위해 그 1 차원 벡터를 역 스캔하는 단계를 포함하는 방법의 일 예이다.
도 14 는 DC 인트라 예측 모드가 시그널링되는 에지를 포함하는 인트라-코딩된 블록에 적용할 변환을 선택하는 예시적인 방법을 도시하는 플로우차트이다. 도 3 의 비디오 디코더 (30) 에 대해 설명되지만, 유사한 (상반된) 기법들이 도 2 의 비디오 인코더 (20), 또는 다른 비디오 코딩 디바이스들에 의해 적용될 수도 있는 것으로 이해되어야 한다.
비디오 인코더 (30) 는 인트라-코딩된 블록, 예컨대, TU 를 수신할 수도 있다 (180). 이 블록은 TU 쿼드트리에서의 노드에 대응하는 변환 계수들의 블록을 포함할 수도 있다. TU 쿼드트리 노드는 그 블록에 대한 예측 값을 계산하는데 적용될 인트라 예측 모드의 표시를 포함할 수도 있다. 따라서, 비디오 디코더 (30) 는 예측 모드, 및 그 블록에 대해 DC 예측 모드가 시그널링되는지 여부를 결정할 수도 있다 (352). DC 예측 모드가 그 블록에 대해 시그널링되면 (352 의 "예" 분기), 비디오 디코더 (30) 는 에지가 그 블록에 존재하는지 여부를 추가로 결정할 수도 있다 (354). 예를 들어, 위에서 설명한 바와 같이, 비디오 디코더 (30) 는 이웃하는 이전에 코딩된 블록들을 검사하여, 에지가 이전에 코딩된 블록들에서 검출되는지 여부, 및 에지가 그 이전에 코딩된 블록과 현재의 블록 사이의 경계를 횡단하는지 여부를 결정할 수도 있다.
에지가 그 블록에 존재하는 것으로 결정되면 (354 의 "예" 분기), 비디오 디코더 (30) 는 에지 기반 예측 모드를 이용하여 그 블록에 대한 예측된 값을 계산할 수도 있다 (356). 더욱이, 비디오 디코더 (30) 는 에지의 각도를 결정하고 (358), 그 에지의 각도에 가깝게 근사하는 각도를 갖는 인트라 모드를 결정할 수도 있다 (360). 예를 들어, 비디오 디코더 (30) 는 가능한 인트라 예측 모드들 중 하나 이상에 대한 각도들과 에지의 각도 사이의 차이들을 계산하고, 최저 차이를 갖는 인트라 예측 모드를 선택할 수도 있다.
이 예측 모드를 결정하는 것은 일반적으로 오직 그 예측 모드에 맵핑된 변환을 결정하기 위해서만 수행되지만, 이 예에서는, 비디오 디코더 (30) 가 일반적으로 에지 기반 예측 모드를 이용하여 그 블록에 대한 값을 예측한다. 즉, 비디오 디코더 (30) 는 그 후 그 결정된 인트라 예측 모드 (362), 즉, 에지의 각도에 가깝게 근사하는 각도를 갖는 인트라 예측 모드에 맵핑된 변환을 선택할 수도 있다. 그 후, 비디오 디코더 (30) 는 그 선택된 변환을 이용하여 그 블록을 변환할 수도 있다 (364).
한편, DC 예측 모드가 그 블록에 대해 시그널링되지 않았으면 (352 의 "아니오" 분기), 비디오 디코더 (30) 는 그 시그널링된 모드를 이용하여 그 블록을 예측할 수도 있다 (353). DC 예측 모드가 시그널링될 때 에지가 그 블록에 존재하는 것으로 결정되지 않으면 (354 의 "아니오" 분기), 비디오 디코더 (30) 는 시그널링될 때에 DC 예측 모드를 이용하여 그 블록을 예측할 수도 있다 (366). 비디오 디코더 (30) 는 또한 예측 모드 (예컨대, 시그널링될 때, DC 또는 방향) 에 맵핑된 변환, 또는 일부 예들에서는, 디폴트 변환, 예컨대 DCT 를 선택할 수도 있다 (368). 비디오 디코더 (30) 는 또한 이 경우, 그 선택된 변환을 이용하여 그 블록을 변환할 수도 있다 (364).
이 예에서 블록을 역 변환하는 것에 대응하는, 블록을 변환한 후, 비디오 디코더 (30) 는 잔여 값들의 블록을 공간 도메인에서 복원한다. 블록을 디코딩하기 위해, 비디오 디코더 (30) 는 잔여 값들의 블록을 (단계 353, 356, 또는 366 로부터 생성하는) 예측된 블록에 가산할 수도 있다. 잔여 값을 그 예측된 값에 가산하는 단계들은 간결성을 위해 도 14 에 나타내지 않지만, 단계 (364) 이후에 수행될 수도 있다.
이 방식에서, 도 14 의 방법은 비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하는 단계, 비디오 데이터의 블록에서 그 에지에 대한 각도를 그 블록에 대한 DC 인트라 예측 모드의 표시에 기초하여 결정하는 단계, 에지의 각도에 근사하는 각도를 갖는 방향성 인트라 예측 모드에 맵핑된 방향 역변환을 이용하여 그 블록을 역변환하는 단계, 및 그 역변환된 블록을 디코딩하는 단계를 포함하는 방법의 일 예이다.
위에서 언급한 바와 같이, 유사한 방법이 예컨대, 비디오 인코더 (20) 에 의해 수행될 수도 있다. 이러한 방법은 인트라 예측 인코딩되는 블록이 그 블록 내에 에지를 포함한다고 결정하는 단계, 에지 방향성 인트라 예측 모드를 이용하여 계산된 예측 값에 기초하여 그 블록에 대한 잔여 블록을 계산하는 단계, 에지의 각도에 근사하는 각도를 갖는 방향성 인트라 예측 모드에 맵핑된 방향 변환을 이용하여 그 잔여 블록을 변환하는 단계, 및 그 변환된 잔여 블록을 나타내는 정보 및 그 블록이 DC 인트라 예측 모드를 이용하여 예측되었다는 것을 나타내는 정보를 출력하는 단계를 포함할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 이 기능들은 하나 이상의 명령들 또는 코드들로서, 컴퓨터 판독가능 매체 상에 저장되거나 또는 송신되어 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은 컴퓨터 판독가능 저장 매체들을 포함할 수도 있으며, 이 컴퓨터 판독가능 저장 매체들은 데이터 저장 매체들, 또는 예컨대, 통신 프로토콜에 따라서 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들과 같은, 유형의 매체에 대응한다. 이 방식에서, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시성인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시물에서 설명하는 기법들의 구현예에 대한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
일 예로서, 이에 한정하지 않고, 이러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 저장, 자기디스크 저장, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 지칭된다. 예를 들어, 명령들이 웹사이트, 서버, 또는 다른 원격 소오스로부터 동축 케이블, 광섬유 케이블, 이중 권선, 디지털 가입자 회선 (DSL), 또는 무선 기술들, 예컨대 적외선, 무선, 및 마이크로파를 이용하여 송신되는 경우, 그 매체의 정의에, 동축 케이블, 광섬유 케이블, 이중 권선, DSL, 또는 무선 기술들, 예컨대 적외선, 무선, 및 마이크로파가 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들이 접속들, 캐리어 파들, 신호들, 또는 다른 일시적인 매체들을 포함하지 않고, 대신, 비-일시성의 유형의 저장 매체들에 관련되는 것으로 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용할 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 본원에서, 디스크들 (disks) 은 데이터를 자기적으로 보통 재생하지만, 디스크들 (discs) 은 레이저로 데이터를 광학적으로 재생한다. 앞에서 언급한 것들의 조합들이 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 예컨대 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 주문형 집적회로들 (ASICs), 필드 프로그래밍가능 로직 어레이들 (FPGAs), 또는 다른 등가의 통합 또는 이산 로직 회로에 의해 실행될 수도 있다. 따라서, 용어 "프로세서" 는, 본원에서 사용될 때, 전술한 구조 또는 본원에서 설명한 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 구조를 지칭할 수도 있다. 게다가, 일부 양태들에서, 본원에서 설명하는 기능은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나, 또는 그 결합된 코덱에 통합될 수도 있다. 또한, 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 충분히 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 ICs 의 세트 (예컨대, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 여러 컴포넌트들, 모듈들, 또는 유닛들이 본 개시물에서 그 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요하지는 않는다. 더 정확히 말하면, 위에서 설명한 바와 같이, 여러 유닛들이 코덱 하드웨어 유닛에 결합되거나, 또는 위에서 설명한 하나 이상의 프로세서들을 포함한, 상호작용하는 하드웨어 유닛들의 컬렉션을, 적합한 소프트웨어 및/또는 펌웨어와 함께, 제공될 수도 있다.

Claims (57)

  1. 비디오 데이터를 인코딩하는 방법으로서,
    비디오 데이터의 블록을 인코딩하는데 사용하기 위해 인트라 예측 모드를 선택하는 단계;
    상기 블록이, 상기 선택된 인트라 예측 모드 및 서브 블록의 사이즈에 기초하여 다수의 변환들이 가능한 사이즈의 서브 블록을 포함하는지 여부를 결정하는 단계;
    상기 블록이 상기 서브 블록의 사이즈 및 상기 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하는 경우,
    상기 다수의 가능한 변환들 중 하나를 선택하는 단계;
    상기 다수의 가능한 변환들 중 상기 선택된 하나를 사용하여 상기 서브 블록을 변환하는 단계; 및
    상기 블록의 사이즈에 대해 상기 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하는 단계를 포함하는, 비디오 데이터 인코딩 방법.
  2. 제 1 항에 있어서,
    상기 블록이 다수의 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하지 않는 경우, 상기 블록에 대해 선택된 상기 인트라 예측 모드와 연관된 변환을 사용하여 상기 블록을 변환하는 단계를 더 포함하는, 비디오 데이터 인코딩 방법.
  3. 제 1 항에 있어서,
    상기 다수의 가능한 변환들 중 상기 선택된 하나를 사용하여 다수의 변환들이 가능한 상기 사이즈를 갖는 상기 블록의 모든 서브 블록들을 변환하는 단계를 더 포함하는, 비디오 데이터 인코딩 방법.
  4. 제 1 항에 있어서,
    상기 인트라 예측 모드는 제 1 인트라 예측 모드를 포함하고,
    상기 서브 블록은 제 1 서브 블록을 포함하고,
    상기 방법은,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 사이즈의 제 2 서브 블록을 포함하는지 여부를 결정하는 단계;
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우,
    상기 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하는 단계; 및
    상기 제 2 인트라 예측 모드를 사용하여 상기 제 2 서브 블록을 예측하는 단계를 더 포함하는, 비디오 데이터 인코딩 방법.
  5. 제 4 항에 있어서,
    상기 제 1 서브 블록 및 상기 제 2 서브 블록은 동일한 서브 블록인, 비디오 데이터 인코딩 방법.
  6. 제 4 항에 있어서,
    상기 제 1 인트라 예측 모드가 상기 블록의 모든 서브 블록들에 대해 이용 가능한 경우, 상기 제 1 인트라 예측 모드를 사용하여 모든 서브 블록들을 예측하는 단계를 더 포함하는, 비디오 데이터 인코딩 방법.
  7. 제 1 항에 있어서,
    상기 표시를 제공하는 단계는, 상기 비디오 데이터의 블록에 대응하는 쿼드트리 (quadtree) 데이터 구조의 루트 노드에 상기 표시를 제공하는 단계를 포함하는, 비디오 데이터 인코딩 방법.
  8. 비디오 데이터를 인코딩하는 장치로서,
    비디오 데이터의 블록을 인코딩하는데 사용하기 위해 인트라 예측 모드를 선택하고,
    상기 블록이, 상기 선택된 인트라 예측 모드 및 서브 블록의 사이즈에 기초하여 다수의 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는지 여부를 결정하고,
    상기 블록이 상기 선택된 인트라 예측 모드 및 상기 서브 블록의 사이즈에 기초하여 다수의 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하는 경우, 상기 다수의 가능한 변환들 중 하나를 선택하고,
    상기 다수의 가능한 변환들 중 상기 선택된 하나를 사용하여 상기 서브 블록을 변환하며,
    상기 블록의 사이즈에 대해 상기 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하도록 구성된 비디오 인코더를 포함하는, 비디오 데이터 인코딩 장치.
  9. 제 8 항에 있어서,
    상기 블록이 다수의 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하지 않는 경우, 상기 비디오 인코더는 상기 블록에 대해 선택된 상기 인트라 예측 모드와 연관된 변환을 사용하여 상기 블록을 변환하도록 구성되는, 비디오 데이터 인코딩 장치.
  10. 제 8 항에 있어서,
    상기 비디오 인코더는 상기 다수의 가능한 변환들 중 상기 선택된 하나를 사용하여 다수의 변환들이 가능한 상기 사이즈를 갖는 상기 블록의 모든 서브 블록들을 변환하도록 구성되는, 비디오 데이터 인코딩 장치.
  11. 제 8 항에 있어서,
    상기 인트라 예측 모드는 제 1 인트라 예측 모드를 포함하고,
    상기 서브 블록은 제 1 서브 블록을 포함하고,
    상기 비디오 인코더는 또한,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 사이즈의 제 2 서브 블록을 포함하는지 여부를 결정하고,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우, 상기 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하며,
    상기 제 2 인트라 예측 모드를 사용하여 상기 제 2 서브 블록을 예측하도록 구성되는, 비디오 데이터 인코딩 장치.
  12. 제 11 항에 있어서,
    상기 제 1 인트라 예측 모드가 상기 블록의 모든 서브 블록들에 대해 이용 가능한 경우, 상기 비디오 인코더는 상기 제 1 인트라 예측 모드를 사용하여 모든 서브 블록들을 예측하도록 구성되는, 비디오 데이터 인코딩 장치.
  13. 제 8 항에 있어서,
    상기 비디오 인코더는 상기 비디오 데이터의 블록에 대응하는 쿼드트리 (quadtree) 데이터 구조의 루트 노드에 상기 다수의 가능한 변환들 중 상기 선택된 하나의 표시를 제공하도록 구성되는, 비디오 데이터 인코딩 장치.
  14. 제 8 항에 있어서,
    상기 장치는,
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 인코더를 포함하는 무선 통신 디바이스 중 적어도 하나를 포함하는, 비디오 데이터 인코딩 장치.
  15. 비디오 데이터를 인코딩하기 위한 장치로서,
    비디오 데이터의 블록을 인코딩하는데 사용하도록 인트라 예측 모드를 선택하기 위한 수단;
    상기 블록이, 상기 선택된 인트라 예측 모드 및 서브 블록의 사이즈에 기초하여 다수의 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는지 여부를 결정하기 위한 수단;
    상기 블록이 상기 서브 블록의 사이즈 및 상기 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하는 경우, 상기 다수의 가능한 변환들 중 하나를 선택하기 위한 수단;
    상기 블록이 상기 서브 블록의 사이즈 및 상기 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하는 경우, 상기 다수의 가능한 변환들 중 상기 선택된 하나를 사용하여 상기 서브 블록을 변환하기 위한 수단; 및
    상기 블록이 상기 서브 블록의 사이즈 및 상기 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하는 경우, 상기 블록의 사이즈에 대해 상기 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하기 위한 수단를 포함하는, 비디오 데이터 인코딩 장치.
  16. 제 15 항에 있어서,
    상기 인트라 예측 모드는 제 1 인트라 예측 모드를 포함하고,
    상기 서브 블록은 제 1 서브 블록을 포함하고,
    상기 장치는,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 사이즈의 제 2 서브 블록을 포함하는지 여부를 결정하기 위한 수단;
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우, 상기 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하기 위한 수단; 및
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우, 상기 제 2 인트라 예측 모드를 사용하여 상기 제 2 서브 블록을 예측하기 위한 수단를 더 포함하는, 비디오 데이터 인코딩 장치.
  17. 명령들이 저장되는 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 명령들은 실행될 때, 비디오 데이터를 인코딩하는 디바이스의 프로세서로 하여금,
    비디오 데이터의 블록을 인코딩하는데 사용하기 위해 인트라 예측 모드를 선택하게 하고;
    상기 블록이, 상기 선택된 인트라 예측 모드 및 서브 블록의 사이즈에 기초하여 다수의 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는지 여부를 결정하게 하고;
    상기 블록이 상기 서브 블록의 사이즈 및 상기 선택된 인트라 예측 모드에 기초하여 다수의 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하는 경우:
    상기 다수의 가능한 변환들 중 하나를 선택하게 하고;
    상기 다수의 가능한 변환들 중 상기 선택된 하나를 사용하여 상기 서브 블록을 변환하게 하며;
    상기 블록의 사이즈에 대해 상기 다수의 가능한 변환들 중 선택된 하나의 표시를 제공하도록 하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  18. 제 17 항에 있어서,
    상기 인트라 예측 모드는 제 1 인트라 예측 모드를 포함하고,
    상기 서브 블록은 제 1 서브 블록을 포함하고,
    상기 프로세서로 하여금,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 사이즈의 제 2 서브 블록을 포함하는지 여부를 결정하게 하고;
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우:
    상기 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하게 하며;
    상기 제 2 인트라 예측 모드를 사용하여 상기 제 2 서브 블록을 예측하도록 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  19. 비디오 데이터를 디코딩하는 방법으로서,
    비디오 데이터의 블록을 디코딩하는데 사용하기 위해 인트라 예측 모드의 제 1 표시를 수신하는 단계;
    상기 블록이, 상기 표시된 인트라 예측 모드 및 서브 블록의 사이즈에 기초하여 다수의 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는지 여부를 결정하는 단계;
    상기 블록이 상기 표시된 인트라 예측 모드 및 상기 서브 블록의 사이즈에 기초하여 다수의 역 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는 경우:
    상기 다수의 가능한 역 변환들 중 하나의 제 2 표시를 수신하는 단계; 및
    상기 다수의 가능한 역 변환들 중 표시된 하나를 사용하여 상기 서브 블록을 역 변환하는 단계를 포함하는, 비디오 데이터 디코딩 방법.
  20. 제 19 항에 있어서,
    상기 블록이 다수의 역 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하지 않는 경우, 상기 블록에 대해 표시된 상기 인트라 예측 모드와 연관된 역 변환을 사용하여 상기 블록을 역 변환하는 단계를 더 포함하는, 비디오 데이터 디코딩 방법.
  21. 제 19 항에 있어서,
    상기 다수의 가능한 변환들 중 상기 표시된 하나를 사용하여 다수의 역 변환들이 가능한 상기 사이즈를 갖는 상기 블록의 모든 서브 블록들을 역 변환하는 단계를 더 포함하는, 비디오 데이터 디코딩 방법.
  22. 제 19 항에 있어서,
    상기 인트라 예측 모드는 제 1 인트라 예측 모드를 포함하고,
    상기 서브 블록은 제 1 서브 블록을 포함하고,
    상기 방법은,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 사이즈의 제 2 서브 블록을 포함하는지 여부를 결정하는 단계;
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우:
    상기 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하는 단계; 및
    상기 제 2 인트라 예측 모드를 사용하여 상기 제 2 서브 블록을 예측하는 단계를 더 포함하는, 비디오 데이터 디코딩 방법.
  23. 제 22 항에 있어서,
    상기 제 1 인트라 예측 모드가 상기 블록의 모든 서브 블록들에 대해 이용 가능한 경우, 상기 제 1 인트라 예측 모드를 사용하여 모든 서브 블록들을 예측하는 단계를 더 포함하는, 비디오 데이터 디코딩 방법.
  24. 제 19 항에 있어서,
    상기 제 1 표시를 수신하는 단계는, 상기 비디오 데이터의 블록에 대응하는 쿼드트리 (quadtree) 데이터 구조의 루트 노드에서 상기 제 1 표시를 수신하는 단계를 포함하는, 비디오 데이터 디코딩 방법.
  25. 비디오 데이터를 디코딩하기 위한 장치로서,
    비디오 데이터의 블록을 디코딩하는데 사용하기 위해 인트라 예측 모드의 제 1 표시를 수신하고,
    상기 블록이, 상기 표시된 인트라 예측 모드 및 서브 블록의 사이즈에 기초하여 다수의 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는지 여부를 결정하고,
    상기 블록이 상기 표시된 인트라 예측 모드 및 상기 서브 블록의 사이즈에 기초하여 다수의 역 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하는 경우,
    상기 다수의 가능한 역 변환들 중 하나의 제 2 표시를 수신하며,
    상기 다수의 가능한 역 변환들 중 표시된 하나를 사용하여 상기 서브 블록을 역 변환하도록 구성된 비디오 디코더를 포함하는, 비디오 데이터 디코딩 장치.
  26. 제 25 항에 있어서,
    상기 블록이 다수의 역 변환들이 가능한 상기 사이즈의 상기 서브 블록을 포함하지 않는 경우, 상기 비디오 디코더는 상기 블록에 대해 표시된 상기 인트라 예측 모드와 연관된 역 변환을 사용하여 상기 블록을 역 변환하도록 구성되는, 비디오 데이터 디코딩 장치.
  27. 제 25 항에 있어서,
    상기 비디오 디코더는 상기 다수의 가능한 변환들 중 상기 표시된 하나를 사용하여 다수의 역 변환들이 가능한 상기 사이즈를 갖는 상기 블록의 모든 서브 블록들을 역 변환하도록 구성되는, 비디오 데이터 디코딩 장치.
  28. 제 25 항에 있어서,
    상기 인트라 예측 모드는 제 1 인트라 예측 모드를 포함하고,
    상기 서브 블록은 제 1 서브 블록을 포함하고,
    상기 비디오 디코더는,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 사이즈의 제 2 서브 블록을 포함하는지 여부를 결정하고,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우, 상기 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하며,
    상기 제 2 인트라 예측 모드를 사용하여 상기 제 2 서브 블록을 예측하도록 구성되는, 비디오 데이터 디코딩 장치.
  29. 제 28 항에 있어서,
    상기 제 1 인트라 예측 모드가 상기 블록의 모든 서브 블록들에 대해 이용 가능한 경우, 상기 비디오 디코더는 상기 제 1 인트라 예측 모드를 사용하여 모든 서브 블록들을 예측하도록 구성되는, 비디오 데이터 디코딩 장치.
  30. 제 25 항에 있어서,
    상기 비디오 디코더는 상기 비디오 데이터의 블록에 대응하는 쿼드트리 (quadtree) 데이터 구조의 루트 노드에서 상기 제 1 표시를 수신하도록 구성되는, 비디오 데이터 디코딩 장치.
  31. 제 25 항에 있어서,
    상기 장치는,
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 디코더를 포함하는 무선 통신 디바이스 중 적어도 하나를 포함하는, 비디오 데이터 디코딩 장치.
  32. 비디오 데이터를 디코딩하기 위한 장치로서,
    비디오 데이터의 블록을 디코딩하는데 사용하도록 인트라 예측 모드의 제 1 표시를 수신하기 위한 수단;
    상기 블록이, 상기 표시된 인트라 예측 모드 및 서브 블록의 사이즈에 기초하여 다수의 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는지 여부를 결정하기 위한 수단;
    상기 블록이 상기 표시된 인트라 예측 모드 및 상기 서브 블록의 사이즈에 기초하여 다수의 역 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는 경우, 상기 다수의 가능한 역 변환들 중 하나의 제 2 표시를 수신하기 위한 수단; 및
    상기 블록이 상기 표시된 인트라 예측 모드 및 상기 서브 블록의 사이즈에 기초하여 다수의 역 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는 경우, 상기 다수의 가능한 역 변환들 중 표시된 하나를 사용하여 상기 서브 블록을 역 변환하기 위한 수단을 포함하는, 비디오 데이터 디코딩 장치.
  33. 제 32 항에 있어서,
    상기 인트라 예측 모드는 제 1 인트라 예측 모드를 포함하고,
    상기 서브 블록은 제 1 서브 블록을 포함하고,
    상기 장치는,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 사이즈의 제 2 서브 블록을 포함하는지 여부를 결정하기 위한 수단;
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우, 상기 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하기 위한 수단; 및
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우, 상기 제 2 인트라 예측 모드를 사용하여 상기 제 2 서브 블록을 예측하기 위한 수단을 더 포함하는, 비디오 데이터 디코딩 장치.
  34. 명령들이 저장되는 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 명령들은 실행될 때, 비디오 데이터를 디코딩하기 위한 디바이스의 프로세서로 하여금,
    비디오 데이터의 블록을 디코딩하는데 사용하기 위해 인트라 예측 모드의 제 1 표시를 수신하게 하고;
    상기 블록이, 상기 표시된 인트라 예측 모드 및 서브 블록의 사이즈에 기초하여 다수의 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는지 여부를 결정하게 하고;
    상기 블록이 상기 표시된 인트라 예측 모드 및 상기 서브 블록의 사이즈에 기초하여 다수의 역 변환들이 가능한 사이즈의 상기 서브 블록을 포함하는 경우:
    상기 다수의 가능한 역 변환들 중 하나의 제 2 표시를 수신하게 하며;
    상기 다수의 가능한 역 변환들 중 표시된 하나를 사용하여 상기 서브 블록을 역 변환하도록 하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  35. 제 34 항에 있어서,
    상기 인트라 예측 모드는 제 1 인트라 예측 모드를 포함하고,
    상기 서브 블록은 제 1 서브 블록을 포함하고,
    상기 프로세서로 하여금,
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 사이즈의 제 2 서브 블록을 포함하는지 여부를 결정하게 하고;
    상기 블록이 상기 제 1 인트라 예측 모드가 이용 가능하지 않은 상기 사이즈의 상기 제 2 서브 블록을 포함하는 경우:
    상기 제 1 인트라 예측 모드가 맵핑되는 제 2 인트라 예측 모드를 결정하게 하며;
    상기 제 2 인트라 예측 모드를 사용하여 상기 제 2 서브 블록을 예측하도록 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  36. 비디오 데이터를 디코딩하는 방법으로서,
    비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하는 단계;
    상기 비디오 데이터의 블록에 에지가 존재하는지 여부를 결정하는 단계;
    상기 블록에 상기 에지가 존재한다는 것을 결정한 후에:
    상기 에지에 대한 각도를 결정하는 단계; 및
    상기 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 상기 정보 및 상기 블록에 상기 에지가 존재한다는 상기 결정에 기초하여, 상기 에지의 상기 각도에 근사한 각도를 갖는 방향성 인트라 예측 모드로부터 맵핑된 방향성 역 변환을 사용하여 상기 블록을 역 변환하는 단계; 및
    상기 역 변환된 블록을 디코딩하는 단계를 포함하는, 비디오 데이터 디코딩방법.
  37. 제 36 항에 있어서,
    상기 블록은 현재 블록을 포함하고,
    상기 에지가 상기 현재 블록에 존재한다는 것을 결정하는 단계는;
    상기 현재 블록에 대해, 하나 이상의 이웃하는 이전에 코딩된 블록들의 픽셀들을 분석하는 단계; 및
    상기 분석에 기초하여, 에지가 이웃하는 이전에 코딩된 블록에 존재하는 경우 상기 에지가 상기 현재 블록에 존재한다는 것을 결정하고 상기 이웃하는 이전에 코딩된 블록에서의 상기 에지는 상기 이웃하는 이전에 코딩된 블록과 상기 현재 블록 사이의 경계를 교차한다는 것을 결정하는 단계를 포함하는, 비디오 데이터 디코딩방법.
  38. 제 36 항에 있어서,
    상기 방향성 인트라 예측 모드로부터 맵핑된 상기 방향성 역 변환을 상기 에지의 각도에 대해 최소 차이인 각도를 갖는 상기 방향성 역 변환으로서 결정하는 단계를 더 포함하는, 비디오 데이터 디코딩방법.
  39. 제 36 항에 있어서,
    상기 역 변환된 블록을 디코딩하는 단계는,
    에지 기반 인트라 예측 모드를 사용하여 예측된 값을 계산하는 단계; 및
    상기 예측된 값을 상기 역 변환된 블록에 가산하는 단계를 포함하는, 비디오 데이터 디코딩방법.
  40. 비디오 데이터를 디코딩하기 위한 장치로서,
    비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하고, 상기 비디오 데이터의 블록에 에지가 존재하는지 여부를 결정하고, 상기 블록에 상기 에지가 존재한다는 것을 결정한 후 상기 인트라 예측 모드가 상기 DC 인트라 예측 모드인 것을 나타내는 상기 정보 및 상기 블록에 상기 에지가 존재한다는 상기 결정에 기초하여 상기 에지에 대한 각도를 결정하고, 상기 에지의 상기 각도에 근사한 각도를 갖는 방향성 인트라 예측 모드로부터 맵핑된 방향성 역 변환을 사용하여 상기 블록을 역 변환하며, 상기 역 변환된 블록을 디코딩하도록 구성된 비디오 디코더를 포함하는, 비디오 데이터 디코딩 장치.
  41. 제 40 항에 있어서,
    상기 블록은 현재 블록을 포함하고,
    상기 에지가 상기 현재 블록에 존재한다는 것을 결정하기 위해, 상기 비디오 디코더는 상기 현재 블록으로 하나 이상의 이웃하는 이전에 코딩된 블록들의 픽셀들을 분석하고, 상기 분석에 기초하여 에지가 이웃하는 이전에 코딩된 블록에 존재하는 경우 상기 에지가 상기 현재 블록에 존재한다는 것을 결정하고 상기 이웃하는 이전에 코딩된 블록에서의 상기 에지는 상기 이웃하는 이전에 코딩된 블록과 상기 현재 블록 사이의 경계를 교차한다는 것을 결정하도록 구성되는, 비디오 데이터 디코딩 장치.
  42. 제 40 항에 있어서,
    상기 비디오 디코더는 또한, 상기 방향성 인트라 예측 모드로부터 맵핑된 상기 방향성 역 변환을 상기 에지의 각도에 대해 최소 차이인 각도를 갖는 상기 방향성 역 변환으로서 결정하도록 구성되는, 비디오 데이터 디코딩 장치.
  43. 제 40 항에 있어서,
    상기 역 변환된 블록을 디코딩하기 위해, 상기 비디오 디코더는, 에지 기반 인트라 예측 모드를 사용하여 예측된 값을 계산하고, 상기 예측된 값을 상기 역 변환된 블록에 가산하도록 구성되는, 비디오 데이터 디코딩 장치.
  44. 제 40 항에 있어서,
    상기 장치는,
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 디코더를 포함하는 무선 통신 디바이스 중 적어도 하나를 포함하는, 비디오 데이터 디코딩 장치.
  45. 비디오 데이터를 디코딩하기 위한 장치로서,
    비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하기 위한 수단;
    상기 비디오 데이터의 블록에 에지가 존재하는지 여부를 결정하기 위한 수단;
    상기 블록에 상기 에지가 존재한다는 것을 결정한 후에, 상기 블록에 대한 상기 DC 인트라 예측 모드의 표시에 기초하여 상기 비디오 데이터의 블록에서의 에지에 대한 각도를 결정하기 위한 수단; 및
    상기 에지의 상기 각도를 결정한 후에, 상기 인트라 예측 모드가 상기 DC 인트라 예측 모드인 것을 나타내는 상기 정보 및 상기 블록에 상기 에지가 존재한다는 상기 결정에 기초하여 상기 에지의 상기 각도에 근사한 각도를 갖는 방향성 인트라 예측 모드로부터 맵핑된 방향성 역 변환을 사용하여 상기 블록을 역 변환하기 위한 수단; 및
    상기 역 변환된 블록을 디코딩하기 위한 수단을 포함하는, 비디오 데이터 디코딩 장치.
  46. 명령들이 저장되는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 명령들은 실행될 때, 프로세서로 하여금,
    비디오 데이터의 블록에 대한 인트라 예측 모드가 DC 인트라 예측 모드인 것을 나타내는 정보를 수신하게 하고;
    상기 비디오 데이터의 블록에 에지가 존재하는지 여부를 결정하게 하고;
    상기 블록에 상기 에지가 존재한다는 것을 결정한 후에:
    상기 블록에 대한 상기 DC 인트라 예측 모드의 표시에 기초하여 상기 에지에 대한 각도를 결정하게 하고;
    상기 인트라 예측 모드가 상기 DC 인트라 예측 모드인 것을 나타내는 상기 정보 및 상기 블록에 상기 에지가 존재한다는 상기 결정에 기초하여, 상기 에지의 상기 각도에 근사한 각도를 갖는 방향성 인트라 예측 모드로부터 맵핑된 방향성 역 변환을 사용하여 상기 블록을 역 변환하게 하며;
    상기 역 변환된 블록을 디코딩하게 하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  47. 비디오 데이터를 인코딩하는 방법으로서,
    인트라 예측 인코딩되는 블록이 상기 블록 내에 에지를 포함한다고 결정하는 단계;
    상기 블록을 예측하기 위해 에지 기반 인트라 예측 모드를 선택하는 단계;
    상기 에지 기반 인트라 예측 모드를 사용하여 계산된 예측 값에 기초하여 상기 블록에 대한 잔여 블록을 계산하는 단계;
    상기 에지가 상기 블록에 존재한다는 결정 및 상기 에지 기반 인트라 예측 모드의 선택에 기초하여, 상기 에지의 각도에 근사한 각도를 갖는 방향성 인트라 예측 모드로부터 맵핑된 방향성 변환을 사용하여 상기 잔여 블록을 변환하는 단계; 및
    상기 블록이 DC 인트라 예측 모드를 사용하여 예측되었다는 것을 나타내는 정보 및 상기 변환된 잔여 블록을 나타내는 정보를 출력하는 단계를 포함하는, 비디오 데이터 인코딩 방법.
  48. 제 47 항에 있어서,
    상기 블록은 현재 블록을 포함하고,
    상기 에지가 상기 현재 블록에 존재한다고 결정하는 단계는,
    상기 현재 블록으로 하나 이상의 이웃하는 이전에 코딩된 블록들의 픽셀들을 분석하는 단계; 및
    상기 분석에 기초하여 에지가 이웃하는 이전에 코딩된 블록에 존재하는 경우 상기 에지가 상기 현재 블록에 존재한다고 결정하고, 상기 이웃하는 이전에 코딩된 블록은 상기 이웃하는 이전에 코딩된 블록과 상기 현재 블록 사이의 경계를 교차한다고 결정하는 단계를 포함하는, 비디오 데이터 인코딩 방법.
  49. 제 47 항에 있어서,
    상기 방향성 인트라 예측 모드로부터 맵핑된 상기 방향성 변환을 상기 에지의 상기 각도에 대해 최소 차이인 각도를 갖는 상기 방향성 변환으로서 결정하는 단계를 더 포함하는, 비디오 데이터 인코딩 방법.
  50. 제 47 항에 있어서,
    상기 잔여 블록을 계산하는 단계는,
    상기 에지 기반 인트라 예측 모드를 사용하여 상기 블록에 대한 예측된 값을 계산하는 단계; 및
    상기 블록에 대한 오리지널 값으로부터 상기 예측된 값을 차감하는 단계를 포함하는, 비디오 데이터 인코딩 방법.
  51. 비디오 데이터를 인코딩하기 위한 장치로서,
    인트라 예측 인코딩되는 블록이 상기 블록 내에 에지를 포함한다고 결정하고, 상기 블록을 예측하기 위해 에지 기반 인트라 예측 모드를 선택하고, 상기 에지 기반 인트라 예측 모드를 사용하여 계산된 예측 값에 기초하여 상기 블록에 대한 잔여 블록을 계산하고, 상기 에지가 상기 블록에 존재한다는 결정 및 상기 에지 기반 인트라 예측 모드의 선택에 기초하여 상기 에지의 각도에 근사한 각도를 갖는 방향성 인트라 예측 모드로부터 맵핑된 방향성 변환을 사용하여 상기 잔여 블록을 변환하며, 상기 블록이 DC 인트라 예측 모드를 사용하여 예측되었다는 것을 나타내는 정보 및 상기 변환된 잔여 블록을 나타내는 정보를 출력하도록 구성된 비디오 인코더를 포함하는, 비디오 데이터 인코딩 장치.
  52. 제 51 항에 있어서,
    상기 블록은 현재 블록을 포함하고,
    상기 에지가 상기 현재 블록에 존재한다고 결정하기 위해, 상기 비디오 인코더는, 상기 현재 블록으로 하나 이상의 이웃하는 이전에 코딩된 블록들의 픽셀들을 분석하고, 상기 분석에 기초하여 에지가 이웃하는 이전에 코딩된 블록에 존재하는 경우 상기 에지가 상기 현재 블록에 존재한다고 결정하고, 상기 이웃하는 이전에 코딩된 블록에서의 상기 에지는 상기 이웃하는 이전에 코딩된 블록과 상기 현재 블록 사이의 경계를 교차한다고 결정하도록 구성되는, 비디오 데이터 인코딩 장치.
  53. 제 51 항에 있어서,
    상기 비디오 인코더는 또한, 상기 방향성 인트라 예측 모드로부터 맵핑된 상기 방향성 변환을 상기 에지의 상기 각도에 대해 최소 차이인 각도를 갖는 상기 방향성 변환으로서 결정하도록 구성되는, 비디오 데이터 인코딩 장치.
  54. 제 51 항에 있어서,
    상기 잔여 블록을 계산하기 위해, 상기 비디오 인코더는, 상기 에지 기반 인트라 예측 모드를 사용하여 상기 블록에 대한 예측된 값을 계산하고, 상기 블록에 대한 오리지널 값으로부터 상기 예측된 값을 차감하도록 구성되는, 비디오 데이터 인코딩 장치.
  55. 제 51 항에 있어서,
    상기 장치는,
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 인코더를 포함하는 무선 통신 디바이스 중 적어도 하나를 포함하는, 비디오 데이터 인코딩 장치.
  56. 비디오 데이터를 인코딩하기 위한 장치로서,
    인트라 예측 인코딩되는 블록이 상기 블록 내에 에지를 포함한다고 결정하기 위한 수단;
    상기 블록을 예측하기 위해 에지 기반 인트라 예측 모드를 선택하기 위한 수단;
    상기 에지 기반 인트라 예측 모드를 사용하여 계산된 예측 값에 기초하여 상기 블록에 대한 잔여 블록을 계산하기 위한 수단;
    상기 에지가 상기 블록에 존재한다는 결정 및 상기 에지 기반 인트라 예측 모드의 선택에 기초하여 상기 에지의 각도에 근사한 각도를 갖는 방향성 인트라 예측 모드로부터 맵핑된 방향성 변환을 사용하여 상기 잔여 블록을 변환하기 위한 수단; 및
    상기 블록이 DC 인트라 예측 모드를 사용하여 예측되었다는 것을 나타내는 정보 및 상기 변환된 잔여 블록을 나타내는 정보를 출력하기 위한 수단을 포함하는, 비디오 데이터 인코딩 장치.
  57. 명령들이 저장되는 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 명령들은 실행될 때, 프로세서로 하여금,
    인트라 예측 인코딩되는 블록이 상기 블록 내에 에지를 포함한다고 결정하게 하고;
    상기 블록을 예측하기 위해 에지 기반 인트라 예측 모드를 선택하게 하고;
    상기 에지 기반 인트라 예측 모드를 사용하여 계산된 예측 값에 기초하여 상기 블록에 대한 잔여 블록을 계산하게 하고;
    상기 에지가 상기 블록에 존재한다는 결정 및 상기 에지 기반 인트라 예측 모드의 선택에 기초하여 상기 에지의 각도에 근사한 각도를 갖는 방향성 인트라 예측 모드로부터 맵핑된 방향성 변환을 사용하여 상기 잔여 블록을 변환하게 하며;
    상기 블록이 DC 인트라 예측 모드를 사용하여 예측되었다는 것을 나타내는 정보 및 상기 변환된 잔여 블록을 나타내는 정보를 출력하도록 하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
KR1020137003485A 2010-07-09 2011-07-08 사이즈 및 인트라 모드에 기초한 또는 에지 검출에 기초한 인트라 블록들 코딩을 위한 적응적 주파수 변환들 KR101469394B1 (ko)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US36312710P 2010-07-09 2010-07-09
US61/363,127 2010-07-09
US37457310P 2010-08-17 2010-08-17
US61/374,573 2010-08-17
US37742010P 2010-08-26 2010-08-26
US61/377,420 2010-08-26
US13/178,438 2011-07-07
US13/178,438 US9661338B2 (en) 2010-07-09 2011-07-07 Coding syntax elements for adaptive scans of transform coefficients for video coding
US13/178,434 US9215470B2 (en) 2010-07-09 2011-07-07 Signaling selected directional transform for video coding
US13/178,427 2011-07-07
US13/178,427 US9172968B2 (en) 2010-07-09 2011-07-07 Video coding using directional transforms
US13/178,434 2011-07-07
PCT/US2011/043434 WO2012006574A2 (en) 2010-07-09 2011-07-08 Signaling selected directional transform for video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020147010566A Division KR101525370B1 (ko) 2010-07-09 2011-07-08 사이즈 및 인트라 모드에 기초한 또는 에지 검출에 기초한 인트라 블록들 코딩을 위한 적응적 주파수 변환들

Publications (2)

Publication Number Publication Date
KR20130030300A true KR20130030300A (ko) 2013-03-26
KR101469394B1 KR101469394B1 (ko) 2014-12-05

Family

ID=45438569

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020147010566A KR101525370B1 (ko) 2010-07-09 2011-07-08 사이즈 및 인트라 모드에 기초한 또는 에지 검출에 기초한 인트라 블록들 코딩을 위한 적응적 주파수 변환들
KR1020137003487A KR20130030301A (ko) 2010-07-09 2011-07-08 인트라 예측 모드들의 서브세트 및 대응하는 방향 변환들을 이용한 비디오 코딩
KR1020157008844A KR101618021B1 (ko) 2010-07-09 2011-07-08 인트라 예측 모드들의 서브세트 및 대응하는 방향 변환들을 이용한 비디오 코딩
KR1020137003485A KR101469394B1 (ko) 2010-07-09 2011-07-08 사이즈 및 인트라 모드에 기초한 또는 에지 검출에 기초한 인트라 블록들 코딩을 위한 적응적 주파수 변환들

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020147010566A KR101525370B1 (ko) 2010-07-09 2011-07-08 사이즈 및 인트라 모드에 기초한 또는 에지 검출에 기초한 인트라 블록들 코딩을 위한 적응적 주파수 변환들
KR1020137003487A KR20130030301A (ko) 2010-07-09 2011-07-08 인트라 예측 모드들의 서브세트 및 대응하는 방향 변환들을 이용한 비디오 코딩
KR1020157008844A KR101618021B1 (ko) 2010-07-09 2011-07-08 인트라 예측 모드들의 서브세트 및 대응하는 방향 변환들을 이용한 비디오 코딩

Country Status (13)

Country Link
US (4) US9661338B2 (ko)
EP (3) EP2591603B1 (ko)
JP (4) JP5746339B2 (ko)
KR (4) KR101525370B1 (ko)
CN (4) CN102986215B (ko)
AR (1) AR082203A1 (ko)
DK (1) DK2591600T3 (ko)
HK (1) HK1220838A1 (ko)
HU (1) HUE024172T2 (ko)
IN (1) IN2013CN00428A (ko)
PL (1) PL2591600T3 (ko)
TW (1) TW201208386A (ko)
WO (3) WO2012006574A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2722394C1 (ru) * 2017-03-21 2020-05-29 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ преобразования в системе кодирования изображений и устройство для его осуществления

Families Citing this family (193)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7289674B2 (en) * 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
EP2081386A1 (en) * 2008-01-18 2009-07-22 Panasonic Corporation High precision edge prediction for intracoding
KR101885382B1 (ko) * 2009-07-06 2018-08-03 톰슨 라이센싱 공간적으로 변하는 잔류물 코딩을 위한 방법 및 장치
KR20110068792A (ko) * 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
KR20120086232A (ko) * 2011-01-25 2012-08-02 (주)휴맥스 율-왜곡 최적화를 위한 영상 부호화/복호화 방법 및 이를 수행하는 장치
MY176988A (en) 2010-04-13 2020-08-31 Samsung Electronics Co Ltd Video-encoding method and video-encoding apparatus based on encoding units determined in a accordance with a tree structure, and video-decoding units determined in a accordance with a tree structure
CA2935176C (en) * 2010-04-23 2018-03-13 M&K Holdings Inc. Image encoding apparatus
US9661338B2 (en) 2010-07-09 2017-05-23 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding
US10091529B2 (en) * 2010-07-09 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding a transform coefficient
JP2012039590A (ja) * 2010-07-16 2012-02-23 Sony Corp 画像処理装置、画像処理方法、及びプログラム
DE102010041226A1 (de) 2010-09-22 2012-03-22 Aces Gmbh Knochenverankerungseinrichtung
KR20130070644A (ko) * 2010-09-24 2013-06-27 노키아 코포레이션 비디오 코딩 방법, 장치 및 컴퓨터 프로그램
KR101792308B1 (ko) 2010-09-30 2017-10-31 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치, 프로그램 및 집적 회로
US9497472B2 (en) * 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US9049444B2 (en) 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
US20120163456A1 (en) * 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US10992958B2 (en) 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
US9479784B2 (en) * 2011-01-06 2016-10-25 Samsung Electronics Co., Ltd. Encoding method and device of video using data unit of hierarchical structure, and decoding method and device thereof
EP2663078A4 (en) * 2011-01-07 2015-02-11 Samsung Electronics Co Ltd VIDEO PRESENTATION METHOD FOR CARRYING OUT BILATERAL PREDICTIONS AND UNILATERAL PREDICTIONS AND DEVICE THEREFOR, VIDEO CODING METHOD AND DEVICE THEREFOR AND VIDEO DECODING METHOD AND DEVICE THEREFOR
US9380319B2 (en) * 2011-02-04 2016-06-28 Google Technology Holdings LLC Implicit transform unit representation
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US20120230418A1 (en) 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
KR20120140181A (ko) 2011-06-20 2012-12-28 한국전자통신연구원 화면내 예측 블록 경계 필터링을 이용한 부호화/복호화 방법 및 그 장치
SI3136728T1 (en) 2011-06-28 2018-04-30 Samsung Electronics Co., Ltd. The video decoding process with internal prediction
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
KR101955374B1 (ko) * 2011-06-30 2019-05-31 에스케이 텔레콤주식회사 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치
EP2736254B1 (en) * 2011-07-22 2018-07-04 Hitachi, Ltd. Video decoding method and image encoding method
US9800870B2 (en) * 2011-09-16 2017-10-24 Qualcomm Incorporated Line buffer reduction for short distance intra-prediction
CN103931193B (zh) * 2011-09-21 2017-11-21 Lg电子株式会社 编码/解码图像的方法和装置
US9398300B2 (en) * 2011-10-07 2016-07-19 Texas Instruments Incorporated Method, system and apparatus for intra-prediction in video signal processing using combinable blocks
US9699457B2 (en) 2011-10-11 2017-07-04 Qualcomm Incorporated Most probable transform for intra prediction coding
EP2582134A1 (en) * 2011-10-12 2013-04-17 Thomson Licensing Saliency value determination of predictively encoded video streams
KR101549910B1 (ko) * 2011-10-17 2015-09-03 주식회사 케이티 화면 내 예측 모드에 기초한 적응적인 변환 방법 및 이러한 방법을 사용하는 장치
CN104378637B (zh) * 2011-10-18 2017-11-21 株式会社Kt 视频信号解码方法
CN107257460B (zh) 2011-10-19 2019-08-16 株式会社Kt 解码视频信号的方法
US10645398B2 (en) * 2011-10-25 2020-05-05 Texas Instruments Incorporated Sample-based angular intra-prediction in video coding
KR20130049525A (ko) 2011-11-04 2013-05-14 오수미 잔차 블록 복원을 위한 역변환 방법
WO2013067435A1 (en) 2011-11-04 2013-05-10 Huawei Technologies Co., Ltd. Differential pulse code modulation intra prediction for high efficiency video coding
US10390046B2 (en) 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
PL409214A1 (pl) 2011-11-08 2015-07-20 Kt Corporation Sposób i urządzenie do skanowania współczynników na podstawie trybu podziału jednostki predykcji
CN109889830B (zh) * 2012-01-13 2023-08-08 夏普株式会社 图像解码装置及方法、图像编码装置及方法
JP2013168932A (ja) * 2012-01-18 2013-08-29 Jvc Kenwood Corp 画像復号装置、画像復号方法及び画像復号プログラム
US9210438B2 (en) * 2012-01-20 2015-12-08 Sony Corporation Logical intra mode naming in HEVC video coding
US9584812B2 (en) * 2012-01-20 2017-02-28 Blackberry Limited Methods and devices for context set selection
US9531990B1 (en) 2012-01-21 2016-12-27 Google Inc. Compound prediction using multiple sources or prediction modes
US9866829B2 (en) 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US8737824B1 (en) 2012-03-09 2014-05-27 Google Inc. Adaptively encoding a media stream with compound prediction
PL2842313T3 (pl) * 2012-04-13 2017-06-30 Ge Video Compression, Llc Skalowalny strumień danych i obiekt sieciowy
AU2013250143B2 (en) 2012-04-16 2015-11-12 Electronics And Telecommunications Research Institute Encoding method and decoding method, and device using same
US9621921B2 (en) * 2012-04-16 2017-04-11 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9185414B1 (en) 2012-06-29 2015-11-10 Google Inc. Video encoding using variance
CN115442623A (zh) 2012-06-29 2022-12-06 Ge视频压缩有限责任公司 视频数据流、编码器、编码视频内容的方法以及解码器
EP4216547A1 (en) 2012-06-29 2023-07-26 Electronics And Telecommunications Research Institute Method for encoding/decoding images
MY182016A (en) * 2012-07-02 2021-01-18 Samsung Electronics Co Ltd Method and apparatus for entropy coding video and method and apparatus for entropy decoding video
CN104488268B (zh) 2012-07-04 2018-07-17 汤姆逊许可公司 具有增加数量的可能编码模式的空间预测
US9264713B2 (en) * 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
EP2698996A3 (en) * 2012-08-13 2014-07-02 Gurulogic Microsystems OY Decoder and method
US10412414B2 (en) 2012-08-13 2019-09-10 Gurulogic Microsystems Oy Decoder and method for decoding encoded input data containing a plurality of blocks or packets
US20140056347A1 (en) * 2012-08-23 2014-02-27 Microsoft Corporation Non-Transform Coding
CN103716607B (zh) * 2012-09-28 2017-02-08 中兴通讯股份有限公司 一种应用于HEVC‑based 3DVC的编码方法和装置
WO2014052775A1 (en) * 2012-09-29 2014-04-03 Motorola Mobility Llc Adaptive transform options for scalable extension
GB2508339A (en) * 2012-11-22 2014-06-04 Sony Corp Manipulation of transform coefficient blocks in high-efficiency video coding (HEVC)
US9628790B1 (en) * 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
CN105409215B (zh) 2013-01-11 2018-10-09 华为技术有限公司 深度预测模式选择方法及装置
US9219915B1 (en) * 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
US9967559B1 (en) 2013-02-11 2018-05-08 Google Llc Motion vector dependent spatial transformation in video coding
US9544597B1 (en) 2013-02-11 2017-01-10 Google Inc. Hybrid transform in video encoding and decoding
US20140254661A1 (en) * 2013-03-08 2014-09-11 Samsung Electronics Co., Ltd. Method and apparatus for applying secondary transforms on enhancement-layer residuals
CN104065973B (zh) * 2013-03-20 2017-11-17 华为技术有限公司 一种高性能视频编码搜索的方法及装置
US9538190B2 (en) * 2013-04-08 2017-01-03 Qualcomm Incorporated Intra rate control for video encoding based on sum of absolute transformed difference
KR20150143585A (ko) * 2013-04-23 2015-12-23 퀄컴 인코포레이티드 비디오 코딩에서 예측 잔차 블록들의 재배치
US9674530B1 (en) 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
US9374578B1 (en) 2013-05-23 2016-06-21 Google Inc. Video coding using combined inter and intra predictors
DE102013107719B4 (de) * 2013-07-19 2015-08-13 Deutsche Telekom Ag Verfahren und Vorrichtung zur blockbasierten Dekorrelation von Bildsignalen
MX368246B (es) 2013-07-24 2019-09-25 Microsoft Technology Licensing Llc Ordenes de escaneo para codificacion sin transformacion.
US20150055697A1 (en) * 2013-08-20 2015-02-26 Media Tek Inc. Method and Apparatus of Transform Process for Video Coding
US9628800B2 (en) 2013-11-18 2017-04-18 Qualcomm Incorporated Adaptive control for transforms in video coding
US9609343B1 (en) 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
JP2015185897A (ja) 2014-03-20 2015-10-22 パナソニックIpマネジメント株式会社 画像符号化方法及び画像符号化装置
KR101936663B1 (ko) * 2014-06-26 2019-01-09 후아웨이 테크놀러지 컴퍼니 리미티드 고효율 비디오 코딩 중 계산 부하의 경감 방법 및 장치
US9565451B1 (en) 2014-10-31 2017-02-07 Google Inc. Prediction dependent transform coding
TWI594211B (zh) * 2014-10-31 2017-08-01 鴻海精密工業股份有限公司 監控設備及動態物件監控方法
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
FR3032583B1 (fr) * 2015-02-06 2018-03-02 Orange Procede de codage d'une image numerique, procede de decodage, dispositifs, et programmes d'ordinateurs associes
FR3033115A1 (fr) * 2015-02-19 2016-08-26 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
WO2016159631A1 (ko) * 2015-03-29 2016-10-06 엘지전자(주) 비디오 신호의 인코딩/디코딩 방법 및 장치
FR3035761A1 (fr) * 2015-04-30 2016-11-04 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
CN104954806A (zh) * 2015-06-24 2015-09-30 上海交通大学 帧内视频优化编码方法
WO2017010850A1 (ko) * 2015-07-15 2017-01-19 엘지전자(주) 분리 가능한 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2017014585A1 (ko) * 2015-07-21 2017-01-26 엘지전자(주) 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
US9769499B2 (en) 2015-08-11 2017-09-19 Google Inc. Super-transform video coding
WO2017030418A1 (ko) * 2015-08-19 2017-02-23 엘지전자(주) 다중 그래프 기반 모델에 따라 최적화된 변환을 이용하여 비디오 신호를 인코딩/ 디코딩하는 방법 및 장치
WO2017043941A1 (ko) * 2015-09-10 2017-03-16 엘지전자(주) 예측 각도에 따른 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
US10277905B2 (en) 2015-09-14 2019-04-30 Google Llc Transform selection for non-baseband signal coding
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
WO2017061671A1 (ko) * 2015-10-08 2017-04-13 엘지전자 주식회사 영상 코딩 시스템에서 적응적 변환에 기반한 영상 코딩 방법 및 장치
ITUB20155295A1 (it) * 2015-10-16 2017-04-16 Torino Politecnico Apparatuses and methods for encoding and decoding images
EP3364655A4 (en) * 2015-11-11 2018-10-10 Samsung Electronics Co., Ltd. Method and apparatus for decoding video, and method and apparatus for encoding video
US9807423B1 (en) 2015-11-24 2017-10-31 Google Inc. Hybrid transform scheme for video coding
US20180324441A1 (en) * 2015-11-24 2018-11-08 Samsung Electronics Co., Ltd. Method for encoding/decoding image and device therefor
KR20180086203A (ko) * 2015-12-17 2018-07-30 삼성전자주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
US10349085B2 (en) 2016-02-15 2019-07-09 Qualcomm Incorporated Efficient parameter storage for compact multi-pass transforms
US10448053B2 (en) 2016-02-15 2019-10-15 Qualcomm Incorporated Multi-pass non-separable transforms for video coding
US10390048B2 (en) * 2016-02-15 2019-08-20 Qualcomm Incorporated Efficient transform coding using optimized compact multi-pass transforms
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
US10931947B2 (en) * 2016-05-04 2021-02-23 Sharp Kabushiki Kaisha Systems and methods for coding transform data
CN113411579B (zh) * 2016-05-13 2024-01-23 夏普株式会社 图像解码装置及其方法、图像编码装置及其方法
US20170347094A1 (en) * 2016-05-31 2017-11-30 Google Inc. Block size adaptive directional intra prediction
CN109716767B (zh) * 2016-07-14 2021-09-21 弗劳恩霍夫应用研究促进协会 使用基于变换的残差编码的预测图像编码
CN106231307B (zh) * 2016-08-09 2019-05-03 赵羽剑 一种图像压缩帧内编码预测方法及其硬件实现
US10880564B2 (en) 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
CN117395408A (zh) * 2016-10-04 2024-01-12 韩国电子通信研究院 对图像进行编码/解码的方法和设备以及记录介质
US11095893B2 (en) 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
WO2018097691A2 (ko) * 2016-11-28 2018-05-31 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
EP3567858A4 (en) * 2017-01-03 2020-06-17 LG Electronics Inc. -1- VIDEO SIGNAL ENCODING / DECODING METHOD AND DEVICE USING A SECONDARY TRANSFORM
US11146795B2 (en) * 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
EP3979639A1 (en) * 2017-03-22 2022-04-06 Industry-University Cooperation Foundation Hanyang University Tile partitions
KR102264680B1 (ko) * 2017-04-18 2021-06-14 삼성전자주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
EP3410722A1 (en) * 2017-05-31 2018-12-05 Thomson Licensing Method and apparatus for low-complexity bi-directional intra prediction in video encoding and decoding
US10999591B2 (en) * 2017-06-02 2021-05-04 Lg Electronics Inc. Method and apparatus for processing video signal through target area modification
US10936655B2 (en) * 2017-06-07 2021-03-02 Amazon Technologies, Inc. Security video searching systems and associated methods
WO2018231087A1 (en) * 2017-06-14 2018-12-20 Huawei Technologies Co., Ltd. Intra-prediction for video coding using perspective information
US11070806B2 (en) * 2017-06-28 2021-07-20 Lg Electronics Inc. Method and apparatus for performing low complexity computation in transform kernel for video compression
WO2019003676A1 (ja) * 2017-06-29 2019-01-03 ソニー株式会社 画像処理装置と画像処理方法およびプログラム
US11134272B2 (en) * 2017-06-29 2021-09-28 Qualcomm Incorporated Memory reduction for non-separable transforms
WO2019009129A1 (ja) * 2017-07-03 2019-01-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
EP3609184A4 (en) * 2017-07-04 2020-04-01 Samsung Electronics Co., Ltd. IMAGE CODING METHOD AND APPARATUS, AND IMAGE DECODING METHOD AND APPARATUS
EP3451663A1 (en) * 2017-08-31 2019-03-06 Thomson Licensing Pools of transforms for local selection of a set of transforms in video coding
WO2019069782A1 (ja) * 2017-10-06 2019-04-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2019076138A1 (en) 2017-10-16 2019-04-25 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ENCODING
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
WO2019101295A1 (en) * 2017-11-21 2019-05-31 Huawei Technologies Co., Ltd. Image and video processing apparatuses and methods
US11445218B2 (en) * 2017-11-24 2022-09-13 Sony Corporation Image processing apparatus and method
CN111357293B (zh) * 2017-11-24 2023-04-14 索尼公司 图像处理装置和方法
WO2019112394A1 (ko) 2017-12-07 2019-06-13 한국전자통신연구원 채널들 간의 선택적인 정보 공유를 사용하는 부호화 및 복호화를 위한 방법 및 장치
CN109922340B (zh) * 2017-12-13 2021-10-15 华为技术有限公司 图像编解码方法、装置、系统及存储介质
CN115278240A (zh) * 2017-12-15 2022-11-01 Lg电子株式会社 图像编解码方法和发送方法及非暂态计算机可读存储介质
BR122021019719B1 (pt) * 2017-12-21 2022-05-24 Lg Electronics Inc Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação, aparelho de decodificação/codificação para decodificação/codificação de imagem, método e aparelho de transmissão de dados que compreende um fluxo de bits para uma imagem e mídia de armazenamento digital legível por computador não transitória
US10869060B2 (en) * 2018-01-30 2020-12-15 Google Llc Efficient context model computation design in transform coefficient coding
BR112020016913A2 (pt) 2018-02-23 2020-12-15 Huawei Technologies Co., Ltd. Transformação de variação espacial dependente de posição para codificação de vídeo
TWI791222B (zh) 2018-03-29 2023-02-01 弗勞恩霍夫爾協會 變換集合
EP3761642A4 (en) * 2018-04-01 2021-04-14 LG Electronics Inc. METHOD AND APPARATUS FOR PROCESSING A VIDEO SIGNAL VIA THE APPLICATION OF A SECONDARY TRANSFORM ON A PARTITIONED BLOCK
WO2019199031A1 (ko) * 2018-04-11 2019-10-17 엘지전자 주식회사 적응적으로 적용되는 스캔 순서에 따른 영상 디코딩 방법 및 그 장치
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
KR102532021B1 (ko) 2018-05-31 2023-05-12 후아웨이 테크놀러지 컴퍼니 리미티드 적응적 변환 타입의 공간 가변 변환
KR102454971B1 (ko) * 2018-07-06 2022-10-14 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
KR102432406B1 (ko) * 2018-09-05 2022-08-12 엘지전자 주식회사 비디오 신호의 부호화/복호화 방법 및 이를 위한 장치
WO2020056760A1 (en) * 2018-09-21 2020-03-26 Alibaba Group Holding Limited Transform selection for small size block
US11128866B2 (en) * 2018-10-18 2021-09-21 Qualcomm Incorporated Scans and last coefficient position coding for zero-out transforms
WO2020084476A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
WO2020084556A1 (en) 2018-10-24 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block motion candidate list in video coding
US11412260B2 (en) * 2018-10-29 2022-08-09 Google Llc Geometric transforms for image compression
KR102628361B1 (ko) 2018-11-12 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인터-예측을 위한 대역폭 제어 방법
US10666985B1 (en) * 2018-11-18 2020-05-26 Sony Corporation Sub-block based entropy coding for image coding
CN113170093B (zh) 2018-11-20 2023-05-02 北京字节跳动网络技术有限公司 视频处理中的细化帧间预测
WO2020103852A1 (en) 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Difference calculation based on patial position
CN113170198B (zh) 2018-11-22 2022-12-09 北京字节跳动网络技术有限公司 子块时域运动矢量预测
GB2579824B (en) 2018-12-14 2022-05-18 British Broadcasting Corp Video encoding and video decoding
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
GB2580326A (en) 2018-12-28 2020-07-22 British Broadcasting Corp Video encoding and video decoding
KR20210098967A (ko) 2019-01-01 2021-08-11 엘지전자 주식회사 이차 변환에 기반한 영상 코딩 방법 및 그 장치
US11190794B2 (en) * 2019-02-12 2021-11-30 Tencent America LLC Method and apparatus for video coding
WO2020177755A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Usage of converted uni-prediction candidate
JP7307192B2 (ja) 2019-04-02 2023-07-11 北京字節跳動網絡技術有限公司 デコーダ側の動きベクトルの導出
US11240534B2 (en) * 2019-04-05 2022-02-01 Qualcomm Incorporated Extended multiple transform selection for video coding
KR102470695B1 (ko) 2019-04-16 2022-11-25 엘지전자 주식회사 인트라 예측 기반 영상 코딩에서의 변환
JP7197727B2 (ja) 2019-04-16 2022-12-27 エルジー エレクトロニクス インコーポレイティド 映像コーディングにおけるマトリクスベースのイントラ予測のための変換
CN116896634A (zh) 2019-04-23 2023-10-17 北京字节跳动网络技术有限公司 在视频编解码中有条件地使用多重变换矩阵
US11122297B2 (en) * 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
CN113812146B (zh) * 2019-05-10 2022-11-11 北京字节跳动网络技术有限公司 用于视频处理的基于亮度的二次变换矩阵选择
WO2020228762A1 (en) 2019-05-14 2020-11-19 Beijing Bytedance Network Technology Co., Ltd. Context modeling for residual coding
WO2020241858A1 (ja) * 2019-05-30 2020-12-03 シャープ株式会社 画像復号装置
CN113950829A (zh) * 2019-06-06 2022-01-18 北京字节跳动网络技术有限公司 简化的变换编解码工具
CN113994666A (zh) * 2019-06-06 2022-01-28 北京字节跳动网络技术有限公司 隐式选择变换候选
KR20220016844A (ko) 2019-06-07 2022-02-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 비트스트림들에서 감축된 2차 변환의 조건부 시그널링
CN113966611B (zh) 2019-06-09 2023-12-15 北京字节跳动网络技术有限公司 视频编解码中的重要系数信令
WO2020256400A1 (ko) 2019-06-17 2020-12-24 엘지전자 주식회사 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
EP3985977A4 (en) 2019-06-17 2023-07-12 LG Electronics Inc. VIDEO OR IMAGE CODING BASED ON LUMINANCE MAPPING
GB2585030A (en) * 2019-06-25 2020-12-30 British Broadcasting Corp Method of signalling in a video codec
EP3994887A4 (en) 2019-08-03 2022-09-28 Beijing Bytedance Network Technology Co., Ltd. MATRIX SELECTION FOR A REDUCED SECONDARY TRANSFORM IN VIDEO CODING
CN114375574A (zh) * 2019-08-06 2022-04-19 Lg 电子株式会社 基于根据颜色格式确定的预测模式类型确定划分模式的图像编码/解码方法和设备,以及用于发送比特流的方法
JP2022544260A (ja) 2019-08-13 2022-10-17 北京字節跳動網絡技術有限公司 サブブロックに基づくインター予測における動き精度
CN114223208B (zh) 2019-08-17 2023-12-29 北京字节跳动网络技术有限公司 为视频中的缩减二次变换的边信息的上下文建模
CN110636313B (zh) * 2019-09-18 2022-07-15 浙江大华技术股份有限公司 变换、二次变换矩阵训练方法、编码器及相关装置
CN114762330A (zh) 2019-09-22 2022-07-15 北京字节跳动网络技术有限公司 视频的子图片编码和解码
CN114731430A (zh) * 2019-12-05 2022-07-08 交互数字Vc控股法国有限公司 与多个变换选择、矩阵加权帧内预测或多参考线帧内预测结合的用于视频编码和解码的帧内子分区
US11284071B2 (en) * 2019-12-12 2022-03-22 Google Llc Combination of mode-dependent and fixed transform types in video coding
WO2021141403A1 (ko) * 2020-01-07 2021-07-15 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
US20230100043A1 (en) * 2021-09-30 2023-03-30 Tencent America LLC Adaptive Transforms for Compound Inter-Intra Prediction Modes

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1062963C (zh) 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
US6226327B1 (en) 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
EP0729688A1 (en) 1993-11-15 1996-09-04 National Semiconductor Corporation Quadtree-structured walsh transform coding
KR100211050B1 (ko) 1996-11-05 1999-07-15 이계철 선택적 양자화 계수 전송 장치 및 방법
JP3395558B2 (ja) 1997-02-07 2003-04-14 株式会社日立製作所 図形表示方法及び図形表示装置並びに図形表示処理プログラムを記録した媒体
ATE265073T1 (de) 1998-08-10 2004-05-15 Digital Accelerator Corp Eingebettete quadtree wavelets bildkompression
EP0986026A1 (en) 1998-09-07 2000-03-15 STMicroelectronics S.r.l. Fractal coding of data in the DCT domain
JP4226172B2 (ja) 1998-11-24 2009-02-18 株式会社ハイニックスセミコンダクター 適応的変換方法を用いる映像圧縮符号化装置および復号化装置ならびにその方法
US6515889B1 (en) * 2000-08-31 2003-02-04 Micron Technology, Inc. Junction-isolated depletion mode ferroelectric memory
US7616690B2 (en) 2000-10-31 2009-11-10 Imec Method and apparatus for adaptive encoding framed data sequences
US6856701B2 (en) * 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7190840B2 (en) 2002-01-07 2007-03-13 Hewlett-Packard Development Company, L.P. Transform coefficient compression using multiple scans
JP4447197B2 (ja) 2002-01-07 2010-04-07 三菱電機株式会社 動画像符号化装置および動画像復号装置
KR100468844B1 (ko) 2002-01-07 2005-01-29 삼성전자주식회사 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법
DK1487113T3 (da) 2002-05-02 2006-11-20 Fraunhofer Ges Forschung Kodning og afkodning af transformationskoefficienter i billede- eller videokodere
US20030231795A1 (en) 2002-06-12 2003-12-18 Nokia Corporation Spatial prediction based intra-coding
US7289674B2 (en) 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
JP4509104B2 (ja) 2003-03-03 2010-07-21 エージェンシー・フォア・サイエンス・テクノロジー・アンド・リサーチ 高度動画像符号化におけるイントラ予測のための高速モード決定アルゴリズム
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US20050036549A1 (en) 2003-08-12 2005-02-17 Yong He Method and apparatus for selection of scanning mode in dual pass encoding
US7782954B2 (en) 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US7688894B2 (en) 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
EP1534018B1 (en) 2003-11-21 2008-11-12 Samsung Electronics Co., Ltd. Apparatus and method for generating coded block pattern for alpha channel image and alpha channel image encoding/decoding apparatus and method using the same
US7379608B2 (en) 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
JP4142563B2 (ja) 2003-12-12 2008-09-03 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
US7894530B2 (en) * 2004-05-07 2011-02-22 Broadcom Corporation Method and system for dynamic selection of transform size in a video decoder based on signal content
US7565020B2 (en) * 2004-07-03 2009-07-21 Microsoft Corp. System and method for image coding employing a hybrid directional prediction and wavelet lifting
BRPI0517069A (pt) 2004-11-04 2008-09-30 Thomson Licensing previsão rápida intra modo para um codificador de vìdeo
JP2006140758A (ja) 2004-11-12 2006-06-01 Toshiba Corp 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
JP4763422B2 (ja) 2004-12-03 2011-08-31 パナソニック株式会社 イントラ予測装置
WO2006070614A1 (ja) 2004-12-28 2006-07-06 Nec Corporation 画像符号化装置、画像符号化方法及びそのプログラム
US8311119B2 (en) 2004-12-31 2012-11-13 Microsoft Corporation Adaptive coefficient scan order
US7751478B2 (en) 2005-01-21 2010-07-06 Seiko Epson Corporation Prediction intra-mode selection in an encoder
KR101088375B1 (ko) 2005-07-21 2011-12-01 삼성전자주식회사 가변 블록 변환 장치 및 방법 및 이를 이용한 영상부호화/복호화 장치 및 방법
US20090123066A1 (en) 2005-07-22 2009-05-14 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, image decoding program, computer readable recording medium having image encoding program recorded therein,
CN100466745C (zh) 2005-10-11 2009-03-04 华为技术有限公司 帧内预测编解码方法及其系统
EP2733950A1 (en) 2005-10-21 2014-05-21 Electronics and Telecommunications Research Institute Apparatus for encoding moving picture using adaptive scanning
JP5089878B2 (ja) 2005-10-28 2012-12-05 パナソニック株式会社 画像符号化装置
JP2007189276A (ja) 2006-01-11 2007-07-26 Victor Co Of Japan Ltd 画像圧縮装置及び画像圧縮プログラム
KR101246294B1 (ko) 2006-03-03 2013-03-21 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
JP2007267123A (ja) 2006-03-29 2007-10-11 Victor Co Of Japan Ltd 動画像符号化装置
DE102006023933A1 (de) * 2006-05-19 2007-11-29 Atmel Germany Gmbh Speichervorrichtung und Verfahren zur Programmierung einer nicht-flüchtigen Speichermatrix
KR100882949B1 (ko) 2006-08-17 2009-02-10 한국전자통신연구원 화소 유사성에 따라 적응적인 이산 코사인 변환 계수스캐닝을 이용한 부호화/복호화 장치 및 그 방법
KR20110086159A (ko) 2006-10-10 2011-07-27 니폰덴신뎅와 가부시키가이샤 인트라 예측 부호화 제어 방법 및 장치, 그 프로그램 및 프로그램을 기록한 기억 매체
JP4908180B2 (ja) 2006-12-20 2012-04-04 株式会社東芝 動画像符号化装置
US8331448B2 (en) 2006-12-22 2012-12-11 Qualcomm Incorporated Systems and methods for efficient spatial intra predictabilty determination (or assessment)
KR101366086B1 (ko) 2007-01-03 2014-02-21 삼성전자주식회사 잔차 블록의 계수들에 대한 부호화 결정 방법, 장치,인코더 및 디코더
CN101222641B (zh) 2007-01-11 2011-08-24 华为技术有限公司 帧内预测编解码方法及其装置
JP2008193627A (ja) 2007-01-12 2008-08-21 Mitsubishi Electric Corp 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法
EP2123052B1 (en) 2007-01-18 2010-11-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable video data stream
US8238428B2 (en) 2007-04-17 2012-08-07 Qualcomm Incorporated Pixel-by-pixel weighting for intra-frame coding
KR100865690B1 (ko) 2007-05-21 2008-10-28 한양대학교 산학협력단 고속 인트라 예측모드 결정 장치 및 방법
US8428133B2 (en) 2007-06-15 2013-04-23 Qualcomm Incorporated Adaptive coding of video block prediction mode
US8571104B2 (en) 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8331444B2 (en) 2007-06-26 2012-12-11 Qualcomm Incorporated Sub-band scanning techniques for entropy coding of sub-bands
US20090006036A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Shared, Low Cost and Featureable Performance Monitor Unit
BRPI0813904B1 (pt) 2007-06-29 2020-12-08 Velos Media International Limited dispositivo de codificação de imagem para codificar imagens de entrada e dispositivo de decodificação de imagem para decodificar dados de imagens codificados
US8437564B2 (en) * 2007-08-07 2013-05-07 Ntt Docomo, Inc. Image and video compression using sparse orthonormal transforms
TW200910971A (en) 2007-08-22 2009-03-01 Univ Nat Cheng Kung Direction detection algorithms for H.264 intra prediction
CN101415121B (zh) 2007-10-15 2010-09-29 华为技术有限公司 一种自适应的帧预测的方法及装置
JP5004180B2 (ja) 2007-11-07 2012-08-22 Kddi株式会社 動画像符号化装置および復号装置
WO2009080133A1 (en) 2007-12-21 2009-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive intra mode selection
EP2081386A1 (en) 2008-01-18 2009-07-22 Panasonic Corporation High precision edge prediction for intracoding
CN101500160B (zh) 2008-01-28 2015-04-29 华为技术有限公司 一种码流标识方法、装置及编解码系统
KR101353301B1 (ko) 2008-04-11 2014-01-21 에스케이 텔레콤주식회사 인트라 예측 모드 결정 방법 및 그 장치와 이를 이용한영상 부호화/복호화 방법 및 그 장치
KR101549823B1 (ko) * 2008-09-02 2015-09-04 삼성전자주식회사 적응적 이진화를 이용한 영상 부호화, 복호화 방법 및 장치
KR20100027384A (ko) 2008-09-02 2010-03-11 삼성전자주식회사 예측 모드 결정 방법 및 장치
JP4937224B2 (ja) 2008-09-30 2012-05-23 株式会社東芝 画像符号化装置
US8737613B2 (en) 2008-11-20 2014-05-27 Mediatek Inc. Scanning methods of transform-based digital data processing that conditionally adjust scan order according to characteristics information and related apparatus thereof
US20100172409A1 (en) * 2009-01-06 2010-07-08 Qualcom Incorporated Low-complexity transforms for data compression and decompression
KR20180123153A (ko) 2009-01-27 2018-11-14 톰슨 라이센싱 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치
KR101885382B1 (ko) 2009-07-06 2018-08-03 톰슨 라이센싱 공간적으로 변하는 잔류물 코딩을 위한 방법 및 장치
US9154798B2 (en) 2009-09-14 2015-10-06 Thomson Licensing Methods and apparatus for efficient video encoding and decoding of intra prediction mode
US20110116539A1 (en) 2009-11-13 2011-05-19 Freescale Semiconductor, Inc. Method and apparatus for video decoding with reduced complexity inverse transform
JP5377395B2 (ja) 2010-04-02 2013-12-25 日本放送協会 符号化装置、復号装置及びプログラム
RS56512B1 (sr) * 2010-04-13 2018-02-28 Ge Video Compression Llc Kodiranje mapa značaja i blokova koeficijenata transformacije
KR101772459B1 (ko) 2010-05-17 2017-08-30 엘지전자 주식회사 신규한 인트라 예측 모드
US20110317757A1 (en) 2010-06-25 2011-12-29 Qualcomm Incorporated Intra prediction mode signaling for finer spatial prediction directions
US9661338B2 (en) 2010-07-09 2017-05-23 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US10992958B2 (en) 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2722394C1 (ru) * 2017-03-21 2020-05-29 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ преобразования в системе кодирования изображений и устройство для его осуществления

Also Published As

Publication number Publication date
JP5746339B2 (ja) 2015-07-08
PL2591600T3 (pl) 2015-03-31
HK1220838A1 (zh) 2017-05-12
EP2680585B1 (en) 2016-02-10
US20120008683A1 (en) 2012-01-12
JP2015039185A (ja) 2015-02-26
KR101618021B1 (ko) 2016-05-03
CN105721871A (zh) 2016-06-29
TW201208386A (en) 2012-02-16
WO2012006568A1 (en) 2012-01-12
CN105721871B (zh) 2019-11-01
US9172968B2 (en) 2015-10-27
US20120008675A1 (en) 2012-01-12
CN102986215A (zh) 2013-03-20
US20120008682A1 (en) 2012-01-12
WO2012006576A3 (en) 2012-03-15
JP2013534794A (ja) 2013-09-05
AR082203A1 (es) 2012-11-21
WO2012006574A3 (en) 2012-04-19
KR101525370B1 (ko) 2015-06-09
US10390044B2 (en) 2019-08-20
CN102986215B (zh) 2016-06-08
EP2591603A1 (en) 2013-05-15
KR101469394B1 (ko) 2014-12-05
JP2015039191A (ja) 2015-02-26
WO2012006574A2 (en) 2012-01-12
KR20130030301A (ko) 2013-03-26
EP2680585A3 (en) 2014-03-19
CN105049852B (zh) 2018-06-01
KR20140054464A (ko) 2014-05-08
KR20150046353A (ko) 2015-04-29
IN2013CN00428A (ko) 2015-07-03
EP2680585A2 (en) 2014-01-01
CN105049852A (zh) 2015-11-11
EP2591600A2 (en) 2013-05-15
DK2591600T3 (en) 2015-01-12
HUE024172T2 (en) 2016-02-29
JP5944459B2 (ja) 2016-07-05
CN102986216A (zh) 2013-03-20
CN102986216B (zh) 2016-03-09
US20170238015A1 (en) 2017-08-17
US9661338B2 (en) 2017-05-23
US9215470B2 (en) 2015-12-15
WO2012006576A2 (en) 2012-01-12
EP2591600B1 (en) 2014-11-12
EP2591603B1 (en) 2016-05-11
JP2013531445A (ja) 2013-08-01

Similar Documents

Publication Publication Date Title
KR101525370B1 (ko) 사이즈 및 인트라 모드에 기초한 또는 에지 검출에 기초한 인트라 블록들 코딩을 위한 적응적 주파수 변환들
KR101569259B1 (ko) 비디오 코딩을 위한 변환 계수들의 적응적 스캐닝
KR101626734B1 (ko) 비디오 코딩을 위한 인트라 평활 필터
KR101632776B1 (ko) 비디오 코딩에 대한 구문 엘리먼트들의 공동 코딩
KR101589852B1 (ko) 비디오 코딩을 위한 2차 경계 필터링
CA2823948A1 (en) Indicating intra-prediction mode selection for video coding using cabac
KR101539169B1 (ko) 비디오 코딩을 위한 런-모드 기반 계수 코딩

Legal Events

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

Payment date: 20170929

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 6