KR20210111311A - 비디오 인코더, 비디오 디코더 및 대응하는 방법 - Google Patents

비디오 인코더, 비디오 디코더 및 대응하는 방법 Download PDF

Info

Publication number
KR20210111311A
KR20210111311A KR1020217025379A KR20217025379A KR20210111311A KR 20210111311 A KR20210111311 A KR 20210111311A KR 1020217025379 A KR1020217025379 A KR 1020217025379A KR 20217025379 A KR20217025379 A KR 20217025379A KR 20210111311 A KR20210111311 A KR 20210111311A
Authority
KR
South Korea
Prior art keywords
current block
flag
context model
width
model index
Prior art date
Application number
KR1020217025379A
Other languages
English (en)
Other versions
KR102603966B1 (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 KR20210111311A publication Critical patent/KR20210111311A/ko
Application granted granted Critical
Publication of KR102603966B1 publication Critical patent/KR102603966B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/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

Abstract

이 출원은 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법을 개시한다. 방법은, 현재의 블록의 크기 정보를 획득하는 것과, 현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 것과, 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc에 기반하여 후속 처리를 수행하는 것을 포함한다. 방법은 코딩 효율을 개선하는 데에 사용될 수 있다.

Description

비디오 인코더, 비디오 디코더 및 대응하는 방법
이 출원은 "비디오 인코더, 비디오 디코더 및 대응하는 방법"이라는 표제로 2019년 1월 14일에 중국국가지식산권국에 출원된 중국 특허 출원 제201910033419.X호에 대한 우선권을 주장하고, "비디오 인코더, 비디오 디코더 및 대응하는 방법"이라는 표제로 2019년 4월 24일에 중국국가지식산권국에 출원된 중국 특허 출원 제201910335981.8호에 대한 우선권을 주장하는데, 이들은 전체로서 참조에 의해 본 문서에 포함된다.
기술 분야
본 발명은 비디오 코딩 기술 분야에 관련되고, 특히 비디오 인코더, 비디오 디코더 및 대응하는 방법에 관련된다.
디지털 텔레비전, 디지털 라이브 브로드캐스트 시스템(digital live broadcast system), 무선 브로드캐스트 시스템, 개인용 디지털 보조기기(personal digital assistant)(PDA), 랩톱(laptop) 또는 데스크톱(desktop) 컴퓨터, 태블릿(tablet) 컴퓨터, 전자책 리더(e-book reader), 디지털 카메라, 디지털 레코딩 장치, 디지털 미디어 플레이어, 비디오 게임 장치, 비디오 게임 콘솔, 셀룰러 또는 위성 무선 전화(또는 "스마트폰"(smartphone)으로 지칭됨), 비디오 회의 장치, 비디오 스트리밍 장치 및 유사한 것을 포함하는 매우 다양한 장치 내에 디지털 비디오 능력이 포함될 수 있다. 디지털 비디오 장치는 비디오 압축 기술, 예를 들어, MPEG-2, MPEG-4, ITU-T H.263 및 ITU-T H.264/MPEG-4 파트 10(part 10) 고급 비디오 코딩(advanced video coding)(AVC), 비디오 코딩 표준 H.265/고효율 비디오 코딩(high efficiency video coding)(HEVC) 표준 및 이들 표준의 확장을 포함하는 표준에 기술된 비디오 압축 기술을 구현한다. 비디오 장치는 비디오 압축 기술을 구현함으로써 더욱 효율적으로 디지털 비디오 정보를 송신, 수신, 인코딩, 디코딩 및/또는 저장할 수 있다.
비디오 압축 기술은 비디오 시퀀스 내의 내재적인 잉여성(redundancy)을 감소시키거나 제거하기 위해 공간적(인트라 픽처(intra-picture)) 예측 및/또는 시간적(인터 픽처(inter-picture)) 예측을 수행하는 데에 사용된다. 블록 기반 비디오 코딩에서, 비디오 슬라이스(video slice)(즉, 비디오 프레임 또는 비디오 프레임의 부분)은 몇 개의 픽처 블록(picture block)으로 파티셔닝될(partitioned) 수 있고, 픽처 블록은 또한 트리 블록(tree block), 코딩 유닛(coding unit(CU) 및/또는 코딩 노드(coding node)로 지칭될 수 있다. 픽처의 인트라 코딩될 (I) 슬라이스 내의 픽처 블록은 동일한 픽처 내의 이웃 블록 내의 참조 샘플(reference sample)에 기반한 공간적 예측을 통해서 코딩된다. 픽처의 인터 코딩될 (P 또는 B) 슬라이스 내의 픽처 블록에 대하여, 동일한 픽처 내의 이웃 블록 내의 참조 샘플에 기반한 공간적 예측 또는 다른 참조 픽처 내의 참조 샘플에 기반한 시간적 예측이 사용될 수 있다. 픽처는 프레임으로 지칭될 수 있고, 참조 픽처는 참조 프레임으로 지칭될 수 있다.
이 출원의 실시예는 비디오 인코더, 비디오 디코더 및 대응하는 방법을 제공하여, 엔트로피 코딩(entropy coding) 성능을 어느 정도 개선하는바, 이로써 코딩 성능을 개선한다.
제1 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법을 제공한다. 방법은 다음을 포함한다: 현재의 블록의 크기 정보를 획득하는 것; 현재의 블록의 획득된 크기 정보 및 크기 기반 제약(size-based constraint)에 기반하여 현재의 블록의 플래그(flag)의 콘텍스트 모델 인덱스(context model index) ctxInc를 판정하는 것; 및 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc에 기반하여 후속 처리를 수행하는 것.
제1 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 skip_flag인 경우에, 현재의 블록의 획득된 크기 정보는 현재의 블록의 면적을 포함하는데, 플래그 skip_flag는 스킵 모드(skip mode)가 현재의 블록을 위해 사용되는지를 지시하는(indicate) 데에 사용되고,
현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 것은 다음을 포함한다:
만일 현재의 블록의 면적 sizeC가 임계(threshold) th1보다 작은 경우, 플래그 skip_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 것.
제1 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 inter_dir인 경우에, 현재의 블록의 획득된 크기 정보는 현재의 블록의 면적을 포함하는데, 플래그 inter_dir는 현재의 블록을 위해 사용되는 예측 참조 모드(prediction reference mode)를 지시하는 데에 사용되고,
현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 것은 다음을 포함한다:
만일 현재의 블록의 면적 sizeC가 임계 th1보다 작은 경우, 플래그 inter_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 2임을 판정하는 것.
제1 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 direct_flag인 경우에, 현재의 블록의 획득된 크기 정보는 현재의 블록의 면적, 또는 현재의 블록의 폭, 또는 현재의 블록의 높이를 포함하는데, 플래그 direct_flag는 직접 모드(direct mode)가 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 것은 다음을 포함한다:
만일 현재의 블록의 면적 sizeC가 임계 th1보다 작거나, 현재의 블록의 폭이 임계 th2보다 크거나, 현재의 블록의 높이가 임계 th2보다 큰 경우, 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하는 것.
제1 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 pred_mode인 경우에, 현재의 블록의 획득된 크기 정보는 현재의 블록의 폭 또는 현재의 블록의 높이를 포함하는데, 플래그 pred_mode는 인트라 예측 모드(intra prediction mode)가 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 것은 다음을 포함한다:
만일 현재의 블록의 폭이 임계 th3보다 크거나, 현재의 블록의 높이가 임계 th3보다 큰 경우, 플래그 pred_mode에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 5임을 판정하는 것.
제1 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 root_cbf인 경우에, 현재의 블록의 획득된 크기 정보는 현재의 블록의 폭 또는 현재의 블록의 높이를 포함하는데, 플래그 root_cbf는 현재의 블록이 코딩된 후에 잔차(residual)가 있는지를 지시하는 데에 사용되고,
현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 것은 다음을 포함한다:
만일 현재의 블록의 폭이 임계 th3보다 크거나, 현재의 블록의 높이가 임계 th3보다 큰 경우, 플래그 root_cbf에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하는 것.
제1 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 qt_split_flag인 경우에, 현재의 블록의 획득된 크기 정보는 현재의 블록의 폭 및 현재의 블록의 높이를 포함하는데, 플래그 qt_split_flag는 쿼드트리 분할(quadtree split)이 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 것은 다음을 포함한다:
만일 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 현재의 블록의 폭이 th4인 경우, 플래그 qt_split_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 것.
제1 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 split_dir인 경우에, 현재의 블록의 획득된 크기 정보는 현재의 블록의 폭 및 현재의 블록의 높이를 포함하는데, 플래그 split_dir는 현재의 블록의 분할 방향(split direction)을 지시하는 데에 사용되고,
현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 것은 다음을 포함한다:
만일 현재의 분할될 노드(current to-be-split node)에 대응하는 현재의 블록의 폭이 임계 th5이고, 현재의 블록의 높이가 임계 th5보다 큰 경우, 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 것; 또는
만일 현재의 분할될 노드에 대응하는 현재의 블록의 높이가 임계 th5이고, 현재의 블록의 폭이 임계 th5보다 큰 경우, 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 4임을 판정하는 것.
제2 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치를 제공한다. 장치는 다음을 포함한다:
현재의 블록의 크기 정보를 획득하도록 구성된 획득 유닛;
현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하도록 구성된 판정 유닛; 및
현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛.
제2 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 skip_flag인 경우에, 획득 유닛에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 면적을 포함하고,
판정 유닛은 또한, 현재의 블록의 면적 sizeC가 임계 th1보다 작은 경우에, 플래그 skip_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하도록 구성된다.
제2 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 inter_dir인 경우에, 획득 유닛에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 면적을 포함하고,
판정 유닛은 또한, 현재의 블록의 면적 sizeC가 임계 th1보다 작은 경우에, 플래그 inter_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 2임을 판정하도록 구성된다.
제2 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 direct_flag인 경우에, 획득 유닛에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 면적, 또는 현재의 블록의 폭, 또는 현재의 블록의 높이를 포함하는데, 플래그 direct_flag는 직접 모드가 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
판정 유닛은 또한, 현재의 블록의 면적 sizeC가 임계 th1보다 작거나, 현재의 블록의 폭이 임계 th2보다 크거나, 현재의 블록의 높이가 임계 th2보다 큰 경우에, 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된다.
제2 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 pred_mode인 경우에, 획득 유닛에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 폭 또는 현재의 블록의 높이를 포함하는데, 플래그 pred_mode는 인트라 예측 모드가 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
판정 유닛은 또한, 현재의 블록의 폭이 임계 th3보다 크거나, 현재의 블록의 높이가 임계 th3보다 큰 경우에, 플래그 pred_mode에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 5임을 판정하도록 구성된다.
제2 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 root_cbf인 경우에, 획득 유닛에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 폭 또는 현재의 블록의 높이를 포함하는데, 플래그 root_cbf는 현재의 블록이 코딩된 후에 잔차가 있는지를 지시하는 데에 사용되고,
판정 유닛은 또한, 현재의 블록의 폭이 임계 th3보다 크거나, 현재의 블록의 높이가 임계 th3보다 큰 경우에, 플래그 root_cbf에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된다.
제2 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 qt_split_flag인 경우에, 획득 유닛에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 폭 및 현재의 블록의 높이를 포함하는데, 플래그 qt_split_flag는 쿼드트리 분할이 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
판정 유닛은 또한, 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 현재의 블록의 폭이 th4인 경우에, 플래그 qt_split_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하도록 구성된다.
제2 측면에 기반하여, 몇몇 가능한 구현에서, 현재의 블록의 플래그가 split_dir인 경우에, 획득 유닛에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 폭 및 현재의 블록의 높이를 포함하는데, 플래그 split_dir는 현재의 블록의 분할 방향을 지시하는 데에 사용되고,
판정 유닛은 또한, 현재의 분할될 노드에 대응하는 현재의 블록의 폭이 임계 th5이고, 현재의 블록의 높이가 임계 th5보다 큰 경우에, 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하거나;
현재의 분할될 노드에 대응하는 현재의 블록의 높이가 임계 th5이고, 현재의 블록의 폭이 임계 th5보다 큰 경우에, 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 4임을 판정하도록 구성된다.
제3 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법을 제공한다. 방법은 다음을 포함한다: 현재의 블록의 면적을 획득하는 것; 만일 현재의 블록의 면적이 64보다 작은 경우, 현재의 블록의 플래그 skip_flag에 의해 사용되는 콘텍스트 모델 인덱스의 값이 3임을 판정하는 것; 및 플래그 skip_flag의 콘텍스트 모델 인덱스의 값 3에 기반하여 후속 처리를 수행하는 것.
제4 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법을 제공한다. 방법은 다음을 포함한다: 현재의 블록의 폭, 또는 현재의 블록의 높이, 또는 현재의 블록의 폭 및 높이를 획득하는 것; 만일 현재의 블록의 폭 및 높이에 기반하여 판정된, 현재의 블록의 면적이 64보다 작거나, 현재의 블록의 폭이 64보다 크거나, 현재의 블록의 높이가 64보다 큰 경우, 현재의 블록의 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하는 것(플래그 direct_flag는 직접 모드가 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨); 및 플래그 direct_flag의 콘텍스트 모델 인덱스의 값 1에 기반하여 후속 처리를 수행하는 것.
제5 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법을 제공한다. 방법은 다음을 포함한다: 현재의 블록의 폭 또는 현재의 블록의 높이를 획득하는 것; 만일 현재의 블록의 폭이 64보다 크거나, 현재의 블록의 높이가 64보다 큰 경우, 현재의 블록의 플래그 pred_mode에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 5임을 판정하는 것(플래그 pred_mode는 인트라 예측 모드가 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨); 및 플래그 pred_mode의 콘텍스트 모델 인덱스의 값 5에 기반하여 후속 처리를 수행하는 것.
제6 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법을 제공한다. 방법은 다음을 포함한다: 현재의 블록의 폭 또는 현재의 블록의 높이를 획득하는 것; 만일 현재의 블록의 폭이 64보다 크거나, 현재의 블록의 높이가 64보다 큰 경우, 현재의 블록의 플래그 root_cbf에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하는 것(플래그 root_cbf는 현재의 블록이 코딩된 후에 잔차가 있는지를 지시하는 데에 사용됨); 및 플래그 root_cbf의 콘텍스트 모델 인덱스의 값 1에 기반하여 후속 처리를 수행하는 것.
제7 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법을 제공한다. 방법은 다음을 포함한다: 현재의 블록의 폭을 획득하는 것; 만일 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 현재의 블록의 폭이 128인 경우, 현재의 블록의 플래그 qt_split_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 것(플래그 qt_split_flag는 쿼드트리 분할이 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨); 및 플래그 qt_split_flag의 콘텍스트 모델 인덱스의 값 3에 기반하여 후속 처리를 수행하는 것.
제8 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법을 제공한다. 방법은 다음을 포함한다: 현재의 블록의 폭 및 현재의 블록의 높이를 획득하는 것; 및 만일 현재의 블록의 폭이 64이고 현재의 블록의 높이가 64보다 큰 경우, 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 것(플래그 split_dir는 현재의 블록의 분할 방향을 지시하는 데에 사용됨); 및 플래그 split_dir의 콘텍스트 모델 인덱스의 값 3에 기반하여 후속 처리를 수행하는 것; 또는 만일 현재의 블록의 높이가 64이고 현재의 블록의 폭이 64보다 큰 경우, 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 4임을 판정하는 것(플래그 split_dir는 현재의 블록의 분할 방향을 지시하는 데에 사용됨); 및 플래그 split_dir의 콘텍스트 모델 인덱스의 값 4에 기반하여 후속 처리를 수행하는 것.
제9 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치를 제공한다. 장치는 다음을 포함한다: 현재의 블록의 면적을 획득하도록 구성된 획득 유닛; 현재의 블록의 면적이 64보다 작은 경우에, 현재의 블록의 플래그 skip_flag에 의해 사용되는 콘텍스트 모델 인덱스의 값이 3임을 판정하도록 구성된 판정 유닛; 및 플래그 skip_flag의 콘텍스트 모델 인덱스의 값 3에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛.
제10 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치를 제공한다. 장치는 다음을 포함한다: 현재의 블록의 폭, 또는 현재의 블록의 높이, 또는 현재의 블록의 폭 및 높이를 획득하도록 구성된 획득 유닛; 현재의 블록의 폭 및 높이에 기반하여 판정된, 현재의 블록의 면적이 64보다 작거나, 현재의 블록의 폭이 64보다 크거나, 현재의 블록의 높이가 64보다 큰 경우에, 현재의 블록의 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된 판정 유닛(플래그 direct_flag는 직접 모드가 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨); 및 플래그 direct_flag의 콘텍스트 모델 인덱스의 값 1에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛.
제11 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치를 제공한다. 장치는 다음을 포함한다: 현재의 블록의 폭 또는 현재의 블록의 높이를 획득하도록 구성된 획득 유닛; 현재의 블록의 폭이 64보다 크거나, 현재의 블록의 높이가 64보다 큰 경우에, 현재의 블록의 플래그 pred_mode에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 5임을 판정하도록 구성된 판정 유닛(플래그 pred_mode는 인트라 예측 모드가 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨); 및 플래그 pred_mode의 콘텍스트 모델 인덱스의 값 5에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛.
제12 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치를 제공한다. 장치는 다음을 포함한다: 현재의 블록의 폭 또는 현재의 블록의 높이를 획득하도록 구성된 판정 유닛; 현재의 블록의 폭이 64보다 크거나, 현재의 블록의 높이가 64보다 큰 경우에, 현재의 블록의 플래그 root_cbf에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된 판정 유닛(플래그 root_cbf는 현재의 블록이 코딩된 후에 잔차가 있는지를 지시하는 데에 사용됨); 및 플래그 root_cbf의 콘텍스트 모델 인덱스의 값 1에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛.
제13 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치를 제공한다. 장치는 다음을 포함한다: 현재의 블록의 폭을 획득하도록 구성된 획득 유닛; 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 현재의 블록의 폭이 128인 경우에, 현재의 블록의 플래그 qt_split_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하도록 구성된 판정 유닛(플래그 qt_split_flag는 쿼드트리 분할이 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨); 및 플래그 qt_split_flag의 콘텍스트 모델 인덱스의 값 3에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛.
제14 측면에 따르면, 이 출원의 실시예는 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치를 제공한다. 장치는 다음을 포함한다: 현재의 블록의 폭 및 현재의 블록의 높이를 획득하도록 구성된 획득 유닛; 현재의 블록의 폭이 64이고 현재의 블록의 높이가 64보다 큰 경우에, 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하도록(플래그 split_dir는 현재의 블록의 분할 방향을 지시하는 데에 사용됨), 또는 현재의 블록의 높이가 64이고 현재의 블록의 폭이 64보다 큰 경우에, 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 4임을 판정하도록 구성된 판정 유닛; 및 플래그 split_dir의 콘텍스트 모델 인덱스의 값에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛.
제15 측면에 따르면, 이 출원의 실시예는 엔트로피 디코딩 유닛을 포함하는 비디오 디코더를 제공한다. 엔트로피 디코딩 유닛은 제2 측면, 제9 측면 내지 제14 측면, 또는 제2 측면의 구현 중 임의의 것에서 제공되는 처리 장치를 포함한다.
제16 측면에 따르면, 이 출원의 실시예는 엔트로피 인코딩 유닛을 포함하는 비디오 인코더를 제공한다. 엔트로피 인코딩 유닛은 제2 측면, 제9 측면 내지 제14 측면, 또는 제2 측면의 구현 중 임의의 것에서 제공되는 처리 장치를 포함한다.
제17 측면에 따르면, 이 출원의 실시예는 서로 커플링된(coupled) 비휘발성 메모리 및 프로세서를 포함하는 비디오 코딩 디바이스를 제공한다. 프로세서는 제1 측면, 제3 측면 내지 제8 측면, 또는 제1 측면의 구현 중 임의의 것에서 제공되는 방법을 수행하기 위해 메모리 내에 저장된 프로그램 코드를 호출한다.
제18 측면에 따르면, 이 출원의 실시예는 서로 커플링된 비휘발성 메모리 및 프로세서를 포함하는 비디오 인코딩 디바이스를 제공한다. 프로세서는 제1 측면, 제3 측면 내지 제8 측면, 또는 제1 측면의 구현 중 임의의 것에서 제공되는 방법의 일부 또는 모든 단계를 수행하기 위해 메모리 내에 저장된 프로그램 코드를 호출한다.
제19 측면에 따르면, 이 출원의 실시예는 서로 커플링된 비휘발성 메모리 및 프로세서를 포함하는 디코딩 디바이스를 제공한다. 프로세서는 제1 측면, 제3 측면 내지 제8 측면, 또는 제1 측면의 구현 중 임의의 것에서 제공되는 방법의 일부 또는 모든 단계를 수행하기 위해 메모리 내에 저장된 프로그램 코드를 호출한다.
제20 측면에 따르면, 이 출원의 실시예는 컴퓨터 판독가능 저장 매체(computer-readable storage medium)를 제공한다. 컴퓨터 판독가능 저장 매체는 프로그램 코드를 저장하고, 프로그램 코드는 제1 측면, 제3 측면 내지 제8 측면, 또는 제1 측면의 구현 중 임의의 것에서 제공되는 방법의 일부 또는 모든 단계를 수행하는 데에 사용되는 명령어를 포함한다.
제21 측면에 따르면, 이 출원의 실시예는 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 프로그램 제품이 컴퓨터 상에서 가동되는(run) 경우에, 컴퓨터는 제1 측면, 제3 측면 내지 제8 측면, 또는 제1 측면의 구현 중 임의의 것에서 제공되는 방법의 일부 또는 모든 단계를 수행할 수 있게 된다.
이 출원의 제2 측면 내지 제21 측면에서의 기술적 해결안은 이 출원의 제1 측면에서의 기술적 해결안과 일관됨이 응당 이해된다. 다양한 측면 및 대응하는 실현가능한 구현에서 달성되는 유익한 효과는 유사하며, 세부사항은 다시 기술되지 않는다.
현재의 블록의 플래그의 콘텍스트 모델의 값이 현재의 블록의 이웃 블록(예를 들어, 왼쪽 블록 및 위쪽 블록)의 가용성 및 대응하는 플래그의 값에 기반하여 획득될 필요가 있는 종래의 기술과 비교하여, 이 출원의 실시예에서 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델의 값이 직접적으로 판정될 수 있는바, 이로써 코딩 효율을 개선함을 이상으로부터 알 수 있다. 구체적으로, 해결안은 플래그의 조건부 확률을 0 또는 1에 최대한 가깝게 하는 데에 사용될 수 있다. 따라서, 엔트로피 코딩 효율이 개선된다.
본 발명의 실시예에서의 또는 배경에서의 기술적 해결안을 더욱 명확히 설명하기 위해, 다음은 본 발명의 실시예 또는 배경에서의 첨부된 도면을 설명한다.
도 1a는 발명의 실시예를 구현하기 위한 비디오 코딩 시스템(10)의 예의 블록도이고,
도 1b는 발명의 실시예를 구현하기 위한 비디오 코딩 시스템(40)의 예의 블록도이고,
도 2는 본 발명의 실시예를 구현하기 위한 인코더(20)의 예시적인 구조의 블록도이고,
도 3은 본 발명의 실시예를 구현하기 위한 디코더(30)의 예시적인 구조의 블록도이고,
도 4는 본 발명의 실시예를 구현하기 위한 비디오 코딩 디바이스(400)의 예의 블록도이고,
도 5는 본 발명의 실시예를 구현하기 위한 인코딩 장치 또는 디코딩 장치의 다른 예의 블록도이고,
도 6은 본 발명의 실시예를 구현하기 위한 처리 방법의 개략적인 흐름도이고,
도 7은 본 발명의 실시예를 구현하기 위한 처리 장치의 구조 블록도이다.
다음은 본 발명의 실시예에서의 첨부된 도면을 참조하여 본 발명의 실시예를 기술한다. 이하의 설명에서, 이 개시의 일부를 형성하고, 예시로서, 본 발명의 실시예의 구체적 측면 또는 본 발명의 실시예가 사용될 수 있는 구체적 측면을 도시하는 첨부된 도면에 대해 참조가 행해진다. 본 발명의 실시예는 다른 측면에서 사용될 수 있고, 첨부된 도면에 묘사되지 않은 구조적 또는 논리적 변경을 포함할 수 있음이 응당 이해된다. 따라서, 이하의 상세한 설명은 한정적인 의미로 이해되어서는 안 되며, 본 발명의 범위는 부기된 청구항에 의해 정의된다. 예를 들어, 기술된 방법을 참조한 개시된 내용은 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해서도 들어맞을 수 있고 반대로도 마찬가지임이 응당 이해된다. 예를 들어, 만일 하나 이상의 구체적인 방법 단계가 기술된 경우, 대응하는 디바이스는 기술된 하나 이상의 방법 단계를 수행하기 위한 기능적 유닛과 같은 하나 이상의 유닛(예를 들어, 하나 이상의 유닛이 하나 이상의 단계를 수행함; 또는 각각 복수의 단계 중 하나 이상을 수행하는 복수의 유닛)을, 설령 그러한 하나 이상의 유닛이 첨부된 도면에 명시적으로 기술되거나 예시되지 않더라도, 포함할 수 있다. 추가로, 예를 들어, 만일 구체적인 장치가 기능적 유닛과 같은 하나 이상의 유닛에 기반하여 기술되는 경우, 대응하는 방법은 하나 이상의 유닛의 하나 이상의 기능을 수행하는 데에 사용되는 단계(예를 들어, 하나 이상의 유닛의 하나 이상의 기능을 수행하는 데에 사용되는 하나의 단계; 또는 복수의 유닛 중의 하나 이상의 유닛의 하나 이상의 기능을 수행하는 데 사용되는 복수의 단계)를, 설령 단계 중 그러한 하나 이상이 첨부된 도면에 명시적으로 기술되거나 예시되지 않더라도, 포함할 수 있다. 또한, 이 명세서에 기술된 다양한 예시적인 실시예 및/또는 측면의 특징이, 달리 지정되지 않는 한, 서로 조합될 수 있음이 응당 이해된다.
본 발명의 실시예에서의 기술적 해결안은 기존의 비디오 코딩 표준(예를 들어, H.264 및 HEVC와 같은 표준)에 적용될 수 있을 뿐만 아니라, 장래의 비디오 코딩 표준(예를 들어, H.266 표준)에 적용될 수도 있다. 본 발명의 구현에서 사용되는 용어는 본 발명의 구체적인 실시예를 설명하도록 의도될 뿐이며, 본 발명을 한정하도록 의도되지는 않는다. 다음은 우선 본 발명의 실시예에서 사용될 수 있는 몇몇 개념을 간략히 기술한다.
비디오 코딩은 전형적으로, 비디오 또는 비디오 시퀀스(sequence)를 구성하는 픽처의 시퀀스의 처리를 지칭한다. 비디오 코딩의 분야에서, 용어 "픽처(picture)", "프레임(frame)" 및 "이미지(image)"는 동의어로서 사용될 수 있다. 이 명세서에서 사용되는 비디오 코딩은 비디오 인코딩 또는 비디오 디코딩을 지칭한다. 비디오 인코딩은 소스 측(source side)에서 수행되고, 통상적으로, 더 효율적인 저장 및/또는 송신을 위해, 비디오 픽처를 나타내기 위한 데이터의 양을 감소시키기 위해 원래의 비디오 픽처를 (예를 들어, 압축함으로써) 처리하는 것을 포함한다. 비디오 디코딩은 목적지 측(destination side)에서 수행되고, 전형적으로 비디오 픽처를 재구성하기 위해 인코더와 대비되는 역처리(inverse processing)를 포함한다. 실시예에서의 비디오 픽처의 "코딩"은 비디오 시퀀스의 "인코딩" 또는 "디코딩"으로서 응당 이해된다. 인코딩 컴포넌트 및 디코딩 컴포넌트의 조합은 또한 코덱(CODEC)으로 지칭된다.
비디오 시퀀스는 일련의 픽처(picture)를 포함하고, 픽처는 슬라이스(slice)로 더 분할되며, 슬라이스는 블록(block)으로 더 분할된다. 비디오 코딩은 블록 단위로 수행된다. 몇몇 새로운 비디오 코딩 표준에서, 개념 "블록"은 더 확장된다. 예를 들어, 매크로블록(macroblock, Mb)이 H.264 표준에 도입된다. 매크로블록은 예측 코딩(predictive coding)을 위해 사용될 수 있는 복수의 예측 블록(prediction block)(파티션(partition))으로 더 분할될 수 있다. 고효율 비디오 코딩(high efficiency video coding, HEVC) 표준에서, "코딩 유닛"(coding unit, CU), "예측 유닛"(prediction unit, PU) 및 "변환 유닛"(transform unit, TU)과 같은 기본 개념이 사용된다. 복수의 블록 유닛은 기능적 구분을 통해서 획득되고, 새로운 트리 기반 구조(tree-based structure)를 사용함으로써 기술된다. 예를 들어, CU는 쿼드트리 분할(quadtree split)을 통해서 더 작은 CU로 분할될 수 있고, 더 작은 CU는 더 분할되어, 쿼드트리 구조를 생성할 수 있다. CU는 코딩 픽처를 분할하고 인코딩하기 위한 기본 유닛이다. PU 및 TU는 또한 유사한 트리 구조를 갖는다. PU는 예측 블록에 대응할 수 있고, 예측 코딩을 위한 기본 유닛이다. CU는 파티셔닝 패턴으로 복수의 PU로 더 파티셔닝된다. TU는 변환 블록에 대응할 수 있고, 예측 잔차(prediction residual)를 변환하기 위한 기본 유닛이다. 그러나, CU, PU 및 TU 전부는 본질적으로 블록(또는 픽처 블록)의 개념이다.
예를 들어, HEVC에서, CTU는 코딩 트리로서 나타내어진 쿼드트리 구조를 사용함으로써 복수의 CU로 파티셔닝된다. 인터 픽처(시간적) 또는 인트라 픽처(공간적) 예측을 사용함으로써 픽처 영역을 인코딩할 것인지에 대한 판단이 CU 레벨에서 행해진다. 각각의 CU는 PU 분할 패턴에 기반하여 하나, 2개 또는 4개의 PU로 더 분할될 수 있다. 하나의 PU 내에, 동일한 예측 프로세스가 적용되고, 관련된 정보가 PU 기반으로 디코더에 송신된다. PU 분할 패턴에 기반하여 예측 프로세스를 적용함으로써 잔차 블록을 획득한 후에, CU는 CU를 위해 사용되는 코딩 트리와 유사하게 다른 쿼드트리 구조에 기반하여 변환 유닛(Transform Unit: TU)으로 파티셔닝될 수 있다. 비디오 압축 기술의 최근의 발전에서, 코딩 블록을 분할하는 데에 쿼드트리 더하기 이진 트리(Quad-tree plus binary tree, QTBT) 파티션 프레임이 사용된다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형일 수 있다.
이 명세서에서, 설명 및 이해의 용이함을 위해, 현재의 코딩되는 픽처 내의 인코딩될 픽처 블록은 현재의 블록으로 지칭될 수 있다. 예를 들어, 인코딩에서, 현재의 블록은 현재 인코딩되고 있는 블록이고, 디코딩에서, 현재의 블록은 현재 디코딩되고 있는 블록이다. 현재의 블록을 예측하는 데에 사용되는, 참조 픽처 내의 디코딩된 픽처 블록은 참조 블록으로 지칭된다. 구체적으로, 참조 블록은 현재의 블록을 위해 참조 신호를 제공하는 블록이고, 참조 신호는 픽처 블록 내의 픽셀 값을 나타낸다. 참조 픽처 내에 있고 현재의 블록을 위해 예측 신호를 제공하는 블록은 예측 블록으로서 사용될 수 있는데, 예측 신호는 예측 블록 내의 픽셀 값, 샘플 값, 또는 샘플 신호를 나타낸다. 예를 들어, 복수의 참조 블록이 순회된(traversed) 후에 최적의 참조 블록이 발견되고, 최적의 참조 블록은 현재의 블록을 위해 예측을 제공하고, 이 블록은 예측 블록으로 지칭된다.
무손실(lossless) 비디오 코딩의 경우에, 원래의 비디오 픽처가 재구성될 수 있고, 이는 재구성된 비디오 픽처는 (저장 또는 송신 동안에 어떤 송신 손실 또는 다른 데이터 손실도 발생하지 않음을 가정하면) 원래의 비디오 픽처와 동일한 품질을 가짐을 의미한다. 손실성(lossy) 비디오 코딩의 경우에, 비디오 픽처를 나타내기 위해 요구되는 데이터의 양을 감소시키기 위해, 예를 들어, 양자화를 통해서 추가의 압축이 수행되고, 비디오 픽처는 디코더 측에서 완전히 재구성될 수는 없다. 이는 재구성된 비디오 픽처의 품질이 원래의 비디오 픽처의 것보다 더 낮거나 더 열악함을 의미한다.
"손실성 하이브리드 비디오 코덱"을 위해 몇 개의 H.261 비디오 코딩 표준이 사용된다(즉, 샘플 도메인(sample domain)에서의 공간적 및 시간적 예측은 변환 도메인(transform domain)에서 양자화를 적용하기 위한 2D 변환 코딩과 조합됨). 비디오 시퀀스의 각각의 픽처는 통상적으로 비중첩(non-overlapping) 블록의 세트로 파티셔닝되고, 코딩은 통상적으로 블록 레벨에서 수행된다. 다시 말해, 인코더 측에서, 비디오는 전형적으로, 블록(비디오 블록) 레벨에서, 처리, 즉 인코딩된다. 예를 들어, 예측 블록이 공간적(인트라 픽처) 예측 및/또는 시간적(인터 픽처) 예측을 통해서 생성되고, 예측 블록은 현재의 블록(현재 처리되고 있는 또는 처리될 블록)으로부터 차감되어 잔차 블록을 획득하며, 잔차 블록은 변환 도메인에서 변환되고 양자화되어, 송신될 데이터의 양을 감소시킨다(압축됨). 디코더 측에서, 인코더에 대한 역처리 부분이 인코딩된 또는 압축된 블록에 적용되어 표현을 위한 현재의 블록을 재구성한다. 나아가, 인코더 및 디코더가 후속 블록을 처리, 즉 코딩하기 위해 동일한 예측(예를 들어, 인트라 예측 및 인터 예측) 및/또는 재구성을 생성하도록, 인코더는 디코더의 처리 루프를 복제한다.
다음은 본 발명의 실시예가 적용되는 시스템 아키텍처를 기술한다. 도 1a는 본 발명의 실시예가 적용되는 비디오 코딩 시스템(10)의 예의 개략적인 블록도이다. 도 1a에 도시된 바와 같이, 비디오 코딩 시스템(10)은 소스 디바이스(source device)(12) 및 목적지 디바이스(destination device)(14)를 포함할 수 있다. 소스 디바이스(12)는 인코딩된 비디오 데이터를 생성하고, 따라서 소스 디바이스(12)는 비디오 인코딩 장치로 지칭될 수 있다. 목적지 디바이스(14)는 소스 디바이스912)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 따라서 목적지 디바이스(14)는 비디오 디코딩 장치로 지칭될 수 있다. 다양한 구현 해결안에서, 소스 디바이스(12), 목적지 디바이스(14), 또는 소스 디바이스(12) 및 목적지 디바이스(14) 양자 모두는 하나 이상의 프로세서 및 하나 이상의 프로세서에 커플링된 메모리를 포함할 수 있다. 메모리는 RAM, ROM, EEPROM, 플래시 메모리(flash memory), 또는 이 명세서에서 기술된 바와 같이, 컴퓨터에 의해 액세스가능한 명령어 또는 데이터 구조의 형태로 요망되는 프로그램 코드를 저장하는 데에 사용될 수 있는 임의의 다른 매체를 포함할 수 있으나 이에 한정되지 않는다. 소스 디바이스(12) 및 목적지 디바이스(14)는, 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예를 들어, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스(set-top box), 이른바 "스마트폰"과 같은 전화 핸드세트(telephone handset), 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량내 컴퓨터(in-vehicle computer), 무선 통신 디바이스 및 유사한 것을 포함하는 다양한 장치를 포함할 수 있다.
도 1a가 소스 디바이스(12) 및 목적지 디바이스(14)를 별개의 디바이스로서 묘사하나, 디바이스 실시예는 대안적으로 소스 디바이스(12) 및 목적지 디바이스(14) 양자 모두를 또는 소스 디바이스(12) 및 목적지 디바이스(14) 양자 모두의 기능, 즉 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능을 포함할 수 있다. 그러한 실시예에서, 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어를 사용함으로써 또는 별개의 하드웨어 및/또는 소프트웨어 또는 이의 임의의 조합을 사용함으로써 구현될 수 있다.
소스 디바이스(12) 및 목적지 디바이스(14) 간의 통신 연결이 링크(13)를 통하여 구현될 수 있고, 목적지 디바이스(14)는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 링크(13)를 통하여 수신할 수 있다. 링크(13)는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 목적지 디바이스(14)로 이동하는 것이 가능한 하나 이상의 매체 또는 장치를 포함할 수 있다. 예에서, 링크(13)는 소스 디바이스(12)로 하여금 인코딩된 비디오 데이터를 실시간으로 목적지 디바이스(14)에 직접적으로 송신할 수 있게 하는 하나 이상의 통신 매체를 포함할 수 있다. 이 예에서, 소스 디바이스(12)는 인코딩된 비디오 데이터를 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라 변조할 수 있고, 변조된 비디오 데이터를 목적지 디바이스(14)에 송신할 수 있다. 하나 이상의 통신 매체는 무선 통신 매체 및/또는 유선 통신 매체, 예를 들어, 무선 주파수(radio frequency)(RF) 스펙트럼 또는 하나 이상의 물리적 송신 케이블을 포함할 수 있다. 하나 이상의 통신 매체는 패킷 기반 네트워크의 일부일 수 있고, 패킷 기반 네트워크는, 예를 들어, 로컬 영역 네트워크(local area network), 광역 네트워크(wide area network), 또는 전역 네트워크(global network)(예를 들어, 인터넷)이다. 하나 이상의 통신 매체는 라우터(router), 스위치(switch), 기지국(base station), 또는 소스 디바이스(12)로부터 목적지 디바이스(14)로의 통신을 가능하게 하는 다른 디바이스를 포함할 수 있다.
소스 디바이스(12)는 인코더(20)를 포함하고, 선택적으로, 소스 디바이스(12)는 픽처 소스(picture source)(16), 픽처 프리-프로세서(picture pre-processor)(18) 및 통신 인터페이스(communication interface)(22)를 더 포함할 수 있다. 구체적인 구현 형태에서, 인코더(20), 픽처 소스(16), 픽처 프리-프로세서(18) 및 통신 인터페이스(22)는 소스 디바이스(12) 내의 하드웨어 컴포넌트일 수 있거나, 소스 디바이스(12) 내의 소프트웨어 프로그램일 수 있다. 구체적인 설명은 다음과 같다.
픽처 소스(16)는, 예를 들어, 실세계 픽처를 포착하도록 구성된 임의의 타입의 픽처 포착 디바이스(picture capture device), 그리고/또는 픽처 또는 코멘트(comment)(스크린 콘텐트(content) 인코딩에 대해, 스크린 상의 어떤 텍스트는 또한 인코딩될 픽처 또는 이미지의 일부로서 간주됨)를 생성하기 위한 임의의 타입의 디바이스, 예를 들어, 컴퓨터 애니메이션 픽처를 생성하도록 구성된 컴퓨터 그래픽 프로세서(computer graphics processor), 또는 실세계 픽처 또는 컴퓨터 애니메이션 픽처(예를 들어, 스크린 콘텐트 또는 가상 현실(virtual reality, VR) 픽처), 그리고/또는 이의 임의의 조합(예를 들어, 증강 현실(augmented reality, AR) 픽처)를 획득하고/거나 제공하도록 구성된 임의의 타입의 디바이스이거나 이를 포함할 수 있다. 픽처 소스(16)는 픽처를 포착하기 위한 카메라 또는 픽처를 저장하기 위한 메모리일 수 있다. 픽처 소스(16)는 임의의 타입의 (내부 또는 외부) 인터페이스(이를 통해서 픽처가 획득되거나 수신되고/거나 이전에 포착되거나 생성된 픽처가 저장됨)를 더 포함할 수 있다. 픽처 소스(16)가 카메라인 경우에, 픽처 소스(16)는, 예를 들어, 로컬 카메라(local camera)이거나 소스 디바이스 내에 통합된 카메라일 수 있다. 픽처 소스(16)가 메모리인 경우에, 픽처 소스(16)는, 예를 들어, 로컬 메모리(local memory)이거나 소스 디바이스 내에 통합된 메모리일 수 있다. 픽처 소스(16)가 인터페이스를 포함하는 경우에, 인터페이스는, 예를 들어, 외부 비디오 소스로부터 픽처를 수신하기 위한 외부 인터페이스일 수 있다. 외부 비디오 소스는, 예를 들어, 카메라와 같은 외부 픽처 포착 디바이스, 외부 메모리, 또는 외부 픽처 생성 디바이스이다. 외부 픽처 생성 디바이스는, 예를 들어, 외부 컴퓨터 그래픽 프로세서, 컴퓨터, 또는 서버이다. 인터페이스는 임의의 전유적(proprietary) 또는 표준화된 인터페이스 프로토콜에 따른 임의의 타입의 인터페이스, 예를 들어, 유선 또는 무선 인터페이스 또는 광학 인터페이스일 수 있다.
픽처는 픽처 요소(picture element)의 2차원 어레이(array) 또는 행렬(matrix)로서 간주될 수 있다. 어레이 내의 픽처 요소는 또한 샘플로서 지칭될 수 있다. 어레이 또는 픽처의 수평 및 수직 방향(또는 축)에서의 샘플의 수효는 픽처의 크기 및/또는 해상도를 정의한다. 색상(color)의 표현을 위해, 전형적으로 3개의 색상 컴포넌트가 이용된다. 예를 들어, 픽처는 3개의 샘플 어레이로서 표현되거나 이를 포함할 수 있다. 예를 들어, RGB 포맷 또는 색상 공간(color space)에서, 픽처는 대응하는 적색, 녹색 및 청색 샘플 어레이를 포함한다. 그러나, 비디오 코딩에서, 각각의 픽셀은 전형적으로 휘도(luminance)/색차(chrominance) 포맷 또는 색상 공간에서 나타내어진다. 예를 들어, YUV 포맷에서의 픽처는 Y(때때로 L이 대신 사용됨)에 의해 지시되는 휘도 컴포넌트 및 U 및 V에 의해 지시되는 2개의 색차 컴포넌트를 포함한다. 휘도(루마(luma)) 컴포넌트 Y는 밝기 또는 그레이 레벨(gray level) 세기(예를 들어, 그레이 스케일 픽처(gray-scale picture)에서 양자 모두는 동일함)를 나타내고, 2개의 색차(크로마(chroma)) 컴포넌트 U 및 V는 색차 또는 색상 정보 컴포넌트를 나타낸다. 상응하여, YUV 포맷에서의 픽처는 휘도 샘플 값(Y)의 휘도 샘플 어레이 및 색차 값(U 및 V)의 두 색차 샘플 어레이를 포함한다. RGB 포맷에서의 픽처는 YUV 포맷에서의 픽처로 전환되거나 변환될 수 있고 반대로도 마찬가지이며, 그러한 프로세스는 색상 변환 또는 전환으로 알려져 있다. 만일 픽처가 단색(monochrome)인 경우, 픽처는 오직 루마 샘플 어레이를 포함할 수 있다. 본 발명의 이 실시예에서, 픽처 소스(16)에 의해 픽처 프로세서에 송신되는 픽처는 또한 원래의 픽처 데이터(17)로 지칭될 수 있다.
픽처 프리-프로세서(18)는 (원래의) 픽처 데이터(17)를 수신하고, 전처리된(pre-processed) 픽처(19) 또는 전처리된 픽처 데이터(19)를 획득하기 위해, 원래의 픽처 데이터(17)를 전처리하도록 구성된다. 예를 들어, 픽처 프리-프로세서(18)에 의해 수행되는 전처리는 트리밍(trimming), 색상 포맷 전환(예를 들어, RGB 포맷으로부터 YUV 포맷으로), 색상 보정(color correction), 또는 잡음제거(denoising)를 포함할 수 있다.
인코더(20)(또한 비디오 인코더(20)로 지칭됨)는 전처리된 픽처 데이터(19)를 수신하고, 인코딩된 픽처 데이터(21)를 제공하기 위해, 관련된 예측 모드(예를 들면 이 명세서의 각각의 실시예에서의 예측 모드)를 사용함으로써 전처리된 픽처 데이터(19)를 처리하도록 구성된다(인코더(20)의 구조적인 세부사항은 도 2, 도 4, 또는 도 5에 기반하여 아래에서 더 기술됨). 몇몇 실시예에서, 인코더(20)는, 본 발명에서 기술된 크로마 블록 예측 방법의 인코더 측 적용을 구현하기 위해, 아래에 기술된 다양한 실시예를 수행하도록 구성될 수 있다.
통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고, 인코딩된 픽처 데이터(21)를 저장 또는 직접적인 재구성을 위해 링크(13)를 통하여 목적지 디바이스(14) 또는 임의의 다른 디바이스(예를 들면, 메모리)에 송신하도록 구성될 수 있다. 임의의 다른 디바이스는 디코딩 또는 저장을 위해 사용되는 임의의 디바이스일 수 있다. 통신 인터페이스(22)는, 예를 들어, 인코딩된 픽처 데이터(21)를 링크(13)를 통한 송신을 위해, 적절한 포맷, 예를 들어, 데이터 패킷으로 패키징하도록(package) 구성될 수 있다.
목적지 디바이스(14)는 디코더(30)를 포함하고, 선택적으로, 목적지 디바이스(14)는 통신 인터페이스(28), 픽처 포스트-프로세서(picture post-processor)(32) 및 디스플레이 디바이스(34)를 더 포함할 수 있다. 별도의 설명은 다음과 같다.
통신 인터페이스(28)는 인코딩된 픽처 데이터(21)를 소스 디바이스(12) 또는 임의의 다른 소스로부터 수신하도록 구성될 수 있다. 임의의 다른 소스는, 예를 들어, 저장 디바이스이다. 저장 디바이스는, 예를 들어, 인코딩된 픽처 데이터 저장 디바이스이다. 통신 인터페이스(28)는 인코딩된 픽처 데이터(21)를 소스 디바이스(12) 및 목적지 디바이스(14) 간의 링크(13)를 통하여 또는 임의의 타입의 네트워크를 통해서 송신하거나 수신하도록 구성될 수 있다. 링크(13)는, 예를 들어, 직접적인 유선 또는 무선 연결이다. 임의의 타입의 네트워크는, 예를 들어, 유선 또는 무선 네트워크 또는 이의 임의의 조합, 또는 임의의 타입의 사설 또는 공용 네트워크, 또는 이의 임의의 조합이다. 통신 인터페이스(28)는, 예를 들어, 인코딩된 픽처 데이터(21)를 획득하기 위해, 통신 인터페이스(22)를 통해서 송신된 데이터 패킷을 패키징해제하도록(depackage) 구성될 수 있다.
통신 인터페이스(28) 및 통신 인터페이스(22) 양자 모두는 단방향(unidirectional) 통신 인터페이스 또는 쌍방향(bidirectional) 통신 인터페이스로서 구성될 수 있고, 예를 들어, 연결을 수립하기 위해 메시지를 발신하고 수신하고, 통신 링크 및/또는 데이터 송신, 예를 들면 인코딩된 픽처 데이터 송신에 관련된 임의의 다른 정보를 확인응답하고(acknowledge) 교환하도록 구성될 수 있다.
디코더(30)(또한 디코더(30)로서 지칭됨)는 인코딩된 픽처 데이터(21)를 수신하고 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(디코더(30)의 구조적인 세부사항은 도 3, 도 4, 또는 도 5에 기반하여 아래에서 더 기술됨). 몇몇 실시예에서, 디코더(30)는 본 발명에서 기술된 크로마 블록 예측 방법의 디코더 측 적용을 구현하기 위해, 아래에 기술된 다양한 실시예를 수행하도록 구성될 수 있다.
픽처 포스트-프로세서(32)는, 후처리된(post-processed) 픽처 데이터(33)를 획득하기 위해, 디코딩된 픽처 데이터(31)(또한 재구성된 픽처 데이터(reconstructed picture data)로 지칭됨)를 후처리하도록 구성된다. 픽처 포스트-프로세서(32)에 의해 수행되는 후처리는 색상 포맷 전환(예를 들어, YUV 포맷으로부터 RGB 포맷으로), 색상 보정, 트리밍, 리샘플링(re-sampling), 또는 임의의 다른 처리를 포함할 수 있다. 픽처 포스트-프로세서(32)는 또한 후처리된 픽처 데이터(33)를 디스플레이 디바이스(34)에 송신하도록 구성될 수 있다.
디스플레이 디바이스(34)는, 예를 들어, 사용자 또는 감상자(viewer)에게 픽처를 디스플레이하기 위해, 후처리된 픽처 데이터(33)를 수신하도록 구성된다. 디스플레이 디바이스(34)는 재구성된 픽처를 제시하도록 구성된 임의의 타입의 디스플레이, 예를 들어, 통합된 또는 외부의 디스플레이 또는 모니터이거나 이를 포함할 수 있다. 예를 들어, 디스플레이는 액정 디스플레이(liquid crystal display, LCD), 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 플라즈마 디스플레이(plasma display), 프로젝터(projector), 마이크로 LED 디스플레이(micro LED display), 실리콘 상의 액정(liquid crystal on silicon, LCoS), 디지털 광 프로세서(digital light processor, DLP), 또는 임의의 타입의 다른 디스플레이를 포함할 수 있다.
도 1a가 소스 디바이스(12) 및 목적지 디바이스(14)를 별개의 디바이스로서 묘사하나, 디바이스 실시예는 대안적으로 소스 디바이스(12) 및 목적지 디바이스(14) 양자 모두를 또는 소스 디바이스(12) 및 목적지 디바이스(14) 양자 모두의 기능, 즉 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능을 포함할 수 있다. 그러한 실시예에서, 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어를 사용함으로써 또는 별개의 하드웨어 및/또는 소프트웨어 또는 이의 임의의 조합을 사용함으로써 구현될 수 있다.
설명에 기반하여 당업자에 대해 명백할 바와 같이, 상이한 유닛의 기능 또는 도 1a에 도시된 소스 디바이스(12) 및/또는 목적지 디바이스(14)의 기능의 존재 및 (정확한) 분할은 실제의 디바이스 및 적용에 따라서 달라질 수 있다. 소스 디바이스(12) 및 목적지 디바이스(14)는 각각 임의의 타입의 핸드헬드(handheld) 또는 정지식(stationary) 디바이스, 예를 들어, 노트북 또는 랩톱 컴퓨터, 모바일 전화, 스마트폰, 패드 또는 태블릿 컴퓨터, 비디오 카메라, 데스크톱 컴퓨터, 셋톱 박스, 텔레비전, 카메라, 차량 장착형 디바이스(vehicle-mounted device), 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스(예를 들면 콘텐트 서비스 서버 또는 콘텐트 분배 서버), 브로드캐스트 수신기 디바이스, 또는 브로드캐스트 송신기 디바이스를 포함하는 광범위한 디바이스 중 임의의 것을 포함할 수 있고, 임의의 타입의 운영 시스템(operating system)을 사용할 수 있거나 사용하지 않을 수 있다.
인코더(20) 및 디코더(30)는 각각 다양한 적절한 회로, 예를 들어, 하나 이상의 마이크로프로세서(microprocessor), 디지털 신호 프로세서(digital signal processor, DSP), 애플리케이션 특정 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그램가능 게이트 어레이(field-programmable gate array, FPGA), 이산 로직(discrete logic), 하드웨어, 또는 이의 임의의 조합 중 임의의 것으로서 구현될 수 있다. 만일 소프트웨어를 사용함으로써 부분적으로 기술이 구현되는 경우, 디바이스는 소프트웨어 명령어를 적절한 비일시적 컴퓨터 판독가능 저장 매체 내에 저장할 수 있고, 이 개시의 기술을 수행하기 위해, 하나 이상의 프로세서와 같은 하드웨어를 사용함으로써 명령어를 실행할 수 있다. (하드웨어, 소프트웨어, 하드웨어 및 소프트웨어의 조합 및 유사한 것을 포함하는) 전술한 내용 중 임의의 것이 하나 이상의 프로세서라고 간주될 수 있다.
몇몇 경우에, 도 1a에 예시된 비디오 코딩 시스템(10)은 단지 예이며 이 출원의 기법은 인코딩 디바이스 및 디코딩 디바이스 간의 어떤 데이터 통신도 반드시 포함하지는 않는 비디오 코딩 설정(예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용될 수 있다. 다른 예에서, 데이터가 로컬 메모리로부터 인출되거나(retrieved), 네트워크를 통하여 스트리밍되거나(streamed), 기타 등등일 수 있다. 비디오 인코딩 디바이스는 데이터를 인코딩하고 메모리에 저장할 수 있고/거나, 비디오 디코딩 디바이스는 메모리로부터 데이터를 인출하고 디코딩할 수 있다. 몇몇 예에서, 인코딩 및 디코딩은 서로 통신하지 않는 디바이스에 의해 수행되되, 단순히 데이터를 메모리에 인코딩하고/거나 메모리로부터 데이터를 인출하고 디코딩한다.
도 1b는 예시적인 실시예에 따라, 도 2에서의 인코더(20) 및/또는 도 3에서의 디코더(30)를 포함하는 비디오 코딩 시스템(40)의 예의 예시도이다. 비디오 코딩 시스템(40)은 본 발명의 실시예에서의 다양한 기법의 조합을 구현할 수 있다. 예시된 구현에서, 비디오 코딩 시스템(40)은 촬상 디바이스(imaging device)(41), 인코더(20), 디코더(30)(그리고/또는 처리 유닛(46)의 로직 회로(logic circuit)(47)에 의해 구현된 비디오 인코더/디코더), 안테나(42), 하나 이상의 프로세서(43), 하나 이상의 메모리(44) 및/또는 디스플레이 디바이스(45)를 포함할 수 있다.
도 1b에서, 촬상 디바이스(41), 안테나(42), 처리 유닛(46), 로직 회로(47), 인코더(20), 디코더(30), 프로세서(43), 메모리(44) 및/또는 디스플레이 디바이스(45)는 서로 통신할 수 있다. 기술된 바와 같이, 비록 비디오 코딩 시스템(40)이 인코더(20) 및 디코더(30)로써 예시되나, 비디오 코딩 시스템(40)은 상이한 예에서 오직 인코더(20)를 또는 오직 디코더(30)를 포함할 수 있다.
몇몇 예에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림(bitstream)을 송신하거나 수신하도록 구성될 수 있다. 나아가, 몇몇 예에서, 디스플레이 디바이스(45)는 비디오 데이터를 제시하도록 구성될 수 있다. 몇몇 예에서, 로직 회로(47)는 처리 유닛(46)에 의해 구현될 수 있다. 처리 유닛(46)은 애플리케이션 특정 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 프로세서(graphics processor), 일반 목적 프로세서(general-purpose processor), 또는 유사한 것을 포함할 수 있다. 비디오 코딩 시스템(40)은 또한 선택적인 프로세서(43)를 포함할 수 있다. 선택적인 프로세서(43)는 유사하게 애플리케이션 특정 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 프로세서, 일반 목적 프로세서, 또는 유사한 것을 포함할 수 있다. 몇몇 예에서, 로직 회로(47)는 하드웨어, 예를 들어, 비디오 코딩 전용 하드웨어에 의해 구현될 수 있고, 프로세서(43)는 일반 목적 소프트웨어, 운영 시스템, 또는 유사한 것에 의해 구현될 수 있다. 추가로, 메모리(44)는 임의의 타입의 메모리, 예를 들어, 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)), 또는 비휘발성 메모리(예를 들어, 플래시 메모리)일 수 있다. 비제한적인 예에서, 메모리(44)는 캐시 메모리(cache memory)에 의해 구현될 수 있다. 몇몇 예에서, 로직 회로(47)는 (예를 들어, 픽처 버퍼(picture buffer)를 구현하기 위한) 메모리(44)를 액세스할 수 있다. 다른 예에서, 로직 회로(47) 및/또는 처리 유닛(46)은 픽처 버퍼를 구현하기 위한 메모리(예를 들어, 캐시(cache))를 포함할 수 있다.
몇몇 예에서, 로직 회로를 사용함으로써 구현되는 인코더(20)는 (예를 들어, 처리 유닛(46) 또는 메모리(44)에 의해 구현되는) 픽처 버퍼 및 (예를 들어, 처리 유닛(46)에 의해 구현되는) 그래픽 처리 유닛을 포함할 수 있다. 그래픽 처리 유닛은 픽처 버퍼에 통신가능하게 커플링될(communicatively coupled) 수 있다. 그래픽 처리 유닛은 도 2를 참조하여 기술된 다양한 모듈 및/또는 이 명세서에 기술된 임의의 다른 인코더 시스템 또는 서브시스템을 구현하기 위해, 로직 회로(47)를 사용함으로써 구현된 인코더(20)를 포함할 수 있다. 로직 회로는 이 명세서에 기술된 다양한 동작을 수행하도록 구성될 수 있다.
몇몇 예에서, 디코더(30)는 도 3에서의 디코더(30)를 참조하여 기술된 다양한 모듈 및/또는 이 명세서에 기술된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해, 유사한 방식으로 로직 회로(47)에 의해 구현될 수 있다. 몇몇 예에서, 로직 회로를 사용함으로써 구현되는 디코더(30)는 (처리 유닛(46) 또는 메모리(44)에 의해 구현되는) 픽처 버퍼 및 (예를 들어, 처리 유닛(46)에 의해 구현되는) 그래픽 처리 유닛을 포함할 수 있다. 그래픽 처리 유닛은 픽처 버퍼에 통신가능하게 커플링될 수 있다. 그래픽 처리 유닛은 도 3을 참조하여 기술된 다양한 모듈 및/또는 이 명세서에 기술된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해, 로직 회로(47)를 사용함으로써 구현된 디코더(30)를 포함할 수 있다.
몇몇 예에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 기술된 바와 같이, 인코딩된 비트스트림은 이 명세서에 기술된 비디오 프레임 코딩에 관련된 데이터, 지시자(indicator), 인덱스 값(index value), 모드 선택 데이터, 또는 유사한 것, 예를 들어, 코딩 파티셔닝에 관련된 데이터(예를 들어, 변환 계수 또는 양자화된 변환 계수, (기술되는 바와 같은) 선택적인 지시자, 그리고/또는 코딩 파티셔닝을 정의하는 데이터)를 포함할 수 있다. 비디오 코딩 시스템(40)은 안테나(42)에 커플링되고 인코딩된 비트스트림을 디코딩하도록 구성된 디코더(30)를 더 포함할 수 있다. 디스플레이 디바이스(45)는 비디오 프레임을 제시하도록 구성된다.
본 발명의 이 실시예에서, 인코더(20)를 참조하여 기술된 예에 대하여, 디코더(30)는 역 프로세스를 수행하도록 구성될 수 있음이 응당 이해된다. 시그널링 구문 요소(signaling syntax element)에 관해, 디코더(30)는 그러한 구문 요소를 수신하고 파싱하고, 상응하여 관련된 비디오 데이터를 디코딩하도록 구성될 수 있다. 몇몇 예에서, 인코더(20)는 구문 요소를 인코딩된 비디오 비트스트림으로 엔트로피 인코딩할 수 있다. 그러한 예에서, 디코더(30)는 그러한 구문 요소를 파싱하고 상응하여 관련된 비디오 데이터를 디코딩할 수 있다.
본 발명의 실시예에서 기술된 방법은 주로 인터 예측 프로세스에서 사용되며, 프로세스는 인코더(20) 및 디코더(30) 양자 모두에 존재함에 유의하여야 한다. 본 발명의 실시예에서의 인코더(20)/디코더(30)는 H.263, H.264, HEVV, MPEG-2, MPEG-4, VP8, 또는 VP9와 같은 비디오 표준 프로토콜에 대응하는, 또는 (H.266과 같은) 차세대 비디오 표준 프로토콜에 대응하는 인코더/디코더일 수 있다.
도 2는 본 발명의 실시예를 구현하도록 구성된 예시적인 인코더(20)의 개략적인/개념적인 블록도이다. 도 2의 예에서, 인코더(20)는 잔차 계산 유닛(residual calculation unit)(204), 변환 처리 유닛(transform processing unit)(206), 양자화 유닛(quantization unit)(208), 역양자화 유닛(inverse quantization unit)(210), 역변환 처리 유닛(inverse transform processing unit)(212), 재구성 유닛(reconstruction unit)(214), 루프 필터 유닛(loop filter unit)(220), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230), 예측 처리 유닛(prediction processing unit)(260) 및 엔트로피 인코딩 유닛(entropy encoding unit)(270)을 포함한다. 예측 처리 유닛(260)은 인터 예측 유닛(inter prediction unit)(244), 인트라 예측 유닛(intra prediction unit)(254) 및 모드 선택 유닛(mode selection unit)(262)을 포함할 수 있다. 인터 예측 유닛(244)은 움직임 추정 유닛(motion estimation unit) 및 움직임 보상 유닛(motion compensation unit)(도면에 묘사되지 않음)을 포함할 수 있다. 도 2에 도시된 인코더(20)는 또한 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 기반한 비디오 인코더로 지칭될 수 있다.
예를 들어, 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)은 인코더(20)의 순방향 신호 경로(forward signal path)를 형성하는 반면, 예를 들어, 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230) 및 예측 처리 유닛(260)은 인코더의 역방향 신호 경로(reverse signal path)를 형성한다. 인코더의 역방향 신호 경로는 디코더의 신호 경로에 대응한다(도 3에서의 디코더(30)를 참조하시오).
인코더(20)는, 예를 들어, 입력부(202)로부터, 픽처(201) 또는 픽처(201)의 픽처 블록(203), 예를 들어, 비디오 또는 비디오 시퀀스를 형성하는 픽처의 시퀀스 내의 픽처를 수신한다. 픽처 블록(203)은 또한 현재의 픽처 블록 또는 인코딩될 픽처 블록으로서 지칭될 수 있다. 픽처(201)는 현재의 픽처 또는 코딩될 픽처로서 (특히 비디오 코딩에서 현재의 픽처를 다른 픽처와 구별하기 위해서이되, 그 다른 픽처는, 예를 들어, 동일한 비디오 시퀀스, 즉 현재의 픽처를 또한 포함하는 비디오 시퀀스 내의 이전에 인코딩되고/거나 디코딩된 픽처임) 지칭될 수 있다.
실시예에서, 인코더(20)는 픽처(201)를 복수의 블록, 예를 들면 픽처 블록(203)으로 파티셔닝하도록 구성된 파티셔닝 유닛(도 2에 묘사되지 않음)을 포함할 수 있다. 픽처(201)는 통상적으로 복수의 비중첩(non-overlapping) 블록으로 파티셔닝된다. 파티셔닝 유닛은 비디오 시퀀스 내의 모든 픽처를 위해 동일한 블록 크기 및 블록 크기를 정의하는 대응하는 그리드(grid)를 사용하거나, 픽처 또는 픽처의 서브세트 또는 그룹 간에 블록 크기를 변경하고, 각각의 픽처를 대응하는 블록으로 파티셔닝하도록 구성될 수 있다.
예에서, 인코더(20)의 예측 처리 유닛(260)은 위에서 기술된 파티셔닝 기법의 임의의 조합을 수행하도록 구성될 수 있다.
픽처(201)처럼, 픽처 블록(203)은 또한 샘플 값을 가진 샘플의 2차원 어레이 또는 행렬로서 간주되거나 그럴 수 있는데, 픽처(201)보다 더 작은 치수의 것이기는 하다. 다시 말해, 픽처 블록(203)은 적용되는 색상 포맷에 따라서, 예를 들어, 하나의 샘플 어레이(예를 들어, 단색 픽처(201)의 경우 루마 어레이), 3개의 샘플 어레이(예를 들어, 색상 픽처의 경우 하나의 루마 어레이 및 2개의 크로마 어레이), 또는 임의의 다른 수효 및/또는 타입의 어레이를 포함할 수 있다. 픽처 블록(203)의 수평 및 수직 방향(또는 축)에서의 샘플의 수효는 픽처 블록(203)의 크기를 정의한다.
도 2에 도시된 인코더(20)는 블록 단위로 픽처(201)를 인코딩하도록 구성되는데, 예를 들어, 인코더는 각각의 픽처 블록(203)을 인코딩하고 예측한다.
잔차 계산 유닛(204)은 픽처 블록(203) 및 예측 블록(265)에 기반하여 잔차 블록(205)을 계산하도록(예측 블록(265)에 대한 추가의 세부사항은 아래에 제공됨), 예를 들어, 한 샘플씩 (한 픽셀씩) 픽처 블록(203)의 샘플 값으로부터 예측 블록(265)의 샘플 값을 차감함으로써 샘플 도메인 내에서 잔차 블록(205)을 획득하도록 구성된다.
변환 처리 유닛(206)은 변환 도메인에서 변환 계수(207)를 획득하기 위해 잔차 블록(205)의 샘플 값에 대해, 변환, 예를 들어, 이산 코사인 변환(discrete cosine transform, DCT) 또는 이산 사인 변환(discrete sine transform, DST)을 적용하도록 구성된다. 변환 계수(207)는 또한 변환 잔차 계수로서 지칭되고 변환 도메인에서 잔차 블록(205)을 나타낼 수 있다.
변환 처리 유닛(206)은 HEVC/H.265에서 지정된 변환과 같은, DCT/DST의 정수 근사화를 적용하도록 구성될 수 있다. 직교 DCT 변환에 비해, 그러한 정수 근사화는 전형적으로 어떤 인자(factor)에 의해 스케일링된다(scaled). 순방향 및 역 변환을 사용함으로써 처리되는 잔차 블록의 놈(norm)을 보존하기 위해, 추가적인 스케일 인자(scale factor)를 적용하는 것은 변환 프로세스의 일부이다. 스케일 인자는 통상적으로 몇몇 제약에 기반하여 선택된다. 예를 들어, 스케일 인자는 쉬프트 동작(shift operation)에 대한 2의 멱(power), 변환 계수의 비트 깊이(bit depth), 또는 정확도 및 구현 비용 간의 트레이드오프(tradeoff)이다. 예를 들어, 디코더 측(30)에서 역변환 처리 유닛(212)에 의해, 역변환을 위해(그리고, 예를 들어, 인코더 측(20)에서 역변환 처리 유닛(212)에 의해, 대응하는 역변환을 위해) 구체적인 스케일 인자가 지정되고, 상응하여, 예를 들어, 인코더 측(20)에서 변환 처리 유닛(206)에 의해, 순방향 변환을 위해 대응하는 스케일 인자가 지정될 수 있다.
양자화 유닛(208)은, 예를 들어, 스칼라(scalar) 양자화 또는 벡터(vector) 양자화를 적용함으로써, 양자화된 변환 계수(209)를 획득하기 위해 변환 계수(207)를 양자화하도록 구성된다. 양자화된 변환 계수(209)는 또한 양자화된 잔차 계수(209)로서 지칭될 수 있다. 양자화 프로세스는 변환 계수(207) 중 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 예를 들어, n 비트 변환 계수는 양자화 동안에 m 비트 변환 계수로 잘라 버림될(rounded down) 수 있는데, n은 m보다 더 크다. 양자화 정도는 양자화 파라미터(quantization parameter, QP)를 조절함으로써 수정될 수 있다. 예를 들어, 스칼라 양자화를 위해, 더 세밀한(finer) 또는 더 조야한(coarser) 양자화를 달성하기 위해 상이한 스케일링이 적용될 수 있다. 더 작은 양자화 스텝(quantization step)은 더 세밀한 양자화에 대응하고, 더 큰 양자화 스텝은 더 조야한 양자화에 대응한다. 적용가능한 양자화 스텝은 양자화 파라미터(quantization parameter, QP)에 의해 지시될 수 있다. 양자화 파라미터는, 예를 들어, 적용가능한 양자화 스텝의 사전정의된 세트에 대한 인덱스일 수 있다. 예를 들어, 더 작은 양자화 파라미터는 세밀한 양자화(더 작은 양자화 스텝)에 대응할 수 있고 더 큰 양자화 파라미터는 더 조야한 양자화(더 큰 양자화 스텝)에 대응할 수 있거나, 반대로도 마찬가지이다. 양자화는 양자화 스텝에 의한 나누기 및 예를 들어, 역양자화 유닛(210)에 의해 수행되는, 대응하는 양자화 및/또는 역양자화를 포함할 수 있거나, 양자화 스텝 크기에 의한 곱하기를 포함할 수 있다. HEVC와 같은 몇몇 표준에 따른 실시예에서, 양자화 파라미터는 양자화 스텝을 판정하는 데에 사용될 수 있다. 일반적으로, 양자화 스텝은 나누기를 포함하는 식의 고정 소수점 근사화(fixed point approximation)를 사용하여 양자화 파라미터에 기반하여 계산될 수 있다. 추가적인 스케일 인자가 양자화 및 양자화해제(dequantization)를 위해 도입되어 잔차 블록의 놈을 복원할 수 있는데, 잔차 블록의 놈은 양자화 스텝 및 양자화 파라미터를 위한 식의 고정 소수점 근사화에서 사용되는 스케일 때문에 수정될 수 있다. 예시적인 구현에서, 역변환 및 양자화해제의 스케일은 조합될 수 있다. 대안적으로, 맞춤화된 양자화 테이블이 사용되고 인코더로부터 디코더로, 예를 들어, 비트스트림 내에, 시그널링될 수 있다. 양자화는 손실성 동작인데, 손실은 양자화 스텝을 증가시킴에 따라 증가한다.
역양자화 유닛(210)은 양자화해제 계수(211)를 획득하기 위해 양자화 계수에 양자화 유닛(208)의 역양자화를 적용하도록, 예를 들어, 양자화 유닛(208)과 동일한 양자화 스텝에 기반하거나 이를 사용함으로써, 양자화 유닛(208)에 의해 적용된 양자화 방안의 역을 적용하도록 구성된다. 양자화해제 계수(211)는 또한 양자화해제된 잔차 계수(211)로서 지칭되고, 비록 전형적으로 양자화에 의한 손실로 인해 변환 계수와 동일하지는 아니하나, 변환 계수(207)에 대응할 수 있다.
역변환 처리 유닛(212)은, 샘플 도메인에서 역변환 블록(213)을 획득하기 위해, 변환 처리 유닛(206)에 의해 적용된 변환의 역변환, 예를 들어, 역 이산 코사인 변환(discrete cosine transform, DCT) 또는 역 이산 사인 변환(discrete sine transform, DST)을 적용하도록 구성된다. 역변환 블록(213)은 또한 역변환 양자화해제된 블록(213) 또는 역변환 잔차 블록(213)으로서 지칭될 수 있다.
재구성 유닛(214)(예를 들어, 합산기(214))은, 예를 들어, 재구성된 잔차 블록(213)의 샘플 값 및 예측 블록(265)의 샘플 값을 가산함으로써, 샘플 도메인에서 재구성된 블록(215)을 획득하기 위해 예측 블록(265)에 역변환 블록(213)(즉, 재구성된 잔차 블록(213))을 가산하도록 구성된다.
선택적으로, 예를 들어, 라인 버퍼(216)의, 버퍼 유닛(216)(약칭으로 "버퍼"(216))은, 예를 들어, 인트라 예측을 위해, 재구성된 블록(215) 및 대응하는 샘플 값을 버퍼링하거나 저장하도록 구성된다. 다른 실시예에서, 인코더는 임의의 타입의 추정 및/또는 예측, 예를 들어, 인트라 예측을 위해 버퍼 유닛(216) 내의 저장된 필터링되지 않은 재구성된 블록 및/또는 대응하는 샘플 값을 사용하도록 구성될 수 있다.
예를 들어, 실시예에서, 인코더(20)는, 버퍼 유닛(216)이 인트라 예측 유닛(254)을 위한 재구성된 블록(215)을 저장하기 위해 사용될 뿐만 아니라 루프 필터 유닛(220)(도 2에 묘사되지 않음)을 위해 사용되도록, 그리고/또는, 예를 들어, 버퍼 유닛(216) 및 디코딩된 픽처 버퍼 유닛(230)이 하나의 버퍼를 형성하도록, 구성될 수 있다. 다른 실시예에서, 필터링된 블록(221) 및/또는 디코딩된 픽처 버퍼(230)로부터의 블록 또는 샘플(블록 또는 샘플이 도 2에 도시되지 않음)이 인트라 예측 유닛(254)을 위한 입력 또는 기반으로서 사용된다.
루프 필터 유닛(220)("루프 필터"로 간략히 지칭됨)은 픽셀 전이(pixel transition)를 평활화하거나(smooth) 비디오 품질을 개선하기 위해, 필터링된 블록(221)을 획득하기 위해 재구성된 블록(215)을 필터링하도록 구성된다. 루프 필터 유닛(220)은 하나 이상의 루프 필터, 예를 들면 블록화해제 필터(deblocking filter), 샘플 적응적 오프셋(sample-adaptive offset, SAO) 필터, 또는 다른 필터, 예를 들면 쌍방 필터(bilateral filter), 적응적 루프 필터(adaptive loop filter, ALF), 첨예화(sharpening) 또는 평활화 필터, 또는 협력 필터(collaborative filter)를 나타내도록 의도된다. 비록 루프 필터 유닛(220)이 루프내 필터(in-loop filter)로서 도 2에 도시되나, 다른 구성에서, 루프 필터 유닛(220)은 포스트 루프 필터(post-loop filter)로서 구현될 수 있다. 필터링된 블록(221)은 또한 필터링된 재구성된 블록(221)으로서 지칭될 수 있다. 디코딩된 픽처 버퍼(230)는 루프 필터 유닛(220)이 재구성된 인코딩된 블록에 대해 필터링 동작을 수행한 후 재구성된 인코딩된 블록을 저장할 수 있다.
실시예에서, 인코더(20)(상응하여, 루프 필터 유닛(220))은, 예를 들어, 디코더(30)가 동일한 루프 필터 파라미터를 수신하고 동일한 루프 필터 파라미터를 디코딩에 적용할 수 있도록, 예를 들어, 엔트로피 인코딩 유닛(270) 또는 임의의 다른 엔트로피 인코딩 유닛에 의해 수행되는 엔트로피 인코딩 후에 또는 직접적으로, 루프 필터 파라미터(예를 들면 샘플 적응적 오프셋 정보)를 출력하도록 구성될 수 있다.
디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 인코더(20)에 의해 비디오 데이터를 인코딩하는 데에서의 사용을 위해 참조 픽처 데이터를 저장하는 참조 픽처 메모리일 수 있다. DPB(230)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM)(동기식 DRAM(synchronous DRAM, SDRAM), 자기저항성 RAM(magnetoresistive RAM, MRAM) 및 저항성 RAM(resistive RAM, RRAM)을 포함함), 또는 다른 타입의 메모리 디바이스와 같은 다양한 메모리 디바이스 중 임의의 것에 의해 형성될 수 있다. DPB(230) 및 버퍼(216)는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스에 의해 제공될 수 있다. 예를 들어, 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 필터링된 블록(221)을 저장하도록 구성된다. 디코딩된 픽처 버퍼(230)는 또한 동일한 현재의 픽처의 또는 상이한 픽처, 예를 들어, 이전에 재구성된 픽처의 다른 이전에 필터링된 블록, 예를 들어, 이전에 재구성되고 필터링된 블록(221)을 저장하도록 구성될 수 있고, 예를 들어, 인터 예측을 위해, 완전한 이전에 재구성된, 즉 디코딩된 픽처(그리고 대응하는 참조 블록 및 샘플) 및/또는 부분적으로 재구성된 현재의 픽처(그리고 대응하는 참조 블록 및 샘플)를 제공할 수 있다. 예에서, 만일 재구성된 블록(215)이 루프내 필터링(in-loop filtering) 없이 재구성된 경우, 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 재구성된 블록(215)을 저장하도록 구성된다.
예측 처리 유닛(260)(또한 블록 예측 처리 유닛(260)으로 지칭됨)은 픽처 블록(203)(현재의 픽처(201)의 현재의 픽처 블록(203)) 및 재구성된 픽처 데이터, 예를 들어, 버퍼(216)로부터의 동일한 (현재의) 픽처의 참조 샘플 및/또는 디코딩된 픽처 버퍼(230)로부터의 하나 이상의 이전에 디코딩된 픽처의 참조 픽처 데이터(231)를 수신하거나 획득하고, 그러한 데이터를 예측을 위해 처리하도록, 즉 인터 예측 블록(245) 또는 인트라 예측 블록(255)일 수 있는 예측 블록(265)을 제공하도록 구성된다.
모드 선택 유닛(262)은, 잔차 블록(205)의 계산을 위해, 그리고 재구성된 블록(215)의 재구성을 위해, 예측 모드(예를 들어, 인트라 예측 모드 또는 인터 예측 모드) 및/또는 예측 블록(265)으로서 사용될 대응하는 예측 블록(245 또는 255)를 선택하도록 구성될 수 있다.
실시예에서, 모드 선택 유닛(262)은 (예를 들어, 예측 처리 유닛(260)에 의해 지원되는 예측 모드로부터) 예측 모드를 선택하도록 구성될 수 있다. 예측 모드는 최적의 매치(match) 또는 최소의 잔차(최소의 잔차는 송신 또는 저장을 위한 더 나은 압축을 의미함)를 제공하거나, 최소의 시그널링 오버헤드(최소의 시그널링 오버헤드는 송신 또는 저장을 위한 더 나은 압축을 의미함)를 제공하거나, 양자 모두를 고려하거나 균형 있게 한다. 모드 선택 유닛(262)은 레이트-왜곡 최적화(rate distortion optimization, RDO)에 기반하여 예측 모드를 판정하도록, 즉 최소의 레이트-왜곡 최적화를 제공하는 예측 모드를 선택하거나
관련된 레이트 왜곡이 적어도 예측 모드 선택 기준을 만족하는 예측 모드를 선택하도록 구성될 수 있다.
다음에서, 예시적인 인코더(20)에 의해 수행되는 예측 처리(예를 들어, 예측 처리 유닛(260)에 의해 수행됨) 및 모드 선택(예를 들어, 모드 선택 유닛(262)에 의해 수행됨)이 상세히 설명될 것이다.
위에서 기술된 바와 같이, 인코더(20)는 (사전결정된) 예측 모드의 세트로부터 최선 또는 최적 예측 모드를 판정하거나 선택하도록 구성된다. 예측 모드의 세트는, 예를 들어, 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수 있다.
인트라 예측 모드의 세트는 35개의 상이한 인트라 예측 모드, 예를 들어, DC(또는 평균) 모드 및 평면성 모드(planar mode)와 같은 비방향성(non-directional) 모드, 또는, 예를 들어, H.265에 정의된 바와 같은 방향성 모드를 포함할 수 있거나, 67개의 상이한 인트라 예측 모드, 예를 들어, DC(또는 평균) 모드 및 평면성 모드와 같은 비방향성 모드, 또는 개발 중인 H.266에 정의된 바와 같은 방향성 모드를 포함할 수 있다.
가능한 구현에서, 인터 예측 모드의 세트는 이용가능한 참조 픽처(즉, 예를 들어, 위에서 기술된 바와 같이, DPB(230)에 저장된 적어도 몇몇 디코딩된 픽처) 및 다른 인터 예측 파라미터에 달려 있는데, 예를 들어, 전체 참조 픽처가 또는 오직 참조 픽처의 일부가, 예를 들어, 현재의 블록의 영역 주위의 탐색 윈도우 구역(search window region)이 최적의 매칭된(matched) 참조 블록에 대해 탐색하기 위해 사용되는지에 달려 있고/거나, 예를 들어, 절반 픽셀(half-pixel) 및/또는 4분의1 픽셀(quarter-pixel) 보간(interpolation)과 같은 픽셀 보간이 적용되는지에 달려 있다. 인터 예측 모드의 세트는, 예를 들어, 고급 움직임 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드 및 병합(merge) 모드를 포함할 수 있다. 구체적인 구현에서, 인터 예측 모드의 세트는 본 발명의 실시예에서의 정제된 제어점 기반의(refined control point-based) AMVP 모드 및 정제된 제어점 기반의 병합 모드를 포함할 수 있다. 예에서, 인트라 예측 유닛(254)은 아래에 기술된 인터 예측 기법의 임의의 조합을 수행하도록 구성될 수 있다.
전술한 예측 모드에 더하여, 스킵 모드 및/또는 직접 모드가 또한 본 발명의 실시예에서 적용될 수 있다.
예측 처리 유닛(260)은 또한 픽처 블록(203)을 더 작은 블록 파티션 또는 서브블록으로, 예를 들어, 쿼드 트리(quad-tree, QT) 파티셔닝, 이진 트리(binary-tree, BT) 파티셔닝, 트리플 트리(triple-tree, TT) 파티셔닝, 또는 이의 임의의 조합을 반복적으로 사용함으로써, 파티셔닝하고, 예를 들어, 블록 파티션 또는 서브블록 각각에 대해 예측을 수행하도록 구성될 수 있다. 모드 선택은 파티셔닝된 픽처 블록(203)의 트리 구조의 선택 및 블록 파티션 또는 서브블록 각각에 적용되는 예측 모드의 선택을 포함한다.
인터 예측 유닛(244)은 움직임 추정(motion estimation, ME) 유닛(도 2에 묘사되지 않음) 및 움직임 보상(motion compensation: MC) 유닛(도 2에 묘사되지 않음)을 포함할 수 있다. 움직임 추정 유닛은 픽처 블록(203)(현재의 픽처(201)의 현재의 픽처 블록(203)) 및 디코딩된 픽처(231), 또는 적어도 하나 이상의 이전에 재구성된 블록, 예를 들어, 하나 이상의 다른/상이한 이전에 디코딩된 픽처(231)의 하나 이상의 재구성된 블록을, 움직임 추정을 위해, 수신하거나 획득하도록 구성된다. 예를 들어, 비디오 시퀀스는 현재의 픽처 및 이전에 디코딩된 픽처(31)를 포함할 수 있다. 다시 말해, 현재의 픽처 및 이전에 디코딩된 픽처(31)는 비디오 시퀀스를 형성하는 픽처의 시퀀스의 일부이거나 픽처의 시퀀스를 형성할 수 있다.
예를 들어, 인코더(20)는 복수의 다른 픽처 중의 동일한 픽처 또는 상이한 픽처의 복수의 참조 블록으로부터 참조 블록을 선택하고, 움직임 추정 유닛(도 2에 묘사되지 않음)을 위해, 참조 픽처를 제공하고/거나 참조 블록의 위치(좌표 X 및 Y) 및 현재의 블록의 위치 간의 오프셋(공간적 오프셋)을 인터 예측 파라미터로서 제공하도록 구성될 수 있다. 이 오프셋은 또한 움직임 벡터(motion vector, MV)로서 지칭된다.
움직임 보상 유닛은 인터 예측 파라미터를 획득하도록, 그리고 인터 예측 블록(245)을 획득하기 위해, 인터 예측 파라미터에 기반하여 또는 이를 사용함으로써 인터 예측을 수행하도록 구성된다. 움직임 보상 유닛(도 2에 묘사되지 않음)에 의해 수행되는 움직임 보상은 움직임 추정을 통해서 판정된 움직임/블록 벡터에 기반하여 예측 블록을 추출하거나 생성하는 것을 포함할 수 있다(서브샘플(sub-sample) 정밀도 레벨에서 보간이 수행될 수 있음). 보간 필터링은 알려진 픽셀 샘플로부터 추가적인 픽셀 샘플을 생성할 수 있는바, 이로써 픽처 블록을 코딩하는 데에 사용될 수 있는 후보 예측 블록의 수효를 잠재적으로 증가시킨다. 현재의 픽처 블록의 PU를 위한 움직임 벡터를 수신하는 때에, 움직임 보상 유닛(246)은 움직임 벡터가 참조 픽처 리스트 중 하나에서 가리키는 예측 블록의 위치를 파악할 수 있다. 움직임 보상 유닛(246)은 비디오 슬라이스의 픽처 블록을 디코딩하는 데에서의 디코더(30)에 의한 사용을 위해, 블록 및 비디오 슬라이스와 연관된 구문 요소를 또한 생성할 수 있다.
구체적으로, 인터 예측 유닛(244)은 구문 요소를 엔트로피 인코딩 유닛(270)에 송신할 수 있는데, 구문 요소는 인터 예측 파라미터(예를 들어, 복수의 인터 예측 모드가 순회된 후에 현재의 블록의 예측을 위해 선택된 인터 예측 모드의 지시 정보)를 포함한다. 가능한 적용 시나리오에서, 만일 오직 하나의 인터 예측 모드가 있는 경우, 인터 예측 파라미터는 대안적으로 구문 요소 내에 실리지 않을 수 있다. 이 경우에, 디코더 측(30)은 직접적으로 디폴트(default) 예측 모드에서 디코딩을 수행할 수 있다. 인터 예측 유닛(244)은 인터 예측 기법의 임의의 조합을 수행하도록 구성될 수 있음이 이해될 수 있다.
인트라 예측 유닛(254)은 인트라 추정을 위해 동일한 픽처의 픽처 블록(203)(현재의 픽처 블록) 및 하나 이상의 이전에 재구성된 블록, 예를 들어, 재구성된 이웃 블록을 획득하도록, 예를 들어, 수신하도록, 구성된다. 인코더(20)는, 예를 들어, 복수의 (사전결정된) 인트라 예측 모드로부터 인트라 예측 모드를 선택하도록 구성될 수 있다.
실시예에서, 인코더(20)는 인트라 예측 모드를 최적화 기준에 따라, 예를 들어, 최소의 잔차(예를 들어, 현재의 픽처 블록(203)에 가장 유사한 예측 블록(255)을 제공하는 인트라 예측 모드) 또는 최소의 레이트 왜곡에 기반하여, 선택하도록 구성될 수 있다.
인트라 예측 유닛(254)은, 예를 들어, 선택된 인트라 예측 모드의 인트라 예측 파라미터에 기반하여, 인트라 예측 블록(255)을 판정하도록 또한 구성된다. 어느 경우에서든, 블록을 위한 인트라 예측 모드를 선택한 후에, 인트라 예측 유닛(254)은 엔트로피 인코딩 유닛(270)을 위해, 인트라 예측 파라미터, 즉 블록을 위한 선택된 인트라 예측 모드를 지시하는 정보를 제공하도록 또한 구성된다. 예에서, 인트라 예측 유닛(254)은 인트라 예측 기법의 임의의 조합을 수행하도록 구성될 수 있다.
구체적으로, 인트라 예측 유닛(254)은 구문 요소를 엔트로피 인코딩 유닛(270)에 송신할 수 있는데, 구문 요소는 인트라 예측 파라미터(예를 들어, 복수의 인트라 예측 모드가 순회된 후에 현재의 블록의 예측을 위해 선택된 인트라 예측 모드의 지시 정보)를 포함한다. 가능한 적용 시나리오에서, 만일 오직 하나의 인트라 예측 모드가 있는 경우, 인트라 예측 파라미터는 대안적으로 구문 요소 내에 실리지 않을 수 있다. 이 경우에, 디코더 측(30)은 직접적으로 디폴트 예측 모드에서 디코딩을 수행할 수 있다.
엔트로피 인코딩 유닛(270)은, 예를 들어, 인코딩된 비트스트림(21)의 형태로, 출력부(272)를 통해서 출력될 수 있는 인코딩된 픽처 데이터(21)를 획득하기 위해, 다음 중 하나 또는 전부에 대해 엔트로피 인코딩 알고리즘 또는 방안(예를 들어, 가변 길이 코딩(variable length coding, VLC) 방안, 콘텍스트 적응적 VLC(context adaptive VLC, CAVLC) 방안, 산술 코딩(arithmetic coding) 방안, 콘텍스트 적응적 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC), 구문 기반 콘텍스트 적응적 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC), 확률 간격 파티셔닝 엔트로피(probability interval partitioning entropy, PIPE) 코딩, 또는 다른 엔트로피 코딩 방법론 또는 기법)을 적용(하거나 바이패스(bypass))하도록 구성된다: 양자화 계수(209), 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 루프 필터 파라미터. 인코딩된 비트스트림은 비디오 디코더(30)에 송신되거나, 비디오 디코더(30)에 의한 나중의 송신 또는 인출을 위해 보관될 수 있다. 엔트로피 인코딩 유닛(270)은 또한 인코딩되고 있는 현재의 비디오 슬라이스를 위해 다른 구문 요소를 엔트로피 인코딩하도록 구성될 수 있다.
비디오 스트림을 인코딩하도록 비디오 인코더(20)의 다른 구조적 변형이 구성될 수 있다. 예를 들어, 비변환(non-transform) 기반 인코더(20)는 몇몇 블록 또는 프레임을 위해 변환 처리 유닛(206) 없이 직접적으로 잔차 신호를 양자화할 수 있다. 다른 구현에서, 인코더(20)는 단일 유닛으로 조합될 수 있는 양자화 유닛(208) 및 역양자화 유닛(210)을 포함한다.
구체적으로, 본 발명의 이 실시예에서, 인코더(20)는 다음의 실시예에서 기술된 방법을 구현하도록 구성될 수 있다.
비디오 스트림을 인코딩하도록 비디오 인코더(20)의 다른 구조적 변형이 구성될 수 있음이 응당 이해된다. 예를 들어, 몇몇 픽처 블록 또는 픽처 프레임에 대하여, 비디오 인코더(20)는 직접적으로 변환 처리 유닛(206)에 의한 처리 없이, 그리고 상응하여, 역변환 처리 유닛(212)에 의한 처리 없이, 잔차 신호를 양자화할 수 있다. 대안적으로, 몇몇 픽처 블록 또는 픽처 프레임에 대하여, 비디오 인코더(20)는 잔차 데이터를 생성하지 않고, 상응하여, 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210) 및 역변환 처리 유닛(212)이 처리를 수행할 필요가 없다. 대안적으로, 비디오 인코더(20)는 필터(220)에 의한 처리 없이, 재구성된 픽처 블록을 참조 블록으로서 직접적으로 저장할 수 있다. 대안적으로, 비디오 인코더(20) 내의 양자화 유닛(208) 및 역양자화 유닛(210)은 함께 조합될 수 있다. 루프 필터(220)는 선택적이다. 무손실 압축 인코딩의 경우에, 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210) 및 역변환 처리 유닛(212)은 선택적이다. 상이한 적용 시나리오에서, 인터 예측 유닛(244) 및 인트라 예측 유닛(254)은 선택적으로 사용될 수 있음이 응당 이해된다.
도 3은 본 발명의 실시예를 구현하도록 구성된 예시적인 디코더(30)의 개략적인/개념적인 블록도이다. 비디오 디코더(30)는 디코딩된 픽처(231)를 획득하기 위해, 예를 들어, 인코더(20)에 의해 인코딩된, 인코딩된 픽처 데이터(예를 들어, 인코딩된 비트스트림)(21)를 수신하도록 구성된다. 디코딩 프로세스에서, 비디오 디코더(30)는 비디오 인코더(20)로부터 비디오 데이터, 예를 들어, 인코딩된 비디오 슬라이스의 픽처 블록을 나타내는 인코딩된 비디오 비트스트림 및 연관된 구문 요소를 수신한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역양자화 유닛(310), 역변환 처리 유닛(312), 재구성 유닛(314)(예를 들어, 합산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 픽처 버퍼(330) 및 예측 처리 유닛(360)을 포함한다. 예측 처리 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354) 및 모드 선택 유닛(362)을 포함할 수 있다. 몇몇 예에서, 비디오 디코더(30)는 도 2에서의 비디오 인코더(20)를 참조하여 기술된 인코딩 패스(encoding pass)에 일반적으로 상반된(reciprocal) 디코딩 패스(decoding pass)를 수행할 수 있다.
엔트로피 디코딩 유닛(304)은, 예를 들어, 양자화 계수(309) 및/또는 디코딩된 인코딩 파라미터(도 3에 묘사되지 않음), 예를 들어, 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터 및/또는 다른 구문 요소(디코딩된 것임)를 획득하기 위해, 인코딩된 픽처 데이터(21)에 대해 엔트로피 디코딩을 수행하도록 구성된다. 엔트로피 디코딩 유닛(304)은 또한 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 다른 구문 요소를 예측 처리 유닛(360)에 전달하도록 구성된다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 구문 요소를 수신할 수 있다.
역양자화 유닛(310)은 역양자화 유닛(110)과 동일한 기능을 가질 수 있다. 역변환 처리 유닛(312)은 역변환 처리 유닛(212)과 동일한 기능을 가질 수 있다. 재구성 유닛(314)은 재구성 유닛(214)과 동일한 기능을 가질 수 있다. 버퍼(316)는 버퍼(216)와 동일한 기능을 가질 수 있다. 루프 필터(320)는 루프 필터(220)와 동일한 기능을 가질 수 있다. 디코딩된 픽처 버퍼(330)는 디코딩된 픽처 버퍼(230)와 동일한 기능을 가질 수 있다.
예측 처리 유닛(360)은 인터 예측 유닛(344) 및 인트라 예측 유닛(354)을 포함할 수 있다. 인터 예측 유닛(344)은 기능에 있어서 인터 예측 유닛(244)과 비슷할 수 있고, 인트라 예측 유닛(354)은 기능에 있어서 인트라 예측 유닛(254)과 비슷할 수 있다. 예측 처리 유닛(360)은 통상적으로 블록 예측을 수행하고/거나 인코딩된 데이터(21)로부터 예측 블록(365)을 획득하고, 예를 들어, 엔트로피 디코딩 유닛(304)으로부터, 예측 관련 파라미터 및/또는 선택된 예측 모드에 대한 정보를 (명시적으로 또는 묵시적으로) 수신하거나 획득하도록 구성된다.
비디오 슬라이스가 인트라 코딩된 (I) 슬라이스로서 코딩된 경우에, 예측 처리 유닛(360)의 인트라 예측 유닛(354)은 현재의 프레임 또는 픽처의 이전에 디코딩된 블록으로부터의 데이터 및 시그널링된 인트라 예측 모드에 기반하여 현재의 비디오 슬라이스의 픽처 블록을 위한 예측 블록(365)을 생성하도록 구성된다. 비디오 프레임이 인터 코딩된 (B 또는 P) 슬라이스로서 코딩된 경우에, 예측 처리 유닛(360)의 인터 예측 유닛(344)(예를 들어, 움직임 보상 유닛)은 움직임 벡터 및 엔트로피 디코딩 유닛(304)으로부터 수신된 다른 구문 요소에 기반하여 현재의 비디오 슬라이스의 비디오 블록을 위한 예측 블록(365)을 생성하도록 구성된다. 인터 예측에 대하여, 예측 블록은 하나의 참조 픽처 리스트 내의 참조 픽처 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 DPB(330) 내에 저장된 참조 픽처에 기반하여 디폴트 구축 기법을 사용함으로써, 참조 프레임 리스트인 리스트 0 및 리스트 1을 구축할 수 있다.
예측 처리 유닛(360)은 움직임 벡터 및 다른 구문 요소를 파싱함으로써 현재의 비디오 슬라이스의 비디오 블록을 위한 예측 정보를 판정하고, 디코딩되고 있는 현재의 비디오 블록을 위하여 예측 블록을 생성하는 데에 예측 정보를 사용하도록 구성된다. 본 발명의 예에서, 예측 처리 유닛(360)은, 몇몇 수신된 구문 요소를 사용함으로써, 비디오 슬라이스 내의 비디오 블록을 인코딩하기 위한 예측 모드(예를 들어, 인트라 예측 또는 인터 예측), 인터 예측 슬라이스 타입(예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스를 위한 참조 픽처 리스트 중 하나 이상의 구축 정보, 슬라이스를 위한 각각의 인터 인코딩된 비디오 블록의 움직임 벡터, 슬라이스 내의 각각의 인터 인코딩된 비디오 블록의 인터 예측 상태 및 다른 정보를 판정하여, 현재의 비디오 슬라이스 내의 비디오 블록을 디코딩한다. 이 개시의 다른 예에서, 비트스트림으로부터 비디오 디코더(30)에 의해 수신된 구문 요소는 적응적 파라미터 세트(adaptive parameter set, APS), 시퀀스 파라미터 세트(sequence parameter set, SPS), 픽처 파라미터 세트(picture parameter set, PPS), 또는 슬라이스 헤더(slice header) 중 하나 이상 내의 구문 요소를 포함한다.
역양자화 유닛(310)은 비트스트림 내에 제공되고 엔트로피 디코딩 유닛(304)에 의해 디코딩된 양자화된 변환 계수를 역양자화(즉, 양자화해제)하도록 구성될 수 있다. 역양자화 프로세스는 적용되어야 하는 양자화 정도, 그리고 마찬가지로, 적용되어야 하는 역양자화 정도를 결정하기 위해, 비디오 슬라이스 내의 각각의 비디오 블록에 대해 비디오 인코더(20)에 의해 계산된 양자화 파라미터를 사용하는 것을 포함할 수 있다.
역변환 처리 유닛(312)은 픽셀 도메인에서 잔차 블록을 생성하기 위해 변환 계수에 역변환(예를 들어, 역 DCT, 역 정수 변환(inverse integer transform), 또는 개념적으로 유사한 역변환 프로세스)을 적용하도록 구성된다.
재구성 유닛(314)(예를 들어, 합산기(314))은, 예를 들어, 재구성된 잔차 블록(313)의 샘플 값 및 예측 블록(365)의 샘플 값을 가산함으로써, 샘플 도메인에서 재구성된 블록(315)을 획득하기 위해 예측 블록(365)에 역변환 블록(313)(즉, 재구성된 잔차 블록(313))을 가산하도록 구성된다.
루프 필터 유닛(320)(코딩 루프 동안에 또는 코딩 루프 후에)은 픽셀 전이를 평활화하거나 비디오 품질을 개선하기 위해, 필터링된 블록(321)을 획득하기 위해 재구성된 블록(315)을 필터링하도록 구성된다. 예에서, 루프 필터 유닛(260)은 아래에 기술된 필터링 기법의 임의의 조합을 수행하도록 구성될 수 있다. 루프 필터 유닛(320)은 하나 이상의 루프 필터, 예를 들면 블록화해제 필터, 샘플 적응적 오프셋(sample-adaptive offset, SAO) 필터, 또는 다른 필터, 예를 들면 양방향 필터, 적응적 루프 필터(adaptive loop filter, ALF), 첨예화 또는 평활화 필터, 또는 협력 필터를 나타내도록 의도된다. 비록 루프 필터 유닛(320)이 루프내 필터(in-loop filter)로서 도 3에 도시되나, 다른 구성에서, 루프 필터 유닛(320)은 포스트 루프 필터로서 구현될 수 있다.
주어진 프레임 또는 픽처 내의 디코딩된 비디오 블록은 이후에 후속 움직임 보상을 위해 사용되는 참조 픽처를 저장하는 디코딩된 픽처 버퍼(330) 내에 저장된다.
디코더(30)는 사용자에게의 제시 또는 사용자에 의한 열람을 위해, 예를 들어, 디코딩된 픽처(31)를 출력부(332)를 통해서 출력하도록 구성된다.
압축된 비트스트림을 디코딩하도록 비디오 디코더(30)의 다른 변형이 구성될 수 있다. 예를 들어, 디코더(30)는 루프 필터 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비변환 기반 디코더(30)는 몇몇 블록 또는 프레임을 위해 역변환 처리 유닛(312) 없이 직접적으로 잔차 신호를 역양자화할 수 있다. 다른 구현에서, 비디오 디코더(30)는 단일 유닛으로 조합될 수 있는 역양자화 유닛(310) 및 역변환 유닛(312)을 포함한다.
구체적으로, 본 발명의 이 실시예에서, 디코더(30)는 다음의 실시예에서 기술된 방법을 구현하도록 구성된다.
인코딩된 비디오 스트림을 디코딩하도록 비디오 디코더(30)의 다른 구조적 변형이 구성될 수 있음이 응당 이해된다. 예를 들어, 디코더(30)는 필터(320)에 의해 수행되는 처리 없이 출력 비디오 스트림을 생성할 수 있다. 대안적으로, 몇몇 픽처 블록 또는 픽처 프레임에 대하여, 비디오 디코더(30)의 엔트로피 디코딩 유닛(304)은 디코딩을 통해서 양자화 계수를 획득하지 않고, 상응하여, 역양자화 유닛(310) 및 역변환 처리 유닛(312)이 처리를 수행할 필요가 없다. 루프 필터(320)는 선택적이다. 무손실 압축의 경우에, 역양자화 유닛(310) 및 역변환 처리 유닛(312)은 선택적이다. 상이한 적용 시나리오에서, 인터 예측 유닛 및 인트라 예측 유닛은 선택적으로 사용될 수 있음이 응당 이해된다.
이 출원에서 인코더(20) 및 디코더(30) 측에서, 절차를 위한 처리 결과는 추가로 처리된 후에 다음 절차로 출력될 수 있음이 응당 이해된다. 예를 들어, 보간 필터링, 움직임 벡터 도출, 또는 루프 필터링과 같은 절차 후에, 대응하는 절차의 처리 결과에 대해 클립(clip) 또는 쉬프트(shift)와 같은 동작이 추가로 수행된다.
예를 들어, 현재의 픽처 블록의 제어점(control point)의 움직임 벡터 또는 이웃하는 아핀 코딩된(affine coded) 블록의 움직임 벡터로부터 도출된 현재의 픽처 블록의 서브블록의 움직임 벡터가 추가로 처리될 수 있다. 이것은 이 출원에서 한정되지 않는다. 예를 들어, 움직임 벡터의 값은 특정한 비트 폭 범위 내에 있도록 제한된다. 움직임 벡터의 허용된 비트 폭이 bitDepth라고 가정하면, 움직임 벡터의 값은 -2^(bitDepth - 1) 부터 2^(bitDepth - 1) - 1 까지 걸쳐 있는데, 심볼 "^"은 거듭제곱(exponentiation)을 나타낸다. 만일 bitDepth가 16인 경우, 값 범위는 -32768 부터 32767 까지이다. 만일 bitDepth가 18인 경우, 값 범위는 -131072 부터 131071 까지이다. 다른 예를 들면, 움직임 벡터(예를 들어, 8 x 8 픽처 블록 내의 4개의 4 x 4 서브블록의 움직임 벡터 MV)의 값은, 4개의 4 x 4 서브블록의 Mv의 정수 부분 간의 최대 차이가 N개의 픽셀을 초과하지 않도록, 예를 들어, 1개의 픽셀을 초과하지 않도록, 제한된다.
다음의 두 방식은 움직임 벡터를 특정 비트 폭 내에 있도록 제한하는 데에 사용될 수 있다:
방식 1: 움직임 벡터의 오버플로우(overflow) 최상위 비트(most significant bit)가 제거된다:
Figure pct00001
vx는 픽처 블록 또는 픽처 블록의 서브블록의 움직임 벡터의 수평 컴포넌트를 나타내고, vy는 픽처 블록 또는 픽처 블록의 서브블록의 움직임 벡터의 수직 컴포넌트를 나타내고, ux 및 uy는 중간 값이고, bitDepth는 비트 깊이를 나타낸다.
예를 들어, vx의 값은 -32769이고, 전술한 공식에 따라 32767이 도출된다. 2의 보수(complement) 표현으로 컴퓨터에 값이 저장되고, -32769의 2의 보수 표현은 1,0111,1111,1111,1111 (17비트)이고, 오버플로우에 대해 컴퓨터에 의해 수행되는 처리는 최상위 비트를 폐기하는 것이다. 따라서, vx의 값은 0111,1111,1111,1111, 즉 32767이다. 이 값은 공식에 따른 처리를 통해서 도출된 결과와 일치한다.
방식 2: 다음의 공식에서 보여지는 바와 같이, 움직임 벡터에 대해 클리핑(clipping)이 수행된다:
Figure pct00002
vx는 픽처 블록 또는 픽처 블록의 서브블록의 움직임 벡터의 수평 컴포넌트를 나타낸다. vy는 픽처 블록 또는 픽처 블록의 서브블록의 움직임 벡터의 수직 컴포넌트를 나타낸다. x, y 및 z는 MV 클램핑(clamping) 프로세스 clip3의 3개의 입력 값에 대응한다. Clip3은 z의 값을 범위 [x, y]에 클리핑하는 것을 지시하도록 정의된다.
Figure pct00003
도 4는 본 발명의 실시예에 따른 비디오 코딩 디바이스(400)(예를 들어, 비디오 인코딩 디바이스(400) 또는 비디오 디코딩 디바이스(400))의 개략적인 구조도이다. 비디오 코딩 디바이스(400)는 이 명세서에 기술된 실시예를 구현하기에 적합하다. 실시예에서, 비디오 코딩 디바이스(400)는 비디오 디코더(예를 들어, 도 1a에서의 디코더(30)) 또는 비디오 인코더(예를 들어, 도 1a에서의 인코더(20))일 수 있다. 다른 실시예에서, 비디오 코딩 디바이스(400)는 도 1a에서의 디코더(30) 또는 도 1a에서의 인코더(20)의 하나 이상의 컴포넌트일 수 있다.
비디오 코딩 디바이스(400)는 다음을 포함한다: 유입 포트(ingress port)(410) 및 수신기 유닛(receiver unit)(Rx)(420)(이들은 데이터를 수신하도록 구성됨); 데이터를 처리하도록 구성된 프로세서(processor), 로직 유닛(logic unit), 또는 중앙 처리 유닛(central processing unit)(CPU)(430); 송신기 유닛(transmitter unit)(Tx)(440) 및 유출 포트(egress port)(450)(이들은 데이터를 송신하도록 구성됨); 및 데이터를 저장하도록 구성된 메모리(460). 비디오 코딩 디바이스(400)는 광학 또는 전기 신호의 유출 또는 유입을 위해, 유입 포트(410), 수신기 유닛(420), 송신기 유닛(440) 및 유출 포트(450)에 커플링된 광학 대 전기(optical-to-electrical) 컴포넌트 및 전기 대 광학(electrical-to-optical)(EO) 컴포넌트를 더 포함할 수 있다.
프로세서(430)는 하드웨어 및 소프트웨어를 사용함으로써 구현된다. 프로세서(430)는 하나 이상의 CPU 칩, 코어(예를 들어, 다중 코어 프로세서(multi-core processor)), FPGA, ASIC 및 DSP로서 구현될 수 있다. 프로세서(430)는 유입 포트(410), 수신기 유닛(420), 송신기 유닛(440), 유출 포트(450) 및 메모리(460)와 통신한다. 프로세서(430)는 코딩 모듈(470)(예를 들어, 인코딩 모듈(470) 또는 디코딩 모듈(470))을 포함한다. 인코딩/디코딩 모듈(470)은, 본 발명의 실시예에서 제공된 크로마 블록 예측 방법을 구현하기 위해, 이 명세서에 개시된 실시예를 구현한다. 예를 들어, 인코딩/디코딩 모듈(470)은 다양한 코딩 동작을 구현하거나, 처리하거나, 제공한다. 따라서, 인코딩/디코딩 모듈(470)은 비디오 코딩 디바이스(400)의 기능에 실질적인 개선을 제공하고 상이한 상태로의 비디오 코딩 디바이스(400)의 변환에 영향을 미친다. 대안적으로, 인코딩/디코딩 모듈(470)은 메모리(460) 내에 저장되고 프로세서(430)에 의해 실행되는 명령어로서 구현된다.
메모리(460)는 하나 이상의 디스크, 테이프 드라이브 및 솔리드 스테이트 드라이브(solid-state drive)를 포함하며, 프로그램을 그러한 프로그램이 선택적으로 실행되는 경우에 저장하기 위해, 그리고 프로그램 실행 동안에 판독되는 명령어 및 데이터를 저장하기 위해, 오버플로우 데이터 저장 디바이스로서 사용될 수 있다. 메모리(460)는 휘발성 및/또는 비휘발성일 수 있고, 판독전용 메모리(read-only memory)(ROM), 랜덤 액세스 메모리(random access memory)(RAM), 3원 콘텐트 주소지정가능 메모리(ternary content-addressable memory, TCAM) 및/또는 정적 랜덤 액세스 메모리(static random access memory)(SRAM)일 수 있다.
도 5는 예시적인 실시예에 따라 도 1a에서의 소스 디바이스(12) 및 목적지 디바이스(14) 중 어느 한쪽으로서든 또는 양자 모두로서 사용될 수 있는 장치(500)의 단순화된 블록도이다. 장치(500)는 이 출원의 기술을 구현할 수 있다. 다시 말해, 도 5는 이 출원의 실시예에 따른 인코딩 디바이스 또는 디코딩 디바이스(약칭으로 코딩 디바이스(500))의 구현의 개략적인 블록도이다. 코딩 디바이스(500)는 프로세서(510), 메모리(530) 및 버스 시스템(550)를 포함할 수 있다. 프로세서 및 메모리는 버스 시스템을 통해서 연결된다. 메모리는 명령어를 저장하도록 구성된다. 프로세서는 메모리 내에 저장된 명령어를 실행하도록 구성된다. 코딩 디바이스의 메모리는 프로그램 코드를 저장한다. 프로세서는 이 출원에 기술된 다양한 비디오 인코딩 또는 디코딩 방법, 그리고 특히, 다양한 새로운 방법을 수행하기 위해, 메모리 내에 저장된 프로그램 코드를 호출할 수 있다. 반복을 피하기 위해, 세부사항은 여기에서 다시 기술되지 않는다.
이 출원의 이 실시예에서, 프로세서(510)는 중앙 처리 유닛(Central Processing Unit, 약칭으로 "CPU")일 수 있거나, 프로세서(510)는 다른 일반 목적 프로세서, 디지털 신호 프로세서((DSP), 애플리케이션 특정 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA) 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 디바이스, 이산 하드웨어 컴포넌트, 또는 유사한 것일 수 있다. 일반 목적 프로세서는 마이크로프로세서일 수 있거나, 프로세서는 임의의 종래의 프로세서 또는 유사한 것일 수 있다.
메모리(530)는 판독 전용 메모리(ROM) 디바이스 또는 랜덤 액세스 메모리(RAM) 디바이스일 수 있다. 임의의 다른 적합한 타입의 저장 디바이스가 대안적으로 메모리(530)로서 사용될 수 있다. 메모리(530)는 버스 시스템(550)을 사용함으로써 프로세서(510)에 의해 액세스되는 코드 및 데이터(531)를 포함할 수 있다. 메모리(530)는 운영 시스템(533) 및 애플리케이션 프로그램(535)을 더 포함할 수 있다. 애플리케이션 프로그램(535)은 프로세서(510)로 하여금 이 출원에 기술된 비디오 인코딩 또는 디코딩 방법(특히, 이 출원에 기술된 방법)을 수행할 수 있도록 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(535)은 애플리케이션 1 내지 N을 포함할 수 있고, 이 출원에 기술된 비디오 인코딩 또는 디코딩 방법을 수행하는 비디오 인코딩 또는 디코딩 애플리케이션(약칭으로 비디오 코딩 애플리케이션)을 더 포함한다.
버스 시스템(550)은 데이터 버스(data bus)를 포함할 뿐만 아니라, 전력 버스(power bus), 제어 버스(control bus), 상태 신호 버스(status signal bus) 및 유사한 것을 포함할 수 있다. 그러나, 명확한 설명을 위해, 도면에서 다양한 타입의 버스는 버스 시스템(550)으로서 마킹된다(marked).
선택적으로, 코딩 디바이스(500)는 하나 이상의 출력 디바이스, 예를 들어, 디스플레이(570)를 더 포함할 수 있다. 예에서, 디스플레이(570)는 디스플레이 및 터치 감응 유닛(touch sensitive unit)(이는 터치 입력을 감지하도록(sense) 동작가능함)을 조합하는 터치 감응 디스플레이일 수 있다. 디스플레이(570)는 버스 시스템(550)을 통해서 프로세서(510)에 연결될 수 있다.
다음은 이 출원의 실시예에서의 해결안을 상세히 기술한다.
예를 들어, AVS3에서, 하드웨어 처리를 수월하게 하고 인코딩 성능을 개선하기 위해, 규정된 제약 하에서 인코더 측에서 오직 지정된 분할 모드 또는 오직 지정된 예측 모드가 사용될 수 있도록, 변환 모듈, 인터 예측 모듈 및 유사한 것에 제약이 설정된다. 예를 들어, 인코더 측에 설정된 제약은 다음과 같다:
(a) 쌍방향 인터 예측을 위한 작은 블록에 대한 제약: 현재의 블록의 면적이 64보다 작은 경우에, 쌍방향 예측이 사용되지 않는다.
(b) 변환을 위한 큰 블록에 대한 제약: 최대의 예측 유닛(변환 유닛(transform unit, TU))은 maxTU로 설정되고, maxTU는 고정된 값, 예를 들어, 128, 64, 또는 32인데, maxTU의 디폴트 값은 64이다.
만일 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 현재의 폭 및 현재의 높이 양자 모두가 S인 경우, 현재의 노드를 위해 분할 모드 QT가 강제적으로 사용되는데, S는 양의 정수, 예를 들어, 128 또는 256이다. 이 경우에, qt_split_flag의 값은 1임이 판정된다.
(c) 하드웨어 가상 로직 처리 유닛에 대한 제약: 만일 현재의 분할될 노드에 대응하는 블록의 크기가 128 x 64인 경우, 오직 수직 이진 트리(vertical binary tree)(VBT) 분할이 사용될 수 있다. 이 경우에, split_dir의 값은 1임이 판정된다. 만일 현재의 분할될 노드에 대응하는 블록의 크기가 64 x 128인 경우, 오직 수평 이진 트리(horizontal binary tree)(HBT) 분할이 사용될 수 있다. 이 경우에, split_dir의 값은 0임이 판정된다.
본 발명의 실시예에서, 현재의 블록의 플래그의 콘텍스트 모델이 크기 기반 제약에 기반하여 판정될 수 있고, 판정 방법은 AVS3 또는 HEVC와 같은 비디오 코딩 표준에 적용될 수 있다. 크기는 현재의 블록의 폭 및/또는 현재의 블록의 높이 및/또는 현재의 블록의 면적일 수 있다. 현재의 블록은 루마 블록 또는 크로마 블록일 수 있다. 본 발명의 실시예에서 제공되는 방법은 도 6에 도시될 수 있고, 다음의 단계를 포함한다.
단계(601): 현재의 블록의 크기 정보를 획득한다.
상이한 플래그는 상이한 크기 기반 제약에 대응할 수 있고, 상이한 크기 정보는 상이한 제약 하에서 사용될 수 있음이 이해될 수 있다. 따라서, 상이한 플래그에 기반하여, 상이한 크기 정보가 획득될 필요가 있다. 따라서, 획득된 크기 정보는 현재의 블록의 폭 및/또는 현재의 블록의 높이 및/또는 현재의 블록의 면적일 수 있다(면적은 구체적으로 현재의 블록의 폭 및 높이에 기반하여 획득될 수 있음).
현재의 블록의 폭은 W로서 표기되고, 현재의 블록의 높이는 H로서 표기되고, 현재의 블록의 면적은 sizeC로서 표기되고, sizeC = W x H이다. 즉, 현재의 블록의 면적은 현재의 블록의 폭 및 현재의 블록의 높이의 곱이다.
단계(602): 현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정한다.
구체적으로, 상이한 플래그에 기반하여, 다음과 같이 기술되는 상이한 구체적인 판정 방법이 있다:
(1) 플래그 skip_flag
인코더 측이 처리를 수행하는 경우에, 만일 현재의 블록의 면적 sizeC가 임계 th1보다 작으면, 현재의 블록을 위해 쌍방향 예측이 사용되지 않는다. 스킵(skip) 모드에서, 움직임 정보 후보 리스트가 구축될 필요가 있고, 후보 정보는 위치가 현재의 블록에 이웃하고 있는 블록에 기반하여 획득된다. 그러나, 이웃 블록에는 쌍방향 예측이 사용되는 블록이 있을 수 있다. 따라서, 인코딩 효율을 개선하기 위해, 만일 현재의 블록의 면적 sizeC가 임계 th1보다 작으면, 스킵 모드가 사용되지 않는데, 즉 skip_flag의 값은 0이도록 제약된다. 현재의 블록의 면적 sizeC가 임계 th1보다 작은 경우에, 현재의 블록을 위해 쌍방향 예측이 사용되지 않고, 따라서 인코더 측에서 inter_dir의 값은 2가 아니도록 제약된다. 임계 th1은 32보다 크거나 같은 정수, 예를 들어, 32, 64, 128, 또는 256이다. 다른 구현에서, 임계 th1의 값은 64이다.
따라서, 구현에서, 만일 현재의 블록의 면적 sizeC가 임계 th1보다 작은 경우, 플래그 skip_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 3이다. 구현에서, 만일 현재의 블록의 면적 sizeC가 64 보다 작은 경우, 플래그 skip_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 3이다.
skip_flag는 스킵 모드가 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고, 1과 같은 skip_flag는 스킵 모드가 현재의 블록을 위해 사용됨을 지정하고, 0과 같은 skip_flag는 스킵 모드가 현재의 블록을 위해 사용되지 않음을 지정한다. 구현에서, skip_flag는 cu_skip_flag에 의해 나타내어질 수 있다.
(2) 플래그 inter_dir
플래그 inter_dir의 판정은 플래그 skip_flag의 판정과 유사하다. 구현에서, 만일 현재의 블록의 면적 sizeC가 임계 th1보다 작은 경우, 플래그 inter_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 2이다. 구현에서, 만일 현재의 블록의 면적 sizeC가 64보다 작은 경우, 플래그 inter_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 2이다.
inter_dir는 현재의 예측 유닛에 의해 사용되는 예측 참조 모드를 지시한다. InterDir의 값은 inter_dir의 값이다. 만일 비트스트림 내에 어떤 inter_dir도 없으면, InterDir의 값은 0이다. 예를 들어, InterDir의 의미는 다음과 같다: 만일 InterDir의 값이 0인 경우, 예측 참조 모드는 참조를 위해 리스트 0(PRED_List0)이 사용되는 것이고, 예측 유닛의 움직임 벡터의 수효는 1임; 만일 InterDir의 값이 1인 경우, 예측 참조 모드는 참조를 위해 리스트 1(PRED_List1)이 사용되는 것이고, 예측 유닛의 움직임 벡터의 수효는 1임; 만일 InterDir의 값이 2인 경우, 예측 참조 모드는 참조를 위해 쌍 예측(bi-prediction) 리스트(PRED_List01)가 사용되는 것이고, 예측 유닛의 움직임 벡터의 수효는 2임. 구현에서, inter_dir는 대안적으로 inter_pred_ref_mode에 의해 나타내어질 수 있다.
(3) 플래그 direct_flag
현재의 블록의 면적 sizeC가 임계 th1보다 작은 경우에, 현재의 블록을 위해 쌍방향 예측이 사용되지 않고, 최대의 TU의 허용된 측면 길이는 임계 th2이다. 따라서, 만일 현재의 블록의 면적 sizeC가 임계 th1보다 작거나, 폭이 th2보다 크거나, 높이가 th2보다 큰 경우, 그것은 현재의 블록이 TU이도록 허용되지 않음을 지시한다. 만일 현재의 블록을 위해 직접(direct) 모드가 사용되는 경우, 그것은 현재의 블록이 코딩된 후에 잔차가 있음을 지시한다. 인코딩 효율을 개선하기 위해, 인코더 측에서 direct_flag의 값은 0이도록 제한된다. 따라서, 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc는 다음의 방법을 사용함으로써 판정될 수 있다. 임계 th2는 32보다 크거나 같은 정수, 예를 들어, 32, 64, 128, 또는 256이다. 구현에서, 임계 th2의 값은 64이다.
따라서, 구현에서, 만일 현재의 블록의 면적 sizeC가 임계 th1보다 작거나, 폭이 임계 th2보다 크거나, 높이가 임계 th2보다 큰 경우, 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 1이다. 구현에서, 만일 현재의 블록의 면적 sizeC가 64보다 작거나, 폭이 64보다 크거나, 높이가 64보다 큰 경우, 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 1이다.
direct_flag는 직접 모드의 플래그이다. 1과 같은 direct_flag의 값은 직접 모드가 현재의 CU를 위해 사용됨을 지정하고, 0과 같은 direct_flag의 값은 직접 모드가 현재의 CU를 위해 사용되지 않음을 지정한다.
(4) 플래그 pred_mode
현재의 블록을 위해 사용되도록 허용된 최대의 TU의 측면 길이가 th3이므로, 만일 현재의 블록의 폭이 임계 th3보다 크거나, 만일 현재의 블록의 높이가 임계 th3보다 큰 경우, 그것은 인트라 예측 모드가 현재의 블록에 적합하지 않음을 지시하고, 인코더 측에서 플래그 pred_mode의 값은 0이도록 제약된다. 추가로, 만일 현재의 블록의 측면 길이가 th3보다 큰 경우, 현재의 블록은 TU가 되지 않으며, 어떤 변환 트리 유닛도 없다. 따라서, 인코더 측에서 플래그 root_cbf의 값은 0이도록 제약될 수 있다. 임계 th3는 16보다 크거나 같은 정수, 예를 들어, 16, 32, 64, 128, 또는 256이다. 구현에서, 임계 th3의 값은 64이다.
따라서, 구현에서, 만일 현재의 블록의 폭이 임계 th3보다 크거나, 현재의 블록의 높이가 임계 th3보다 큰 경우, pred_mode에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 5이다. 구현에서, 만일 현재의 블록의 폭이 64보다 크거나, 현재의 블록의 높이가 64보다 큰 경우, pred_mode에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 5이다.
pred_mode는 코딩 유닛의 예측 모드 플래그이다. 1과 같은 pred_mode의 값은 인트라 예측 모드가 현재의 예측 유닛을 위해 사용됨을 지정하고, 0과 같은 pred_mode의 값은 정규 인터 예측 모드가 현재의 예측 유닛을 위해 사용됨을 지정한다.
(5) 플래그 root_cbf
플래그 root_cbf의 판정은 플래그 pred_mode의 판정과 유사하다. 구현에서, 만일 현재의 블록의 폭이 임계 th3보다 크거나, 현재의 블록의 높이가 임계 th3보다 큰 경우, root_cbf에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 1이다. 구현에서, 만일 현재의 블록의 폭이 64보다 크거나, 현재의 블록의 높이가 64보다 큰 경우, root_cbf에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값은 5이다.
플래그 root_cbf는 현재의 CU가 코딩된 후에 잔차가 있는지를 지시하는 데에 사용된다. HEVC에서의 플래그 rqt_root_cbf 및 AVS3에서의 플래그 root_cbf는 이 명세서에서 집합적으로 플래그 root_cbf로 지칭된다. 1과 같은 root_cbf는 현재의 블록이 코딩된 후에 잔차가 있음 및 변환 트리의 코딩 구문 구조가 사용됨을 지정한다. 0과 같은 root_cbf는 현재의 블록이 코딩된 후에 잔차가 없음 및 변환 트리의 코딩 구문 구조가 사용되지 않음을 지정한다.
(6) 플래그 qt_split_flag
만일 현재의 블록(현재의 노드)이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 현재의 블록의 폭 및 높이가 양자 모두 th4인 경우, 현재의 노드를 위해 분할 모드 QT가 강제적으로 사용된다. 이 경우에, qt_split_flag의 값은 1임이 판정된다. th4는 양의 정수, 예를 들어, 64, 128, 256, 또는 512이다. 구현에서, 임계 th4의 값은 128이다.
따라서, 구현에서, 만일 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 현재의 블록의 폭이 th4인 경우, 플래그 qt_split_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임이 판정된다. 구현에서, 만일 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 현재의 블록의 폭이 128 인 경우, 플래그 qt_split_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임이 판정된다.
qt_split_flag는 현재의 블록을 위해 쿼드트리(QT) 분할이 사용되는지를 지시하는 데에 사용된다. 예를 들어, 1과 같은 qt_split_flag의 값은 쿼드트리(QT) 분할이 현재의 블록을 위해 사용됨을 지정하고, 0과 같은 qt_split_flag의 값은 쿼드트리(QT) 분할이 현재의 CU를 위해 사용되지 않음을 지정한다.
(7) 플래그 split_dir
만일 현재의 분할될 노드에 대응하는 현재의 블록의 폭이 임계 th5이고, 현재의 분할될 노드에 대응하는 블록의 높이가 임계 th5보다 큰 경우, 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임이 판정된다. 만일 현재의 분할될 노드에 대응하는 현재의 블록의 높이가 임계 th5이고, 현재의 분할될 노드에 대응하는 블록의 폭이 임계 th5보다 큰 경우, 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 4임이 판정된다. 임계 th5는 16보다 큰 정수, 예를 들어, 32, 64, 128, 또는 256이다. 구현에서, 임계 th5의 값은 64이다. 예를 들어, 구현에서, 만일 현재의 분할될 노드에 대응하는 블록의 폭이 64이고, 현재의 분할될 노드에 대응하는 블록의 높이가 128인 경우, 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임이 판정된다. 다른 구현에서, 만일 현재의 분할될 노드에 대응하는 블록의 높이가 64이고, 현재의 분할될 노드에 대응하는 블록의 폭이 128인 경우, 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 4임이 판정된다.
split_dir는 현재의 노드의 분할 방향을 지시하는 데에 사용된다. 1과 같은 split_dir의 값은 수직 분할 방향이 현재의 노드를 위해 사용됨을 지정하고, 0과 같은 split_dir의 값은 수평 분할 방향이 현재의 노드를 위해 사용됨을 지정한다.
단계(603): 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc에 기반하여 후속 처리를 수행한다.
후속 처리는 엔트로피 인코딩 처리 또는 엔트로피 디코딩 처리일 수 있다.
skip_flag가 예로서 사용된다. 엔트로피 인코딩 처리 동안에, 플래그 skip_flag에 대응하는 빈(bin)의 콘텍스트 모델이 판정된 후에, 빈의 값은 콘텍스트 모델에 따라 인코딩될 수 있고, 현재의 블록을 위해 스킵 모드가 사용되는지에 대한 정보가 비트스트림 내에 기록된다.
엔트로피 디코딩 처리 동안에, 플래그 skip_flag의 빈의 콘텍스트 모델이 판정된 후에, 빈의 값을 획득하기 위해 콘텍스트 모델에 따라 비트스트림이 디코딩될 수 있고, 이후에 스킵 플래그의 값이 빈의 값에 기반하여 판정되어서, 스킵 모드가 현재의 블록을 위해 사용되는지를 판정한다.
현재의 블록의 플래그의 콘텍스트 모델의 값이 현재의 블록의 이웃 블록(예를 들어, 왼쪽 블록 및 위쪽 블록)의 가용성 및 대응하는 플래그의 값에 기반하여 획득될 필요가 있는 종래의 기술과 비교하여, 이 출원의 실시예에서 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델의 값이 직접적으로 판정될 수 있는바, 이로써 코딩 효율을 개선함을 이상으로부터 알 수 있다. 구체적으로, 해결안은 플래그의 조건부 확률을 0 또는 1에 최대한 가깝게 하는 데에 사용될 수 있다. 따라서, 엔트로피 코딩 효율이 개선된다.
표 3은 몇몇 CU 레벨 구문 구조를 열거한다. 기술된 플래그 중 몇몇은 표 3 내의 몇몇 구문 요소이거나, 코딩 트리 유닛 내의 구문 요소일 수 있다. 구문 요소는 여기에서 열거되지 않는다. 표 내의 플래그는 다른 방법을 사용함으로써 나타내어질 수 있음에 유의하여야 한다. 예를 들어, skip_flag는 cu_skip_flag로서 나타내어질 수 있고, inter_dir는 inter_pred_ref_mode로서 나타내어질 수 있다. 이것은 본 발명에서 구체적으로 한정되지 않고, 세부사항은 차후에 기술되지 않는다.
표 3
Figure pct00004
전술한 방법과 동일한 발명적 개념에 기반하여, 본 발명의 실시예는 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치(700)를 또한 제공한다. 도 7에 도시된 바와 같이, 디바이스(700)는 획득 유닛(701), 판정 유닛(702) 및 처리 유닛(703)을 포함한다.
획득 유닛(701)은 현재의 블록의 크기 정보를 획득하도록 구성된다.
판정 유닛(702)은 현재의 블록의 획득된 크기 정보 및 크기 기반 제약에 기반하여 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하도록 구성된다.
처리 유닛(703)은 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc에 기반하여 후속 처리를 수행하도록 구성된다.
구현에서, 현재의 블록의 플래그가 inter_dir인 경우에, 획득 유닛(701)에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 면적을 포함하고,
판정 유닛(702)은 또한, 현재의 블록의 면적 sizeC가 임계 th1보다 작은 경우에, 플래그 skip_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하도록 구성된다.
구현에서, 현재의 블록의 플래그가 inter_dir인 경우에, 획득 유닛(701)에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 면적을 포함하고,
판정 유닛(702)은 또한, 현재의 블록의 면적 sizeC가 임계 th1보다 작은 경우에, 플래그 inter_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 2임을 판정하도록 구성된다.
구현에서, 현재의 블록의 플래그가 direct_flag인 경우, 획득 유닛(701)에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 면적, 또는 현재의 블록의 폭, 또는 현재의 블록의 높이를 포함하고,
판정 유닛(702)은 또한, 현재의 블록의 면적 sizeC가 임계 th1보다 작거나, 현재의 블록의 폭이 임계 th2보다 크거나, 현재의 블록의 높이가 임계 th2보다 큰 경우에, 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된다.
구현에서, 현재의 블록의 플래그가 pred_mode인 경우, 획득 유닛(701)에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 폭 또는 현재의 블록의 높이를 포함하고,
판정 유닛(702)은 또한, 현재의 블록의 폭이 임계 th3보다 크거나, 현재의 블록의 높이가 임계 th3보다 큰 경우에, 플래그 pred_mode에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 5임을 판정하도록 구성된다.
구현에서, 현재의 블록의 플래그가 root_cbf인 경우, 획득 유닛(701)에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 폭 또는 현재의 블록의 높이를 포함하고,
판정 유닛(702)은 또한, 현재의 블록의 폭이 임계 th3보다 크거나, 현재의 블록의 높이가 임계 th3보다 큰 경우에, 플래그 root_cbf에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된다.
구현에서, 현재의 블록의 플래그가 qt_split_flag인 경우, 획득 유닛(701)에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 폭 및 현재의 블록의 높이를 포함하고,
판정 유닛(702)은 또한, 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 현재의 블록의 폭이 th4인 경우에, 플래그 qt_split_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하도록 구성된다.
구현에서, 현재의 블록의 플래그가 split_dir인 경우, 획득 유닛(701)에 의해 획득된, 현재의 블록의 크기 정보는 현재의 블록의 폭 및 현재의 블록의 높이를 포함하고,
판정 유닛(702)은 또한, 현재의 분할될 노드에 대응하는 현재의 블록의 폭이 임계 th5이고, 현재의 블록의 높이가 임계 th5보다 큰 경우에, 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하거나;
현재의 분할될 노드에 대응하는 현재의 블록의 높이가 임계 th5이고, 현재의 블록의 폭이 임계 th5보다 큰 경우에, 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 4임을 판정하도록 구성된다.
당업자는, 이 명세서에 개시되고 기술된 다양한 예시적인 논리적 블록, 모듈 및 알고리즘 단계를 참조하여 기술되는 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 이의 임의의 조합에 의해 구현될 수 있음을 이해할 수 있다. 만일 소프트웨어에 의해 구현된 경우, 예시된 논리적 블록, 모듈 및 단계를 참조하여 기술된 기능은 하나 이상의 명령어 또는 코드로서 컴퓨터 판독가능 매체 내에 저장되거나 이를 통하여 송신되고 하드웨어 기반 처리 유닛에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 데이터 저장 매체와 같은 유형적 매체(tangible medium)에 대응하는 컴퓨터 판독가능 저장 매체, 또는 (예를 들어, 통신 프로토콜에 따라) 하나의 장소에서 다른 장소로의 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이 방식으로, 컴퓨터 판독가능 매체는 일반적으로 다음에 대응한다: (1) 비일시적(non-transitory) 유형적 컴퓨터 판독가능 저장 매체, 또는 (2) 신호 또는 반송파와 같은 통신 매체. 데이터 저장 매체는 이 출원에 기술된 기술을 구현하기 위한 명령어, 코드 및/또는 데이터 구조를 인출하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있다.
한정이 아니라 예로서, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 콤팩트 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리, 또는 요망되는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 저장하는 데에 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 만일 명령어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블(coaxial cable), 광섬유(optical fiber), 꼬임쌍선(twisted pair), 디지털 가입자 라인(digital subscriber line)(DSL), 또는 무선 기술, 예를 들면 적외선(infrared), 무전(radio) 및 마이크로파(microwave)를 통해서 송신되면, 동축 케이블, 광섬유, 꼬임쌍선, DSL, 또는 무선 기술, 예를 들면 적외선, 무전 및 마이크로파는 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호, 또는 다른 일시적 매체를 포함하지 않고, 실은 비일시적 유형적 저장 매체를 의미함이 응당 이해된다. 이 명세서에서 사용되는 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(compact disc)(CD), 레이저 디스크(laser disc), 광학 디스크(optical disc), 디지털 다용도 디스크(digital versatile disc)(DVD) 및 블루레이 디스크(Blu-ray disc)를 포함한다. 디스크(disk)는 통상적으로 데이터를 자기적으로 재현하는 반면, 디스크(disc)는 레이저로써 광학적으로 데이터를 재현한다. 이상의 것의 조합이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령어는 하나 이상의 프로세서, 예를 들면 하나 이상의 디지털 신호 프로세서(digital signal processor)(DSP), 일반 목적 마이크로프로세서(general-purpose microprocessor), 애플리케이션 특정 집적 회로(application-specific integrated circuit)(ASIC), 필드 프로그램가능 로직 어레이(field programmable logic array)(FPGA), 또는 다른 균등한 집적 회로 또는 이산 로직 회로에 의해 실행될 수 있다. 따라서, 이 명세서에서 사용되는 용어 "프로세서"는 전술한 구조 또는 이 명세서에 기술된 기술을 구현하기에 적합한 임의의 다른 구조 중 임의의 것일 수 있다. 추가로, 몇몇 측면에서, 이 명세서에 기술된 예시적인 논리적 블록, 모듈 및 단계를 참조하여 기술된 기능은 조합된 코덱 내에 포함될 수 있거나, 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있다. 추가로, 기술은 완전히 하나 이상의 회로 또는 로직 요소 내에 구현될 수 있다.
이 출원에서의 기술은 무선 핸드세트(wireless handset), 집적 회로(integrated circuit)(IC), 또는 IC의 세트(예를 들어, 칩 세트(chip set))를 포함하는 다양한 장치 또는 디바이스 내에 구현될 수 있다. 개시된 기술을 수행하도록 구성된 장치의 기능적 측면을 강조하기 위해 다양한 컴포넌트, 모듈, 또는 유닛이 이 출원에 기술되나, 반드시 상이한 하드웨어 유닛에 의해 구현되지는 않는다. 실제로, 위에서 기술된 바와 같이, 다양한 유닛이 적절한 소프트웨어 및/또는 펌웨어와의 조합으로 코덱 하드웨어 유닛 내에 조합될 수 있거나, 위에서 기술된 하나 이상의 프로세서를 포함하는) 상호운영가능한 하드웨어 유닛에 의해 제공될 수 있다.
전술한 실시예에서, 실시예에서의 설명은 각자의 주안점을 갖는다. 실시예에서 상세히 기술되지 않은 부분에 대하여, 다른 실시예에서의 관련된 설명을 참조하시오.
전술한 설명은 단지 이 출원의 구체적인 예시적 구현이며, 이 출원의 보호 범위를 한정하도록 의도되지 않는다. 이 출원에서 개시된 기술적 범위 내에서 당업자에 의해 쉽게 안출되는 임의의 변형 또는 대체는 이 출원의 보호 범위 내에 응당 속할 것이다. 따라서, 이 출원의 보호 범위는 응당 청구항의 보호 범위에 의거할 것이다.

Claims (33)

  1. 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법으로서,
    현재의 블록의 크기 정보를 획득하는 단계와,
    상기 현재의 블록의 상기 획득된 크기 정보 및 크기 기반 제약에 기반하여 상기 현재의 블록의 플래그(flag)의 콘텍스트 모델 인덱스(context model index) ctxInc를 판정하는 단계와,
    상기 현재의 블록의 상기 플래그의 상기 콘텍스트 모델 인덱스 ctxInc에 기반하여 후속 처리를 수행하는 단계를 포함하는,
    처리 방법.
  2. 제1항에 있어서,
    상기 현재의 블록의 상기 플래그가 skip_flag인 경우에, 상기 현재의 블록의 상기 획득된 크기 정보는 상기 현재의 블록의 면적을 포함하되, 상기 플래그 skip_flag는 스킵 모드(skip mode)가 상기 현재의 블록을 위해 사용되는지를 지시하는(indicate) 데에 사용되고,
    상기 현재의 블록의 상기 획득된 크기 정보 및 크기 기반 제약에 기반하여 상기 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 단계는,
    상기 현재의 블록의 상기 면적 sizeC가 임계(threshold) th1보다 작은 경우, 상기 플래그 skip_flag에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 단계를 포함하는,
    처리 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 현재의 블록의 상기 플래그가 inter_dir인 경우에, 상기 현재의 블록의 상기 획득된 크기 정보는 상기 현재의 블록의 면적을 포함하되, 상기 플래그 inter_dir는 상기 현재의 블록을 위해 사용되는 예측 참조 모드(prediction reference mode)를 지시하는 데에 사용되고,
    상기 현재의 블록의 상기 획득된 크기 정보 및 크기 기반 제약에 기반하여 상기 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 단계는,
    상기 현재의 블록의 상기 면적 sizeC가 임계 th1보다 작은 경우, 상기 플래그 inter_dir에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 2임을 판정하는 단계를 포함하는,
    처리 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 direct_flag인 경우에, 상기 현재의 블록의 상기 획득된 크기 정보는 상기 현재의 블록의 면적, 또는 상기 현재의 블록의 폭, 또는 상기 현재의 블록의 높이를 포함하되, 상기 플래그 direct_flag는 직접 모드(direct mode)가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
    상기 현재의 블록의 상기 획득된 크기 정보 및 크기 기반 제약에 기반하여 상기 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 단계는,
    상기 현재의 블록의 상기 면적 sizeC가 임계 th1보다 작거나, 상기 현재의 블록의 상기 폭이 임계 th2보다 크거나, 상기 현재의 블록의 상기 높이가 임계 th2보다 큰 경우, 상기 플래그 direct_flag에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하는 단계를 포함하는,
    처리 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 pred_mode인 경우에, 상기 현재의 블록의 상기 획득된 크기 정보는 상기 현재의 블록의 폭 또는 상기 현재의 블록의 높이를 포함하되, 상기 플래그 pred_mode는 인트라 예측 모드(intra prediction mode)가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
    상기 현재의 블록의 상기 획득된 크기 정보 및 크기 기반 제약에 기반하여 상기 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 단계는,
    상기 현재의 블록의 상기 폭이 임계 th3보다 크거나, 상기 현재의 블록의 상기 높이가 임계 th3보다 큰 경우, 상기 플래그 pred_mode에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 5임을 판정하는 단계를 포함하는,
    처리 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 root_cbf인 경우에, 상기 현재의 블록의 상기 획득된 크기 정보는 상기 현재의 블록의 폭 또는 상기 현재의 블록의 높이를 포함하되, 상기 플래그 root_cbf는 상기 현재의 블록이 코딩된 후에 잔차(residual)가 있는지를 지시하는 데에 사용되고,
    상기 현재의 블록의 상기 획득된 크기 정보 및 크기 기반 제약에 기반하여 상기 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 단계는,
    상기 현재의 블록의 상기 폭이 임계 th3보다 크거나, 상기 현재의 블록의 상기 높이가 임계 th3보다 큰 경우, 상기 플래그 root_cbf에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하는 단계를 포함하는,
    처리 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 qt_split_flag인 경우에, 상기 현재의 블록의 상기 획득된 크기 정보는 상기 현재의 블록의 폭 및 상기 현재의 블록의 높이를 포함하되, 상기 플래그 qt_split_flag는 쿼드트리 분할(quadtree split)이 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
    상기 현재의 블록의 상기 획득된 크기 정보 및 크기 기반 제약에 기반하여 상기 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 단계는,
    상기 현재의 블록이 위치된 픽처 영역(picture region)이 I 슬라이스 또는 I 프레임이고, 상기 현재의 블록의 상기 폭이 th4인 경우, 상기 플래그 qt_split_flag에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 단계를 포함하는,
    처리 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 split_dir인 경우에, 상기 현재의 블록의 상기 획득된 크기 정보는 상기 현재의 블록의 폭 및 상기 현재의 블록의 높이를 포함하되, 상기 플래그 split_dir는 상기 현재의 블록의 분할 방향(split direction)을 지시하는 데에 사용되고,
    상기 현재의 블록의 상기 획득된 크기 정보 및 크기 기반 제약에 기반하여 상기 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하는 단계는,
    현재의 분할될 노드에 대응하는 상기 현재의 블록의 상기 폭이 임계 th5이고, 상기 현재의 블록의 상기 높이가 임계 th5보다 큰 경우, 상기 플래그 split_dir에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 단계, 또는
    현재의 분할될 노드에 대응하는 상기 현재의 블록의 상기 높이가 임계 th5이고, 상기 현재의 블록의 상기 폭이 임계 th5보다 큰 경우, 상기 플래그 split_dir에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 4임을 판정하는 단계를 포함하는,
    처리 방법.
  9. 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법으로서,
    현재의 블록의 면적을 획득하는 단계와,
    상기 현재의 블록의 상기 면적이 64보다 작은 경우, 상기 현재의 블록의 플래그 skip_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 단계 - 상기 플래그 skip_flag는 스킵 모드가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨 - 와,
    상기 플래그 skip_flag의 상기 콘텍스트 모델 인덱스의 상기 값 3에 기반하여 후속 처리를 수행하는 단계를 포함하는,
    처리 방법.
  10. 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법으로서,
    현재의 블록의 폭, 또는 상기 현재의 블록의 높이, 또는 상기 현재의 블록의 폭 및 높이를 획득하는 단계와,
    상기 현재의 블록의 상기 폭 및 상기 높이에 기반하여 판정된, 상기 현재의 블록의 면적이 64보다 작거나, 상기 현재의 블록의 상기 폭이 64보다 크거나, 상기 현재의 블록의 상기 높이가 64보다 큰 경우, 상기 현재의 블록의 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하는 단계 - 상기 플래그 direct_flag는 직접 모드가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨 - 와,
    상기 플래그 direct_flag의 상기 콘텍스트 모델 인덱스의 상기 값 1에 기반하여 후속 처리를 수행하는 단계를 포함하는,
    처리 방법.
  11. 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법으로서,
    현재의 블록의 폭 또는 상기 현재의 블록의 높이를 획득하는 단계와,
    상기 현재의 블록의 상기 폭이 64보다 크거나, 상기 현재의 블록의 상기 높이가 64보다 큰 경우, 상기 현재의 블록의 플래그 pred_mode에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 5임을 판정하는 단계 - 상기 플래그 pred_mode는 인트라 예측 모드가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨 - 와,
    상기 플래그 pred_mode의 상기 콘텍스트 모델 인덱스의 상기 값 5에 기반하여 후속 처리를 수행하는 단계를 포함하는,
    처리 방법.
  12. 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법으로서,
    현재의 블록의 폭 또는 상기 현재의 블록의 높이를 획득하는 단계와,
    상기 현재의 블록의 상기 폭이 64보다 크거나, 상기 현재의 블록의 상기 높이가 64보다 큰 경우, 상기 현재의 블록의 플래그 root_cbf에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하는 단계 - 상기 플래그 root_cbf는 상기 현재의 블록이 코딩된 후에 잔차가 있는지를 지시하는 데에 사용됨 - 와,
    상기 플래그 root_cbf의 상기 콘텍스트 모델 인덱스의 상기 값 1에 기반하여 후속 처리를 수행하는 단계를 포함하는,
    처리 방법.
  13. 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법으로서,
    현재의 블록의 폭을 획득하는 단계와,
    상기 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 상기 현재의 블록의 상기 폭이 128인 경우, 상기 현재의 블록의 플래그 qt_split_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 단계 - 상기 플래그 qt_split_flag는 쿼드트리 분할이 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨 - 와,
    상기 플래그 qt_split_flag의 상기 콘텍스트 모델 인덱스의 상기 값 3에 기반하여 후속 처리를 수행하는 단계를 포함하는,
    처리 방법.
  14. 비디오 인코딩 또는 비디오 디코딩에 적용되는 처리 방법으로서,
    현재의 블록의 폭 및 상기 현재의 블록의 높이를 획득하는 단계와,
    상기 현재의 블록의 상기 폭이 64이고 상기 현재의 블록의 상기 높이가 64보다 큰 경우, 상기 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정 - 상기 플래그 split_dir는 상기 현재의 블록의 분할 방향을 지시하는 데에 사용됨 - 하고, 상기 플래그 split_dir의 상기 콘텍스트 모델 인덱스의 상기 값 3에 기반하여 후속 처리를 수행하는 단계, 또는
    상기 현재의 블록의 상기 높이가 64이고 상기 현재의 블록의 상기 폭이 64보다 큰 경우, 상기 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 4임을 판정 - 상기 플래그 split_dir는 상기 현재의 블록의 분할 방향을 지시하는 데에 사용됨 - 하고, 상기 플래그 split_dir의 상기 콘텍스트 모델 인덱스의 상기 값 4에 기반하여 후속 처리를 수행하는 단계를 포함하는,
    처리 방법.
  15. 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치로서,
    현재의 블록의 크기 정보를 획득하도록 구성된 획득 유닛과,
    상기 현재의 블록의 상기 획득된 크기 정보 및 크기 기반 제약에 기반하여 상기 현재의 블록의 플래그의 콘텍스트 모델 인덱스 ctxInc를 판정하도록 구성된 판정 유닛과,
    상기 현재의 블록의 상기 플래그의 상기 콘텍스트 모델 인덱스 ctxInc에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛을 포함하는,
    처리 장치.
  16. 제15항에 있어서,
    상기 현재의 블록의 상기 플래그가 skip_flag인 경우에, 상기 획득 유닛에 의해 획득된, 상기 현재의 블록의 상기 크기 정보는 상기 현재의 블록의 면적을 포함하되, 상기 플래그 skip_flag는 스킵 모드가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
    상기 판정 유닛은 또한, 상기 현재의 블록의 상기 면적 sizeC가 임계 th1보다 작은 경우에, 상기 플래그 skip_flag에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하도록 구성된,
    처리 장치.
  17. 제15항 또는 제16항에 있어서,
    상기 현재의 블록의 상기 플래그가 inter_dir인 경우에, 상기 획득 유닛에 의해 획득된, 상기 현재의 블록의 상기 크기 정보는 상기 현재의 블록의 면적을 포함하되, 상기 플래그 inter_dir는 상기 현재의 블록을 위해 사용되는 예측 참조 모드를 지시하는 데에 사용되고,
    상기 판정 유닛은 또한, 상기 현재의 블록의 상기 면적 sizeC가 임계 th1보다 작은 경우에, 상기 플래그 inter_dir에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 2임을 판정하도록 구성된,
    처리 장치.
  18. 제15항 내지 제17항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 direct_flag인 경우에, 상기 획득 유닛에 의해 획득된, 상기 현재의 블록의 상기 크기 정보는 상기 현재의 블록의 면적, 또는 상기 현재의 블록의 폭, 또는 상기 현재의 블록의 높이를 포함하되, 상기 플래그 direct_flag는 직접 모드가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
    상기 판정 유닛은 또한, 상기 현재의 블록의 상기 면적 sizeC가 임계 th1보다 작거나, 상기 현재의 블록의 상기 폭이 임계 th2보다 크거나, 상기 현재의 블록의 상기 높이가 임계 th2보다 큰 경우에, 상기 플래그 direct_flag에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된,
    처리 장치.
  19. 제15항 내지 제18항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 pred_mode인 경우에, 상기 획득 유닛에 의해 획득된, 상기 현재의 블록의 상기 크기 정보는 상기 현재의 블록의 폭 또는 상기 현재의 블록의 높이를 포함하되, 상기 플래그 pred_mode는 인트라 예측 모드가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
    상기 판정 유닛은 또한, 상기 현재의 블록의 상기 폭이 임계 th3보다 크거나, 상기 현재의 블록의 상기 높이가 임계 th3보다 큰 경우에, 상기 플래그 pred_mode에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 5임을 판정하도록 구성된,
    처리 장치.
  20. 제15항 내지 제19항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 root_cbf인 경우에, 상기 획득 유닛에 의해 획득된, 상기 현재의 블록의 상기 크기 정보는 상기 현재의 블록의 폭 또는 상기 현재의 블록의 높이를 포함하되, 상기 플래그 root_cbf는 상기 현재의 블록이 코딩된 후에 잔차가 있는지를 지시하는 데에 사용되고,
    상기 판정 유닛은 또한, 상기 현재의 블록의 상기 폭이 임계 th3보다 크거나, 상기 현재의 블록의 상기 높이가 임계 th3보다 큰 경우에, 상기 플래그 root_cbf에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된,
    처리 장치.
  21. 제15항 내지 제20항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 qt_split_flag인 경우에, 상기 획득 유닛에 의해 획득된, 상기 현재의 블록의 상기 크기 정보는 상기 현재의 블록의 폭 및 상기 현재의 블록의 높이를 포함하되, 상기 플래그 qt_split_flag는 쿼드트리 분할이 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용되고,
    상기 판정 유닛은 또한, 상기 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 상기 현재의 블록의 상기 폭이 th4인 경우에, 상기 플래그 qt_split_flag에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하도록 구성된,
    처리 장치.
  22. 제15항 내지 제21항 중 어느 한 항에 있어서,
    상기 현재의 블록의 상기 플래그가 split_dir인 경우에, 상기 획득 유닛에 의해 획득된, 상기 현재의 블록의 상기 크기 정보는 상기 현재의 블록의 폭 및 상기 현재의 블록의 높이를 포함하되, 상기 플래그 split_dir는 상기 현재의 블록의 분할 방향을 지시하는 데에 사용되고,
    상기 판정 유닛은 또한, 현재의 분할될 노드에 대응하는 상기 현재의 블록의 상기 폭이 임계 th5이고, 상기 현재의 블록의 상기 높이가 임계 th5보다 큰 경우에, 상기 플래그 split_dir에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하거나,
    현재의 분할될 노드에 대응하는 상기 현재의 블록의 상기 높이가 임계 th5이고, 상기 현재의 블록의 상기 폭이 임계 th5보다 큰 경우에, 상기 플래그 split_dir에 의해 사용되는 상기 콘텍스트 모델 인덱스 ctxInc의 값이 4임을 판정하도록 구성된,
    처리 장치.
  23. 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치로서,
    현재의 블록의 면적을 획득하도록 구성된 획득 유닛과,
    상기 현재의 블록의 상기 면적이 64보다 작은 경우에, 상기 현재의 블록의 플래그 skip_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하는 판정 유닛 - 상기 플래그 skip_flag는 스킵 모드가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨 - 과,
    상기 플래그 skip_flag의 상기 콘텍스트 모델 인덱스의 상기 값 3에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛을 포함하는,
    처리 장치.
  24. 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치로서,
    현재의 블록의 폭, 또는 상기 현재의 블록의 높이, 또는 상기 현재의 블록의 폭 및 높이를 획득하도록 구성된 획득 유닛과,
    상기 현재의 블록의 상기 폭 및 상기 높이에 기반하여 판정된, 상기 현재의 블록의 면적이 64보다 작거나, 상기 현재의 블록의 상기 폭이 64보다 크거나, 상기 현재의 블록의 상기 높이가 64보다 큰 경우에, 상기 현재의 블록의 플래그 direct_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된 판정 유닛 - 상기 플래그 direct_flag는 직접 모드가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨 - 과,
    상기 플래그 direct_flag의 상기 콘텍스트 모델 인덱스의 상기 값 1에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛을 포함하는,
    처리 장치.
  25. 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치로서,
    현재의 블록의 폭 또는 상기 현재의 블록의 높이를 획득하도록 획득 유닛과,
    상기 현재의 블록의 상기 폭이 64보다 크거나, 상기 현재의 블록의 상기 높이가 64보다 큰 경우에, 상기 현재의 블록의 플래그 pred_mode에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 5임을 판정하도록 구성된 판정 유닛 - 상기 플래그 pred_mode는 인트라 예측 모드가 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨 - 과,
    상기 플래그 pred_mode의 상기 콘텍스트 모델 인덱스의 상기 값 5에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛을 포함하는,
    처리 장치.
  26. 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치로서,
    현재의 블록의 폭 또는 상기 현재의 블록의 높이를 획득하도록 획득 유닛과,
    상기 현재의 블록의 상기 폭이 64보다 크거나, 상기 현재의 블록의 상기 높이가 64보다 큰 경우에, 상기 현재의 블록의 플래그 root_cbf에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 1임을 판정하도록 구성된 판정 유닛 - 상기 플래그 root_cbf는 상기 현재의 블록이 코딩된 후에 잔차가 있는지를 지시하는 데에 사용됨 - 과,
    상기 플래그 root_cbf의 상기 콘텍스트 모델 인덱스의 상기 값 1에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛을 포함하는,
    처리 장치.
  27. 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치로서,
    현재의 블록의 폭을 획득하도록 구성된 획득 유닛과,
    상기 현재의 블록이 위치된 픽처 영역이 I 슬라이스 또는 I 프레임이고, 상기 현재의 블록의 상기 폭이 128인 경우에, 상기 현재의 블록의 플래그 qt_split_flag에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정하도록 구성된 판정 유닛 - 상기 플래그 qt_split_flag는 쿼드트리 분할이 상기 현재의 블록을 위해 사용되는지를 지시하는 데에 사용됨 - 과,
    상기 플래그 qt_split_flag의 상기 콘텍스트 모델 인덱스의 상기 값 3에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛을 포함하는,
    처리 장치.
  28. 비디오 인코딩 또는 비디오 디코딩에서 사용되는 처리 장치로서,
    현재의 블록의 폭 및 상기 현재의 블록의 높이를 획득하도록 획득 유닛과,
    상기 현재의 블록의 상기 폭이 64이고 상기 현재의 블록의 상기 높이가 64보다 큰 경우에, 상기 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 3임을 판정 - 상기 플래그 split_dir는 상기 현재의 블록의 분할 방향을 지시하는 데에 사용됨 - 하거나, 상기 현재의 블록의 상기 높이가 64이고 상기 현재의 블록의 상기 폭이 64보다 큰 경우에, 상기 현재의 블록의 플래그 split_dir에 의해 사용되는 콘텍스트 모델 인덱스 ctxInc의 값이 4임을 판정하도록 구성된 판정 유닛과,
    상기 플래그 split_dir의 상기 콘텍스트 모델 인덱스의 상기 값에 기반하여 후속 처리를 수행하도록 구성된 처리 유닛을 포함하는,
    처리 장치.
  29. 비디오 디코더로서,
    엔트로피 디코딩 유닛을 포함하되, 상기 엔트로피 디코딩 유닛은 제15항 내지 제28항 중 어느 한 항에 따른 처리 장치를 포함하는,
    비디오 디코더.
  30. 비디오 인코더로서,
    엔트로피 인코딩 유닛을 포함하되, 상기 엔트로피 인코딩 유닛은 제15항 내지 제28항 중 어느 한 항에 따른 처리 장치를 포함하는,
    비디오 인코더.
  31. 비디오 코딩 디바이스로서,
    서로 커플링된 비휘발성 메모리 및 프로세서를 포함하되, 상기 프로세서는 제1항 내지 제14항 중 어느 한 항에 따른 방법을 수행하기 위해, 상기 메모리 내에 저장된 프로그램 코드를 호출하는,
    비디오 코딩 디바이스.
  32. 컴퓨터 판독가능 저장 매체로서,
    컴퓨터 소프트웨어 명령어를 포함하되, 상기 컴퓨터 소프트웨어 명령어가 오디오 신호 처리 장치 또는 오디오 신호 처리 장치에 내장된 칩 내에서 가동되는 경우에, 상기 오디오 신호 처리 장치는 제1항 내지 제14항 중 어느 한 항에 따른 오디오 신호 처리 방법을 수행할 수 있게 되는,
    컴퓨터 판독가능 저장 매체.
  33. 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램이 컴퓨터 상에서 가동되는 경우에, 상기 컴퓨터는 제1항 내지 제14항 중 어느 한 항에 따른 오디오 신호 처리 방법을 수행하는,
    컴퓨터 프로그램.
KR1020217025379A 2019-01-14 2019-12-21 비디오 인코더, 비디오 디코더 및 대응하는 방법 KR102603966B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201910033419 2019-01-14
CN201910033419.X 2019-01-14
CN201910335981.8 2019-04-24
CN201910335981.8A CN111435993B (zh) 2019-01-14 2019-04-24 视频编码器、视频解码器及相应方法
PCT/CN2019/127237 WO2020147514A1 (zh) 2019-01-14 2019-12-21 视频编码器、视频解码器及相应方法

Publications (2)

Publication Number Publication Date
KR20210111311A true KR20210111311A (ko) 2021-09-10
KR102603966B1 KR102603966B1 (ko) 2023-11-17

Family

ID=71580116

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217025379A KR102603966B1 (ko) 2019-01-14 2019-12-21 비디오 인코더, 비디오 디코더 및 대응하는 방법

Country Status (5)

Country Link
US (1) US11902506B2 (ko)
EP (1) EP3905692A4 (ko)
KR (1) KR102603966B1 (ko)
CN (2) CN111435993B (ko)
WO (1) WO2020147514A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114257810B (zh) * 2020-09-23 2023-01-06 腾讯科技(深圳)有限公司 上下文模型的选择方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017088810A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Method and apparatus of entropy coding and context modelling for video and image coding

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2006201490B2 (en) * 2005-04-19 2008-05-22 Samsung Electronics Co., Ltd. Method and apparatus for adaptively selecting context model for entropy coding
US9020033B2 (en) * 2010-11-04 2015-04-28 Nice-Systems Ltd. System and method for enhancing compression using skip macro block on a compressed video
WO2012134246A2 (ko) * 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
JP5989772B2 (ja) * 2011-07-01 2016-09-07 サムスン エレクトロニクス カンパニー リミテッド 階層的構造のデータ単位を利用したエントロピー符号化方法及び該装置、並びに復号化方法及び該装置
JP5733590B2 (ja) * 2011-07-15 2015-06-10 モトローラ モビリティ エルエルシーMotorola Mobility Llc 変換係数レベルを符号化するコンテキストモデリング技法
US9451277B2 (en) * 2012-02-08 2016-09-20 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
ES2729781T3 (es) * 2012-06-01 2019-11-06 Velos Media Int Ltd Dispositivo de decodificación aritmética, aparato de decodificación de imágenes, dispositivo de codificación aritmética y aparato de codificación de imágenes
EP3361734B1 (en) * 2012-07-02 2019-12-11 Samsung Electronics Co., Ltd. Entropy coding of a video and entropy decoding of a video
WO2015096093A1 (en) * 2013-12-26 2015-07-02 Mediatek Singapore Pte. Ltd. Simplified cabac contexts in 3dvc
CN105684442B (zh) * 2013-07-23 2020-02-21 英迪股份有限公司 用于编码/解码图像的方法
CN106688238B (zh) * 2013-10-17 2019-12-17 华为技术有限公司 改进后的深度图帧内编码的参考像素点选择和滤波
CN106797468B (zh) * 2014-10-06 2018-10-30 华为技术有限公司 高效视频编码(hevc)屏幕内容编码(scc)中改进的调色板模式
US10148977B2 (en) * 2015-06-16 2018-12-04 Futurewei Technologies, Inc. Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
US10841593B2 (en) * 2015-06-18 2020-11-17 Qualcomm Incorporated Intra prediction and intra mode coding
US11463689B2 (en) * 2015-06-18 2022-10-04 Qualcomm Incorporated Intra prediction and intra mode coding
US10142627B2 (en) * 2015-06-18 2018-11-27 Qualcomm Incorporated Intra prediction and intra mode coding
US20160373742A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
US20160373770A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
US10609374B2 (en) * 2015-11-22 2020-03-31 Lg Electronics Inc. Method and apparatus for entropy-encoding and entropy-decoding video signal
WO2017088093A1 (en) * 2015-11-23 2017-06-01 Mediatek Singapore Pte. Ltd. On the smallest allowed block size in video coding
WO2017088170A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Entropy coding the binary tree block partitioning structure
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
CN116647677A (zh) * 2016-10-28 2023-08-25 韩国电子通信研究院 视频编码/解码方法和设备以及存储比特流的记录介质
US20190335170A1 (en) * 2017-01-03 2019-10-31 Lg Electronics Inc. Method and apparatus for processing video signal by means of affine prediction
US10848788B2 (en) * 2017-01-06 2020-11-24 Qualcomm Incorporated Multi-type-tree framework for video coding
CN116016921A (zh) * 2017-07-07 2023-04-25 三星电子株式会社 用于对运动矢量进行编码和解码的设备和方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017088810A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Method and apparatus of entropy coding and context modelling for video and image coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Benjamin Bross, et al., Versatile Video Coding (Draft 3), JVET-L1001-v9, 2019.01.04. *
Yin Zhao, et al., CE1-related: Context modeling of CU split modes, JVET-L0361-v4, 2018. 10.09. *

Also Published As

Publication number Publication date
EP3905692A4 (en) 2022-03-16
CN111435993A (zh) 2020-07-21
US11902506B2 (en) 2024-02-13
US20210344899A1 (en) 2021-11-04
CN113366850A (zh) 2021-09-07
EP3905692A1 (en) 2021-11-03
CN111435993B (zh) 2022-08-26
WO2020147514A1 (zh) 2020-07-23
CN113366850B (zh) 2022-09-23
KR102603966B1 (ko) 2023-11-17

Similar Documents

Publication Publication Date Title
CN115243039B (zh) 一种视频图像预测方法及装置
WO2020125595A1 (zh) 视频译码器及相应方法
US11924438B2 (en) Picture reconstruction method and apparatus
US20220295071A1 (en) Video encoding method, video decoding method, and corresponding apparatus
CN111277828B (zh) 视频编解码方法、视频编码器和视频解码器
US20220094947A1 (en) Method for constructing mpm list, method for obtaining intra prediction mode of chroma block, and apparatus
CN111385572B (zh) 预测模式确定方法、装置及编码设备和解码设备
US11956444B2 (en) Inter prediction method and apparatus, and corresponding encoder and decoder
AU2020205376A1 (en) Image prediction method, device, apparatus and system and storage medium
CN111416977B (zh) 视频编码器、视频解码器及相应方法
CN111416981B (zh) 视频图像解码、编码方法及装置
US20220109830A1 (en) Method for constructing merge candidate motion information list, apparatus, and codec
CN111355959B (zh) 一种图像块划分方法及装置
US11516470B2 (en) Video coder and corresponding method
CN111263166B (zh) 一种视频图像预测方法及装置
US11902506B2 (en) Video encoder, video decoder, and corresponding methods
US20210329225A1 (en) Context Modeling Method and Apparatus for Flag
CN112135149B (zh) 语法元素的熵编码/解码方法、装置以及编解码器
CN111726617B (zh) 用于融合运动矢量差技术的优化方法、装置及编解码器
CN111901593B (zh) 一种图像划分方法、装置及设备
CN111294603B (zh) 视频编解码方法及装置
CN111479111B (zh) 图像显示顺序的确定方法、装置和视频编解码设备
CN113170147B (zh) 视频编码器、视频解码器、及对应方法
CN111726630B (zh) 基于三角预测单元模式的处理方法及装置
WO2020186882A1 (zh) 基于三角预测单元模式的处理方法及装置

Legal Events

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