KR20200132985A - 양방향 인트라 예측 시그널링 - Google Patents

양방향 인트라 예측 시그널링 Download PDF

Info

Publication number
KR20200132985A
KR20200132985A KR1020207030528A KR20207030528A KR20200132985A KR 20200132985 A KR20200132985 A KR 20200132985A KR 1020207030528 A KR1020207030528 A KR 1020207030528A KR 20207030528 A KR20207030528 A KR 20207030528A KR 20200132985 A KR20200132985 A KR 20200132985A
Authority
KR
South Korea
Prior art keywords
bip
flag
coding block
current coding
signaled
Prior art date
Application number
KR1020207030528A
Other languages
English (en)
Other versions
KR102407912B1 (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 KR20200132985A publication Critical patent/KR20200132985A/ko
Application granted granted Critical
Publication of KR102407912B1 publication Critical patent/KR102407912B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

비디오 코딩을 위한 장치 및 방법이 설명된다. 한 방법은 비트스트림을 수신하는 단계와, 예측 관련 정보에 기초해서 비트스트림에 BIP 플래그가 시그널링되어야 하는지 결정하는 단계와, 픽처를 복원하는 단계를 포함하며, 비트스트림은 예측 관련 정보를 포함하며, 예측 관련 정보는 이용 가능한 1차 참조 샘플의 수 및 위치, 인트라 예측 모드 인덱스, 또는 현재 코딩 블록의 크기 중 적어도 하나를 포함한다. 제안되는 기술은 엔트로피 인코딩 혹은 디코딩의 오버헤드를 절감하거나 혹은 양호한 효과를 갖는다.

Description

양방향 인트라 예측 시그널링
본 발명은 비디오 코딩 분야에 관한 것이다. 더 상세하게는, 본 발명은 양방향 인트라 예측 모드 시그널링 메커니즘의 방법, 그리고 비디오 인코더 및 비디오 디코더에 관한 것이다.
디지털 비디오 통신 및 저장 애플리케이션은, 예를 들어 디지털 카메라, 셀룰러 무선 전화, 랩톱, 브로드캐스팅 시스템, 화상 회의 시스템 등과 같은 광범위한 디지털 장치에 의해 구현된다. 이러한 애플리케이션의 가장 중요하고 어려운 작업 중 하나가 비디오 압축이다. 비디오 압축 작업은 복잡하며, 압축 효율성과 계산 복잡성이라는 두 가지 상반되는 파라미터에 의해 제한된다. ITU-T H.264/AVC(Advanced Video Coding) 또는 ITU-T H.265/HEVC(High Efficiency Video Coding)과 같은 비디오 코딩 표준은 이러한 파라미터 사이에서 적절한 트레이드오프를 제공한다.
NGVC(Next Generation Video Coding)는 ISO/IEC MPEG(Moving Picture Experts Group) 및 ITU-TV CEG(Video Coding Experts Group)에 의해 구성된 JCT-VC(Joint Collaborative Team on Video Coding)에서 개발중인, 최신 비디오 압축 표준이다. NGVC는 이전 H.265/HEVC(High Efficiency Video Coding) 표준에 대응하여 개발되고 있다. 이전 비디오 코딩 표준과 마찬가지로, NGVC는 인트라/인터 예측, 변환, 양자화, 인-루프 필터링 및 엔트로피 코딩과 같은 기본 기능 모듈을 포함한다.
NGVC를 포함한 코딩 표준은 소스 픽처를 비디오 코딩 블록, 예를 들어 CU(코딩 유닛)으로 파티션하는 것에 기초한다. 각각 CU는 더 작은 CU 또는 예측 유닛(PU)으로 더 분할될 수 있다. 이들 블록을 처리하는 것은 이들의 크기, 공간적인 위치, 및 인코더에서 지정한 코딩 모드에 따라 달라진다. 코딩 모드는 예측의 타입에 따라서 인트라 예측 모드와 인터 예측 모드의 두 그룹으로 분류될 수 있다. 인트라 예측 모드에서는, 동일 픽처(프레임 또는 이미지라고도 함)의 픽셀을 사용해서 참조 샘플을 생성하여서, 복원될 블록의 픽셀에 대한 예측 값을 계산한다. 인트라 예측은 공간적인 예측이라고도 한다. 인터 예측 모드는 시간적인 예측을 위해 설계되었으며, 이전 픽처 또는 다음 픽처의 참조 샘플을 사용해서 현재 픽처의 블록의 픽셀을 예측한다. 예측 단계 이후에, 원래 신호와 그 예측 사이의 차이인 예측 에러에 대해 변환 코딩이 수행된다.
현재의 CU 또는 PU에 대해 예측 모드 중 하나가 선택되면, 현재 CU 또는 PU를 둘러싸고 있는 이미 코딩 된 픽셀을 사용해서, 외삽에 의해 예측 값이 생성된다. 양방향 예측 방법의 경우, 각 서브블록에서 두 종류의 인트라 예측 모드를 조합해서 예측값이 생성된다. 최근 양방향 인트라 예측 모드의 세트가 도입되었지만, 이는 높은 비트레이트를 필요로 한다.
본 발명의 목적은, 한 세트의 양방향 인트라 예측 모드를 도입하는 것에 의해 야기되는 높은 비트율을 감소시킬 수 있는, 개선된 비디오 코딩 장치 및 방법을 제공하는 것이다.
본 발명의 실시예는 청구 범위 및 이하의 설명에서 설명된다.
보호 범주는 청구 범위에 의해 정의된다.
본 발명의 추가 실시예가 이하의 도면과 관련해서 설명될 것이다.
도 1은 비디오 인코딩 및 디코딩 시스템(100)의 예를 나타내는 개략도를 도시한다.
도 2는 비디오 인코더(200)의 예를 나타내는 개략도를 도시한다.
도 3은 비디오 디코더(300)의 예를 나타내는 개략도를 도시한다.
도 4는 제안된 67개의 인트라 예측 모드를 나타내는 개략도를 나타낸다.
도 5(a)는 BCO(fixed block coding order)의 예를 나타낸다.
도 5(b)는 FBCO(flexible Block Coding Order)의 예를 도시한다.
도 6은 일반화된 DWDIP를 나타내는 개략도를 도시한다.
도 7(a) 및 7(b)는 1차 참조 샘플과 구성된 예측자의 정확도 사이의 관계를 나타낸다.
도 8은 BIP가 시그널링되는지 여부와 1차-1차 전파 비율 사이의 관계를 나타낸다.
도 9는 BIP가 디스에이블된 경우의 예시적인 시나리오를 나타낸다.
도 10은 BIP가 디폴트로 적용되는 예시적인 시나리오를 나타낸다.
도 11은 인트라 예측 모드의 예를 나타내는 개략도를 도시한다.
도 12는 BIP가 디폴트로 적용되는 다른 예시적인 시나리오를 나타낸다.
도 13은 BIP 플래그에 대한 컨텍스트 선택 프로세스의 예를 나타내는 개략도를 도시한다.
도 14(a)는 이웃 픽셀의 좌측 및 우측이 이용 가능할 때의 인트라 예측 모드의 범위를 나타내는 개략도를 도시한다.
도 14(b)는 이웃 픽셀의 좌측 및 상측이 이용 가능할 때의 인트라 예측 모드의 범위를 나타내는 개략도를 도시한다.
도 15는 컨텍스트 선택 프로세스에서 BIP가 사용되는 예시적인 시나리오를 나타낸다.
도 16은 비트스트림을 코딩하는 방법의 예를 나타내는 흐름도이다.
도 17은 비트스트림을 코딩하는 방법의 예를 나타내는 흐름도이다.
도 18은 인코딩된 비트스트림을 디코딩하는 방법의 예를 나타내는 흐름도이다.
도 19는 인코딩된 비트스트림을 디코딩하는 방법의 예를 나타내는 흐름도이다.
도 20은 다양한 실시예를 구현하는 데 사용될 수 있는 네트워크 요소의 블록도이다.
다양한 도면에서, 동일하거나 혹은 적어도 기능적으로 동일한 기능부에 대해서 동일한 참조 부호가 사용된다.
이하의 설명에서는 첨부된 도면을 참조하며, 도면에서는 본 개시의 일부를 이루며 본 발명이 전개될 수 있는 특정한 측면들이 예시로서 도시되어 있다.
예를 들어, 설명된 방법과 관련된 개시는, 방법을 수행하도록 구성된 대응하는 장치 또는 시스템에 대해서도 성립될 있고, 그 반대의 경우도 마찬가지인 것으로 이해된다. 예를 들어, 특정한 방법 단계가 기술된 경우, 설명된 방법 단계를 수행하기 위한 유닛을 대응하는 장치가 포함할 수 있으며, 이러한 유닛가 도면에 명시적으로 설명되거나 예시되지 않은 경우에도 마찬가지이다. 또한, 본 명세서에서 설명된 다양한 예시적인 측면의 특징들은, 별도로 언급되지 않는 한, 서로 결합될 수 있다는 것이 이해된다.
양방향 인트라 예측(BIP) 플래그를 비트스트림에 추가해서, 시그널링 오버 헤드와 같은, 양방향 인트라 예측 모드의 세트를 도입했을 때 발생되는 높은 비트 레이트를 줄이기 위해서, 다음 세 가지 기술 중 하나가 구현될 수 있다.
- 양방향 인트라 예측 모드는 시그널링되지 않으며 사용되지 않는다.
- 양방향 인트라 예측 모드는 시그널링되지 않으며 기존의 방향성 인트라 예측 모드를 대신해서 디폴트로 사용된다. 또는,
- 양방향 인트라 예측 모드는 CABAC(Context-Adaptive Binary Arithmetic Coding) 컨텍스트를 사용해서 시그널링된다.
이들 기술에 대해서는 다양한 예를 참조해서 이하 더 설명된다.
BIP 플래그를 비트스트림에 넣을지 여부 또는 어떤 CABAC 컨텍스트가 선택되어야 하는지를 결정하기 위해, 이하 설명된 바와 같이 다음 요소가 고려될 수 있다.
- 이용 가능한 1차 참조 샘플의 수와 위치;
- 인트라 예측 모드 인덱스;
- 예측되는 블록의 종횡비 및/또는
- 예측되는 블록의 크기.
도 1은, 인트라 예측 모드에서 블록을 인코딩 및 디코딩하는 기술을 포함한, 본 개시에서 설명되는 기술을 이용할 수 있는 예시적인 비디오 인코딩 및 디코딩 시스템(100)을 예시하는 블록도이다. 도 1에 도시된 바와 같이, 시스템(100)은 인코딩된 비디오 데이터를 생성하는 소스 장치(102)를 포함하고, 이 비디오 데이터는 이후에 목적지 장치(104)에 의해 디코딩된다. 도 2에 도시된 비디오 인코더(200)가 소스 장치(102)의 예이다. 도 3에 도시된 비디오 디코더(300)가 목적지 장치(104)의 예이다. 소스 장치(102) 및 목적지 장치(104)는 데스크톱 컴퓨터, 노트북(즉, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 소위 '스마트' 폰과 같은 전화 핸드셋, 소위 '스마트'패드, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 장치 등을 포함하는 광범위한 장치 중 임의의 것을 포함할 수 있다. 일부 경우에, 소스 장치(102) 및 목적지 장치(104)는 무선 통신을 위해 장착될 수 있다.
목적지 장치(104)는, 디코딩될 인코딩된 비디오 데이터를 링크(112)를 통해 수신할 수 있다. 링크(112)는 인코딩된 비디오 데이터를 소스 장치(102)로부터 목적지 장치(104)로 이동시킬 수 있는 임의의 타입의 매체 또는 장치를 포함할 수 있다. 일례로, 링크(112)는, 소스 장치(102)가 인코딩된 비디오 데이터를 목적지 장치(104)로 실시간으로 직접 전송할 수 있는 것을 가능하게 하는 통신 매체를 포함한다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라서 변조되어 목적지 장치(104)로 전송될 수도 있다. 통신 매체는 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인과 같은, 임의의 무선 또는 유선 통신 매체를 포함할 수 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수 있다. 통신 매체는 라우터, 스위치, 기지국, 또는 소스 장치(102)로부터 목적지 장치(104)로의 통신을 용이하게 하는 데 사용할 수 있는 임의의 다른 장비를 포함할 수 있다.
다른 방안으로, 인코딩된 데이터는 출력 인터페이스(110)로부터 저장 장치(도 1에는 도시되지 않음)로 출력될 수 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스(114)에 의해 저장 장치로부터 액세스될 수 있다. 목적지 장치(104)는 스트리밍으로 또는 다운로드를 통해서 저장 장치로부터 저장된 비디오 데이터에 액세스할 수 있다. 본 개시의 기술이 반드시 무선 응용 분야 또는 무선 설정으로 제한되는 것은 아니다. 이 기술은 공중파 텔레비전 방송, 케이블 텔레비전 전송, 위성 텔레비전 전송, 스트리밍 비디오 전송(예를 들어, 인터넷을 통한), 데이터 저장 매체에 저장된 디지털 비디오의 인코딩, 데이터 저장 매체에 저장된 디지털 비디오의 디코딩, 또는 기타 애플리케이션과 같은, 다양한 멀티미디어 애플리케이션을 지원하는 비디오 코딩에 적용될 수 있다. 일부 예시에서, 시스템(100)은 단방향 또는 양방향 비디오 전송을 지원해서, 비디오 스트리밍, 비디오 재생, 비디오 방송 및/또는 비디오 전화와 같은 애플리케이션을 지원하도록 구성될 수 있다.
도 1의 예에서, 소스 장치(102)는 비디오 소스(106), 비디오 인코더(108) 및 출력 인터페이스(110)를 포함한다. 일부 경우에, 출력 인터페이스(110)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 소스 장치(102)에서, 비디오 소스(106)는 비디오 캡처 장치(예를 들어 비디오 카메라)와 같은 소스, 이전 캡처된 비디오를 포함하는 비디오 아카이브, 비디오 컨텐츠 제공자로부터 비디오를 수신하기 위한 비디오 공급 인터페이스 및/또는 소스 비디오 또는 이러한 소스의 조합으로서 컴퓨터 그래픽 데이터를 생성하기 위한 컴퓨터 그래픽 시스템을 포함할 수 있다. 일례로서, 비디오 소스(106)가 비디오 카메라인 경우, 소스 장치(102) 및 목적지 장치(104)는 소위 카메라 폰 또는 비디오 폰을 형성할 수 있다. 그러나, 본 개시에서 설명되는 기술은 일반적으로 비디오 코딩에 적용될 수 있고, 무선 및/또는 유선 애플리케이션에 적용될 수 있다.
캡처되는 비디오, 이전에 캡처된 비디오 또는 컴퓨터-생성된 비디오는 비디오 인코더(108)에 의해 인코딩될 수 있다. 인코딩된 비디오 데이터는 소스 장치(102)의 출력 인터페이스(110)를 통해 목적지 장치(104)로 직접 전송될 수도 있다. 인코딩된 비디오 데이터는 또한 (혹은 다른 방안으로), 디코딩 및/또는 재생을 위해서 목적지 장치(104) 또는 다른 장치에 의해 이후에 액세스되도록, 저장 장치에 저장된다.
목적지 장치(104)는 입력 인터페이스(114), 비디오 디코더(116) 및 디스플레이 장치(118)를 포함한다. 일부 경우에, 입력 인터페이스(114)는 수신기 및/또는 모뎀을 포함할 수 있다. 목적지 장치(104)의 입력 인터페이스(114)는 링크(112)를 통해 인코딩된 비디오 데이터를 수신한다. 링크(112)를 통해 통신되거나 혹은 저장 장치로 제공되는 인코딩된 비디오 데이터는, 비디오 데이터를 디코딩할 때 비디오 디코더(116)와 같은 비디오 디코더에 의해 사용하기 위해, 비디오 인코더(108)에 의해 생성된 다양한 신택스 요소를 포함할 수 있다. 이러한 신택스 요소는 통신 매체를 통해 전송될 수도 있고, 저장 매체에 저장될 수도 있으며, 파일 서버에 저장될 수도 있는, 인코딩된 비디오 데이터에 포함될 수 있다.
디스플레이 장치(118)는 목적지 장치(104)와 통합될 수도 있고, 그 외부에 있을 수도 있다. 일부 예에서, 목적지 장치(104)는 통합된 디스플레이 장치를 포함할 수 있고, 또한 외부 디스플레이 장치와 인터페이스하도록 구성될 수 있다. 다른 예에서, 목적지 장치(104)는 디스플레이 장치일 수 있다. 일반적으로, 디스플레이 장치(118)는 디코딩된 비디오 데이터를 사용자에게 표시하는 것으로, 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 다른 타입의 디스플레이 장치와 같은 임의의 폭넓은 디스플레이 장치를 포함할 수 있다.
비디오 인코더(108) 및 비디오 디코더(116)는 모든 종류의 비디오 압축 표준에 따라 동작할 수 있으며, MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, AVC(Advanced Video Coding), HEVC(High Efficiency Video Coding), ITU-T H.266/NGVC(Next Generation Video Coding) 표준을 포함하지만 이것으로 한정되는 것은 아니다.
소스 장치(102)의 비디오 인코더(108)는 이러한 현재의 표준 또는 미래의 표준 중 임의의 것에 따라 비디오 데이터를 인코딩하도록 구성될 수 있는 것이 일반적으로 고려된다. 유사하게, 목적지 장치(104)의 비디오 디코더(116)는 이러한 현재 표준 또는 미래의 표준 중 임의의 것에 따라 비디오 데이터를 디코딩하도록 구성될 수 있다는 것이 일반적으로 고려된다.
비디오 인코더(108) 및 비디오 디코더(116) 각각은 하나 이상의 마이크로 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합과 같은 다양한 적합한 인코더 회로 중 임의의 것으로 구현될 수 있다. 이 기술이 부분적으로 소프트웨어로 구현될 때, 장치는 소프트웨어용 명령어를 적절한 비일시적인 컴퓨터 판독 가능한 매체에 저장하고, 본 개시의 기술을 수행하기 위해 하나 이상의 프로세서를 사용해서 하드웨어에서 명령어를 실행할 수 있다. 비디오 인코더(108) 및 비디오 디코더(116) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있고, 이들 중 하나는 각각의 장치에서 조합된 인코더/디코더(CODEC)의 일부로서 통합될 수도 있다.
비디오 코딩 사양에서, 비디오 시퀀스는 일반적으로 일련의 픽처를 포함한다. 픽처는 "프레임"이라고도 한다. 비디오 인코더(108)는 코딩된 픽처의 표현 및 관련 데이터를 형성하는 일련의 비트를 포함하는 비트스트림을 출력할 수 있다. 비디오 디코더(116)는 비디오 인코더(108)에 의해 생성된 비트스트림을 수신할 수 있다. 나아가, 비디오 디코더(116)는 이 비트스트림을 분석해서 비트스트림으로부터 신택스 요소를 획득할 수 있다. 비디오 디코더(116)는 이 비트스트림으로부터 획득된 신택스 요소에 적어도 부분적으로 기초하여 비디오 데이터의 픽처를 복원할 수 있다. 비디오 데이터를 복원하는 프로세스는 일반적으로 비디오 인코더(108)에 의해 수행되는 프로세스와 상반될 수 있다.
도 2는 비디오 인코더(200)의 예를 나타내는 개략도를 도시한다. 비디오 인코더(200)는 비디오 스트림의 프레임 또는 픽처의 입력 블록을 수신하기 위한 입력 및 인코딩된 비디오 비트스트림을 생성하기 위한 출력을 포함한다. 비디오 인코더(200)는 비디오 스트림에 예측, 변환, 양자화 및 엔트로피 코딩을 적용하도록 구성된다. 이 변환, 양자화 및 엔트로피 코딩이 변환 유닛(201), 양자화 유닛(202) 및 엔트로피 인코딩 유닛(203)에 의해 각각 수행되어서 인코딩된 비디오 비트스트림을 출력으로서 생성한다.
비디오 스트림은 복수의 프레임에 대응하며, 각 프레임은 인트라 코딩된 또는 인터 코딩된 일정 크기의 블록으로 분할된다. 예를 들어 비디오 스트림의 첫번째 프레임의 블록은 인트라 예측 유닛(209)에 의해 인트라 코딩된다. 인트라 프레임은 동일한 프레임 내의 정보만을 이용해서 코딩되므로, 독립적으로 디코딩될 수 있으며 랜덤 액세스를 위한 비트스트림의 입구(entry point)를 제공할 수 있다. 비디오 스트림의 다른 프레임의 블록은 인터 예측 유닛(210)을 통해 인터 코딩된다. 참조 프레임이라고 하는 코딩된 프레임으로부터의 정보가 사용되어서, 참조 프레임에 있는 동일한 크기의 블록으로부터 인터 코딩된 프레임의 각 블록이 예측되는 방식으로, 불필요한 시간적인 중복을 감소시킨다. 모드 선택 유닛(208)은 프레임의 블록이 인트라 예측 유닛(209)에 의해 처리될지 또는 인터 예측 유닛(210)에 의해 처리될지를 선택하도록 구성된다.
인터 예측을 수행하기 위해, 코딩된 참조 프레임이 역양자화 유닛(204), 역변환 유닛(205), 필터링 유닛(206)(옵션)에 의해 처리되어서 참조 프레임을 획득하고, 이는 프레임 버퍼(207)에 저장된다. 구체적으로, 참조 프레임의 참조 블록이 이들 유닛에 의해 처리되어서 복원된 참조 블록을 획득할 수 있다. 복원된 참조 블록은 이후에 참조 프레임으로 재조합된다.
인터 예측 유닛(210)은 인터 코딩될 현재 프레임 또는 픽처 및 프레임 버퍼(207)로부터의 하나 또는 다수의 참조 프레임 또는 픽처를 입력으로서 포함한다. 모션 추정 및 모션 보상은 인터 예측 유닛(210)에 의해 적용된다. 모션 추정은 특정 비용 함수(cost function)에 기초해서 모션 벡터 및 참조 프레임을 획득하는데 사용된다. 모션 보상은 참조 프레임의 참조 블록을 현재 프레임으로 변환하는 관점에서 현재 프레임의 현재 블록을 설명한다. 인터 예측 유닛(210)은 현재 블록에 대한 예측 블록을 출력하는데, 여기서 예측 블록은 코딩될 현재 블록과 그 예측 블록 사이의 차이를 최소화하며, 즉 잔차 블록을 최소화한다. 잔차 블록의 최소화는 예를 들어 레이트-왜곡 최적화 과정에 기초한다.
현재 블록과 그 예측 사이의 차이, 즉 잔차 블록은 변환 유닛(201)에 의해 변환된다. 변환 계수는 양자화 유닛(202) 및 엔트로피 인코딩 유닛(203)에 의해 양자화되고 엔트로피 코딩된다. 이렇게 생성된 인코딩된 비디오 비트스트림은 인트라 코딩된 블록 및 인터 코딩된 블록을 포함한다.
도 3은 비디오 디코더(300)의 예를 나타내는 개략도를 도시한다.
비디오 디코더(300)는 특히 프레임 버퍼(307), 인터 예측 유닛(310)을 포함한다. 프레임 버퍼(307)는 인코딩된 비디오 비트스트림으로부터 획득된 적어도 하나의 참조 프레임을 저장하도록 구성된다. 인터 예측 유닛(310)은 참조 프레임의 참조 블록으로부터 현재 프레임의 현재 블록의 예측 블록을 생성하도록 구성된다.
디코더(300)는 비디오 인코더(200)에 의해 생성된 인코딩된 비디오 비트스트림을 디코딩하도록 구성되고, 디코더(300) 및 코더(200) 모두 동일한 예측을 생성한다. 프레임 버퍼(307), 인터 예측 유닛(310)의 특성은 도 2의 프레임 버퍼(207), 인터 예측 유닛(210)의 특성과 유사하다.
특히, 비디오 디코더(300)는 역 양자화 유닛(304), 역 변환 유닛(305), 필터링 유닛(306)(옵션) 및 인트라 예측 유닛(309)과 같은 비디오 인코더(200)에도 존재하는 유닛을 포함하며, 이 각각은 비디오 인코더(200)의 역 양자화 유닛(204), 역 변환 유닛(205), 필터링 유닛(206) 및 인트라 예측 유닛(209)에 대응한다. 엔트로피 디코딩 유닛(303)은 수신한 인코딩된 비디오 비트스트림을 디코딩하고 이에 대응해서 양자화된 잔여 변환 계수를 획득하도록 구성된다. 양자화된 잔차 변환 계수는 역 양자화 유닛(304) 및 역변환 유닛(305)에 공급되어서 잔차 블록을 생성한다. 잔차 블록은 예측 블록에 추가되고, 이 추가된 것이 필터링 유닛(306)에 공급되어서 디코딩된 비디오를 획득한다. 디코딩된 비디오의 프레임은 프레임 버퍼(307)에 저장될 수 있고, 인터 예측을 위한 참조 프레임으로서 작용할 수 있다.
HEVC/H.265 표준에 따라서, 35개의 인트라 예측 모드를 사용할 수 있다. 도 4에 도시된 바와 같이, 이 세트는, 평면 모드(인트라 예측 모드 인덱스는 0임), DC 모드(인트라 예측 모드 인덱스는 1임), 및 180 ° 범위를 커버하며 도 4에서 검은 색 화살표로 표시된 2~34의 인트라 예측 모드 인덱스 값 범위를 가진 방향(각도(angular)) 모드와 같은 모드를 포함한다. 자연 비디오에 존재하는 임의의 에지 방향을 캡처하기 위해서, 방향성 인트라 모드의 수가 HEVC에서 사용되는 33개에서 65개로 확장된다. 추가 방향성 모드는 도 4에서 점선 화살표로 표시되며 평면 모드 및 DC 모드는 동일하게 유지된다. 인트라 예측 모드에 의해 커버되는 범위는 180°보다 더 넓을 수 있다는 것은 당연하다. 특히 3 내지 64의 인덱스 값을 가진 62개의 방향 모드는 약 230° 범위를 포함하며, 즉 여러 모드의 쌍은 반대 방향을 갖는다. HEVC 참조 모델(HM) 및 JEM 플랫폼의 경우, 하나의 각도 모드의 쌍(즉, 모드 2 및 66)만이 도 4에 표시된 것과 반대인 방향성을 갖는다. 예측자를 구성하기 위해서, 기존의 각도 모드는 참조 샘플을 취하고 (필요한 경우) 필터링해서 픽셀 예측기를 획득한다. 예측기를 구성하는 데 필요한 참조 샘플의 수는, 보간에 사용되는 필터의 길이에 따라 달라진다(예를 들어, 이중선형(bilinear) 필터 및 입방형(cubic) 필터의 길이는 각각 2와 4 임).
인트라 예측 단계에서 사용되는 참조 샘플의 이용 가능성을 활용하기 위해서, 도 5(b)에 예로서 개략적으로 도시된 바와 같이, 보다 유연한(flexible) BCO(블록 코딩 오더; block coding order)가 도입된다. 도 5(a)에 도시된 바와 같은, 고정형(fixed) BCO의 예에 비해서, 도 5(b)에 도시된 FBCO(Flexible Block Coding Order)는 비고정 블록 코딩 오더를 가능하게 하는 블록 코딩 오더 메커니즘이다. FBCO는 SUCO(Split Unit Coding Order; 분할 유닛 코딩 오더), ABCO(Arbitrary Block Coding Order; 임의 블록 코딩 오더) 등과 같은 다양한 메커니즘을 포함한다. 예를 들어, FBCO는 도 9, 12 및 15에서 사용될 수 있다. FBCO를 사용하면 상측 및 좌측(LR_10) 참조 샘플이 인트라 예측에 사용될 수 있을 뿐만 아니라, 예를 들어 상측 및 우측(LR_01)은 물론 3 측부(상측, 좌측 및 우측)도 인트라 예측에 사용 가능하다. 그러나 경우에 따라, 픽처 경계에 위치되지 않은 블록의 경우에도, 고정형 BCO로는 프레임워크를 파티션할 수 없을, 한쪽(즉, 상측)만을 사용하게 할 수도 있다.
양방향 인트라 예측(BIP)은, 각 블록 내의 두 종류의 인트라 예측 모드를 조합해서 예측 값을 생성함으로써 방향 예측자를 구성하는 메커니즘이다. DWDIP(Distance-Weighted Direction Intra Prediction)는 BIP의 특정한 구현예이다. DWDIP에 의해 예측자를 생성하는 것은 다음 두 단계를 포함한다.
a) 2차 참조 샘플이 생성되는 초기화,
b) 거리-가중 메커니즘을 사용해서 예측자를 생성.
b) 단계에서 1차 참조 샘플과 2차 참조 샘플이 모두 사용될 수 있다.
예측자 내의 샘플들은, 선택된 예측 방향에 의해 정의된 참조 샘플의 가중 합으로 계산되며 도 6에 도시된 바와 같이 반대 측부에 배치된다. 블록의 예측에는, 아직 복원되지 않고 예측되는 블록, 즉 미지의(unknown) 픽셀의 측부에 위치된 2차 참조 샘플을 생성하는 단계가 포함될 수 있다. 이들 2차 참조 샘플의 값은 픽처에서 이전에 복원된 부분의 픽셀, 즉 기지의(known) 픽셀로부터 획득한 1차 참조 샘플로부터 도출된다. 이는 1차 참조 샘플(602)이 이웃 블록으로부터 취해진다는 것을 의미한다. 2차 참조 샘플(604)은 1차 참조 샘플(602)을 사용해서 생성된다. 도 6에서, 1차 참조 픽셀/샘플(602)은 점이 찍힌 정사각형으로 표시되고, 2차 참조 픽셀/샘플(604)은 격자 표시된 정사각형으로 표시된다. 거리-가중 메커니즘을 사용해서 픽셀/샘플(606)이 예측된다.
BIP 기반 모드의 플래그는 항상 종래 방법으로 시그널링되며, 따라서 비트스트림에서 신호 오버 헤드가 발생한다.
일반적으로 2차 참조 샘플이 1차 참조 샘플만큼 소스 픽셀에 가깝게 있지는 않기 때문에, 도 7(a) 및 도 7(b)에 도시된 바와 같이, 블록 내에서 1차 참조 샘플만을 사용해서 더 많은 픽셀이 예측될수록, 구성된 예측자가 원래 블록에 더 가까울 확률이 높아진다. 도 7(a) 및 도 7(b)는 1차 참조 샘플과 구성된 예측자의 정확도 사이의 관계를 개략적으로 예시한다. 이러한 점에서, 블록 내 전체 픽셀 수에 대한 1차-1차 예측을 사용해서 생성된 픽셀 수의 비율은, BIP를 시그널링하기 위해서는 어떤 컨텍스트가 선택되어야 하는지를 결정하는 데 사용된다. 1차-1차 전파 비율은, 블록 내의 전체 픽셀 수에 대한 2개의 1차 참조들로부터 예측되는 픽셀 수의 비율이다. 도 8에 도시된 바와 같이, 1차-1차 전파 비율이 1차 임계값 미만이면, BIP는 디스에이블되고 대응하는 플래그는 시그널링되지 않는다. 1차-1차 전파 비율이 2차 임계값을 초과하면, BIP가 디폴트로 사용되며 대응하는 플래그는 시그널링되지 않는다. 1차-1차 전파 비율이 제 1 임계값과 제 2 임계값 사이에 있을 때, BIP는 CABAC 컨텍스트를 사용해서 시그널링된다. 이하, 다양한 시나리오에 대해 자세하게 설명한다.
BIP가 디스에이블되고 대응하는 플래그는 신호되지 않는다.
폭 w 및 높이 h를 가진 블록이 모드 IIPM을 사용해서 인트라 예측되는 경우, 다음 조건 중 하나라도 참이면, BIP는 디스에이블되고 대응하는 플래그는 시그널링되지 않는다.
- 이웃 픽셀의 상측은 사용 불가능하다.
- 이웃 픽셀의 좌측 및 우측은 사용 불가능하다.
- w=최소 크기이고, h=최소 크기이며, 예를 들어 최소 크기는 4이다.
o w>제 1 최대 임계값이며, 예를 들어 제 1 최대 임계값은 32이다.
o h>제 2 최대 임계값이며, 예를 들어 제 2 최대 임계값은 32이다.
- 좌측 또는 우측만 사용 가능하며 다음 중 하나가 참이다.
o w=최소 크기이고, 인트라 예측 모드의 수가 수평 인트라 예측 모드의 수와 제 3 임계값 이하만큼 상이하다. 혹은
o h=최소 크기이고, 인트라 예측 모드의 수가 수직 인트라 예측 모드의 수와 제 4 임계값 이하만큼 상이하다. 제 3 임계값은 제 4 임계값과 동일할 수도 있고 상이할 수도 있다. 예를 들어, 제 3 임계값은 제 4 임계값과 동일하며 5일 수 있다.
- 이웃 픽셀의 좌측 및 우측을 사용 가능하며,
o IIPM=47(인트라 예측 방향이 수평임), 또는
o IIPM가 범위 시작 값보다 작거나 혹은 IIPM가 범위 종료 값보다 크다. 주어진 블록 종횡비, 즉 log2(w)-log2(h)에 대한 시작 값 및 종료 값이 표 1에 명시되어 있다.
- IIPM>2(인트라 예측은 각도(angular))
이웃 픽셀의 상측은 현재 코딩 블록의 상측에 있는 기본 참조 샘플을 의미한다. 이에 따라, 이웃 픽셀의 좌측 및 상측은 현재 코딩 블록의 좌측 및 상측에 있는 1차 참조 샘플을 의미한다. 이웃 픽셀의 우측 및 상측은 현재 코딩 블록의 우측 및 상측에 있는 1차 참조 샘플을 의미한다.
Figure pct00001
도 9는, 인트라 예측에 상측 참조 샘플(LR_00) 행만 이용 가능하고 이웃 픽셀의 좌측 및 우측은 이용할 수 없기 때문에 BIP가 디스에이블되는, 예시적인 시나리오를 나타낸다.
BIP는 디폴트로 사용되고 대응하는 플래그는 시그널링되지 않는다.
BIP는 디폴트로 종래의 인트라 예측을 대체하며, 추가 참조 픽셀이 이용 가능하고 인트라 예측 모드가 특정한 하위 범위(sub-range)에 속하는 경우, 대응하는 플래그는 시그널링되지 않는다.
예를 들어, 도 10에 도시된 바와 같이, 범위는, 표 2에 나타난 수평(HOR) 인트라 예측 모드 번호(47) 및 최종(ultimate) 인트라 예측 모드 번호로 명시되며, 이는 블록 종횡비에 의존한다.
Figure pct00002
표 2에 나타난 IIPM_TL는, 좌상단 블록에 대해 선택된 모드 IIPM를 사용한 인트라 예측을 나타낸다. IIPM_LL는 좌하 블록에 대해 선택된 모드 IIPM를 사용한 인트라 예측을 나타낸다.수평 인트라 예측과 정렬된 범위 이외에, 좌하 측부가 이용 가능한 경우에 추가적인 범위가 명시된다(도 10의 가장 우측 부분 참조). 이 경우의 범위는 사용 가능한 제 1 각도 인트라 예측 모드(# 3)와 표 3으로부터의 대응하는 값에 의해 정의된다.
Figure pct00003
표 3에 나타난 IIPM_TR은 우상단 블록에 대해 선택된 모드 IIPM를 사용한 인트라 예측을 나타낸다. 위에서 설명한 경우 외에, 다음 경우에도 BIP는 종래의 인트라 예측을 대체하며 대응하는 플래그는 시그널링되지 않는다.
- 좌하 측부와 우상 측부가 이용 가능하며, 인트라 예측 모드는 표 3에 명시된 것 혹은 표 2에 명시된 것과 동일하다.
- 우하 측부 및 좌상 측부가 이용 가능하며, 인트라 예측 모드는 표 2에 명시된 것과 동일하다.
표 2 및 표 3에 열거된 인트라 예측 모드 번호가 도 11에 도시되어 있다. 도 11에서, IIPM_LA는 마지막-이용 가능 인트라 예측 방향에 대한 인트라 예측 모드 IIPM를 나타내고, IIPM_FA는 최초-이용 가능 인트라 예측 방향에 대한 인트라 예측 모드 IIPM를 나타낸다. 인트라 예측 모드 번호는 IIPM_FA부터 IIPM_LA까지 오름차순으로 정렬된다. 수평(HOR) 및 수직(VER) 방향 모드(각각 IIPM_HOR 및 IIPM_VER)는 블록 종횡비 RA에 의존하지 않는다. 도 11에 도시된 나머지 인트라 예측 모드 번호는 표 2 및 표 3에 주어진 RA에 대해 의존성을 갖는다.
도 12는, 이웃 픽셀의 상측뿐 아니라 좌측 및 우측(3 측부)도 이용 가능하기 때문에 BIP가 디폴트로 사용되는 시나리오의 예를 나타낸다.
BIP는 CABAC 컨텍스트(또는 확률 모델)를 사용해서 시그널링된다.
"BIP는 디스에이블되고 대응하는 플래그는 시그널링되지 않는다"는 단락에서 설명된 과정과 "BIP는 디폴트로 사용되고 대응하는 플래그는 시그널링되지 않는다"는 단락에서 설명된 과정이 모두 유효하지 않은 경우, BIP 플래그에 대해 컨텍스트 선택 프로세스가 수행된다. 예시적인 컨텍스트 선택 프로세스의 흐름도가 도 13에 제공된다. 이 프로세스의 입력은 흐름도의 제 1 단계(블록 1302)에서 제공된다.
이는,
· 블록에 대해 선택된 인트라 예측 모드(IIPM),
· 블록 폭(w) 및 높이(h),
· 이웃 픽셀 S의 사용 가능한 측부의 세트, 즉 좌측(s L), 우측(s R), 상측(s T), 좌하측(s LL), 우하측(s LR) 및 우상측(s TR)
를 포함한다.
확률 모델에 대해, 예를 들어 낮은 신뢰도 예측(CTXLR로 표시됨), 중간 신뢰도 예측(CTXMR로 표시됨) 및 매우 높은 신뢰도 예측(CTXHR로 표시됨) 케이스들과 같이, 서로 다른 컨텍스트가 명시될 수 있다. 디폴트 컨텍스트는 중간 신뢰도 컨텍스트이다. 예측의 신뢰도는 BIP 플래그가 0일 확률에 영향을 미치며, 이는 IIPM 상기 나열한 최종 모드 중 하나에 얼마나 가까운지에 의해 추정될 수 있다. 이들 모드는 다음 단계에서 계산되는 블록의 종횡비에 따라 결정된다(블록 1304). RA=log2(w)-log2(h)와 같은 종횡비는 블록이 수평으로 정렬된 경우(즉, 폭이 높이보다 큰 경우)에 양의 값으로 표시되고, 블록이 수직으로 정렬된 경우에 음의 값으로 표시된다. 다음 단계(블록 1306)는 표 2 및 표 3에 표시된 최종 모드를 선택하는 것이다. 예를 들어,
{IIPM_LL, IIPM_TL, IIPM_TR}=LUT(RA).
이하 설명되는 바와 같이, 컨텍스트 선택을 행하는 것에 대한 판정은,
· 좌측 및 우측이 이용 가능한지,
· 좌측이 이용 가능한지, 및/또는
· 나머지 케이스인지
에 기초해서 수행된다.
측부의 참조 샘플(S)이 이용 가능한지 여부에 따라서, 상이한 범위가 정의되고, IIPM가 이 범위에 속하는지 여부에 따라서 컨텍스트가 선택된다.
블록 1308에서 좌측 및 우측이 이용 가능하다면(
Figure pct00004
), 상측이 이용 가능하지 않고 IIPM가 도 14(a)에 도시된 바와 같은 범위에 속할 때(블록 1310), 블록 1328에서 CTXLR가 선택된다. 블록 1310에서, 상측이 이용 가능하지 않은지, IIPM가 도 14(a)에 도시된 범위에 속하는지 여부가 결정되며, 예를 들어,
Figure pct00005
이고,
(IIPM_TR <IIPM <IIPM_LT 또는 IIPM_LL<IIPM <IIPM_LA)
블록 1308에서 좌측 및 우측이 이용 가능하다면(
Figure pct00006
), 상측이 이용 가능하고 IIPM가 도 14(a)에 도시된 바와 같은 범위에 속하지 않을 때(블록 1310), 블록 1326에서 CTXMR가 선택된다.
좌측 및 상측이 이용 가능하다면, 우측이 이용 가능하지 않고 IIPM가 도 14(b)에 도시된 바와 같은 범위에 속하면, CTXMR가 선택된다.
도 14(a) 및 도 14(b)에서, 나머지 케이스이면, 블록 1312에서 추가 계산이 수행될 수 있으며, 구체적으로,
IIPM가 수평 방향과 수직 방향 사이에 있는지(조건 C), 및
최종 인트라 예측 모드와의 임계값 차이의 값(ΔIPM).
여기서,
Figure pct00007
Figure pct00008
나머지 컨텍스트 선택 프로세스가 도 13에 도시되어 있으며, 여기서 예측 신뢰도 추정에 따라서 상기 명시한 컨텍스트 중 하나를 선택한다. 블록 1314에서 좌측이 이용 가능하고, 우측은 사용 불가능할 때, 블록 1318에서 C가 참인지 즉
Figure pct00009
인지가 결정된다. 블록 1326에서 C가 참이고 즉
Figure pct00010
이면 CTXMR가 선택된다. C가 거짓이고
Figure pct00011
이면, 블록 1322에서,
Figure pct00012
혹은
Figure pct00013
인지가 결정된다. 블록 1322에서 '예'인 경우 블록 1326에서 CTXMR이 선택된다. 그렇지 않으면, 블록 1324에서 CTXHR이 선택된다.
블록 1314에서 좌측은 사용 불가능하고 우측이 이용 가능할 때, 블록 1316에서 C가 거짓인지 즉
Figure pct00014
가 결정된다. 블록 1326에서 C가 거짓이고 즉
Figure pct00015
이면 CTXMR가 선택된다. C가 참이고
Figure pct00016
이면, 블록 1320에서,
Figure pct00017
인지가 결정된다. 블록 1320에서 '예'인 경우 블록 1324에서 CTXHR가 선택된다. 그렇지 않으면 블록 1326에서 CTXMR가 선택된다.
3개 이상의 다른 컨텍스트가 있을 수 있다. 일반적으로 컨텍스트는,
- 가장 가까운 최종 인트라 예측 모드;
- I IPM와 이 최종 인트라 예측 모드 사이의 차이
의 함수로 정의될 수 있다.
따라서, 예를 들어 다수의 임계값 차이 값 ΔIPM이 도입되는 경우에, 최종 인트라 예측당 하나 이상의 컨텍스트가 제공될 수 있다.
도 15는, 인트라 예측에 상측 및 좌측(LR_10) 또는 상측 및 우측(LR_01) 참조 샘플이 이용 가능한 경우에, 컨텍스트 선택 프로세스에 의해 BIP가 사용되는 예시적인 시나리오를 나타낸다.
예시적인 인코딩 프로세스
도 16은, 도 1에 도시된 소스 장치(102) 또는 도 2에 도시된 비디오 인코더(200)에 의해 수행될 수 있는, 비트스트림을 인코딩(또는 압축)하는 방법의 예의 흐름도이다. 프로세스(1600)는 인코더의 프로세싱의 예시이다. 본 개시에 의해 도입된 인코더 측의 변경은 주로 RDO(rate-distortion Optimization) 과정을 사용하는 인트라 예측 모드의 선택과 관련된다. 이 과정은 특히 다음 블록으로 구성될 수 있다.
블록 1602에서, 인코더는 픽처의 현재 코딩 블록에 대한 후보 인트라 예측 모드의 리스트를 생성하고, 여기서 후보 인트라 예측 모드의 리스트는 적어도 하나의 BIP 모드를 포함한다.
블록 1604에서, 인코더는 예측 관련 정보에 따라 BIP 플래그가 비트스트림에 시그널링될지 여부를 결정하고, 여기서 BIP 플래그는 현재 코딩 블록에 대해 선택된 BIP 모드를 나타낸다. 예측 관련 정보는
- 이용 가능한 1차 참조 샘플의 수 및 위치,
- 인트라 예측 모드 인덱스,
- 예측되는 블록의 종횡비, 및/또는
- 예측되는 블록의 크기
를 포함한다.
비트스트림에 BIP 플래그가 시그널링될지 여부를 결정하는 예시가 상기 설명되었으며 도 1 내지 도 15에 도시되어 있다.
블록 1606에서, BIP 플래그가 비트스트림에 시그널링되지 않을 때, 인코더는 BIP 플래그의 값을 비트스트림에 코딩하지 않는다. 상기 "BIP는 디스에이블되고 대응 플래그는 시그널링되지 않음" 및 "BIP는 디폴트로 사용되고 대응 플래그가 시그널링되지 않음" 단락에서 두 가지 예를 설명했다.
블록 1608에서, BIP 플래그가 비트스트림에 시그널링될 때, 인코더는 예측 관련 정보로부터 인코딩을 위한 확률 모델을 도출한다. 이후, 블록 1610에서, 인코더는 확률 모델을 사용해서 BIP 플래그의 값을 비트스트림에 코딩한다. 이 예는 상기 "BIP는 CABAC 컨텍스트(또는 확률 모델)를 사용하여 시그널링된다" 단락에서 설명했다.
도 17은, 도 1에 도시된 소스 장치(102) 또는 도 2에 도시된 비디오 인코더(200)에 의해 수행될 수 있는, 비트스트림을 인코딩(또는 압축)하는 방법의 예의 다른 흐름도이다. 프로세스(1700)는 인코더의 프로세싱의 예이다. 본 개시에 의해 도입된 인코더 측의 변경은 주로 RDO(rate-distortion Optimization) 과정을 사용해서 인트라 예측 모드를 선택하는 것과 관련된다. 이 과정은
- 인트라 예측 잔차의 추정에 기초한 비용 추정을 사용해서 후보 인트라 예측 모드 LRC의 리스트를 마련하는 것;
- 인트라 예측 잔차의 코딩에 기초한 비용 추정을 사용해서 LRC의 리스트로부터 최상의 인트라 예측을 선택하는 것
을 포함할 수 있다.
가능한 구현 형태 중 하나는 후보 인트라 예측 모드 LRC의 리스트를 준비하는 특정한 방법을 포함한다. 인트라 예측 모드의 수 이외에, LRC의 리스트는 대응하는 인트라 예측 모드와 관련된 bip_flag의 값도 포함할 것이다. 도 17은 인트라 예측 잔차의 추정에 기초해서 비용 추정을 사용해서 후보 인트라 예측 모드 및 대응하는 bip_flag 값의 리스트를 준비하는 예시적인 흐름도를 도시한다. 흐름도(1700)에 따르면, 사용 가능한 인트라 예측 모드는 각각 0 및 1과 같은 bip_flag의 값을 갖고 2번 스캔된다. 흐름도(1700)는 또한 bip_flag가 검사되는 인트라 예측 모드 IIPM에 부합하지 않는 경우에 RDO(Rate-Distortion Optimization) 비용 추정을 생략한다.
블록 1702에서, 인코더는 현재 블록에 대해 intra_pred_list()를 생성한다. 먼저, bip_flag는 블록 1704에 나타난 바와 같이 0이고 IIPM은 블록 1706에 나타난 바와 같이 0이다.
블록 1708에서, 인코더는 bip_flag가 0인지 혹은 bip_flag가 1인지 결정한다. bip_flag가 0이면, 인코더는 블록 1710에서 BIP가 디폴트로 적용되는지 여부를 결정한다. bip_flag가 1이면, 인코더는 블록 1712에서 BIP가 인에이블되는지 여부를 결정한다.
BIP가 디폴트로 적용되지 않거나 혹은 BIP가 인에이블되는 경우, 인코더는 블록 1714에서 현재 블록의 intra_prediction 모드로서 IIPM를 사용한다. 인코더는 블록 1716에서 RDO 비용 추정을 수행한다. 이후, 인코더는 블록 1718에서 인트라 예측 잔차의 추정에 기초해서 RDO 비용 추정을 사용해서 후보 인트라 예측 모드 LRC의 리스트를 준비하며, 여기서 LRC의 리스트는 대응하는 인트라 예측 모드와 관련된 bip_flag의 값을 포함할 수 있다. 이후, 블록 1718에서, 인트라 예측 잔차의 코딩에 기초해서 비용 추정을 사용하여 LRC의 리스트로부터 최상의 인트라 예측이 선택되거나 혹은 업데이트된다.
블록 1718에서 LRC를 IIPM로 업데이트하거나, 혹은 블록 1710에서 BIP가 디폴트로 적용되거나, 혹은 블록 1712에서 BIP가 인에이블되지 않은 이후에, 인코더는 블록 1720에서 IIPM이 마지막으로 사용 가능한 인트라 예측 IIPM_LA인지 여부를 결정한다. IIPM이 마지막 사용 가능한 인트라 예측 IIPM_LA이 아닌 경우, 블록 1722에서 IIPM=IIPM+1이다. IIPM=IIPM+1 이후에, 이 처리는 블록 1708로 돌아가서 bip_flag가 0인지 또는 bip_flag가 1인지 결정한다. IIPM이 마지막 사용 가능한 인트라 예측 IIPM_LA인 경우, 인코더는 블록 1724에서 bip_flag<1인지 여부를 결정한다. 블록 1726에서 bip_flag<1이면 bip_flag=bip_flag+1이다. bip_flag=bip_flag+1 이후에, 이 처리는 블록 1706으로 돌아간다.
BIP가 인에이블되는지 여부를 결정하는 예시와 BIP가 디폴트로 적용되는지 여부를 결정하는 예시가 상기 설명되었으며 도 1 내지 도 15에 도시되어 있다.
이 실시예에서, 후보 인트라 예측 모드 LRC의 단일 리스트가 사용된다. 그러나 2개의 개별 리스트를 준비하고 2개의 리스트 중 한 쌍 {bip_flag, IIPM}을 선택할 수도 있다. 이 경우, 본 실시예는 LRC 리스트에서 최상의 인트라 예측을 선택하는 프로세스에는 여전히 영향을 미치지 않을 것이다. 도 17과의 유일한 차이점은 bip_flag 루프가 intra_pred_list 프로세스 밖에 있고, 업데이트될 리스트 LRC가 bip_flag의 입력 값에 따라서 선택된다는 것이다.
예시적인 디코딩 프로세스
도 18은, 도 1에 도시된 목적지 장치(104) 또는 도 3에 도시된 비디오 디코더(300)에 의해 수행되는, 코딩된 비트스트림을 디코딩(또는 분석 혹은 압축 해제)하기 위한 예시적인 흐름도(1800)이다. 프로세스(1800)는 디코더의 프로세싱의 예이다.
블록 1802에서, 디코더는 비트스트림을 수신하고, 여기서 비트스트림은 예측 관련 정보를 포함한다. 예측 관련 정보를
- 이용 가능한 1차 참조 샘플의 수 및 위치,
- 인트라 예측 모드 인덱스,
- 예측되는 블록의 종횡비, 및/또는
- 예측되는 블록의 크기
를 포함한다.
블록 1804에서, 디코더는 예측 관련 정보에 따라서 BIP 플래그가 비트스트림에 시그널링될지 여부를 결정하며, 여기서 BIP 플래그는 현재 코딩 블록에 대해 선택된 BIP 모드를 나타낸다.
BIP 플래그가 비트스트림에 시그널링될지 여부를 결정하는 예시가 상기 설명되었으며 도 1 내지 도 15에 도시되어 있다.
블록 1806에서, BIP 플래그가 비트스트림에 시그널링되지 않을 때, 디코더는 예측 관련 정보로부터 BIP 플래그의 값을 도출한다. 상기 "BIP는 디스에이블되고 대응 플래그는 시그널링되지 않음" 및 "BIP는 디폴트로 사용되고 대응 플래그가 시그널링되지 않음" 단락에서 두 가지 예를 설명했다.
블록 1808에서, BIP 플래그가 비트스트림에 시그널링될 때, 디코더는 예측 관련 정보로부터 디코딩을 위한 확률 모델을 도출한다. 이후, 디코더는 확률 모델을 사용해서 BIP 플래그의 값을 복구한다. 이 예는 상기 "BIP는 CABAC 컨텍스트(또는 확률 모델)를 사용하여 시그널링된다" 단락에서 설명했다.
블록 1810에서, 디코더는 BIP 플래그의 값에 기초하여 픽처를 복원한다.
도 19는, 도 1에 도시된 목적지 장치(104) 또는 도 3에 도시된 비디오 디코더(300)에 의해 수행되는, 코딩된 비트스트림을 디코딩(또는 분석 혹은 압축 해제)하기 위한 다른 예시적인 흐름도(1900)이다. 프로세스(1700)은 디코더의 프로세싱의 예이다.
비트스트림으로부터의 예측 관련 정보를 분석하는 것은 블록 1902에서 coding_unit 과정에 의해 수행된다. 다양한 심볼을 포함할 수 있지만, 인트라 예측 블록의 경우 과정(1900)에서 인트라 예측 모드가 분석되어야 한다. 본 실시예에서, 블록 1904에서 intra_luma_pred_mode가 분석된 이후에 bip_flag의 값을 조건부로 분석하는 것을 제안한다. 블록의 인트라 예측 모드, 모양 및 크기에 따라서, bip_flag의 값이 할당되거나 혹은 비트스트림에서 분석된다. 상세한 정보는 도 1 내지 도 15에서 상기 설명했다. 디코더는 블록 1906에서 BIP가 인에이블되는지 여부를 결정한다. BIP가 인에이블되지 않은 경우, 블록 1908에서 bip_flag는 거짓이다. BIP가 인에이블되면, 디코더는 블록 1910에서 BIP가 디폴트로 적용되는지 결정한다. BIP가 디폴트로 적용되면, 블록 1912에서 bip_flag는 참이다. BIP가 디폴트로 적용되지 않으면 디코더는 블록 1914에서 bip_flag를 분석한다. bip_flag 값을 디코딩할 때 블록의 인트라 예측 모드, 모양 및 크기에 기초해서 컨텍스트가 선택될 수 있다. 예시적인 컨텍스트 선택이 상기 설명되었으며 13에 도시되어 있다. BIP가 인에이블되는지 여부를 결정하는 예시와 BIP가 디폴트로 적용되는지 여부를 결정하는 예시가 상기 설명되었으며 도 1 내지 도 15에 도시되어 있다.
도 20은 네트워크 요소(2000)의 개략도이다. 네트워크 요소(2000)는 본 명세서에 설명된 개시 실시예를 구현하는데 적합하다. 네트워크 요소(2000)는 전술한 방법을 수행하기 위한 인코더 또는 디코더일 수 있다. 네트워크 요소(2000)는 데이터를 수신하기 위한 입력 포트(2010) 및 수신기 유닛(Rx)(2020); 데이터를 처리하는 프로세서, 로직 유닛 또는 중앙 처리 장치(CPU)(2030); 데이터를 전송하기 위한 송신기 유닛(Tx)(2040) 및 출력 포트(2050); 및 데이터를 저장하기 위한 메모리(2060)를 포함한다. 네트워크 요소(2000)는 광학 신호 또는 전기 신호의 입력 및 출력을 위해서 입력 포트(2010), 수신기 유닛(2020), 송신기 유닛(2040) 및 출력 포트(2050)에 연결된 광-전기(OE) 컴포넌트 및 전기-광(EO) 컴포넌트를 포함할 수 있다.
프로세서(2030)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(2030)는 하나 이상의 CPU 칩, 코어(예를 들어, 멀티 코어 프로세서), FPGA(field-programmable gate array), ASIC(application specific integrated circuits) 및 DSP(digital signal processor)로 구현될 수 있다. 프로세서(2030)는 입력 포트(2010), 수신기 유닛(2020), 송신기 유닛(2040), 출력 포트(2050) 및 메모리(2060)와 통신한다. 프로세서(2030)는 코딩 모듈(2070)을 포함한다. 코딩 모듈(2070)은 전술한 개시된 실시예를 구현한다. 예를 들어, 코딩 모듈(2070)은 마지막 코딩 또는 예측 블록을 압축/압축 해제하는 방법을 구현한다. 따라서 코딩 모듈(2070)을 포함함으로써, 네트워크 요소(2000)의 기능을 실질적으로 개선하고, 네트워크 요소(2000)를 다른 상태로 변환하는데 영향을 미친다. 다른 방안으로, 코딩 모듈(2070)은 메모리(2060)에 저장되고 프로세서(2030)에 의해 실행되는 명령어로서 구현된다.
메모리(2060)는 하나 이상의 디스크, 테이프 드라이브 또는 고체-상태 드라이브를 포함하고, 이는 오버 플로우 데이터 저장 장치로서 사용되어서 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 동안에 판독되는 명령어 및 데이터를 저장하는 데 사용될 수 있다. 메모리 (660)는 휘발성 및/또는 비휘발성일 수 있고, 판독-전용 메모리(ROM), 랜덤 액세스 메모리(RAM), TCAM (ternary content-addressable memory) 및/또는 SRAM(static random-access memory)일 수 있다.
본 명세서에 개시된 기술은 양방향 인트라 예측 모드가 시그널링되지 않고 디폴트로 사용된다는 것을 결정하거나 혹은 양방향 인트라 예측 모드가 시그널링되지 않고 사용되지 않는다고 결정하는데 오버 헤드를 절감할 수 있다. 양방향 인트라 예측 모드가 상이한 컨텍스트에 기초해서 시그널링되는 경우에도, 이 기술은 BIP의 신뢰성을 높일 수 있다. BIP 모드는 DWDIP 모드일 수 있다. 따라서, BIP 플래그는 DWDIP 플래그일 수 있다.
이 기술은 또한 다음과 같은 측면에서도 유용할 수 있다.
- 인코더 및 디코더 모두에서 계산 복잡성 증가를 무시할 수 있는 FBCO를 이용해서, 파티셔닝 프레임워크 내에서 BIP의 압축 성능을 증가시킨다.
- 이는 최신 비디오 코딩 프레임 워크 및 차세대 비디오 코딩 프레임 워크 각각인, HM 소프트웨어 및 VPX 비디오 코덱 패밀리는 물론 JEM 소프트웨어, VPX/AV1 비디오 코덱 제품군 및 기타 유사한 플랫폼과 호환되는 하이브리드 비디오 코딩 패러다임의 많은 잠재적 응용 분야에서 사용될 수 있다.
- 양방향 예측이 단방향 예측보다 적은 RDO 비용을 제공하는 확률의 추정이, 예측 관련 정보를 이용해서 개선된다. 보다 정확한 확률 모델링을 통해서 엔트로피 인코딩의 효율을 높이고, 그 결과 비트레이트를 감소시킨다.
또한, 본 개시 내용의 특정한 특징 또는 측면이 다수의 구현예 또는 실시예 중 하나에만 대해서 설명될 수 있으나, 임의의 주어진 응용예 혹은 특정 응용예에 대하여 요구되거나 혹은 바람직할 수 있는 등, 이러한 특징 또는 측면은 다른 구현예 또는 실시예의 하나 이상의 다른 특징 또는 특징과 조합될 수 있다. 나아가, 용어 "포함한다", "갖는다", "갖는" 또는 이들의 파생어가 상세한 설명이나 특허 청구 범위 중 어느 하나에서 사용된다면, 이들이 용어 "포함하는"과 유사한 방식으로 포함적인 것으로 간주해야 한다. 또한, 용어 "예시적인", "예를 들어" 및 "예"는 최선 또는 최적이기 보다는 단지 일례이다. 용어 "연결" 및 "접속"은 그 파생어와 함께 사용될 수 있다. 이들 용어는 직접적인 물리적 접촉인지 또는 전기적 접촉인지 여부 또는 서로 직접 접촉하지 않는지 여부에 관계없이 2개의 요소가 서로 함께 동작하거나 인터렉트하는 것을 나타내는 데 사용될 수 있다는 것을 이해해야 한다.
특정 측면들이 본 명세서에 예시되고 설명되었지만, 다양한 대안 및/또는 등가의 구현예가 본 개시 내용의 범위를 벗어나지 않고도 도시되고 설명된 특정한 측면으로 대체될 수 있다는 것을 본 기술 분야의 통상의 기술자들은 이해할 것이다. 본 출원은 본 명세서에서 논의된 특정한 측면의 임의의 개조 또는 변형예를 포함하도록 의도된다.
이하의 청구 범위의 요소들을 대응하는 라벨링을 이용해서 특정 시퀀스로 설명했지만, 별도로 청구 범위의 설명이 이들 요소의 일부 또는 전부를 구현하는 특정한 시퀀스임을 나타내지 않는 한, 이들 요소가 반드시 이 특정 시퀀스에 구현되는 것으로 제한하고자 하는 것은 아니다.
많은 대안, 수정 및 변경이 상기 교시 내용의 관점에서 본 기술 분야의 통상의 기술자에게 명백할 것이다. 물론, 본 기술 분야의 통상의 기술자는 본 명세서에서 설명된 바를 넘어서 본 발명의 다수 애플리케이션이 있다는 것을 쉽게 인식한다. 본 발명이 하나 이상의 특정 실시예를 참조로 설명되었지만, 본 기술 분야의 통상의 기술자는 본 발명의 범위를 벗어나지 않고도 많은 변경이 이루어질 수 있다는 것을 인식할 것이다. 따라서, 첨부된 청구 범위 및 등가물의 범위 내에서, 본 발명이 본 명세서에 구체적으로 설명된 것과 다르게 실시될 수 있다는 것을 이해해야 한다.

Claims (24)

  1. 픽처를 인코딩하는 방법으로서,
    상기 픽처를 복원하기 위해 비트스트림을 생성하는 단계를 포함하며, 상기 방법은,
    상기 픽처의 현재 코딩 블록에 대한 후보 인트라 예측 모드의 리스트를 생성하는 단계 - 상기 후보 인트라 예측 모드의 리스트는 적어도 하나의 BIP(bidirectional intra prediction; 양방향 인트라 예측) 모드를 포함함 - 와,
    예측 관련 정보에 따라서 상기 비트스트림에 BIP 플래그가 시그널링되어야 하는지 결정하는 단계 - 상기 BIP 플래그는 상기 현재 코딩 블록에 대해 선택된 BIP 모드를 나타내며, 상기 예측 관련 정보는 이용 가능한 1차 참조 샘플의 수 및 위치, 인트라 예측 모드 인덱스, 또는 상기 현재 코딩 블록의 크기 중 적어도 하나를 포함함 - 와,
    상기 BIP 플래그가 비트스트림에 시그널링되는 경우에, 상기 예측 관련 정보로부터 인코딩을 위한 확률 모델을 도출하고, 상기 확률 모델을 사용해서 상기 BIP 플래그의 값을 상기 비트스트림에 코딩하는 단계와,
    상기 BIP 플래그가 비트스트림에 시그널링되지 않는 경우에, 상기 BIP 플래그의 값을 상기 비트스트림에 코딩하지 않는 단계
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 BIP 플래그가 시그널링되어야 하는지 결정하는 단계는,
    상기 BIP가 인에이블되고 상기 BIP 플래그가 디폴트로 적용되며 상기 비트스트림에 시그널링되지 않는다고 결정하는 단계; 또는
    상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 단계
    를 포함하는
    방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 이용 가능한 1차 참조 샘플의 수 및 위치에 따라서 상기 BIP 플래그가 시그널링되어야 하는지 결정하는 것은,
    상기 현재 코딩 블록의 상측에 있는 1차 참조 샘플이 사용 불가능할 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것, 또는
    상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 사용 불가능할 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것
    을 포함하는
    방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 현재 코딩 블록의 크기에 따라서, 상기 BIP 플래그가 시그널링되어야 하는지 결정하는 것은,
    상기 현재 코딩 블록의 폭과 높이가 모두 최소 크기와 같을 때, 혹은 상기 현재 코딩 블록의 상기 폭이 제 1 최대 임계값보다 클 때, 혹은 상기 현재 코딩 블록의 높이가 제 2 최대 임계값보다 클 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것
    을 포함하는
    방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 이용 가능한 1차 참조 샘플의 수 및 위치, 및 상기 인트라 예측 모드 인덱스에 따라서 상기 BIP 플래그가 시그널링되어야 하는지 결정하는 것은,
    상기 인트라 예측 모드 인덱스가 범위 시작 값보다 작거나 범위 종료 값보다 클 때, 및 상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 이용 가능할 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것 - 상기 범위 시작 값 및 상기 범위 종료 값은 상기 현재 코딩 블록의 폭 및 높이를 사용해서 결정됨 - , 또는
    상기 현재 코딩 블록의 좌측 또는 우측에 있는 1차 참조 샘플만 이용 가능할 때 및 상기 현재 코딩 블록의 폭이 최소 크기와 같고 상기 인트라 예측 모드의 수가 수평 인트라 예측 모드의 수와 제 1 임계값 이하만큼 상이한 것과 상기 현재 코딩 블록의 높이가 최소 크기와 같고 상기 인트라 예측 모드의 수가 수직 인트라 예측 모드의 수와 제 2 임계값 이하만큼 상이한 것 중 하나가 참일 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것
    을 포함하는
    방법.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 이용 가능한 1차 참조 샘플의 수 및 위치, 및 상기 인트라 예측 모드 인덱스에 따라서 상기 BIP 플래그가 시그널링되어야 하는지 결정하는 것은,
    상기 인트라 예측 모드 인덱스가 범위 시작 값보다 크고 범위 종료 값보다 작을 때 및 상기 현재 코딩 블록의 하측 또는 상측에 있는 1차 참조 샘플이 이용 가능할 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 디폴트로 사용되고 상기 비트스트림에 시그널링되지 않는다고 결정하는 것 - 상기 범위 시작 값 및 상기 범위 종료 값은 상기 현재 코딩 블록의 폭 및 높이를 사용해서 결정됨 -
    을 포함하는
    방법.
  7. 제 1 항에 있어서,
    상기 BIP 플래그가 시그널링되어야 하는지 결정하는 단계는, 상기 BIP의 신뢰도를 결정하는 단계를 포함하고,
    상기 BIP의 신뢰도는 낮은 신뢰도 예측(CTXLR), 중간 신뢰도 예측(CTXMR) 또는 높은 신뢰도 예측(CTXHR)을 포함하는
    방법.
  8. 제 7 항에 있어서,
    상기 BIP의 신뢰도를 결정하는 단계는,
    상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 사용 가능하고, 상기 현재 코딩 블록의 상기 상측에 있는 1차 참조 샘플이 사용 불가능하며, IIPM가 제 1 사전 정의된 범위에 속할 때, 상기 BIP의 신뢰도를 CTXLR로 결정하는 단계
    를 포함하는
    방법.
  9. 제 7 항에 있어서,
    상기 BIP의 신뢰도를 결정하는 단계는,
    상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 사용 가능하고, 상기 현재 코딩 블록의 우측에 있는 1차 참조 샘플이 사용 불가능하며, IIPM가 제 2 사전 정의된 범위에 속할 때, 상기 BIP의 신뢰도를 CTXHR로 결정하는 단계
    를 포함하는
    방법.
  10. 제 7 항에 있어서,
    상기 BIP의 신뢰도를 결정하는 단계는,
    상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 사용 가능하고, 상기 현재 코딩 블록의 상측에 있는 1차 참조 샘플이 사용 가능한 것과, IIPM가 제 1 사전 정의된 범위에 속하지 않는 것 중 하나가 참일 때, 상기 BIP의 신뢰도를 CTXMR로 결정하는 단계
    를 포함하는
    방법.
  11. 픽처의 현재 코딩 블록의 인트라 예측 방법으로서,
    비트스트림을 수신하는 단계 - 상기 비트스트림은 예측 관련 정보를 포함하고, 상기 예측 관련 정보는 이용 가능한 1차 참조 샘플의 수 및 위치, 인트라 예측 모드 인덱스, 또는 현재 코딩 블록의 크기 중 적어도 하나를 포함함 - 와,
    상기 예측 관련 정보에 기초해서 상기 비트스트림에 BIP 플래그가 시그널링되는지 결정하는 단계와,
    상기 BIP 플래그가 시그널링되지 않는 경우, 상기 예측 관련 정보로부터 상기 BIP 플래그의 값을 도출하는 단계와,
    상기 BIP 플래그가 시그널링되는 경우, 상기 예측 관련 정보로부터 확률 모델을 도출해서 상기 픽처를 복구하는 단계와,
    상기 BIP 플래그의 상기 값에 기초해서 상기 픽처를 복원하는 단계
    를 포함하는 방법.
  12. 제 11 항에 있어서,
    상기 BIP 플래그가 시그널링되는지를 결정하는 단계는,
    상기 BIP가 인에이블되고 상기 BIP 플래그가 디폴트로 적용되며 상기 비트스트림에 시그널링되지 않는다고 결정하는 단계; 또는
    상기 BIP가 디스에이블되고, 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 단계
    를 포함하는
    방법.
  13. 제 11 항 또는 제 12 항에 있어서,
    상기 예측 관련 정보는 이용 가능한 1차 참조 샘플의 수 및 위치를 포함하고,
    상기 BIP 플래그가 시그널링되는지 결정하는 것은,
    상기 현재 코딩 블록의 상측에 있는 1차 참조 샘플이 사용 불가능할 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것, 또는
    상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 사용 불가능할 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것
    을 포함하는
    방법.
  14. 제 11 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 예측 관련 정보는 상기 현재 코딩 블록의 크기를 포함하고,
    상기 BIP 플래그가 시그널링되는지 결정하는 것은,
    상기 현재 코딩 블록의 폭과 높이가 모두 최소 크기와 같을 때, 혹은 상기 현재 코딩 블록의 상기 폭이 제 1 최대 임계값보다 클 때, 혹은 상기 현재 코딩 블록의 높이가 제 2 최대 임계값보다 클 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것
    을 포함하는
    방법.
  15. 제 11 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 예측 관련 정보는 상기 이용 가능한 1차 참조 샘플의 수 및 위치, 및 인트라 예측 모드 인덱스를 포함하고,
    상기 BIP 플래그가 시그널링되는지 결정하는 것은,
    상기 인트라 예측 모드 인덱스가 범위 시작 값보다 작거나 범위 종료 값보다 클 때 및 상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 이용 가능할 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것 - 상기 범위 시작 값 및 상기 범위 종료 값은 상기 현재 코딩 블록의 폭 및 높이를 사용해서 결정됨 - , 또는
    상기 현재 코딩 블록의 좌측 또는 우측에 있는 1차 참조 샘플만 이용 가능할 때 및 상기 현재 코딩 블록의 폭이 4이고 상기 인트라 예측 모드의 수가 수평 인트라 예측 모드의 수와 제 1 임계값 이하만큼 상이한 것과 상기 현재 코딩 블록의 높이가 4이고 상기 인트라 예측 모드의 수가 수직 인트라 예측 모드의 수와 제 2 임계값 이하만큼 상이한 것 중 하나가 참일 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 상기 비트스트림에 시그널링되지 않는다고 결정하는 것
    을 포함하는
    방법.
  16. 제 11 항 또는 제 12 항에 있어서,
    상기 예측 관련 정보는 상기 이용 가능한 1차 참조 샘플의 수 및 위치, 및 인트라 예측 모드 인덱스를 포함하고,
    상기 BIP 플래그가 시그널링되는지 결정하는 것은,
    상기 인트라 예측 모드 인덱스가 범위 시작 값보다 크고 범위 종료 값보다 작을 때 및 상기 현재 코딩 블록의 하측 또는 상측에 있는 1차 참조 샘플이 이용 가능할 때, 상기 BIP가 디스에이블되고 상기 BIP 플래그가 디폴트로 사용되며 상기 비트스트림에 시그널링되지 않는다고 결정하는 것 - 상기 범위 시작 값 및 상기 범위 종료 값은 상기 현재 코딩 블록의 폭 및 높이를 사용해서 결정됨 -
    을 포함하는
    방법.
  17. 제 11 항에 있어서,
    상기 BIP 플래그가 시그널링되는지 결정하는 단계는, 상기 예측 관련 정보에 따라서 상기 BIP의 신뢰도를 결정하는 단계를 포함하고,
    상기 BIP의 신뢰도는 낮은 신뢰도 예측(CTXLR), 중간 신뢰도 예측(CTXMR) 또는 높은 신뢰도 예측(CTXHR)을 포함하는
    방법.
  18. 제 17 항에 있어서,
    상기 BIP의 신뢰도를 결정하는 단계는,
    상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 사용 가능하고, 상기 현재 코딩 블록의 상기 상측에 있는 1차 참조 샘플이 사용 불가능하며, IIPM가 제 1 사전 정의된 범위에 속할 때, 상기 BIP의 신뢰도를 CTXLR로 결정하는 단계
    를 포함하는
    방법.
  19. 제 17 항에 있어서,
    상기 BIP의 신뢰도를 결정하는 단계는,
    상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 사용 가능하고, 상기 현재 코딩 블록의 우측에 있는 1차 참조 샘플이 사용 불가능하며, IIPM가 제 2 사전 정의된 범위에 속할 때, 상기 BIP의 신뢰도를 CTXHR로 결정하는 단계
    를 포함하는
    방법.
  20. 제 17 항에 있어서,
    상기 BIP의 신뢰도를 결정하는 단계는,
    상기 현재 코딩 블록의 좌측 및 우측에 있는 1차 참조 샘플이 사용 가능하고, 상기 현재 코딩 블록의 상측에 있는 1차 참조 샘플이 사용 가능한 것과, IIPM가 제 1 사전 정의된 범위에 속하지 않는 것 중 하나가 참일 때, 상기 BIP의 신뢰도를 CTXMR로 결정하는 단계
    를 포함하는
    방법.
  21. 제 11 항 내지 제 20 항 중 어느 한 항에 있어서,
    상기 BIP 모드는 DWDIP(distance-weighted direction intra prediction) 모드이고,
    상기 BIP 플래그는 DWDIP 플래그인
    방법.
  22. 제 1 항 내지 제 10 항 중 어느 한 항에 따른 방법을 수행하는 처리 회로를 포함하는 인코더(108; 200).
  23. 제 11 항 내지 제 21 항 중 어느 한 항에 따른 방법을 수행하는 처리 회로를 포함하는 디코더(116; 300).
  24. 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 프로그램이 컴퓨팅 장치에서 실행될 때, 제 1 항 내지 제 10 항 중 어느 한 항 또는 제 11 항 내지 제 21 항 중 어느 한 항에 따른 방법을 수행하는
    컴퓨터 프로그램 제품.
KR1020207030528A 2018-03-29 2019-03-28 양방향 인트라 예측 시그널링 KR102407912B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
RUPCT/RU2018/000206 2018-03-29
RU2018000206 2018-03-29
PCT/EP2019/057838 WO2019185781A1 (en) 2018-03-29 2019-03-28 Bidirectional intra prediction signalling

Publications (2)

Publication Number Publication Date
KR20200132985A true KR20200132985A (ko) 2020-11-25
KR102407912B1 KR102407912B1 (ko) 2022-06-10

Family

ID=66102044

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207030528A KR102407912B1 (ko) 2018-03-29 2019-03-28 양방향 인트라 예측 시그널링

Country Status (8)

Country Link
US (1) US11323695B2 (ko)
EP (1) EP3777171A1 (ko)
JP (1) JP7086208B2 (ko)
KR (1) KR102407912B1 (ko)
CN (1) CN111937389B (ko)
BR (1) BR112020019831A2 (ko)
SG (1) SG11202009565SA (ko)
WO (1) WO2019185781A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2020012688A (es) 2018-06-27 2021-02-15 Kt Corp Metodo y aparato para procesar se?ales de video.
CN118694750A (zh) * 2021-05-21 2024-09-24 华为技术有限公司 编解码方法、装置、设备、存储介质及计算机程序
WO2023284695A1 (en) * 2021-07-14 2023-01-19 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130094581A1 (en) * 2010-01-07 2013-04-18 Akiyuki Tanizawa Moving-picture encoding apparatus and moving-picture decoding apparatus
US20130114668A1 (en) * 2011-11-07 2013-05-09 Sharp Laboratories Of America, Inc. Video decoder with enhanced cabac decoding
KR20130109976A (ko) * 2010-05-30 2013-10-08 엘지전자 주식회사 향상된 인트라 예측 모드 시그날링
KR20180030791A (ko) * 2015-07-20 2018-03-26 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179734B (zh) * 2006-11-28 2010-09-15 腾讯科技(深圳)有限公司 一种视频压缩的帧内预测方法和系统
CN101267567A (zh) * 2007-03-12 2008-09-17 华为技术有限公司 帧内预测、编解码方法及装置
CN102685506B (zh) * 2011-03-10 2015-06-17 华为技术有限公司 帧内预测的方法和预测装置
US20130287093A1 (en) * 2012-04-25 2013-10-31 Nokia Corporation Method and apparatus for video coding
JP2014022787A (ja) * 2012-07-12 2014-02-03 Canon Inc 画像符号化装置、画像符号化方法
CN106162197B (zh) * 2016-08-31 2019-07-12 北京奇艺世纪科技有限公司 一种视频编码帧内预测方法和装置
WO2018070898A1 (en) 2016-10-14 2018-04-19 Huawei Technologies Co., Ltd Devices and methods for video coding
WO2018070897A1 (en) 2016-10-14 2018-04-19 Huawei Technologies Co., Ltd. Devices and methods for video coding
KR102227411B1 (ko) 2016-10-14 2021-03-11 후아웨이 테크놀러지 컴퍼니 리미티드 거리 가중 양지향성 인트라 예측

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130094581A1 (en) * 2010-01-07 2013-04-18 Akiyuki Tanizawa Moving-picture encoding apparatus and moving-picture decoding apparatus
KR20130109976A (ko) * 2010-05-30 2013-10-08 엘지전자 주식회사 향상된 인트라 예측 모드 시그날링
US20130114668A1 (en) * 2011-11-07 2013-05-09 Sharp Laboratories Of America, Inc. Video decoder with enhanced cabac decoding
KR20180030791A (ko) * 2015-07-20 2018-03-26 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치

Also Published As

Publication number Publication date
SG11202009565SA (en) 2020-10-29
BR112020019831A2 (pt) 2021-01-05
CN111937389B (zh) 2022-01-14
US11323695B2 (en) 2022-05-03
JP7086208B2 (ja) 2022-06-17
JP2021517423A (ja) 2021-07-15
WO2019185781A1 (en) 2019-10-03
EP3777171A1 (en) 2021-02-17
US20210014482A1 (en) 2021-01-14
KR102407912B1 (ko) 2022-06-10
CN111937389A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
RU2715010C1 (ru) Способ и устройство кодирования и декодирования изображения с использованием межкадрового прогнозирования
US11323695B2 (en) Bidirectional intra prediction signaling
WO2020042630A1 (zh) 一种视频图像预测方法及装置
CN112673633A (zh) 合并模式的编码器、解码器及对应方法
CN114845102A (zh) 光流修正的提前终止
US11496754B2 (en) Video encoder, video decoder, and corresponding method of predicting random access pictures
CN115733974A (zh) 视频图像编码方法以及用于对视频数据进行编码的设备
US11516470B2 (en) Video coder and corresponding method
US11539953B2 (en) Apparatus and method for boundary partition
CN112352434B (zh) 用于帧内预测的基于宽高比滤波的方法和装置
CN112136327B (zh) 用于边界分割的方法和装置
US20230011286A1 (en) Spatial neighbor based affine motion derivation
WO2020181476A1 (zh) 视频图像预测方法及装置
US11805250B2 (en) Performing intra-prediction using intra reference sample filter switching
EP3886438A1 (en) Flag bit context modeling method and device
US20240259554A1 (en) Candidate derivation for affine merge mode in video coding
US20240214587A1 (en) Candidate derivation for affine merge mode in video coding
US20240283921A1 (en) Candidate derivation for affine merge mode in video coding
US20240267546A1 (en) Candidate derivation for affine merge mode in video coding
JP2024523534A (ja) 動きベクトル改良による幾何区画モード
CN118266210A (zh) 用于基于上下文的自适应二进制算术编码的概率计算的方法和设备
CN118176724A (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