KR102273418B1 - 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 - Google Patents

비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102273418B1
KR102273418B1 KR1020187030567A KR20187030567A KR102273418B1 KR 102273418 B1 KR102273418 B1 KR 102273418B1 KR 1020187030567 A KR1020187030567 A KR 1020187030567A KR 20187030567 A KR20187030567 A KR 20187030567A KR 102273418 B1 KR102273418 B1 KR 102273418B1
Authority
KR
South Korea
Prior art keywords
picture
boundary
decoding
frame
layer
Prior art date
Application number
KR1020187030567A
Other languages
English (en)
Other versions
KR20180124972A (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 노키아 테크놀로지스 오와이
Priority to KR1020217020305A priority Critical patent/KR102567284B1/ko
Publication of KR20180124972A publication Critical patent/KR20180124972A/ko
Application granted granted Critical
Publication of KR102273418B1 publication Critical patent/KR102273418B1/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/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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/15Processing image signals for colour aspects of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • 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/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/55Motion estimation with spatial constraints, e.g. at image or region borders
    • 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/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
    • 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

Landscapes

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

Abstract

압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 단계 - 상기 인코딩은 결과적으로 재구성된 제 1 픽처를 또한 생성하고 구성 프레임은 제 1 재구성된 픽처 내에 유효 픽처 영역을 가짐 - 와, 상기 인코딩의 일부로서 다음 중 하나를 수행하는 단계를 포함하되, 다음 중 하나는, 유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 재구성된 제 1 픽처에서 구성 프레임에 대한 경계 확장부를 형성하는 단계, 또는 유효 픽처 영역 외부의 샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 단계인 방법이 제공된다. 또한, 인코딩된 픽처를 수신하는 단계와, 유효 픽처 영역을 갖는 픽처의 재구성된 구성 프레임을 형성하기 위해 인코딩된 픽처를 디코딩하는 단계와, 다음 중 어느 하나를 수행하는 단계를 포함하되, 다음 중 어느 하나는, 패딩된 참조 픽처를 생성하기 위해 유효 픽처 영역 외부의 영역을 채우는 단계 - 채워진 영역은 경계 확장부를 형성함 -, 또는 디코딩 시 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 샘플 위치가 유효 픽처 영역 내에 있도록 포화되거나 랩핑 오버되는 것을 결정하는 단계인 방법이 제공된다.

Description

비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
본 발명은 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
이 단원은 청구범위에 열거된 본 발명의 배경 또는 맥락을 제공하려는 것이다. 본 명세서의 설명은 추구될 수 있는 개념을 포함할 수 있지만, 반드시 이전에 인식되었거나 추구되었던 개념은 아니다. 그러므로 본 명세서에서 달리 지적되지 않는 한, 본 단원에 설명된 것은 본 출원의 설명 및 청구범위에 대한 선행 기술이 아니며, 이 단원에 포함됨으로써 선행 기술인 것으로 인정되지 않는다.
비디오 코딩 시스템은 입력 비디오를 저장/전송에 적합한 압축된 표현으로 변환하는 인코디드 및 압축된 비디오 표현을 볼 수 있는 형태로 다시 압축 해제할 수 있는 디코더를 포함할 수 있다. 인코더는 비디오를 더 압축된 형태로 표현하기 위해, 예를 들면, 그렇지 않았더라면 필요했을 수도 있었던 것보다 낮은 비트레이트로 비디오 정보의 저장/전송을 가능할 수 있게 하기 위해, 원래 비디오 시퀀스 내의 일부 정보를 폐기한다.
일부 실시예는 비디오 정보를 인코딩 및 디코딩하기 위한 방법을 제공한다. 본 발명의 일부 실시예에서, 비디오 코딩을 위한 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다.
제 1 양태에 따른 방법은,
인코딩된 픽처를 수신하는 단계와,
유효 픽처 영역을 갖는 픽처의 재구성된 구성 프레임을 형성하기 위해 인코딩된 픽처를 디코딩하는 단계와,
다음 중 어느 하나를 수행하는 단계를 포함하되, 다음 중 어느 하나는,
패딩된 참조 픽처를 생성하기 위해 유효 픽처 영역 외부의 영역을 채우는 단계 - 채워진 영역은 경계 확장부를 형성함 -, 또는
디코딩 시 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 샘플 위치가 유효 픽처 영역 내에 있도록 포화되거나 랩핑 오버(wrapped over)되는 것을 결정하는 단계이다.
제 2 양태에 따른 장치는 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함 - 상기 적어도 하나의 메모리에는 코드가 저장됨 - 하고, 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
인코딩된 픽처를 수신하는 것과,
유효 픽처 영역을 갖는 픽처의 재구성된 구성 프레임을 형성하기 위해 인코딩된 픽처를 디코딩하는 것과,
다음 중 어느 하나를 수행하는 것을 수행하게 하되, 다음 중 어느 하나는,
패딩된 참조 픽처를 생성하기 위해 유효 픽처 영역 외부의 영역을 채우는 것 - 채워진 영역은 경계 확장부를 형성함 -, 또는
디코딩 시 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 샘플 위치가 유효 픽처 영역 내에 있도록 포화되거나 랩핑 오버되는 것을 결정하는 것이다.
제 3 양태에 따른 컴퓨터 판독 가능 저장 매체는 장치에 의해 사용하기 위한 코드를 포함하고, 코드는 프로세서에 의해 실행될 때, 장치로 하여금,
인코딩된 픽처를 수신하는 것과,
유효 픽처 영역을 갖는 픽처의 재구성된 구성 프레임을 형성하기 위해 인코딩된 픽처를 디코딩하는 것과,
다음 중 어느 하나를 수행하는 것을 수행하게 하되, 다음 중 어느 하나는,
패딩된 참조 픽처를 생성하기 위해 유효 픽처 영역 외부의 영역을 채우는 것 - 채워진 영역은 경계 확장부를 형성함 -, 또는
디코딩 시 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 샘플 위치가 유효 픽처 영역 내에 있도록 포화되거나 랩핑 오버되는 것을 결정하는 것이다.
제 4 양태에 따른 장치는,
인코딩된 픽처를 수신하기 위한 수단과,
유효 픽처 영역을 갖는 픽처의 재구성된 구성 프레임을 형성하기 위해 인코딩된 픽처를 디코딩하기 위한 수단과,
다음 중 어느 하나를 수행하기 위한 수단을 포함하되, 다음 중 어느 하나는,
패딩된 참조 픽처를 생성하기 위해 유효 픽처 영역 외부의 영역을 채우는 것 - 채워진 영역은 경계 확장부를 형성함 -, 또는
디코딩 시 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 샘플 위치가 유효 픽처 영역 내에 있도록 포화되거나 랩핑 오버되는 것을 결정하는 것이다.
제 5 양태에 따른 방법은,
인코딩을 위해 유효 픽처 영역을 갖는 제 1 픽처의 구성 프레임을 획득하는 단계와,
다음 중 어느 하나를 수행하는 단계를 포함하되, 다음 중 어느 하나는,
구성 프레임의 유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 구성 프레임에 대한 경계 확장부를 형성하는 단계, 또는
유효 픽처 영역 외부의 샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 단계이다.
제 6 측면에 따른 장치는 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함 - 상기 적어도 하나의 메모리에는 코드가 저장됨 - 하고, 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 것 - 상기 인코딩은 결과적으로 재구성된 제 1 픽처를 또한 생성하고 상기 구성 프레임은 제 1 재구성된 픽처 내에 유효 픽처 영역을 가짐 - 과,
상기 인코딩의 일부로서 다음 중 하나를 수행하는 것을 수행하게 하되, 다음 중 어느 하나는,
유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 재구성된 제 1 픽처에서 구성 프레임에 대한 경계 확장부를 형성하는 것, 또는
유효 픽처 영역 외부의 샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 것이다.
제 7 양태에 따른 컴퓨터 판독 가능 저장 매체는 장치에 의해 사용하기 위한 코드를 포함하고, 코드는 프로세서에 의해 실행될 때, 장치로 하여금,
압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 것 - 상기 인코딩은 결과적으로 재구성된 제 1 픽처를 또한 생성하고 상기 구성 프레임은 제 1 재구성된 픽처 내에 유효 픽처 영역을 가짐 - 와,
상기 인코딩의 일부로서 다음 중 하나를 수행하는 것을 수행하게 하되, 다음 중 어느 하나는,
유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 재구성된 제 1 픽처에서 구성 프레임에 대한 경계 확장부를 형성하는 것, 또는
유효 픽처 영역 외부의 샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 것이다.
제 8 양태에 따른 장치는,
압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하기 위한 수단 - 상기 인코딩은 결과적으로 재구성된 제 1 픽처를 또한 생성하고 상기 구성 프레임은 제 1 재구성된 픽처 내에 유효 픽처 영역을 가짐 - 와,
상기 인코딩의 일부로서 다음 중 어느 하나를 수행하기 위한 수단을 포함하되, 다음 중 어느 하나는,
유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 재구성된 제 1 픽처에서 구성 프레임에 대한 경계 확장부를 형성하는 것, 또는
유효 픽처 영역 외부의 샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 것이다.
또 다른 양태는 적어도 하나의 장치 및 위의 방법을 수행하도록 배열된 비 일시적인 메모리 매체 상에 저장된 컴퓨터 프로그램 제품/코드를 포함한다.
본 발명의 더 나은 이해를 위해, 이제 첨부 도면이 예로서 참조될 것이다.
도 1은 본 발명의 실시예를 적용하는 전자 디바이스를 개략적으로 도시한다.
도 2는 본 발명의 실시예를 적용하는데 적합한 사용자 장비를 개략적으로 도시한다.
도 3은 무선 및 유선 네트워크 연결을 사용하여 연결된 본 발명의 실시예를 적용하는 전자 디바이스를 개략적으로 추가로 도시한다.
도 4는 본 발명의 실시예를 구현하기에 적합한 인코더를 개략적으로 도시한다.
도 5a는 실시예에 따른, 후보 움직임 벡터 예측기의 공간 후보 소스를 도시한다.
도 5b는 실시예에 따른, 후보 움직임 벡터 예측기의 시간 후보 소스를 도시한다.
도 6a는 최적에 못 미치게 처리된 움직임 벡터에 관한 문제점을 도시한다.
도 6b는 실시예에 따른 경계 확장의 예를 도시한다.
도 6c는 실시예에 따른, 후보 움직임 벡터 예측기의 공간 후보 소스를 도시한다.
도 6d는 실시예에 따른, 후보 움직임 벡터 예측기의 시간 후보 소스를 도시한다.
도 7a는 일 실시예에 따른, 픽처를 인코딩하는 흐름도를 도시한다.
도 7b는 실시예에 따른, 픽처를 디코딩하는 흐름도를 도시한다.
도 8은 본 발명의 실시예를 구현하기에 적합한 디코더의 개략도를 도시한다
도 9는 다양한 실시예가 구현될 수 있는 예시적인 멀티미디어 통신 시스템의 개략도를 도시한다.
도 10a 내지 도 10c는 실시예에 따른 피라미드 매핑을 도시한다.
다음에서, 본 발명의 몇몇 실시예가 하나의 비디오 코딩 장치의 맥락에서 설명될 것이다. 그러나, 본 발명은 이러한 특정 장치로 제한되지 않는 것임을 알아야 한다. 실제로, 상이한 실시예는 비(non)-스케일러블, 스케일러블 및/또는 멀티뷰 비디오 코딩의 개선이 요구되는 임의의 환경에서 널리 응용된다. 예를 들어, 본 발명은 스트리밍 시스템과 같은 비디오 코딩 시스템, DVD 플레이어, 디지털 텔레비전 수신기, 개인용 비디오 레코더, 퍼스널 컴퓨터 상의 시스템 및 컴퓨터 프로그램, 핸드 헬드 컴퓨터 및 통신 디바이스뿐만 아니라, 트랜스코더 및 비디오 데이터가 처리되는 클라우드 컴퓨팅 장치와 같은 네트워크 요소에 적용 가능하다.
다음은 일부 실시예를 구현하기에 적합한 장치 및 가능한 메커니즘을 더 상세하게 설명한다. 이와 관련하여, 먼저 도 1 및 도 2를 참조하면, 도 1은 예시적인 실시예에 따른 비디오 코딩 시스템의 블록도를 본 발명의 실시예에 따른 코덱에 통합할 수 있는 예시적인 장치 또는 전자 디바이스(50)의 개략적인 블록도로서 도시한다. 도 2는 예시적인 실시예에 따른 장치의 레이아웃을 도시한다. 도 1 및 도 2의 요소는 다음에 설명될 것이다.
전자 디바이스(50)는 예를 들면 무선 통신 시스템의 이동 단말기 또는 사용자 장비일 수 있다. 그러나, 본 발명의 실시예는 비디오 이미지를 인코딩하고 디코딩하는 것을 필요로 할 수 있는 또는 비디오 이미지를 인코딩 또는 디코딩하는 것을 필요로 할 수 있는 모든 전자 디바이스 또는 장치 내에서 구현될 수 있다는 것이 인식될 것이다.
장치(50)는 디바이스를 내장하고 보호하기 위한 하우징(30)을 포함할 수 있다. 장치(50)는 액정 디스플레이 형태의 디스플레이(32)를 더 포함할 수 있다. 본 발명의 다른 실시예에서, 디스플레이는 이미지 또는 비디오를 디스플레이하는데 적합한 임의의 적절한 디스플레이 기술일 수 있다. 장치(50)는 키패드(34)를 더 포함할 수 있다. 본 발명의 다른 실시예에서, 임의의 적합한 데이터 또는 사용자 인터페이스 메커니즘이 채용될 수 있다. 예를 들면, 사용자 인터페이스는 터치-감응식 디스플레이의 일부로서 가상 키보드 또는 데이터 입력 시스템으로 구현될 수 있다.
장치는 마이크로폰(36) 또는 디지털 또는 아날로그 신호 입력일 수 있는 임의의 적합한 오디오 입력을 포함할 수 있다. 장치(50)는 본 발명의 실시예에서 수화기(38), 스피커, 또는 아날로그 오디오나 디지털 오디오 출력 연결 중 어느 하나일 수 있는 오디오 출력 디바이스를 더 포함할 수 있다. 장치(50)는 배터리(40)를 또한 포함할 수 있다(또는 본 발명의 다른 실시예에서 디바이스는 태양 전지, 연료 전지 또는 태엽작동 발전기와 같은 임의의 적합한 모바일 에너지 디바이스에 의해 전력을 공급받을 수 있다). 장치는 이미지 및/또는 비디오를 녹화 또는 촬영할 수 있는 카메라(42)를 더 포함할 수 있다. 장치(50)는 다른 디바이스와 단거리 시선 통신을 위한 적외선 포트를 더 포함할 수 있다. 다른 실시예에서, 장치(50)는 예를 들어 블루투스 무선 연결 또는 USB/파이어와이어 유선 연결과 같은 임의의 적합한 단거리 통신 솔루션을 더 포함할 수 있다.
장치(50)는 장치(50)를 제어하기 위한 제어기(56) 또는 프로세서를 포함할 수 있다. 제어기(56)는 본 발명의 실시예에서 이미지 및 오디오 데이터 형태의 두 가지 데이터를 저장할 수 있는 및/또는 제어기(56)에서 구현을 위한 명령어를 또한 저장할 수 있는 메모리(58)에 연결될 수 있다. 제어기(56)는 오디오 및/또는 비디오 데이터의 코딩 및 디코딩을 수행하기에 적합하거나 또는 제어기(56)에 의해 수행되는 코딩 및 디코딩 시 보조하기에 적합한 코덱 회로(54)에 추가로 연결될 수 있다.
장치(50)는 카드 리더(48) 및 스마트 카드(46), 예를 들면, 사용자 정보를 제공하고 네트워크에서 사용자의 인증 및 인가에 필요한 인증 정보를 제공하는데 적합한 UICC 및 UICC 판독기를 더 포함할 수 있다.
장치(50)는 제어기에 연결되고, 예를 들어, 셀룰러 통신 네트워크, 무선 통신 시스템 또는 무선 근거리 네트워크와 통신을 위한 무선 통신 신호를 발생하기에 적합한 무선 인터페이스 회로(52)를 포함할 수 있다. 장치(50)는 무선 인터페이스 회로(52)에 연결되어 무선 인터페이스 회로(52)에서 발생된 무선 주파수 신호를 다른 장치(들)에 전송하고 다른 장치(들)로부터 무선 주파수 신호를 수신하기 위한 안테나(44)를 더 포함할 수 있다.
장치(50)는 개개의 프레임을 기록 또는 검출한 다음 처리를 위해 코덱(54) 또는 제어기에 전달할 수 있는 카메라를 포함할 수 있다. 장치는 다른 디바이스로부터 처리를 위한 비디오 이미지 데이터를 수신한 다음 전송 및/또는 저장할 수 있다. 장치(50)는 또한 코딩/디코딩을 위한 이미지를 무선으로 또는 유선 연결을 통해 수신할 수 있다.
도 3과 관련하여, 본 발명의 실시예가 활용될 수 있는 시스템의 예가 도시된다. 시스템(10)은 하나 이상의 네트워크를 통해 통신할 수 있는 다수의 통신 디바이스를 포함한다. 시스템(10)은 이것으로 제한되는 것은 아니지만 (GSM, UMTS, CDMA 네트워크 등과 같은) 무선 셀룰러 텔레폰 네트워크, IEEE 802.x 표준 중 임의의 표준에 의해 정의된 바와 같은 무선 근거리 네트워크(wireless local area network, WLAN), 블루투스 개인 영역 네트워크, 이더넷 근거리 네트워크, 토큰 링 근거리 네트워크, 광역 네트워크, 및 인터넷을 비롯한 유선 또는 무선 네트워크의 임의의 조합을 포함할 수 있다.
시스템(10)은 본 발명의 실시예를 구현하기에 적합한 유선 및 무선 통신 디바이스 및/또는 장치(50) 둘 모두를 포함할 수 있다.
예를 들어, 도 3에 도시된 시스템은 이동전화 네트워크(11) 및 인터넷(28)의 표현을 보여준다. 인터넷(28)과의 연결성은 이것으로 제한되는 것은 아니지만, 장거리 무선 연결, 단거리 무선 연결, 및 이것으로 제한되는 것은 아니지만 전화선, 케이블선, 전력선 및 이와 유사한 통신 경로를 비롯한 각종 유선 연결을 포함할 수 있다.
시스템(10)에서 도시된 예시적인 통신 디바이스는 이것으로 제한되는 것은 아니지만, 전자 디바이스 또는 장치(50), 개인 휴대정보 단말기(personal digital assistant, PDA)와 이동 전화(14)의 겸용, PDA(16), 통합 메시징 디바이스(integrated messaging device, IMD)(18), 데스크톱 컴퓨터(20), 노트북 컴퓨터(22)를 포함할 수 있다. 장치(50)는 고정형일 수 있고 또는 이동하는 개인이 휴대할 때는 이동형일 수 있다. 장치(50)는 이것으로 제한되는 것은 아니지만, 차, 트럭, 택시, 버스, 열차, 보트, 비행기, 자전거, 모터사이클 또는 임의의 유사하고 적합한 운송 수단을 비롯한 운송 수단에 또한 배치될 수도 있다.
실시예는 셋톱 박스에서, 즉, 디스플레이 또는 무선 능력을 가질 수도/갖지 않을 수도 있는 디지털 TV 수신기에서, 하드웨어 또는 소프트웨어, 또는 인코더/디코더 구현의 조합을 가질 수 있는 태블릿 또는 (랩톱) 퍼스널 컴퓨터(personal computer, PC)에서, 각종 오퍼레이팅 시스템에서, 그리고 칩셋, 프로세서, DSP 및/또는 하드웨어/소프트웨어 기반 코딩을 제공하는 임베디드 시스템에서도 또한 구현될 수 있다.
일부의 장치 또는 추가 장치는 기지국(24)과의 무선 연결(25)을 통해 호 및 메시지를 송신 및 수신하고 서비스 공급자와 통신할 수 있다. 기지국(24)은 이동전화 네트워크(11)와 인터넷(28) 사이에서 통신을 가능하게 해주는 네트워크 서버(26)에 연결될 수 있다. 시스템은 부수적인 통신 디바이스 및 다양한 유형의 통신 디바이스를 포함할 수 있다.
통신 디바이스는 이것으로 제한되는 것은 아니지만, 코드 분할 다중 액세스(code division multiple access, CDMA), 전세계 이동 통신 시스템(global systems for mobile communications, GSM), 범용 이동 통신 시스템(universal mobile telecommunications system, UMTS), 시분할 다중 액세스(time divisional multiple access, TDMA), 주파수 분할 다중 액세스(frequency division multiple access, FDMA), 전송 제어 프로토콜-인터넷 프로토콜(transmission control protocol-internet protocol, TCP-IP), 단문 메시징 서비스(short messaging service, SMS), 멀티미디어 메시징 서비스(multimedia messaging service, MMS), 이메일, 인스턴스 메시징 서비스(instant messaging service, IMS), 블루투스, IEEE 802.11 및 임의의 유사한 무선 통신 기술을 비롯한 각종 전송 기술을 사용하여 통신할 수 있다. 본 발명의 다양한 실시예를 구현하는데 연루되는 통신 디바이스는 이것으로 제한되는 것은 아니지만, 무선, 적외선, 레이저, 케이블 연결, 및 임의의 적합한 연결을 비롯한 각종 미디어를 사용하여 통신할 수 있다.
비디오 코덱은 입력 비디오를 저장/전송에 적합한 압축된 표현으로 변환하는 인코더 및 압축된 비디오 표현을 볼 수 있는 형태로 다시 압축할 수 있는 디코더로 구성된다. 비디오 인코더 및/또는 비디오 디코더는 서로 분리될 수도 있는데, 즉, 코덱을 형성할 필요가 없을 수 있다. 전형적으로 인코더는 비디오를 더 밀집한 형태(즉, 더 낮은 비트레이트)로 표현하기 위하여 원래(original) 비디오 시퀀스에서 약간의 정보를 버린다. 비디오 인코더는 나중에 정의되는 바와 같이, 이미지 시퀀스를 인코딩하는데 사용될 수 있고, 비디오 디코더는 코딩된 이미지 시퀀스를 디코딩하는데 사용될 수 있다. 비디오 인코더 또는 비디오 인코더 또는 이미지 인코더의 인트라 코딩부는 이미지를 인코딩하는데 사용될 수 있고, 비디오 디코더 또는 비디오 디코더 또는 이미지 디코더의 인터 디코딩부는 코딩된 이미지를 디코딩하는데 사용될 수 있다.
예를 들면, ITU-T H.263 및 H.264의 많은 인코더 구현 예일 수 있는 일부 하이브리드 비디오 인코더는 비디오 정보를 두 개의 국면으로 인코딩한다. 첫째, 특정 픽처 영역(또는 "블록") 내 픽셀 값은, 예를 들어 (코딩되는 블록에 밀접하게 대응하는 이전에 코딩된 비디오 프레임 중 한 프레임 내에서 영역을 찾아 표시하는) 움직임 보상 수단에 의해 또는 (명시된 방식으로 코딩되는 블록 주변의 픽셀 값을 사용하는) 공간 수단에 의해 예측된다. 둘째, 예측 오차, 즉 예측된 픽셀 블록과 원 픽셀 블록 사이의 차가 코딩된다. 전형적으로 이것은 명시된 변환(예를 들면, 이산 코사인 변환(Discrete Cosine Transform, DCT) 또는 그의 변형)을 사용하여 픽셀 값의 차를 변환하고, 계수를 양자화하고 양자화된 계수를 엔트로피 코딩함으로써 이루어진다. 양자화 프로세스의 충실도를 변화시킴으로써, 인코더는 픽셀 표현의 정확도(픽처 품질)와 결과적으로 코딩된 비디오 표현의 크기(파일 크기 또는 전송 비트레이트) 사이의 균형을 조절할 수 있다.
시간 예측에서, 예측의 소스는 이전에 디코딩된 픽처(별칭은 참조 픽처라고 함)이다. 인트라 블록 카피(별칭은 인트라-블록-카피 예측(intra-block-copy prediction)임)에서, 시간 예측과 유사하게 예측이 적용되지만, 참조 픽처는 현재 픽처이고, 이전에 디코딩된 샘플만이 예측 프로세스에서 참조될 수 있다. 인터 계층(inter-layer) 또는 인터 뷰(inter-view) 예측은 시간 예측과 유사하게 적용될 수 있지만, 참조 픽처는 다른 스케일러블 계층으로부터 또는 다른 뷰로부터의 각각 디코딩된 픽처이다. 일부 경우에, 인터 예측은 시간 예측만을 말할 수 있고, 반면에 다른 경우에서 인터 예측은 집합적으로 시간 예측이라고 말할 수 있으며 이들이 시간 예측과 동일하거나 그보다 유사한 프로세스로 수행된다면 인트라 블록 카피, 인터 계층 예측 및 인터 뷰 예측 중 어느 것으로도 말할 수 있다. 인터 예측 또는 시간 예측은 때로는 움직임 보상 또는 움직임 보상 예측으로 지칭될 수 있다.
인트라 예측은 동일한 픽처 내의 인접 픽셀이 상관될 가능성이 있다는 사실을 이용한다. 인트라 예측은 공간 또는 변환 도메인에서 수행될 수 있는데, 즉, 샘플 값 또는 변환 계수가 예측될 수 있다. 인트라 예측은 인터 예측이 적용되지 않는 인트라 코딩에서 일반적으로 활용된다.
코딩 방식에서 이용 가능한 상이한 유형의 인트라 예측 모드가 있을 수 있으며, 그 중에서 인코더는 사용된 모드를, 예를 들어 블록 또는 코딩 유닛 단위로 선택하고 표시할 수 있다. 디코더는 표시된 인트라 예측 모드를 디코딩하고 이에 따라 예측 블록을 재구성할 수 있다. 예를 들어, 몇몇의 각도 인트라 예측(angular intra prediction) 모드가 각각 상이한 각도 방향에 대해 이용 가능할 수 있다. 각도 인트라 예측은 선형 예측 방향을 따라 인접 블록의 경계 샘플을 외삽하는(extrapolate) 것으로 고려될 수 있다. 부가적으로 또는 대안적으로, 평면 예측(planar prediction) 모드가 이용 가능할 수 있다. 평면 예측은 본질적으로 예측 블록을 형성하는 것으로 고려될 수 있으며, 평면 예측에서 예측 블록의 각 샘플은 현재 블록의 좌측에 인접한 샘플 컬럼에서 수직으로 정렬된 샘플과 현재 블록의 위에서 인접한 샘플 라인에서 수평으로 정렬된 샘플의 평균이 되는 것으로 명시될 수 있다. 부가적으로 또는 대안적으로, 예측 블록이 근본적으로 이웃 블록 또는 블록들의 평균 샘플 값인 DC 예측(DC prediction) 모드가 이용 가능할 수 있다.
코딩 절차의 하나의 결과는 움직임 벡터 및 양자화된 변환 계수와 같은 한 세트의 코딩 파라미터이다. 많은 파라미터는 만일 이들 파라미터가 일차로 공간적으로 또는 시간적으로 이웃하는 파라미터로부터 예측된다면 더 효과적으로 엔트로피 코딩될 수 있다. 예를 들어, 움직임 벡터는 공간적으로 인접한 움직임 벡터로부터 예측될 수 있고 움직임 벡터 예측기에 대한 차만이 코딩될 수 있다. 코딩 파라미터의 예측 및 인트라 예측은 집합적으로 인-픽처 예측(in-picture prediction)이라고 지칭될 수 있다.
H.264/AVC 표준은 국제 전기 통신 연합(International Telecommunication Union, ITU)의 전기 통신 표준화 부문의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)과 국제 표준화 기구(International Organisation for Standardization, ISO)/국제 전기 기술위원회(International Electrotechnical Commission, IEC)의 동화상 전문가 그룹(Moving Picture Experts Group, MPEG)의 의 연합 비디오 팀(Joint Video Team, JVT)에 의해 개발되었다. H.264/AVC 표준은 양대 부모 표준화 기관에 의해 발표되었으며, ITU-T 권고안 H.264 및 ISO/IEC 국제 표준 14496-10이라고 지칭되고, 또한 MPEG-4 Part 10 최신 비디오 코딩(Advanced Video Coding, AVC)이라고도 알려져 있다. H.264/AVC 표준에는 다수의 버전이 있었고, 새로운 확장 또는 특징을 규격에 통합했다. 이러한 확장에는 스케일러블 비디오 코딩(Scalable Video Coding, SVC) 및 멀티뷰 비디오 코딩(Multiview Video Coding, MVC)이 포함된다.
고효율 비디오 코딩(High Efficiency Video Coding)(H.265/HEVC, 별칭은 HEVC이라고 함) 표준의 버전 1은 VCEG 및 MPEG의 비디오 코딩 연합 팀(Joint Collaborative Team-Video Coding, JCT-VC)에 의해 개발되었다. 이 표준은 양대 부모 표준화 기관에 의해 발표되었으며, HTJ-T 권고안 H.265 및 ISO/IEC 국제 표준 23008-2라고 지칭하고, 또한 MPEG-H Part 2 고효율 비디오 코딩(HEVC)이라고도 알려져 있다. H.265/HEVC의 버전 2에는 각각 SHVC, MV-HEVC 및 REXT라고 축약될 수 있는 스케일러블(scalable), 멀티뷰(multiview) 및 충실도 범위 확장(fidelity range extensions)이 포함되어 있다. H.265/HEVC의 버전 2는 ITU-T 권고안 H.265(10/2014)으로서 그리고 ISO/IEC 23008-2의 제 2 판으로서 발행되었다. 3D-HEVC 및 SCC라고 각각 축약될 수 있는3 차원(three-dimensional) 및 스크린 콘텐츠 코딩 확장(screen content coding extensions)을 비롯한 H.265/HEVC에 대한 추가 확장을 개발하려 현재 진행중인 표준화 프로젝트가 있다.
SHVC, MV-HEVC 및 3D-HEVC는 HEVC 표준의 버전 2의 부록 F에 명시된 공통 기본 규격을 사용한다. 이러한 공통적인 기준은, 예를 들어 인터 계층 참조 픽처(inter-layer reference picture)를 포함하는 참조 픽처 리스트 구성 및 멀티-계층 비트스트림에 대한 픽처 순서 카운트 도출과 같은 디코딩 프로세스뿐만 아니라, 인터 계층 의존성과 같은 비트스트림의 계층의 특성 중 일부를 명시하는 높은 레벨의 신택스 및 시맨틱을 포함한다. 부록 F는 HEVC의 잠재적인 후속 다중 계층 확장에서도 또한 사용될 수 있다. 비록 비디오 인코더, 비디오 디코더, 인코딩 방법, 디코딩 방법, 비트스트림 구조 및/또는 실시예가 SHVC 및/또는 MV-HEVC와 같은 특정 확장을 참조하여 다음에 설명될 수 있을지라도, 이들은 일반적으로 HEVC의 임의의 다중 계층 확장에 적용 가능하고, 더욱 일반적으로는 임의의 다중 계층 비디오 코딩 방식에 적용 가능하다.
H.264/AVC 및 HEVC의 일부 핵심적인 정의, 비트스트림 및 코딩 구조, 및 개념은 본 단원에서 실시예가 구현될 수 있는 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법 및 비트스트림 구조의 예로서 설명된다. 핵심적인 정의, 비트스트림 및 코딩 구조 및 H.264/AVC의 개념 중 일부는 HEVC와 동일하며, 따라서 이들에 대해 아래에서 합쳐서 설명된다. 본 발명의 양태는 H.264/AVC 또는 HEVC으로 제한되지 않으며, 그 보다는 본 발명이 부분적으로 또는 완전히 실현될 수 있는 것 이외의 하나의 가능한 기초에 대한 설명이 제공된다.
초기의 많은 비디오 코딩 표준과 유사하게, 비트스트림 신택스 및 시맨틱뿐만 아니라 오류 없는 비트스트림을 위한 디코딩 프로세스가 H.264/AVC 및 HEVC에서 명시되어 있다. 인코딩 프로세스는 명시되어 있지 않지만, 인코더는 순응하는 비트스트림을 발생하여야 한다. 비트스트림 및 디코더 순응성은 가상 참조 디코더(Hypothetical Reference Decoder, HRD)를 이용하여 검증될 수 있다. 표준은 전송 오류 및 손실에 대처하는데 도움이 되는 코딩 툴을 포함하고 있지만, 인코딩할 때 툴을 사용하는 것은 선택사양이며 오류가 발생한 비트스트림에 대해서는 아무런 디코딩 프로세스도 명시되어 있지 않다.
기존의 표준에 관한 설명에서뿐만 아니라 예시적인 실시예의 설명에서, 신택스 요소는 비트스트림으로 표현된 데이터의 요소로 정의될 수 있다. 신택스 구조는 명시된 순서대로 비트스트림에서 함께 존재하는 0개 이상의 신택스 요소라고 정의될 수 있다. 기존의 표준에 관한 설명에서뿐만 아니라 예시적인 실시예의 설명에서, "외부 수단에 의해" 또는 "외부 수단을 통해"라는 문구가 사용될 수 있다. 예를 들어, 디코딩 프로세스에서 사용되는 신택스 구조 또는 변수 값과 같은 엔티티는 "외부 수단에 의해" 디코딩 프로세스에 제공될 수 있다. "외부 수단에 의해"라는 문구는 엔티티가 인코더에 의해 생성되는 비트스트림에 포함되지 않고, 그보다는 예를 들어 제어 프로토콜을 사용하여 비트스트림으로부터 외부에서 전달된다는 것을 나타낼 수 있다. 대안적으로 또는 부가적으로, 이것은 엔티티가 인코더에 의해 생성되지 않고, 예를 들어 디코더를 사용하는 플레이어 또는 디코딩 제어 로직 또는 이와 유사한 것에서 생성될 수 있음을 의미할 수 있다. 디코더는 변수 값과 같은 외부 수단을 입력하기 위한 인터페이스를 가질 수 있다.
H.264/AVC 또는 HEVC 인코더로의 입력 및 H.264/AVC 또는 HEVC 디코더의 출력의 기본 단위는 각각 픽처이다. 인코더로의 입력으로서 제공된 픽처는 소스 픽처라고도 지칭될 수 있으며, 디코더에 의해 디코딩된 픽처는 디코딩된 픽처라고 지칭될 수 있다.
소스 픽처 및 디코딩된 픽처는 각각 다음과 같은 세트의 샘플 어레이 중 하나와 같이 하나 이상의 샘플 어레이로 구성될 수 있다.
- 루마(luma) (Y) 단독(단색(monochrome)).
- 루마 및 두 개의 크로마(chroma) (YCbCr 또는 YCgCo).
- 녹(Green), 청(Blue) 및 적(Red) (GBR, 또는 RGB라고 알려짐).
- 다른 명시되지 않은 단색 또는 3-자극 색(tri-stimulus color) 샘플링을 표현하는 어레이(예를 들면, YZX, XYZ라고도 알려짐).
아래에서, 이들 어레이는 루마(또는 L 또는 Y) 및 크로마라고 지칭될 수 있는데, 여기서 두 개의 크로마 어레이는 사용 중인 실제의 색 표현 방법에 관계 없이 Cb 및 Cr이라고 지칭될 수 있다. 사용 중인 실제의 색 표현 방법은 예를 들어, 코딩된 비트스트림에서, 예를 들면, H.264/AVC 및/또는 HEVC의 비디오 유용성 정보(Video Usability Information, VUI) 신택스를 사용하여 표시될 수 있다. 어레이 또는 세 개의 샘플 어레이 어레이(루마 및 두 개의 크로마) 중 하나로부터의 단일 샘플로서, 또는 어레이 또는 단색 포맷의 픽처로 구성된 어레이의 단일 샘플로서 컴포넌트가 정의될 수 있다.
H.264/AVC 또는 HEVC에서, 픽처는 프레임 또는 필드 중 어느 하나일 수 있다. 프레임은 루마 샘플(luma sample)과 아마도 대응하는 크로마 샘플(chroma sample)의 행렬을 포함한다. 필드는 소스 신호가 인터레이스될 때, 프레임의 교번하는 한 세트의 샘플 로우(row)이며 인코더 입력으로서 사용될 수 있다. 크로마 샘플 어레이는 없을 수 있고 (그래서 단색 샘플링이 사용 중일 수 있음) 또는 크로마 샘플 어레이는 루마 샘플 어레이와 비교될 때 서브샘플링될 수 있다. 크로마 포맷은 아래와 같이 요약될 수 있다:
- 단색 샘플링 시, 단 하나의 샘플 어레이만이 존재하며, 이것은 명목상 루마 어레이로 간주될 수 있다.
- 4:2:0 샘플링 시, 두 개의 크로마 어레이 각각은 루마 어레이의 절반 높이 및 절반 폭을 갖는다.
- 4:2:2 샘플링 시, 두 개의 크로마 어레이 각각은 루마 어레이와 동일한 높이 및 절반 폭을 갖는다.
- 4:4:4 샘플링 시, 어떠한 별개의 컬러 평면도 사용 중이지 않을 때, 두 개의 크로마 어레이 각각은 루마 어레이와 동일한 높이 및 폭을 갖는다.
H.264/AVC 및 HEVC에서, 별개의 컬러 평면으로서 샘플 어레이를 비트스트림으로 코딩하고 비트스트림으로부터 개별적으로 코딩된 컬러 평면을 각기 디코딩하는 것이 가능하다. 별개의 컬러 평면이 사용 중일 때, 컬러 평면 각각은 (인코더 및/또는 디코더에 의해) 단색 샘플링된 픽처로서 별개로 처리된다.
분할(partitioning)은 하나의 세트를 서브세트로 나누어서 세트의 각 요소가 서브세트 중의 정확히 하나에 속하는 것으로 정의될 수 있다.
H.264/AVC에서, 매크로블록은 16x16 루마 샘플 블록 및 대응하는 크로마 샘플 블록이다. 예를 들면, 4:2:0 샘플링 패턴에서, 매크로블록은 각 크로마 컴포넌트 당 하나의 8x8 크로마 샘플 블록을 포함한다. H.264/AVC에서, 픽처는 하나 이상의 슬라이스 그룹으로 분할되며, 슬라이스 그룹은 하나 이상의 슬라이스를 포함한다. H.264/AVC에서, 슬라이스는 특정 슬라이스 그룹 내에서 래스터 스캔 시 연속하여 정렬되는 정수 개의 매크로블록으로 이루어진다.
HEVC 인코딩 및/또는 디코딩의 동작을 설명할 때, 다음과 같은 용어가 사용될 수 있다. 코딩 블록은 코딩 트리 블록을 코딩 블록으로 나누는 것이 하나의 파티션이 되도록 N이 어떤 값인 경우 NxN 샘플 블록으로 정의될 수 있다. 코딩 트리 블록(coding tree block, CTB)은 컴포넌트를 코딩 트리 블록으로 나누는 것이 하나의 파티션이 되도록 N이 어떤 값인 경우 NxN 샘플 블록으로 정의될 수 있다. 코딩 트리 유닛(coding tree unit, CTU)은 루마 샘플의 코딩 트리 블록, 또는 세 개의 샘플 어레이를 갖는 픽처의 크로마 샘플의 두 개의 대응하는 코딩 트리 블록, 또는 단색 픽처 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처의 샘플의 코딩 트리 블록 및 그 샘플을 코딩하는데 사용된 신택스 구조의 코딩 트리 블록이라고 정의될 수 있다. 코딩 유닛(CU)은 루마 샘플들의 코딩 블록, 3개의 샘플 어레이를 갖는 화상의 크로마 샘플들의 2개의 대응하는 코딩 블록, 또는 샘플을 코드화하는 데 사용되는 3개의 개별 컬러 평면 및 신택스 구조를 사용하여 코딩된 화상 또는 단색 화상의 샘플들의 코딩 블록이라고 정의된다.
고효율 비디오 코딩(HEVC) 코덱과 같은 일부 비디오 코덱에서, 비디오 픽처는 픽처의 영역을 커버하는 코딩 유닛(coding unit, CU)으로 나누어진다. CU는 CU 내 샘플에 대한 예측 프로세스를 정의하는 하나 이상의 예측 유닛(prediction unit, PU) 및 상기 CU 내 샘플에 대한 예측 오차 코딩(prediction error coding) 프로세스를 정의하는 하나 이상의 변환 유닛(transform unit, TU)으로 구성된다. 전형적으로, CU는 미리 정의된 한 세트의 가능한 CU 크기로부터 선택 가능한 크기를 갖는 정방형의 샘플 블록으로 구성된다. 최대 허용된 크기의 CU는 통상 LCU(largest coding unit, 최대 코딩 유닛) 또는 코딩 트리 유닛(CTU)으로 명명되며 비디오 픽처는 중첩하지 않는 LCU로 나누어진다. LCU는, 예를 들어 반복적으로 LCU를 잘게 나누고 결과로 생긴 CU를 잘게 나눔으로써, 더 작은 CU들의 조합으로 더 잘게 나누어질 수 있다. 결과로 생긴 각각의 CU는 전형적으로 적어도 하나의 PU 및 그와 연관된 적어도 하나의 TU를 갖는다. 각각의 PU 및 TU는 각각 예측 프로세스 및 예측 오차 코딩 프로세스의 세분성(granularity)을 증가시키기 위해 더 작은 PU 및 TU로 더 잘게 나누어질 수 있다. 각각의 PU는 무슨 종류의 예측이 그 PU 내 픽셀에 적용될 것인지를 정의하는 그와 연관된 예측 정보(예를 들면, 인터 예측된 PU에 대한 움직임 벡터 정보 및 인트라 예측된 PU에 대한 인트라 예측 방향성(directionality) 정보)를 갖는다.
각각의 TU는 상기 TU 내 샘플에 대한 예측 오차 디코딩 프로세스를 서술하는 정보(예를 들어, DCT 계수 정보를 포함함)와 연관된다. 예측 오차 코딩이 CU마다 적용되는지 또는 적용되지 않는지는 일반적으로 CU 레벨에서 시그널링될 수 있다. CU와 연관된 아무런 예측 오차 잔차도 없는 경우, 상기 CU에 대한 TU는 없는 것으로 간주될 수 있다. 이미지를 CU로 나누는 것, 및 CU를 PU 및 TU로 나누는 것은 전형적으로 비트스트림에서 시그널링되며, 디코더는 이들 유닛의 의도된 구조를 재생할 수 있게 한다.
HEVC에서, 픽처는 직사각형이고 정수개의 LCU를 포함하는 타일(tile)로 분할될 수 있다. HEVC에서, 타일로 분할하면 하나 이상의 타일 컬럼과 하나 이상의 타일 로우를 포함하는 그리드를 형성한다. 코딩된 타일은 바이트 정렬되는데, 이것은 바이트 정렬 비트를 코딩된 타일의 끝단에 추가함으로써 달성될 수 있다.
HEVC에서, 슬라이스는 하나의 독립 슬라이스 세그먼트 및 같은 액세스 유닛 내 (만일 있다면) 다음의 독립 슬라이스 세그먼트에 앞서는 (만일 있다면) 모든 후속 종속 슬라이스 세그먼트에 포함되는 정수개의 코딩 트리 유닛인 것으로 정의된다. HEVC에서, 슬라이스 세그먼트는 타일 스캔 시 연속하여 정렬되고 단일의 NAL 유닛에 포함된 정수개의 코딩 트리 유닛인 것으로 정의된다. 각각의 픽처를 슬라이스 세그먼트로 나눈 것이 파티션이다. HEVC에서, 독립 슬라이스 세그먼트는 슬라이스 세그먼트 헤더의 신택스 요소의 값이 선행 슬라이스 세그먼트의 값으로부터 유추되지 않는 슬라이스 세그먼트인 것으로 정의되며, 종속 슬라이스 세그먼트는 슬라이스 세그먼트 헤더의 일부 신택스 요소의 값이 디코딩 순서에서 선행하는 독립 슬라이스 세그먼트의 값으로부터 유추되는 슬라이스 세그먼트인 것으로 정의된다. HEVC에서, 슬라이스 헤더는 현재 슬라이스 세그먼트인 독립 슬라이스 세그먼트의 슬라이스 세그먼트 헤더 또는 현재의 종속 슬라이스 세그먼트에 앞선 독립 슬라이스 세그먼트인 독립 슬라이스 세그먼트의 슬라이스 세그먼트 헤더인 것으로 정의되며, 슬라이스 세그먼트 헤더는 슬라이스 세그먼트에서 표현된 제 1 또는 모든 코딩 트리 유닛에 관련하는 데이터 요소를 포함하는 코딩된 슬라이스 세그먼트의 일부인 것으로 정의된다. CU는 타일 내 또는 만일 타일이 사용 중이 아니면 픽처 내 LCU의 래스터 스캔 순서로 스캔된다. LCU 내에서, CU는 특정한 스캔 순서를 갖는다.
HEVC에서, 타일은 정수 개의 코딩 트리 유닛을 포함하고, 하나를 초과하는 슬라이스에 포함된 코딩 트리 유닛으로 구성될 수 있다. 유사하게, 슬라이스는 하나를 초과하는 타일에 포함된 코딩 트리 유닛으로 구성될 수 있다. HEVC에서, 슬라이스 내의 모든 코딩 트리 유닛은 동일한 타일에 속하고 및/또는 타일 내의 모든 코딩 트리 유닛은 동일한 슬라이스에 속한다. 또한, HEVC에서, 슬라이스 세그먼트 내의 모든 코딩 트리 유닛은 동일한 타일에 속하고 및/또는 타일 내의 모든 코딩 트리 유닛은 동일한 슬라이스 세그먼트에 속한다.
움직임 제약된(motion-constrained) 타일 세트는 움직임 제약된 타일 세트 외부의 어떠한 샘플 값도, 그리고 움직임 제약된 타일 세트 외부의 하나 이상의 샘플 값을 사용하여 도출되는 분수 샘플 위치(fractional sample position)에 있는 어떠한 샘플 값도 움직임 제약된 타일 세트 내의 임의의 샘플의 인터 예측에 사용되지 않도록 인코딩 시에 인터 예측 프로세스가 제약을 받도록 되어 있다.
인터 예측에 사용된 샘플 위치는 포화되어 픽처의 외부에 있었을 위치가 그렇지 않았더라면 픽처의 대응하는 경계 샘플을 가리키도록 포화된다는 것이 주목된다. 따라서, 타일 경계가 또한 픽처 경계이면, 움직임 벡터는 그 경계를 효과적으로 통과할 수 있거나, 또는 움직임 벡터는 샘플 위치가 경계 상에서 포화되기 때문에, 그 경계 외부의 위치를 참조하는 분수 샘플을 효율적으로 보간할 수 있게 된다.
HEVC의 시간적 움직임 제약된 타일 세트 SEI 메시지는 비트스트림에서 움직임 제약된 타일 세트의 존재를 표시하는데 사용될 수 있다.
인터 계층 제약된(inter-layer constrained) 타일 세트는 각각의 연관된 참조 타일 세트 외부에 어떠한 샘플 값도, 그리고 각각의 연관된 참조 타일 세트 외부의 하나 이상의 샘플 값을 사용하여 도출되는 분수 샘플 위치에 있는 어떠한 샘플 값도 인터 계층 제약된 타일 세트 내의 임의의 샘플의 인터 계층 예측에 사용되지 않도록 인코딩 시에 인터 계층 예측 프로세스가 제약을 받도록 되어 있다.
HEVC의 인터 계층 제약된 타일 세트 SEI 메시지는 비트스트림 내의 인터 계층 제약된 타일 세트의 존재를 표시하기 위해 사용될 수 있다.
디코더는 (인코더에 의해 생성되어 압축된 표현으로 저장된 움직임 또는 공간 정보를 이용하여) 픽셀 블록의 예측된 표현을 형성하는 인코더와 유사한 예측 수단 및 예측 오차 디코딩(공간 픽셀 도메인에서 양자화된 예측 오차 신호를 복원하는 예측 오차 코딩의 역 동작)을 적용함으로써 출력 비디오를 재구성한다. 예측 및 예측 오차 디코딩 수단을 적용한 후에, 디코더는 예측 및 예측 오차 신호(픽셀 값)를 합하여 출력 비디오 프레임을 형성한다. 디코더(및 인코더)는 또한 부수적인 필터링 수단을 적용하여 출력 비디오의 품질을 개선한 다음 출력 비디오를 디스플레이하기 위해 전달할 수 있고 및/또는 출력 비디오를 비디오 시퀀스에서 곧 다가오는 프레임에 대한 예측 참조로서 저장할 수 있다.
필터링은 예를 들어 다음 중 하나 이상, 즉 디블록킹(deblocking), 샘플 적응적 옵셋(sample adaptive offset, SAO), 및/또는 적응적 루프 필터링(adaptive loop filtering, ALF)을 포함할 수 있다. H.264/AVC은 디블록킹을 포함하고, 반면에 HEVC은 디블록킹과 SAO 둘 모두를 포함한다.
전형적인 비디오 코덱에서, 움직임 정보는 예측 유닛과 같이, 각각의 움직임 보상된 이미지 블록과 연관된 움직임 벡터로 표시된다. 이러한 움직임 벡터의 각각은 (인코더 측에서) 코딩될 또는 (디코더 측에서) 디코딩될 픽처 내 이미지 블록과 이전에 코딩된 또는 디코딩된 픽처 중 한 픽처 내 예측 소스 블록의 변위를 나타낸다. 움직임 벡터를 효과적으로 표현하기 위해, 움직임 벡터는 전형적으로 블록별로 예측된 움직임 벡터에 대하여 상이하게 코딩된다. 전형적인 비디오 코덱에서, 예측된 움직임 벡터는 미리 정의된 방식으로, 예를 들어 인접한 블록의 인코딩된 또는 디코딩된 움직임 벡터의 중간 값을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 다른 방법은 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록으로부터 후보 예측들의 리스트를 만들고 선택된 후보를 움직임 벡터 예측기로서 시그널링하는 것이다. 움직임 벡터 값을 예측하는 것 이외에도, 어느 참조 픽처(들)가 움직임 보상된 예측에 이용되는지가 예측될 수 있으며 이러한 예측 정보는 예를 들어 이전에 코딩된/디코딩된 픽처의 참조 인덱스(reference index)에 의해 표현될 수 있다. 참조 인덱스는 전형적으로 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록으로부터 예측된다. 더욱이, 전형적인 고 효율 비디오 코덱은 흔히 머징 모드(merging mode)/병합 모드(merge mode)라고 부르는 부가적인 움직임 정보 코딩/디코딩 메커니즘을 사용하며, 이 메커니즘에서 각각의 이용 가능한 참조 픽처 리스트마다 움직임 벡터 및 대응하는 참조 픽처 인덱스를 포함하는 모든 움직임 필드 정보가 어떠한 수정/정정 없이 예측되고 사용된다. 유사하게, 움직임 필드 정보의 예측은 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록의 움직임 필드 정보를 사용하여 수행되고 사용된 움직임 필드 정보는 이용 가능한 인접/동일 위치 블록의 움직임 필드 정보로 채워진 움직임 필드 후보 리스트의 리스트 중에서 시그널링된다.
전형적인 비디오 코덱은 단일 예측 블록이 (디)코딩되는 블록에 사용되는 단일 방향 예측(uni-prediction)의 사용을 가능하게 하며, 두 개의 예측 블록이 조합되어 (디)코딩되는 블록의 예측을 형성하는 양방향 예측(bi-prediction)을 사용할 수 있게 한다. 일부 비디오 코덱은 잔차 정보를 추가하기 전에 예측 블록의 샘플 값이 가중되는 가중 예측(weighted prediction)을 가능하게 한다. 예를 들어, 곱셈 가중 인자(multiplicative weighting factor) 및 추가 옵셋이 적용될 수 있다. 일부 비디오 코덱에서 가능해진 명시적 가중 예측에서, 가중 인자 및 옵셋은 예를 들어 각각의 허용 가능한 참조 픽처 인덱스마다 슬라이스 헤더에서 코딩될 수 있다. 일부 비디오 코덱에서 가능해진 묵시적 가중 예측에서, 가중 인자 및/또는 옵셋은 코딩되지 않고, 예를 들어 참조 픽처의 상대 픽처 순서 카운트(picture order count, POC)에 기초하여 도출된다.
전형적인 비디오 코덱에서, 움직임 보상 이후 예측 잔차는 먼저 (DCT와 같은) 변환 커널로 변환된 다음 코딩된다. 그 이유는 종종 잔차 중에서 약간의 상관이 여전히 존재하기 때문이며 많은 사례에서 변환은 이러한 상관을 줄이고 더 효과적인 코딩을 제공하는데 도움이 될 수 있다.
전형적인 비디오 인코더는 라그랑지안 비용 함수(Lagrangian cost function)를 활용하여 최적한 코딩 모드, 예를 들어, 희망하는 매크로블록 모드 및 연관된 움직임 벡터를 찾는다. 이러한 종류의 비용 함수는 가중 인수(λ)를 사용하여 손실 코딩 방법으로 인한 (정확한 또는 추정된) 이미지 왜곡과 이미지 영역 내 픽셀 값을 표현하는데 필요한 (정확한 또는 추정된) 정보량을 함께 합친다.
Figure 112018104468668-pct00001
여기서 C는 최소화될 라그랑지안 비용이고, D는 모드 및 움직임 벡터가 고려된 이미지 왜곡(예를 들어, 평균 제곱 오차(Mean Squared Error))이고, R은 (후보 움직임 벡터를 표현하는 데이터의 양을 포함하는) 디코더에서 이미지 블록을 재구성하는데 필요한 데이터를 표현하는데 필요한 비트 수이다.
비디오 코딩 표준 및 규격은 인코더가 코딩된 픽처를 코딩된 슬라이스 또는 이와 유사한 것으로 나누게 할 수 있다. 인-픽처 예측(in-picture prediction)은 전형적으로 슬라이스 경계 전체에서 불능화된다. 그래서 슬라이스는 코딩된 픽처를 독립적으로 디코딩 가능한 조각으로 나누는 방법으로 간주될 수 있다. H.264/AVC 및 HEVC에서, 인-픽처 예측은 슬라이스 경계 전체에서 불능화될 수 있다. 그러므로 슬라이스는 코딩된 픽처를 독립적으로 디코딩 가능한 조각으로 나누는 방법으로 간주될 수 있고, 그래서 슬라이스는 흔히 전송을 위한 기본 단위로 간주된다. 많은 경우에서, 인코더는 무슨 유형의 인-픽처 예측이 슬라이스 경계 전체에서 턴 오프되는지를 비트스트림에다 표시할 수 있고, 디코더는 예를 들어 어떤 예측 소스가 이용 가능하다고 결론지을 때 이러한 정보를 고려하여 동작한다. 예를 들어, 만일 이웃 매크로블록 또는 CU가 상이한 슬라이스에서 존재한다면, 이웃 매크로블록 또는 CU로부터의 샘플은 인트라 예측에는 이용할 수 없는 것으로 간주될 수 있다.
H.264/AVC 또는 HEVC 인코더의 출력 및 H.264/AVC 또는 HEVC 디코더의 입력의 기본 단위는 각기 네트워크 추상 계층(Network Abstraction Layer, NAL) 유닛이다. 패킷 지향 네트워크를 통해 전송하거나 구조화된 파일로 저장하기 위해, NAL 유닛은 패킷 또는 유사한 구조체로 캡슐화될 수 있다. NAL 유닛은 뒤이어 오는 데이터의 유형의 표시 및 그 데이터를 필요에 따라 스타트코드 에뮬레이션 방지 바이트(startcode emulation prevention byte)로 산재된 RBSP 형태로 포함하는 바이트를 포함하는 신택스 구조라고 정의될 수 있다. 원시 바이트 시퀀스 페이로드(raw byte sequence payload, RBSP)는 NAL 유닛에서 캡슐화된 정수 개의 바이트를 갖고 있는 신택스 구조라고 정의될 수 있다. RBSP는 비어 있거나 아니면 신택스 요소를 포함하는 데이터 비트에 뒤이은 RBSP 스톱 비트 그리고 그 뒤를 이은 0개 이상의 0과 같은 후속 비트의 스트링의 형태를 갖는다. NAL 유닛은 헤더와 페이로드로 구성된다.
HEVC에서, 2-바이트의 NAL 유닛 헤더는 명시된 모든 NAL 유닛 유형에 대해 사용된다. NAL 유닛 헤더는 하나의 예약된 비트, 여섯 비트의 NAL 유닛 유형 표시, (1이상이 되어야 할 수 있는) 시간 레벨에 대한 세 비트의 temporal_id_plus1 표시 및 여섯 비트의 nuh_layer_id를 포함한다. temporal_id_plus1 신택스 요소는 NAL 유닛의 시간 식별자(temporal identifier)라고 간주될 수 있으며, 제로-기반의 TemporalId 변수는 다음과 같이 도출될 수 있다: TemporalId = temporal_id_plus1 - 1. TemporalId가 0이라는 것은 최저 시간 레벨에 해당한다. temporal_id_plus1의 값은 두 개의 NAL 유닛 헤더 바이트가 연루되는 시작 코드 에뮬레이션을 방지하기 위해 제로가 아니어야 한다. TemporalId가 선택된 값 이상인 모든 VCL NAL 유닛을 제외시키고 다른 모든 NAL 유닛을 포함시킴으로써 생성되는 비트스트림은 그대로 순응성을 유지한다. 그 결과, TID와 동일한 TemporalId를 갖는 픽처는 TID보다 큰 TemporalId를 갖는 임의의 픽처를 인터 예측 참조로서 사용하지 않는다. 서브계층 또는 시간 서브계층은 특정 값의 TemporalId 변수를 갖는 VCL NAL 유닛 및 연관된 비(non)-VCL NAL 유닛으로 구성되는 시간 스케일러블 비트스트림(temporal scalable bitstream)의 시간 스케일러블 계층인 것으로 정의될 수 있고, nuh_layer_id는 스케일러빌리티 계층 식별자로서 이해될 수 있다.
NAL 유닛은 비디오 코딩 계층(Video Coding Layer, VCL) NAL 유닛 및 비-VCL NAL 유닛으로 분류될 수 있다. H.264/AVC에서, 코딩된 슬라이스 NAL 유닛은 하나 이상의 코딩된 매크로블록을 표현하는 신택스 요소를 포함하며, 각각의 코딩된 매크로블록은 압축되지 않은 픽처 내 샘플들의 블록에 대응한다. HEVC에서, VCLNAL 유닛은 하나 이상의 CU를 표현하는 신택스 요소를 포함한다.
HEVC에서, 코딩된 슬라이스 NAL 유닛은 순간 디코딩 리플레시(Instantaneous Decoding Refresh, IDR) 픽처 내 코딩된 슬라이스 또는 논-IDR 픽처 내 코딩된 슬라이스인 것으로 표시될 수 있다.
HEVC에서, 코딩된 슬라이스 NAL 유닛은 다음과 같은 유형 중 한 가지 유형인 것으로 표시될 수 있다.
Figure 112018104468668-pct00002
HEVC에서, 픽처 유형의 약어는 다음과 같이 정의될 수 있다: 트레일링(trailing, TRAIL) 픽처, 시간 서브계층 액세스(Temporal Sub-layer Access, TSA), 단계적 시간 서브계층 액세스(Step-wise Temporal Sub-layer Access, STSA), 랜덤 액세스 디코더블 리딩(Random Access Decodable Leading, RADL) 픽처, 랜덤 액세스 스킵드 리딩(Random Access Skipped Leading, RASL) 픽처, 파괴된 링크 액세스(Broken Link Access, BLA) 픽처, 순간 디코딩 리플레시(Instantaneous Decoding Refresh, IDR) 픽처, 클린 랜덤 액세스(Clean Random Access, CRA) 픽처.인트라 랜덤 액세스 포인트(intra Radom Access Point, IRAP) 픽처라고도 지칭될 수 있는 랜덤 액세스 포인트(Random Access Point, RAP) 픽처는 각 슬라이스 또는 슬라이스 세그먼트가 16내지 23을 포함하는 범위 내에서 nal_unit_type을 갖는 픽처이다. 독립 계층에서 IRAP 픽처는 디코딩 프로세스에서 인터 예측을 위해 자신 이외의 어떤 픽처도 참조하지 않는다. 어떠한 인트라 블록 카피도 사용 중이 아닐 때, 독립 계층에서 IRAP 픽처는 오직 인트라 코딩된 슬라이스만을 포함한다. nuh_layer_id 값 currLayerId를 갖는 예측된 계층에 속하는 IRAP 픽처는 P, B 및 I 슬라이스를 포함할 수 있고, currLayerId와 동일한 nuh_layer_id를 갖는 다른 픽처로부터 인터 예측을 사용할 수 없으며, 그의 직접 참조 계층으로부터 인터 계층 예측을 사용할 수 있다. HEVC의 현재 버전에서, IRAP 픽처는 BLA 픽처, CRA 픽처 또는 IDR 픽처일 수 있다. 기본 계층을 포함하는 비트스트림에서 첫 픽처는 기본 계층에 있는 IRAP 픽처이다. 필요한 파라미터 세트가 활성화되어야 할 때 필요한 파라미터 세트가 이용 가능하다면, 독립 계층에 있는 IRAP 픽처 및 디코딩 순서에서 독립 계층에 있는 모든 후속 비-RASL 픽처는 디코딩 순서에서 IRAP 픽처에 선행하는 모든 픽처의 디코딩 프로세스를 수행하지 않고 정확하게 디코딩될 수 있다. 필요한 파라미터 세트가 활성화되어야 할 때 필요한 파라미터 세트가 이용 가능할 때 그리고 currLayerld와 동일한 nuh_layer_id를 갖는 계층의 각각의 직접 참조 계층의 디코딩이 초기화되었을 때(즉, LayerInitializedFlag[refLayerld]가 curlLayerld와 동일한 nuh_layer_id를 갖는 계층의 직접 참조 계층의 모든 nuh_layer_id 값과 동일한 refLayerld에 대해 1일 때), nuh_layer_id 값 currLayerID를 갖는 예측된 계층에 속하는 IRAP 픽처 및 디코딩 순서에서 currLayerID와 동일한 nuh_layer_id를 갖는 모든 후속 비-RASL 픽처는 디코딩 순서에서 IRAP 픽처에 선행하는 currLayerID와 동일한 nuh_layer_id를 갖는 모든 픽처의 디코딩 프로세스를 수행하지 않고 정확하게 디코딩될 수 있다. 비트스트림에는 IRAP 픽처가 아닌 인트라 코딩된 슬라이스만을 포함하는 픽처가 있을 수 있다.
HEVC에서, CRA 픽처는 디코딩 순서에서 비트스트림 내 첫 픽처일 수 있거나, 또는 비트스트림에서 나중에 나올 수 있다. HEVC에서 CRA 픽처는 디코딩 순서에서 CRA 픽처의 뒤에 나오지만 출력 순서에서는 CRA 픽처에 앞서는 소위 리딩 픽처를 허용한다. 리딩 픽처, 즉 소위 RASL픽처 중 일부는 CRA 픽처에 앞서 디코딩된 픽처를 참조로서 사용할 수 있다. 디코딩 순서 및 출력 순서 모두에서 CRA 픽처에 뒤에 나오는 픽처는 CRA 픽처에서 랜덤 액세스가 수행된다면 디코딩 가능하며, 그래서 IDR 픽처의 클린 랜덤 액세스 기능성(clean random access functionality)과 유사하게 클린 랜덤 액세스가 달성된다.
CRA 픽처는 연관된 RADL 또는 RASL 픽처를 가질 수 있다. CRA 픽처가 디코딩 순서에서 비트스트림 내 첫 픽처일 때, CRA 픽처는 디코딩 순서에서 코딩된 비디오 시퀀스의 첫 픽처이며, 임의의 연관된 RASL 픽처는 이들 픽처가 비트스트림에서 존재하지 않는 픽처에 대한 참조를 포함하고 있을 수 있으므로, 디코더에 의해 출력되지 않으며 디코딩 가능하지 않을 수도 있다.
리딩 픽처는 출력 순서에서 연관된 RAP 픽처에 선행하는 픽처이다. 연관된 RAP 픽처는 (존재한다면) 디코딩 순서에서 이전의 RAP 픽처이다. 리딩 픽처는 RADL 픽처 또는 RASL 픽처 중 어느 하나이다.
모든 RASL 픽처는 연관된 BLA 또는 CRA 픽처의 리딩 픽처이다. 연관된 RAP 픽처가 BLA 픽처일 때 또는 비트스트림에서 코딩된 첫 픽처일 때, RASL 픽처는 이 RASL 픽처가 비트스트림에서 존재하지 않은 픽처에 대한 참조를 포함할 수 있으므로, 출력되지 않으며 정확하게 디코딩 가능하지 않을 수 있다. 그러나 만일 RASL 픽처의 연관된 RAP 픽처 앞의 RAP 픽처로부터 디코딩이 시작되었다면 RASL 픽처는 정확하게 디코딩될 수 있다. RASL 픽처는 비-RASL 픽처의 디코딩 프로세스를 위한 참조 픽처로서 사용되지 않는다. 존재한다면 모든 RASL 픽처는 디코딩 순서에서 연관된 동일 RAP 픽처의 모든 트레일링 픽처에 선행한다. HEVC 표준의 일부 초안에서, RASL 픽처는 TFD(Tagged for Discard) 픽처라고 지칭되었다.
모든 RADL 픽처는 리딩 픽처이다. RADL 픽처는 연관된 동일 RAP 픽처의 트레일링 픽처의 디코딩 프로세스를 위한 참조 픽처로서 사용되지 않는다. 존재한다면, 모든 RADL 픽처는 디코딩 순서에서, 연관된 동일 RAP 픽처의 모든 트레일링 픽처에 선행한다. RADL 픽처는 디코딩 순서에서 연관된 RAP 픽처에 선행하는 어떠한 픽처도 참조하지 않으며 이에 따라 연관된 RAP 픽처로부터 디코딩이 시작할 때 정확하게 디코딩될 수 있다.
CRA 픽처로부터 시작하는 비트스트림의 일부가 다른 비트스트림에 포함될 때, CRA 픽처와 연관된 RASL 픽처는 정확하게 디코딩될 수 없는데, 왜냐하면 이들의 참조 픽처 중 일부가 조합된 비트스트림에서 존재하지 않을 수 있기 때문이다. 스플라이싱 동작(splicing operation)을 손쉽게 하기 위해, CRA 픽처의 NAL 유닛 유형은 이 픽처가 BLA 픽처라는 것을 표시하도록 변경될 수 있다. BLA 픽처와 연관된 RASL 픽처는 정확하게 디코딩될 수 없고 그래서 출력/디스플레이되지 않는다. 뿐만 아니라, BLA 픽처와 연관된 RASL 픽처는 디코딩에서 빠질 수도 있다.
BLA 픽처는 디코딩 순서에서 비트스트림 내 첫 픽처일 수 있거나, 비트스트림에서 나중에 나올 수 있다. 각각의 BLA 픽처는 새로이 코딩된 비디오 시퀀스를 시작하며, IDR 픽처처럼 디코딩 프로세스에 유사한 영향을 미친다. 그러나 BLA 픽처는 참조 픽처 세트가 비어 있지 않다고 명시하는 신택스 요소를 포함한다. BLA 픽처가 BLA_W_LP와 동일한 nal_unit_type을 가질 때, BLA 픽처는 디코더에 의해 출력되지 않고 디코딩 가능하지 않을 수 있는 연관된 RASL 픽처를 가질 수 있는데, 이는 연관된 RASL 픽처가 비트스트림에서 존재하지 않은 픽처에 대한 참조를 포함하고 있을 수 있기 때문이다. BLA 픽처가 BLA_W_LP와 동일한 nal_unit_type을 가질 때, BLA 픽처는 디코딩되는 것으로 명시된 연관된 RADL 픽처를 또한 가질 수 있다. BLA 픽처가 BLA_W_DLP와 동일한 nal_unit_type을 가질 때, BLA 픽처는 연관된 RASL 픽처를 갖지 않고, 디코딩되는 것으로 명시된 연관된 RADL 픽처를 가질 수 있다. BLA 픽처가 BLA_N_LP와 동일한 nal_unit_type을 가질 때, BLA 픽처는 어떠한 연관된 리딩 픽처도 갖지 않는다.
IDR_N_LP와 동일한 nal_unit_type을 갖는 IDR 픽처는 비트스트림에서 존재하는 연관된 리딩 픽처를 갖지 않는다. IDR_W_LP와 동일한 nal_unit_type을 갖는 IDR 픽처는 비트스트림에서 존재하는 연관된 RASL 픽처를 갖지 않고, 비트스트림에서 연관된 RADL 픽처를 가질 수 있다.
nal_unit_type의 값이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14와 동일할 때, 디코딩된 픽처는 동일한 시간 서브계층의 임의의 다른 픽처의 참조로서 사용되지 않는다. 즉, HEVC에서, nal_unit_type의 값이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14와 동일할 때, 디코딩된 픽처는 동일 값의 TemporalId를 가진 임의의 픽처의 RefPicSetStCurrBefore, RefPicSetStCurrAfter 및 RefPicSetLtCurr 중 어느 것에도 포함되지 않는다. TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14와 동일한 nal_unit_type을 갖는 코딩된 픽처는 동일 값의 TemporalId를 갖는 다른 픽처의 디코딩 가능성에 영향을 미치지 않고 폐기될 수 있다.
트레일링 픽처는 출력 순서에서 연관된 RAP 픽처에 뒤이어 오는 픽처로서 정의될 수 있다. 트레일링 픽처인 어떤 픽처도 RADL_N, RADL_R, RASL_N 또는 RASL_R과 동일한 nal_unit_type를 갖지 않는다. 리딩 픽처인 어떤 픽처도 디코딩 순서에서, 동일 RAP 픽처와 연관된 모든 트레일링 픽처에 선행하는 것으로 제약될 수 있다. BLA_W_DLP 또는 BLA_N_LP와 동일한 nal_unit_type를 가진 BLA 픽처와 연관된 어떤 RASL 픽처도 비트스트림에서 존재하지 않는다. BLA_N_LP와 동일한 nal_unit_type를 갖는 BLA 픽처와 연관된 또는 IDR_N_LP와 동일한 nal_unit_type를 갖는 IDR 픽처와 연관된 어떤 RADL 픽처도 비트스트림에서 존재하지 않는다. CRA 또는 BLA 픽처와 연관된 임의의 RASL 픽처는 출력 순서에서 CRA 또는 BLA 픽처와 연관된 임의의 RADL 픽처에 선행하는 것으로 제약될 수 있다. CRA 픽처와 연관된 임의의 RASL 픽처는 디코딩 순서에서 CRA 픽처에 선행하는 임의의 다른 RAP 픽처에 출력 순서에서 뒤에 나오는 것으로 제약될 수 있다.
HEVC에는 시간 서브계층 스위칭 포인트(temporal sub-layer switching point)를 표시하는데 사용될 수 있는 TSA 또는 STSA 픽처 유형이라는 두 개의 픽처 유형이 있다. 만일 N까지의 TemporalId를 갖는 시간 서브계층이 TSA 또는 STSA 픽처(배타적임) 및 TSA 또는 STSA 픽처가 N+1과 동일한 TemporalId를 가질 때까지 디코딩되었다면, TSA 또는 STSA 픽처는 N+1과 동일한 TemporalId를 갖는 (디코딩 순서에서) 모든 후속 픽처가 디코딩될 수 있게 한다. TSA 픽처 유형은 TSA 픽처 자체 및 디코딩 순서에서 TSA 픽처에 뒤이어 오는 동일 서브계층에 있는 모든 픽처에 제약을 부과할 수 있다. 이러한 픽처 중 어떤 픽처도 디코딩 순서에서 TSA 픽처에 선행하는 동일 서브계층에 있는 임의의 픽처로부터 인터 예측을 사용하는 것이 허용되지 않는다. TSA의 정의에 따르면 디코딩 순서에서 TSA 픽처에 뒤이어 오는 상위의 서브계층에 있는 픽처에도 또한 제약을 부과할 수 있다. 이러한 픽처 중 어떤 픽처도 그 픽처가 TSA 픽처와 동일한 또는 상위의 서브계층에 속한다면 디코딩 순서에서 TSA 픽처에 선행하는 픽처를 참조하는 것이 허용되지 않는다. TSA 픽처는 0보다 큰 TemporalId를 갖는다. STSA는 TSA 픽처와 유사하지만 디코딩 순서에서 STSA 픽처에 뒤이어 오는 상위의 서브계층에 있는 픽처에 대해 제약을 부과하지 않으며 그래서 STSA 픽처가 상주하는 서브계층으로만 업-스위칭(up-switching)이 가능해진다.
비-VCL NAL 유닛은 예를 들어 다음과 같은 유형 중 하나: 시퀀스 파라미터 세트(sequence parameter set), 픽처 파라미터 세트, 보충 강화 정보(supplemental enhancement information, SEI) NAL 유닛, 액세스 유닛 구분자(access unit delimiter), 시퀀스 NAL 유닛의 끝, 스트림 NAL 유닛의 끝, 또는 필러 데이터(filler data) NAL 유닛일 수 있다. 파라미터 세트는 디코딩된 픽처의 재구성을 위해 필요할 수 있는데 반해, 다른 비-VCL NAL 유닛 중 많은 유닛은 디코딩된 샘플 값의 재구성에는 필요하지 않다.
코딩된 비디오 시퀀스 전체에서 변동 없이 남아 있는 파라미터는 시퀀스 파라미터 세트에 포함된다. 디코딩 프로세스에 의해 필요할 수 있는 파라미터 이외에, 시퀀스 파라미터 세트는 임의적으로 비디오 유용성 정보(video usability information, VUI)를 포함할 수 있는데, 이 정보는 버퍼링, 픽처 출력 타이밍, 렌더링, 및 자원 예약에 중요할 수 있는 파라미터를 포함한다. HEVC에서, 시퀀스 파라미터 세트 RBSP는 하나 이상의 픽처 파라미터 세트 RBSP 또는 버퍼링 주기 SEI 메시지가 담긴 하나 이상의 SEI NAL 유닛에 의해 참조될 수 있는 파라미터를 포함한다. 픽처 파라미터 세트는 여러 코딩된 픽처에서 변동되지 않을 것 같은 그러한 파라미터를 포함한다. 픽처 파라미터 세트 RBSP는 하나 이상의 코딩된 픽처의 코딩된 슬라이스 NAL 유닛에 의해 참조될 수 있는 파라미터를 포함할 수 있다.
HEVC에서, 비디오 파라미터 세트(video parameter set, VPS)는 각 슬라이스 세그먼트 헤더에서 발견되는 신택스 요소에 의해 참조되는 PPS에서 발견되는 신택스 요소에 의해 참조된 SPS에서 발견되는 신택스 요소의 콘텐츠에 따라 결정되는 바와 같이 0개 이상의 전체 코딩된 비디오 시퀀스에 적용되는 신택스 요소를 담은 신택스 구조라고 정의될 수 있다. 비디오 파라미터 세트 RBSP는 하나 이상의 시퀀스 파라미터 세트 RBSP에 의해 참조될 수 있는 파라미터를 포함할 수 있다.
비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(sequence parameter set, SPS) 및 픽처 파라미터 세트(picture parameter set, PPS)의 관계 및 계층구조는 다음과 같이 설명될 수 있다. VPS는 파라미터 세트 계층구조에서 그리고 스케일러빌리티 및/또는 3DV 비디오의 맥락에서 SPS보다 한 레벨 위에 존재한다. VPS는 코딩된 전체 비디오 시퀀스에서 모든 (스케일러빌리티 또는 뷰) 계층 전체의 모든 슬라이스에 공통적인 파라미터를 포함할 수 있다. SPS는 코딩된 전체 비디오 시퀀스에서 특정 (스케일러빌리티 또는 뷰) 계층 내 모든 슬라이스에 공통적이고, 여러 (스케일러빌리티 또는 뷰) 계층에 의해 공유될 수 있는 파라미터를 포함한다. PPS는 특정 계층 표현(하나의 액세스 유닛 내 하나의 스케일러빌리티 또는 뷰 계층의 표현) 내 모든 슬라이스에 공통적이며 그리고 여러 계층 표현 내 모든 슬라이스에 의해 공유될 가능성이 있는 파라미터를 포함한다.
VPS는 비트스트림 내 계층의 종속 관계에 관한 정보뿐만 아니라 코딩된 전체 비디오 시퀀스에서 모든 (스케일러빌리티 또는 뷰) 계층 전체의 모든 슬라이스에 적용 가능한 많은 다른 정보를 제공할 수 있다. VPS는 두 개의 부분, 즉, 기본 VPS 및 VPS 확장을 포함하는 것으로 간주될 수 있고, VPS 확장은 임의적으로 존재할 수 있다. HEVC에서, 기본 VPS는 VPS_extension() 신택스 구조가 없는 video_parameter_set_rbsp() 신택스 구조를 포함하는 것으로 간주될 수 있다. video_parameter_set_rbsp() 신택스 구조는 주로 HEVC 버전 1에 대해 이미 명시되었고 기본 계층 디코딩에 사용될 수 있는 신택스 요소를 포함한다. HEVC에서, VPS 확장은 vps_extension() 신택스 구조를 포함하는 것으로 간주될 수 있다. vps_extension() 신택스 구조는 HEVC 버전 2에서 주로 다중 계층 확장에 대해 명시되었고 계층 종속 관계를 표시하는 신택스 요소와 같은 하나 이상의 비 기본 계층을 디코딩하는 데 사용될 수 있는 신택스 요소를 포함한다.
VPS 확장에서 신택스 요소 max_tid_il_ref_pics_plus1은 비-IRAP 픽처가 인터 계층 예측을 위한 참조로서 사용되지 않음을 표시하기 위해 사용될 수 있고, 그렇지 않다면, 어떤 시간 서브계층이 인터 계층 예측을 위한 참조로서 사용되지 않는지를 표시하기 위해 사용될 수 있다:
0과 동일한 max_tid_il_ref_pics_plus1[i][j]는 layer_id_in_nuh[i]와 동일한 nuh_layer_id를 갖는 비-IRAP 픽처가 layer_id_in_nuh[j]와 동일한 nuh_layer_id를 갖는 픽처의 인터 계층 예측을 위한 소스 픽처로서 사용되지 않는다는 것을 명시한다. 0보다 큰 max_tid_il_ref_pics_plus1[i][j]는 layer_id_in_nuh[i]와 동일한 nuh_layer_id 및 max_tid_il_ref_pics_plus1[i][j] - 1보다 큰 TemporalId를 갖는 픽처가 layer_id_in_nuh[j]와 동일한 nuh_layer_id를 갖는 픽처의 인터 계층 예측을 위한 소스 픽처로서 사용되지 않는다는 것을 명시한다. 존재하지 않을 때, max_tid_il_ref_pics_plus1[i][j]의 값은 7과 동일하다고 추정된다.
H.264/AVC 및 HEVC 신택스는 파라미터 세트의 많은 인스턴스를 허용하며, 각각의 인스턴스는 고유 식별자로 식별된다. 파라미터 세트에 필요한 메모리 사용을 제한하기 위하여, 파라미터 세트 식별자의 값 범위는 제한되었다. H.264/AVC 및 HEVC에서, 각각의 슬라이스 헤더는 슬라이스를 포함하는 픽처의 디코딩에 작용하는 픽처 파라미터 세트의 식별자를 포함하며, 각각의 픽처 파라미터 세트는 작용하는 시퀀스 파라미터 세트의 식별자를 포함한다. 그 결과, 픽처 및 시퀀스 파라미터 세트의 전송은 슬라이스의 전송과 정확하게 동기되어야 하는 것은 아니다. 그 대신, 작용하는 시퀀스 및 픽처 파라미터 세트는 이들이 참조되기 전 어느 때라도 수신되는 것으로 충분하며, 이로써 슬라이스 데이터에 대해 사용된 프로토콜과 비교하여 더욱 신뢰할 수 있는 전송 메커니즘을 이용하여 파라미터 세트의 "대역외 전송(out-of-band)" 전송이 가능해진다. 예를 들어, 파라미터 세트는 실시간 전송 프로토콜(Real-time Transport Protocol, RTP) 세션의 세션 서술(session description) 내에 파라미터로서 포함될 수 있다. 파라미터 세트가 대역 내(in-band)로 전송되면, 파라미터 세트는 오류 강인성(error robustness)을 개선하기 위해 반복될 수 있다.
대역외 전송, 시그널링 또는 저장은 액세스 또는 세션 협상의 용이성과 같은 전송 오류에 대한 허용 오차 이외의 다른 목적으로 부가적으로 또는 대안적으로 사용될 수 있다. 예를 들어, ISOBMFF에 순응하는 파일 내 트랙의 샘플 엔트리는 파라미터 세트를 포함할 수 있는 반면, 비트스트림의 코딩된 데이터는 파일 또는 다른 파일의 다른 곳에 저장된다. 비트스트림을 따라서 있는 구문(예를 들어, 비트스트림을 따라 표시하는 것)은 청구범위 및 설명된 실시예에서 대역 외 데이터가 비트스트림과 연관되는 방식으로 대역 외 전송, 시그널링 또는 저장하는 것을 지칭하는 것으로 사용될 수 있다. 비트스트림을 따라서 있는 구문 디코딩(phrase decoding) 또는 이와 유사한 것은 비트스트림과 연관된 참조된 (대역 외 전송, 시그널링 또는 저장으로부터 획득될 수 있는) 참조된 대역 외 데이터를 디코딩하는 것을 지칭할 수 있다. 코딩된 픽처는 픽처의 코드화된 표현이다.
HEVC에서, 코딩된 픽처는 픽처의 모든 코딩 트리 유닛을 포함하는 픽처의 코딩된 표현으로 정의될 수 있다. HEVC에서, 액세스 유닛(AU)은 명시된 분류 규칙에 따라서 서로 연관되고, 디코딩 순서에서 연속하며, nuh_layer_id의 임의의 특정 값을 갖는 많아야 하나의 픽처를 포함하는 한 세트의 NAL 유닛으로 정의될 수 있다. 코딩된 픽처의 VCL NAL 유닛을 포함하는 것 이외에, 액세스 유닛은 비-VCL NAL 유닛을 또한 포함할 수도 있다.
코딩된 픽처가 액세스 유닛 내에서 특정 순서로 나타나는 것이 요구될 수도 있다. 예를 들어, nuhLayerIDA와 동일한 nuh_layer_id를 갖는 코딩된 픽처는 디코딩 순서에서, 동일 액세스 유닛 내의 nuhLayerldA보다 큰 nuh_layer_id를 갖는 모든 코딩된 픽처에 선행하도록 요구될 수 있다. AU는 전형적으로 동일한 출력 시간 및/또는 캡처 시간을 나타내는 모든 코딩된 픽처를 포함한다.
비트스트림은 하나 이상의 코딩된 비디오 시퀀스를 형성하는 코딩된 픽처 및 연관된 데이터의 표현을 형성하는 NAL 유닛 스트림 또는 바이트 스트림 형태의 비트의 시퀀스로서 정의될 수 있다. 첫 번째 비트스트림은 동일한 파일에서 또는 통신 프로토콜의 동일한 연결에서와 같은 동일한 논리 채널에서 두 번째 비트스트림에 뒤이어 나올 수 있다. (비디오 코딩의 맥락에서) 기본 스트림은 하나 이상의 비트스트림의 시퀀스로서 정의될 수 있다. 첫 번째 비트스트림의 끝은 비트스트림의 끝(end of bitstream, EOB) NAL 유닛이라고 지칭될 수 있고 비트스트림의 마지막 NAL 유닛인 특정 NAL 유닛에 의해 표시될 수 있다. HEVC 및 그의 현재의 초안 확장에서, EOB NAL 유닛은 0과 동일한 nuh_layer_id를 가져야 한다.
프레임 구조를 제공하지 않는 전송 또는 저장 환경을 위해 H.264/AVC 및 HEVC에서 바이트 스트림 포맷이 명시되었다. 바이트 스트림 포맷은 각 NAL 유닛 앞에 시작 코드를 첨부하여 NAL 유닛을 서로 분리한다. NAL 유닛 경계의 잘못된 검출을 피하기 위해, 인코더는 바이트 지향 시작 코드 에뮬레이션 방지 알고리즘(byte-oriented start code emulation prevention algorithm)을 실행하는데, 이 알고리즘은 시작 코드가 달리 발생하였다면 에뮬레이션 방지 바이트를 NAL 유닛 페이로드에 추가한다. 예를 들어, 패킷 지향 시스템과 스트림 지향 시스템 사이에서 수월한 게이트웨이 동작을 가능하게 하기 위해, 바이트스트림 포맷이 사용 중이든 그렇지 않든 간에, 시작 코드 에뮬레이션 방지가 항시 수행될 수 있다. 바이트 스트림 포맷의 비트 순서는 첫 번째 바이트의 최상위 비트(most significant bit, MSB)에서 시작하고, 첫 번째 바이트의 최하위 비트(least significant bit, LSB)로 진행하고, 뒤이어 두 번째 바이트의 MSB로 진행하도록 명시될 수 있다. 바이트 스트림 포맷은 바이트 스트림 NAL 유닛 신택스 구조의 시퀀스로 구성되는 것으로 간주될 수 있다. 각각의 바이트 스트림 NAL 유닛 신택스 구조는 신택스 요소 이름이 참조되면 하나의 NAL 유닛 신택스 구조, 즉 nal_unit(NumBytesInNalUnit) 신택스 구조가 뒤따르는 하나의 시작 코드 프리픽스를 포함하는 것으로 간주될 수 있다. 바이트 스트림 NAL 유닛은 부가적인 zero_byte 신택스 요소를 또한 포함할 수 있다. 이 유닛은 하나 이상의 부가적인 trailing_zero_8bits 신택스 요소를 또한 포함할 수 있다. 바이트 스트림 NAL 유닛이 비트스트림의 첫 번째 바이트 스트림 NAL 유닛일 때, 바이트 스트림 NAL 유닛은 하나 이상의 부가적인 leading_zero_8bits 신택스 요소를 포함할 수도 있다. 바이트 스트림 NAL 유닛의 신택스는 다음과 같이 명시될 수 있다.
Figure 112018104468668-pct00003
바이트 스트림 내의 바이트 스트림 NAL 유닛의 순서는 바이트 스트림 NAL 유닛에 포함된 NAL 유닛의 디코딩 순서를 따르도록 요구될 수 있다. 신택스 요소의 시맨틱은 다음과 같이 명시될 수 있다. leading_zero_8bits는 0x00과 동일한 바이트이다. leading_zero_8bits 신택스 요소는 비트스트림의 첫 번째 바이트 스트림 NAL 유닛에만 존재할 수 있는데, 그 이유는 NAL 유닛 신택스 구조를 따르고 (start_code_prefix_one_3bytes가 뒤이어 오는 zero_byte로서 해석되는) 4-바이트 시퀀스 0x00000001에 선행하는 0x00과 동일한 임의의 바이트가 선행 바이트 스트림 NAL 유닛의 일부인 trailing_zero_8bits 신택스 요소인 것으로 간주될 것이기 때문이다. zero_byte는 0x00과 동일한 단일 바이트이다. start_code_prefix_one_3bytes는 0x000001과 동일한 3 바이트의 고정 값 시퀀스이다. 이 신택스 요소는 시작 코드 프리픽스(또는 간단히 시작 코드)라고 불릴 수 있다. trailing_zero_8bits는 0x00과 동일한 바이트이다.
NAL 유닛은 따라야 할 데이터 유형의 표시를 포함하는 신택스 구조 및 그 데이터를 필요에 따라 에뮬레이션 방지 바이트가 산재된 RBSP 형태로 포함하는 바이트로서 정의될 수 있다. 원시 바이트 시퀀스 페이로드(RBSP)는 NAL 유닛에서 캡슐화된 정수 개의 바이트를 포함하는 신택스 구조로서 정의될 수 있다. RBSP는 비어 있거나 또는 RBSP 정지 비트(stop bit)가 뒤이어 오고 0과 동일한 0 개 이상의 후속 비트가 뒤이어 오는 신택스 요소를 포함하는 데이터 비트의 스트링의 형태를 갖는다.
NAL 유닛은 헤더와 페이로드로 구성된다. H.264/AVC 및 HEVC에서, NAL 유닛 헤더는 NAL 유닛의 유형을 표시한다.
nal_unit(NumBytesInNalUnit) 신택스 구조의 HEVC 신택스는 다음에 NAL 유닛의 신택스의 예로서 제공된다.
Figure 112018104468668-pct00004
HEVC에서, 코딩된 비디오 시퀀스(coded video sequence, CVS)는 예를 들어, 디코딩 순서에서, NoRaslOutputFlag가 1인 IRAP 액세스 유닛과, 그 뒤를 이어 NoRaslOutputFlag가 1인 IRAP 액세스 유닛이 아닌, 모든 후속 액세스 유닛을 포함하되 NoRaslOutputFlag가 1인 IRAP 액세스 유닛인 임의의 후속 액세스 유닛을 포함하지 않는, 0개 이상의 액세스 유닛으로 이루어진 액세스 유닛의 시퀀스로서 정의될 수 있다. IRAP 액세스 유닛은 기본 계층 픽처가 IRAP 픽처인 액세스 유닛으로서 정의될 수 있다. NoRaslOutputFlag의 값은 각각의 IDR 픽처, 각각의 BLA 픽처에 대해 1과 동일하며, 디코딩 순서에서 비트스트림 내 그 특정 계층의 첫 번째 픽처인 각각의 IRAP 픽처는 디코딩 순서에서 nuh_layer_id의 동일 값을 갖는 시퀀스 NAL 유닛의 끝에 따라오는 첫 번째 IRAP 픽처이다. 다중 계층 HEVC에서, NoRaslOutputFlag의 값은 IDirectRefLayer[nuh_layer_id][j]와 동일한 refLayerIddml 모든 값에 대해 LayerInitializedFlag[nuh_layer_id]가 0이고 LayerInitializedFlag[refLayerId]가 1이도록 nuh_layer_id가 그렇게 되어 있을 때 각각의 IRAP 픽처에 대해 1이며, 여기서 j는 0부터 NumDirectRefLayers [nuh_layer_id] - 1까지를 포함하는 범위에 있다. 그렇지 않은 경우, NoRaslOutputFlag의 값은 HandleCraAsBlaFlag와 동일하다. NoRaslOutputFlag가 1이면 NoRaslOutputFlag가 설정된 IRAP 픽처와 연관된 RASL 픽처가 디코더에 의해 출력되지 않는다는 영향을 미친다. 디코더를 제어할 수 있는 플레이어 또는 수신기와 같은 외부 엔티티로부터 HandleCraAsBlaFlag의 값을 디코더에 제공하는 수단이 있을 수 있다.
HandleCraAsBlaFlag는 예를 들어 비트스트림에서 새로운 위치를 찾으려 시도하거나 방송에 동조하여 디코딩을 시작한 다음 CRA 픽처로부터 디코딩을 시작하는 플레이어에 의해 1로 설정될 수 있다. CRA 픽처에 대해 HandleCraAsBlaFlag가 1일 때, CRA픽처는 마치 이것이 BRA 픽처이었던 것처럼 취급하고 디코딩된다.
HEVC에서, 시퀀스의 끝(End of Sequence, EOS) NAL 유닛이라고 지칭될 수 있는 특정 NAL 유닛이 비트스트림에서 나오고, 0과 동일한 nuh_layer_id를 가질 때, 코딩된 비디오 시퀀스가 부가적으로 또는 대안적으로 (위의 규격에 따라) 종료되도록 명시될 수 있다.
픽처 그룹(group of pictures, GOP) 및 그의 특성은 다음과 같이 정의될 수 있다. GOP는 이전의 어느 픽처가 디코딩되었는지에 무관하게 디코딩될 수 있다. 오픈 GOP(open GOP)는 오픈 GOP의 초기 인트라 픽처로부터 디코딩이 시작될 때 출력 순서에서 초기 인트라 픽처에 선행하는 픽처가 정확하게 디코딩될 수 없을 수도 있는 그런 픽처 그룹이다. 다시 말해서, 오픈 GOP의 픽처는 이전의 GOP에 속하는 픽처를 (인터 예측에서) 참조할 수 있다. HEVC 디코더는 오픈 GOP를 시작하는 인트라 픽처를 인식할 수 있는데, 그 이유는 특정 NAL 유닛 유형인 CRA NAL 유닛 유형이 그의 코딩된 슬라이스에 사용될 수 있기 때문이다. 클로즈드 GOP(closed GOP)는 클로즈드 GOP의 초기 인트라 처로부터 디코딩이 시작될 때 모든 픽처가 정확하게 디코딩될 수 있는 그런 픽처 그룹이다. 다시 말해서, 클로즈드 GOP 내 어떤 픽처도 이전 GOP 내 어떤 픽처도 참조하지 않는다. H.264/AVC및 HEVC에서, 클로즈드 GOP는 IDR 픽처로부터 시작할 수 있다. HEVC에서, 클로즈드 GOP는 또한 BLA_W_RADL 또는 BLA_N_LP 픽처로부터 시작할 수도 있다. 오픈 GOP 코딩 구조는 참조 픽처의 선택 시 더 많은 융통성으로 인해 클로즈드 GOP 코딩 구조와 비교하여 압축 시 잠재적으로 더 효과적이다.
픽처의 구조(Structure of Picture, SOP)는 디코딩 순서에서 연속하는 하나 이상의 코딩된 픽처로서 정의될 수 있으며, 이 픽처의 구조에서는 디코딩 순서에서 첫 코딩된 픽처가 가장 낮은 시간 서브계층에 있는 참조 픽처이며 디코딩 순서에서 첫 코딩된 픽처를 잠재적으로 제외한 어떠한 코딩된 픽처도 RAP 픽처가 아니다. 이전 SOP 내 모든 픽처는 디코딩 순서에서 현재 SOP 내 모든 픽처에 선행하며 다음 SOP 내 모든 픽처는 디코딩 순서에서 현재 SOP 내 모든 픽처에 후행한다. SOP는 계층적이고 반복적인 인터 예측 구조를 표현할 수 있다. 픽처 그룹(GOP)이라는 용어는 때때로 SOP라는 용어와 상호 교환 가능한 의미로 사용될 수 있으며 SOP의 시맨틱과 동일한 시맨틱을 갖는다.
H.264/AVC 및 HEVC의 비트스트림 신택스는 특정 픽처가 임의의 다른 픽처의 인터 예측을 위한 참조 픽처인지를 표시한다. 임의의 코딩 유형(I, P, B)의 픽처는 H.264/AVC 및 HEVC에서 참조 픽처 또는 비-참조 픽처일 수 있다.
HEVC에서, 참조 픽처 세트(reference picture set, RPS) 신택스 구조 및 디코딩 프로세스가 사용된다. 픽처에 대해 유효한 또는 활성의 참조 픽처 세트는 픽처에 대해 참조로서 사용된 모든 참조 픽처 및 디코딩 순서에서 임의의 후속 픽처에 대해 "참조에 사용됨"이라고 표기된 채로 유지되는 모든 참조 픽처를 포함한다. 참조 픽처 세트에는 즉 RefPicSetStCurr0 (별칭은 RefPicSetStCurrBefore임), RefPicSetStCurr1 (별칭은 RefPicSetStCurrAfter임), RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr 및 RefPicSetLtFoll이라고 지칭되는 여섯 서브세트가 있다. RefPicSetStFoll0 및 RefPicSetStFoll1은 또한 공동으로 하나의 서브세트인 RefPicSetStFoll0를 형성하는 것으로 고려될 수도 있다. 여섯 서브세트의 주석은 다음과 같다. "Curr"은 현재 픽처의 참조 픽처 리스트에 포함되어 있는 참조 픽처를 말하며 그래서 현재 픽처의 인터 예측 참조로서 사용될 수 있다. "Foll"은 현재 픽처의 참조 픽처 리스트에는 포함되어 있지 않고 디코딩 순서에서 후속 픽처에서 참조 픽처로서 사용될 수 있는 참조 픽처를 말한다. "St"는 단기간 참조 픽처(short-term reference picture)를 말하고, 이들 픽처는 일반적으로 이들의 POC 값의 특정 개수의 최하위 비트를 통해 식별될 수 있다. "Lt"는 장기간 참조 픽처(long-term reference picture)를 말하고, 이들 픽처는 특별하게 식별되며 일반적으로 언급된 특정 개수의 최하위 비트로 표현될 수 있는 것보다 더 큰 차의 현재 픽셀에 대한 POC 값을 갖는다. "0"는 현재 픽처의 POC 값보다 작은 POC 값을 갖는 그런 참조 픽처를 말한다. "1"은 현재 픽처의 POC 값보다 큰 POC 값을 갖는 그런 참조 픽처를 말한다. RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, 및 RefPicSetStFoll1는 집합적으로 참조 픽처 세트의 단기간 서브세트라고 지칭된다. RefPicSetLtCurr 및 RefPicSetLtFoll는 집합적으로 참조 픽처 세트의 장기간 서브세트라고 지칭된다.
HEVC에서, 참조 픽처 세트는 시퀀스 파라미터 세트에서 명시될 수 있고 참조 픽처 세트에 붙은 인덱스를 통해 슬라이스 헤더에서 사용을 감안할 수 있다. 기준 픽처 세트는 슬라이스 헤더에서도 또한 명시될 수 있다. 기준 픽처 세트는 독립적으로 코딩될 수 있거나 또는 다른 기준 픽처 세트로부터 예측될 수 있다(인터-RPS 예측으로 알려져 있음). 참조 픽처 세트를 코딩하는 둘 모두의 유형에서, 플래그(used_by_curr_pic_X_flag)는 참조 픽처가 현재 픽처에 의해 참조에 사용되는지(*Curr 리스트에 포함됨) 또는 현재 픽처에 의해 참조에 사용되지 않는지(*Foll 리스트에 포함됨)를 표시하는 각 참조 픽처마다 추가적으로 송신된다. 현재 슬라이스에 의해 사용되는 참조 픽처 세트에 포함된 픽처는 "참조에 사용됨"이라고 표기되며, 현재 슬라이스에 의해 사용되는 참조 픽처 세트에 포함되지 않은 픽처는 "참조에 사용되지 않음"이라고 표기된다. 현재 픽처가 IDR 픽처이면, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, 및 RefPicSetLtFoll은 모두 비어있음(empty)으로 설정된다.
디코딩된 픽처 버퍼(Decoded Picture Buffer, DPB)는 인코더에서 및/또는 디코더에서 사용될 수 있다. 디코딩된 픽처를 버퍼링하는 두 가지 이유는 인터 예측에서 참조하기 위한 것과 디코딩된 픽처를 출력 순서로 재배열하기 위함이다. H.264/AVC 및 HEVC는 참조 픽처 표시하는 것과 출력 재배열하는 것 둘 모두에 대해 상당한 융통성을 제공하므로, 참조 픽처 버퍼링 및 출력 픽처 버퍼링을 위한 별개의 버퍼는 메모리 자원을 낭비할 수 있다. 그래서 DPB는 참조 픽처 및 출력 재배열을 위한 통합된 디코딩된 픽처 버퍼링 프로세스를 포함할 수 있다. 디코딩된 픽처는 이 픽처가 더 이상 참조로서 사용되지 않고 출력할 필요 없을 때 DPB로부터 제거될 수 있다.
H.264/AVC 및 HEVC의 많은 코딩 모드에서, 인터 예측을 위한 참조 픽처는 참조 픽처 리스트에 대한 인덱스로 표시된다. 인덱스는 보통 더 작은 인덱스가 대응하는 신택스 요소에 대해 더 짧은 값을 갖게 하는 가변 길이 코딩으로 코딩된다. H.264/AVC 및 HEVC에서, 두 개의 참조 픽처 리스트(참조 픽처 리스트 0 및 참조 픽처 리스트 1)는 각각의 양방향-예측 (B) 슬라이스마다 생성되며, 하나의 참조 픽처 리스트(참조 픽처 리스트 0)는 각각의 인터-코딩된 (P) 슬라이스마다 형성된다.
참조 픽처 리스트 0 및 참조 픽처 리스트 1과 같은 참조 픽처 리스트는 전형적으로 두 개의 단계로 구성된다: 첫 번째로, 초기의 참조 픽처 리스트가 생성된다. 초기의 참조 픽처 리스트는 예를 들어, frame_num, POC, temporal_id (또는 TemporalId 또는 이와 유사한 것), 또는 GOP 구조와 같은 예측 계층구조에 관한 정보, 또는 이들의 임의의 조합에 기초하여 생성될 수 있다. 두 번째로, 초기의 참조 픽처 리스트는 참조 픽처 리스트 수정 신택스 구조(reference picture list modification syntax structure)로서 알려진, 슬라이스 헤더에 포함된 참조 픽처 리스트 재배열(reference picture list reordering, RPLR) 커맨드에 의해 재배열될 수 있다. 참조 픽처 세트가 사용되면, 참조 픽처 리스트 0은 먼저 RefPicSetStCurr0를, 그 뒤를 이어 RefPicSetStCurr1를, 그 뒤를 이어 RefPicSetLtCurr를 포함하도록 초기화될 수 있다. 참조 픽처 리스트 1은 먼저 RefPicSetStCurr1를, 그 뒤를 이어 RefPicSetStCurr0을 포함하도록 초기화될 수 있다. HEVC에서, 초기의 참조 픽처 리스트는 참조 픽처 리스트 수정 신택스 구조를 통해 수정될 수 있고, 이 구조에서 초기의 참조 픽처 리스트 내 픽처는 리스트에 대한 엔트리 인덱스를 통해 식별될 수 있다. 다시 말해서, HEVC에서, 참조 픽처 리스트 수정은 최종 참조 픽처 리스트의 각 엔트리 전체의 루프를 포함하는 신택스 구조로 인코딩되며, 여기서 각 루프 엔트리는 초기 참조 픽처 리스트에 대한 고정 길이 코딩된 인덱스이고 픽처를 최종 참조 픽처 리스트에서 오름차순 위치 순서로 표시한다.
H.264/AVC 및 HEVC를 비롯한 많은 코딩 표준은 다수의 참조 픽처 중 어느 것이 특정 블록의 인터 예측을 위해 사용되는지를 표시하는데 사용될 수 있는 참조 픽처 리스트에 대한 참조 픽처 인덱스를 도출하는 디코딩 프로세스를 가질 수 있다. 참조 픽처 인덱스는 인코더에 의해 일부 인터 코딩 모드에서 비트스트림으로 코딩될 수 있거나, 또는 (인코더 및 디코더에 의해) 일부 다른 인터 코딩 모드에서 예를 들어 이웃 블록을 사용하여 도출될 수 있다.
비트스트림에서 움직임 벡터를 효과적으로 표현하기 위해, 움직임 벡터는 블록 별로 예측된 움직임 벡터에 대해 다르게 코딩될 수 있다. 많은 비디오 코덱에서, 예측된 움직임 벡터는 미리 정의된 방식으로, 예를 들어, 인접 블록의 인코딩된 또는 디코딩된 움직임 벡터의 중간 값을 계산함으로써 생성된다. 때로는 최신 움직임 벡터 예측(advanced motion vector prediction, AMVP)이라고 지칭되는 움직임 벡터 예측을 생성하는 다른 방법은 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록으로부터 후보 예측의 리스트를 생성하고 선택한 후보를 움직임 벡터 예측기로서 시그널링하는 것이다. 움직임 벡터 값을 예측하는 것 이외에도, 이전에 코딩된/디코딩된 픽처의 참조 인덱스가 예측될 수 있다. 참조 인덱스는 전형적으로 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록으로부터 예측될 수 있다. 움직임 벡터의 차분 코딩은 일반적으로 슬라이스 경계에 걸쳐 비활성화된다.
스케일러블 비디오 코딩은 하나의 비트스트림이 콘텐츠의 여러 표현을 예를 들어, 상이한 비트레이트, 해상도 또는 프레임 레이트로 포함하고 있을 수 있는 코딩 구조를 말할 수 있다. 이러한 경우, 수신기는 그의 특성 (예를 들어, 디스플레이 디바이스와 가장 잘 어울리는 해상도)에 따라 요구된 표현을 추출할 수 있다. 대안적으로, 서버 또는 네트워크 요소는 예를 들어, 네트워크 특성 또는 수신기의 처리 능력에 따라 수신기로 전송될 비트스트림의 일부를 추출할 수 있다. 의미 있는 디코딩된 표현은 스케일러블 비트스트림의 특정 부분만을 디코딩함으로써 생성될 수 있다. 전형적으로 스케일러블 비트스트림은 이용 가능한 최저 품질의 비디오를 제공하는 "기본 계층" 및 하위 계층과 함께 수신되어 디코딩될 때 비디오 품질을 강화하는 하나 이상의 강화 계층으로 이루어진다. 강화 계층의 코딩 효율 개선하기 위해, 그 계층의 코딩된 표현은 일반적으로 하위 계층에 의존한다. 예를 들어, 강화 계층의 움직임 및 모드 정보는 하위 계층으로부터 예측될 수 있다. 유사하게, 하위 계층의 픽셀 데이터는 강화 계층의 예측을 생성하는데 사용될 수 있다.
일부 스케일러블 비디오 코딩 방식에서, 비디오 신호는 기본 계층과 하나 이상의 강화 계층으로 인코딩될 수 있다. 강화 계층은 예를 들어, 시간 해상도(즉, 프레임 레이트), 공간 해상도, 또는 다른 계층이나 그 계층의 일부에 의해 표현되는 그야말로 비디오 콘텐츠의 품질을 강화할 수 있다. 각각의 계층과 함께 그의 모든 종속 계층은, 예를 들어, 특정한 공간 해상도, 시간 해상도 및 품질 레벨로 표현한 비디오 신호의 한가지 표현이다. 본 명세서에서, 발명자는 스케일러블 계층과 함께 그의 모든 종속 계층을 "스케일러블 계층 표현(scalable layer representation)"이라고 지칭한다. 스케일러블 계층 표현에 대응하는 스케일러블 비트스트림의 일부가 추출되고 디코딩되어 원 신호의 표현을 특정의 충실도로 생성할 수 있다.
스케일러빌리티 모드 또는 스케일러빌리티 차원은 이것으로 제한되는 것은 아니지만 다음을 포함할 수 있다:
- 품질 스케일러빌리티(quality scalability): 기본 계층 픽처는 강화 계층 픽처보다 낮은 품질로 코딩되는데, 이것은 예를 들어 강화 계층에서보다 기본 계층에서 더 큰 양자화 파라미터 값(즉, 변환 계수 양자화를 위한 더 큰 양자화 스텝 크기)을 사용하여 달성될 수 있다.
- 공간 스케일러빌리티(spatial scalability): 기본 계층 픽처는 강화 계층 픽처보다 낮은 해상도로 코딩된다(즉, 더 적은 수의 샘플을 갖는다). 공간 스케일러빌리티 및 품질 스케일러빌리티, 특히 그의 커스-그레인 스케일러빌리티(coarse-grain scalability) 유형은 때로는 동일한 유형의 스케일러빌리티로 간주될 수 있다.
- 비트-깊이 스케일러빌리티(Bit-depth scalability): 기본 계층 픽처는 강화 계층 픽처(예를 들어, 10 또는 12 비트)보다 낮은 비트-깊이(예를 들어, 8비트)로 코딩된다.
- 동적 범위 스케일러빌티티(dynamic range scalability): 스케일러블 계층은 상이한 톤 매핑 함수 및/또는 상이한 광학 전달 함수를 사용하여 획득한 상이한 동적 범위 및/또는 이미지를 나타낸다.
- 크로마 포맷 스케일러빌리티(Chroma format scalability): 기본 계층 픽처는 강화 계층 픽처(예를 들어, 4:4:4 포맷)보다 크로마 샘플 어레이에서 더 낮은 (예를 들어, 4:2:0 크로마 포맷으로 코딩된) 공간 해상도를 제공한다.
- 색 공간 스케일러빌리티(color gamut scalability): 강화 계층 픽처는 기본 계층 픽처보다 풍부한/넓은 색 표현 범위 - 예를 들어 강화 계층은 UHDTV (ITU-R BT.2020) 색 공간을 가질 수 있고 기본 계층은 ITU-R BT.709 색 공간을 가질 수 있음 - 를 갖는다.
- 뷰 스케일러빌리티(view scalability), 이것은 멀티뷰 코딩이라고도 지칭될 수 있다. 기본 계층은 제 1 뷰를 표현하는데 반해, 강화 계층은 제 2 뷰를 표현한다.
- 깊이 스케일러빌리티(depth scalability)는 깊이-강화 코딩이라고도 지칭될 수 있다. 비트스트림의 한 계층 또는 일부 계층은 텍스처 뷰(들)를 표현할 수 있는데 반해, 다른 계층 또는 계층들은 깊이 뷰(들)을 표현할 수 있다.
- 관심 영역 스케일러빌리티(region-of-interest scalability) (아래에서 설명됨).
- 인터레이스-투-프로그레시브 스케일러빌리티(interlaced-to-progressive scalability) (또한 필드-투-프레임 스케일러빌리티(field-to-frame scalability)라고도 알려져 있음): 기본 계층의 코딩된 인터레이스된 소스 콘텐츠 재료는 프로그레시브 소스 콘텐츠를 표현하는 강화 계층으로 강화된다.
- 하이브리드 코덱 스케일러빌리티(hybrid codec scalability)(또한 코딩 표준 스케일러빌리티(coding standard scalability)라고도 알려져 있음): 하이브리드 코덱 스케일러빌리티에서, 기본 계층 및 강화 계층의 비트스트림 신택스, 시맨틱 및 디코딩 프로세스는 상이한 비디오 코딩 표준에서 명시되어 있다. 따라서, 기본 계층 픽처는 강화 계층 픽처와 상이한 코딩 표준 또는 포맷에 따라서 코딩된다. 예를 들어, 기본 계층은 H.264/AVC을 이용하여 코딩될 수 있으며 강화 계층은 HEVC 멀티-뷰 확장을 이용하여 코딩될 수 있다.
스케일러빌리티 유형 중 많은 유형은 서로 조합되어 적용될 수 있다는 것을 이해하여야 한다. 예를 들어 색공간 스케일러빌리티 및 비트-깊이 스케일러빌리티는 조합될 수 있다.
계층이라는 용어는 뷰 스케일러빌리티 및 깊이 강화를 포함하는 임의의 유형의 스케일러빌리티의 맥락에서 사용될 수 있다. 강화 계층은 SNR, 공간, 멀티뷰, 깊이, 비트-깊이, 크로마 포맷, 및/또는 색 공간 강화와 같은 임의의 유형의 강화를 말할 수 있다. 기본 계층은 기본 뷰, SNR/공간 스케일러빌리티의 기본 계층, 또는 깊이 강화된 비디오 코딩의 텍스처 기본 뷰와 같은 임의의 유형의 기본 비디오 시퀀스를 말할 수 있다.
3차원(3D) 비디오 콘텐츠를 제공하기 위한 다양한 기술이 현재 연구되고 개발되고 있다. 이것은 스테레오스코픽 또는 투-뷰 비디오(two-view video)에서, 하나의 비디오 시퀀스 또는 뷰가 왼쪽 눈에 제공되는 반면 병렬 뷰는 오른쪽 눈에 제공되는 것으로 고려될 수 있다. 둘을 초과하는 병렬 뷰는 뷰포인트 스위칭(viewpoint switching)을 가능하게 하는 애플리케이션 또는 동시에 많은 수의 뷰를 제공하여 시청자가 콘텐츠를 상이한 뷰포인트로부터 관측하게 하는 오토스테레오스코픽(autostereoscopic) 디스플레이에 필요할 수 있다.
뷰는 하나의 카메라 또는 뷰포인트를 표현하는 픽처의 시퀀스로 정의될 수 있다. 뷰를 표현하는 픽처는 또한 뷰 컴포넌트라고 불릴 수도 있다. 다시 말하면, 뷰 컴포넌트는 단일의 액세스 유닛에서 뷰의 코딩된 표현으로서 정의될 수 있다. 멀티뷰 비디오 코딩에서, 하나를 초과하는 많은 뷰는 비트스트림으로 코딩된다. 뷰는 전형적으로 스테레오스코픽 또는 멀티뷰 오토스테레오스코픽 디스플레이에서 디스플레이되는 것으로 의도되거나 또는 다른 3D 장치에 사용되는 것으로 의도되어 있기 때문에, 뷰는 동일한 장면을 표현하며 콘텐츠에 상이한 뷰포인트를 표현할지라도 전형적으로 콘텐츠별로 부분적으로 겹친다. 그래서 멀티뷰 비디오 코딩에서 인터-뷰 상관을 이용하고 압축 효율을 개선하기 위해 인터-뷰 예측이 이용될 수 있다. 인터-뷰 예측을 실현하는 하나의 방법은 첫 번째 뷰 내에서 존재하는 코딩되는 또는 디코딩되는 픽처의 참조 픽처 리스트(들)에다 하나 이상의 다른 뷰의 하나 이상의 디코딩된 픽처를 포함시키는 것이다. 뷰 스케일러빌리티는 하나 이상의 코딩된 뷰를 제거하거나 생략할 수 있게 하면서, 결과적인 비트스트림은 순응한 채로 유지하고 원래보다 적은 수의 뷰로 비디오를 표현하는, 그러한 멀티뷰 비디오 코딩 또는 멀티뷰 비디오 스트림을 말할 수 있다. 관심 영역(region of Interest, ROI) 코딩은 비디오 내의 특정 영역을 더 높은 충실도로 코딩하는 것을 말하는 것으로 정의될 수 있다.
ROI 스케일러빌리티는 강화 계층이 예를 들어 공간적으로, 품질 면에서, 비트-깊이에서, 및/또는 다른 스케일러빌리티 차원을 따라서 참조 계층 픽처의 일부만을 강화하는 스케일러빌리티의 유형으로 정의될 수 있다. ROI 스케일러빌리티가 다른 유형의 스케일러빌리티와 함께 사용될 수 있으므로, ROI 스케일러빌리티는 상이한 분류의 스케일러빌리티 유형을 형성하는 것으로 간주될 수 있다. ROI 스케일러빌리티를 사용함으로써 실현될 수 있는 요건이 상이한 ROI 코딩을 위한 여러 상이한 애플리케이션이 존재한다. 예를 들어, 강화 계층은 기본 계층 내 영역의 품질 및/또는 해상도를 강화하기 위해 전송될 수 있다. 강화 계층 및 기본 계층 비트스트림을 둘 모두 수신하는 디코더는 두 계층을 모두 디코딩하고 디코딩된 픽처를 서로 겹쳐서 최종 픽처를 디스플레이할 수 있다.
참조 계층 픽처 및 강화 계층 픽처의 공간 대응성(spatial correspondence)은 유추될 수 있거나 또는 소위 참조 계층 위치 오프셋(reference layer location offset)의 하나 이상의 유형으로 표시될 수 있다. HEVC에서, 참조 계층 위치 오프셋은 인코더에 의해 PPS에 포함될 수 있고 디코더에 의해 PPS로부터 디코딩될 수 있다. 참조 계층 위치 오프셋은 ROI 스케일러빌리티를 달성하는데 사용되지만 이것으로 제한되지는 않는다. 참조 계층 위치 오프셋은 두 개의 계층 또는 두 개의 계층의 픽처 사이에서 계층들이 서로 간에 인터 계층 예측 관계가 없을지라도 표시될 수 있다. 참조 계층 위치 오프셋은 조정된(scaled) 참조 계층 오프셋, 참조 영역 오프셋 및 리샘플링 위상 세트(resampling phase set) 중 하나 이상을 포함할 수 있다. 조정된 참조 계층 오프셋은 참조 계층의 디코딩된 픽처 내의 참조 영역의 상단 좌측 루마 샘플과 병치된(collocated) 현재 픽처 내 샘플 사이의 수평 및 수직 오프셋 및 참조 계층의 디코딩된 픽처 내의 참조 영역의 하단 우측 루마 샘플과 병치된 현재 픽처 내 샘플 사이의 수평 및 수직 오프셋을 명시하는 것으로 간주될 수 있다. 다른 방법은 강화 계층 픽처의 각 모서리 샘플(corner sample)에 대비한 업샘플링된 참조 영역의 모서리 샘플의 위치를 명시하기 위해 조정된 참조 계층 오프셋을 고려하는 것이다. 조정된 참조 계층 오프셋 값은 부호 표시될 수 있고 일반적으로 0과 동일할 수 있게 한다. 참조 영역 오프셋은 참조 계층의 디코딩된 픽처 내의 참조 영역의 상단 좌측 루마 샘플 사이의 수평 및 수직 오프셋뿐만 아니라 참조 계층의 디코딩된 픽처 내의 참조 영역의 하단 우측 루마 샘플과 동일 디코딩된 픽처의 하단 우측 루마 샘플 사이의 수평 및 수직 오프셋을 명시하는 것으로 간주될 수 있다. 참조 영역 오프셋 값은 부호 표시될 수 있고 일반적으로 0과 동일하게 될 수 있다. 리샘플링 위상 세트는 인터 계층 예측을 위한 소스 픽처의 리샘플링 프로세스에서 사용되는 위상 오프셋을 명시하는 것으로 간주될 수 있다. 루마 및 크로마 컴포넌트에 대해서는 상이한 위상 오프셋이 제공될 수 있다.
프레임 패킹(frame packing)은 (입력) 구성 프레임(constituent frame)이라고 지칭될 수 있는 하나 초과의 입력 픽처를 출력 픽처로 배열하는 것을 포함하는 것으로 정의될 수 있다. 일반적으로, 프레임 패킹은 임의의 특정 유형의 구성 프레임으로 제한되지 않거나, 또는 구성 프레임이 서로 특정 관계를 가질 필요는 없다. 많은 경우에, 다음 단락에서 보다 상세히 설명되는 바와 같이, 프레임 패킹은 스테레오스코픽 비디오 클립의 구성 프레임을 단일 픽처 시퀀스로 배열하는 데 사용된다. 배열하는 것은 출력 픽처 내의 공간적으로 중첩하지 않는 영역에 입력 픽처를 배치하는 것을 포함할 수 있다. 예를 들어, 사이드-바이-사이드(side-by-side) 배열에서, 두 개의 입력 픽처는 출력 픽처 내에 서로 수평으로 인접하게 배치된다. 배열하는 것은 또한 하나 이상의 입력 픽처를 두 개 이상의 구성 프레임 파티션(partition)으로 분할하고 구성 프레임 파티션을 출력 픽처 내의 공간적으로 중첩하지 않는 영역에 배치하는 것을 포함할 수 있다. 출력 픽처 또는 프레임-패킹된(frame-packed) 출력 픽처의 시퀀스는 예를 들어, 비디오 인코더에 의해 비트스트림으로 인코딩될 수 있다. 비트스트림은 예를 들어, 비디오 디코더에 의해 디코딩될 수 있다. 디코더 또는 디코딩 이후의 후처리 동작은 디스플레이를 위해 디코딩된 픽처(들)로부터 디코딩된 구성 프레임을 추출할 수 있다.
프레임 호환 가능 스테레오스코픽 비디오(frame-compatible stereoscopic video)(별칭으로 스테레오스코픽 비디오의 프레임 패킹이라 함)에서, 스테레오 쌍을 단일 프레임으로 공간적으로 패킹하는 것이 인코더 측에서 인코딩을 위한 전처리 단계로서 수행되고 이어서 프레임 패킹된 프레임이 통상의 2D 비디오 코딩 방식에 따라 인코딩된다. 디코더에 의해 생성된 출력 프레임은 스테레오 쌍의 구성 프레임을 포함한다.
전형적인 동작 모드에서, 각 뷰의 원래 프레임 및 패키징된 단일 프레임의 공간 해상도는 동일한 해상도를 갖는다. 이 경우에 인코더는 패킹 작업 전에 스테레오스코픽 비디오의 두 개 뷰를 다운 샘플링한다. 공간 패킹은 예를 들어 사이드-바이-사이드 또는 톱-바텀(top-bottom) 포맷을 사용할 수 있으며, 그에 따라 다운 샘플링이 수행되어야 한다.
예를 들어, 다음과 같은 이유로 인해, 프레임 패킹은 멀티뷰 비디오 코딩(예를 들어, H.264/AVC의 MVC 확장 또는 H.265/HEVC의 MV-HEVC 확장)보다 바람직할 수 있다:
- 포스트 프로덕션 워크플로우(post-production workflow)는 단일 비디오 신호에 맞추어 조정될 수 있다. 일부 포스트 프로덕션 툴은 두 개의 개별 픽처 시퀀스를 처리하지 못할 수 있고 및/또는 별개의 픽처 시퀀스를 서로 동기화하여 유지하지 못할 수 있다.
- 전송 프로토콜과 같은 분배 시스템은 단일 코딩된 시퀀스만을 지원할 수 있고 및/또는 별개로 코딩된 시퀀스를 서로 동기화하여 유지하지 못할 수 있고 및/또는 별개로 코딩된 시퀀스를 서로 동기하여 유지하기 위해 보다 많은 버퍼링 또는 대기 시간을 필요로 할 수 있다.
- 멀티 뷰 비디오 코딩 툴을 이용한 비트스트림의 디코딩은 플레이어에서 이용 가능하지 않을 수도 있는 특정 코딩 모드의 지원을 필요로 할 수 있다. 예를 들어, 많은 스마트 폰은 H.265/HEVC 메인 프로파일 디코딩을 지원하지만 메인 프로파일에 비해 높은 레벨의 부가 사항만을 요구할지라도 H.265/HEVC 멀티뷰 메인 프로파일 디코딩을 처리할 수 없다.
수평으로 360도 시야를 그리고 수직으로 180도 시야를 커버하는 파노라마 이미지를 직사각형 이차원 이미지 평면에 매핑(이에 따라 구형(spare)을 나타냄)하기 위한 특정 투영은 등정방형 투영(equirectangular projection)으로 알려져 있다. 이 경우에, 수평 좌표는 경도(longitude)와 동등한 것으로 간주될 수 있고, 수직 좌표는 변환 또는 크기 조정이 적용되지 않은 위도(latitude)와 동등한 것으로 간주될 수 있다. 경우에 따라, 360도 수평 시야이지만 180도 미만의 수직 시야를 가진 파노라마 콘텐츠는 등정방형 투영의 특수한 사례로 간주될 수 있고, 등정방형 투영에서 구형의 극 영역(polar area)은 2 차원 이미지 평면에 매핑되지 않았다. 경우에 따라, 파노라마는 360도 수평 시야 미만이고 최대 180도 수직 수직 시야를 가질 수 있지만, 그렇지 않으면 등정방형 투영 포맷의 특성을 갖는다.
큐브맵 투영 포맷(cubemap projection format)에서, 구형 비디오(spherical video)는 큐브의 여섯 개의 면(face)(별칭은 사이드(side))에 투영된다. 큐브 맵은 뷰 포인트로부터 구면의 장면을 여섯 번 렌더링함으로써 생성되고, 이때 뷰는 각 큐브 면을 나타내는 90도 뷰 절두체로 정의된다. 큐브 사이드는 동일한 프레임으로 프레임 패킹될 수 있거나 또는 각 큐브 사이드가 (예를 들어, 인코딩 시) 개별적으로 처리될 수 있다. 큐브 사이드를 프레임에 배치하는 가능한 순서가 많이 있고 및/또는 큐브 사이드가 회전되거나 미러링될 수 있다. 프레임 패킹을 위한 프레임 너비 및 높이는 큐브 사이드를 "뻬곡하게" 예를 들면 3x2 큐브 사이드 그리드에서 들어 맞게 하거나, 또는 사용되지 않는 구성 프레임 예를 들면 4x3 큐브 사이드 그리드를 포함할 수 있다.
인트라 블록 카피(intra block copy, IBC)라 불리는 코딩 툴 또는 모드는 인터 예측과 유사하지만, 인코딩 또는 디코딩되는 현재 픽처를 참조 픽처로서 사용한다. 명백하게, 현재 블록이 코딩되거나 디코딩되기 전에 코딩되거나 디코딩된 블록만이 예측을 위한 기준으로서 사용될 수 있다. HEVC의 스크린 콘텐츠 코딩(screen content coding, SCC) 확장에는 IBC가 포함될 예정이다.
HEVC SCC에서 IBC는 샘플 예측만을 위한 것임을 의미한다. HEVC SCC 규격 본문에서는 현재 픽처를 TMVP를 위한 병치된 픽처로 사용하는 것은 명시적으로 허용되지 않는다.
인터 예측 프로세스는 (그렇다고 반드시 이것으로 제한된다는 것은 아니지만) 적어도 다음의 두 가지 이유로 픽처 경계 외부의 샘플 위치를 참조하는 것을 포함할 수 있다. 첫 번째로, 움직임 벡터는 픽처 경계 외부의 예측 블록을 가리킬 수 있고, 두 번째로 움직임 벡터는 픽처 경계 외부의 위치로부터 입력 샘플을 취하는 필터링을 사용하여 샘플 값이 보간되는 비 정수 샘플 위치(non-integer sample location)를 가리킬 수 있다.
H.263, H.264/AVC, 및 H.265/HEVC와 같은 여러 비디오 코딩 표준에서, 움직임 벡터는 예측 블록을 획득하기 위해 픽처 경계 외부의 영역을 가리키게 할 수 있고, 분수 샘플 보간(fractional sample interpolation)은 픽처 경계 외부의 샘플 위치를 사용할 수 있다. 예측 프로세스의 일부로서 픽처 경계 외부의 샘플을 획득하기 위해, 픽처 경계의 각 샘플이 효과적으로 카피될 수 있다. 이것은 도 5a에 도시된다. 도 5a 및 도 5b에서, 점선 사각형은 참조 픽처의 샘플 어레이를 도시하고, 실선의 사각형은 샘플 어레이의 샘플을 도시한다. 사각형에서, 위쪽의 기호는 해당 샘플의 위치의 x-좌표를 나타내고 아래쪽 기호는 해당 샘플의 위치의 y-좌표를 나타낸다.
도 5a는 경계 샘플이 픽처 경계 외부의 영역으로 카피되는 인터 예측 프로세스에서 픽처 경계 외부의 샘플을 참조하는 처리의 예를 도시한다.
인터 예측 프로세스에서 픽처 경계 외부의 샘플 위치를 지원하는 메커니즘은 많은 방법으로 구현될 수 있다. 하나의 방법은 디코딩된 픽처 크기보다 큰, 즉, 이미지의 위쪽, 아래쪽, 오른쪽 및 왼쪽에 여백(margin)이 있는 샘플 어레이를 할당하는 것이다. 이러한 여백을 사용하는 것 외에 또는 그 대신에, (예측 블록에 대한 분수 샘플 보간을 위한 입력으로서 또는 예측 블록 자체의 샘플로서) 예측에 사용되는 샘플의 위치는 포화(saturated)되어서 (여백이 있어서, 여백이 사용된다면) 그 위치가 픽처 경계를 초과하지 않도록 할 수 있다. 비디오 코딩 표준 중 일부는 그러한 방식으로 픽처 경계를 통해 움직임 벡터의 지원을 설명하고 있다.
예를 들어, 다음의 수학식은 HEVC에서, (중간) 예측 블록을 생성하기 위해 분수 샘플 보간을 위한 (참조 픽처의) 루마 샘플의 주어진 어레이 refPicLXL 내부의 위치(xAi, j, yAi, j)를 도출하기 위해 사용된다:
Figure 112018104468668-pct00005
여기서 (xlntL, ylntL)은 전체 샘플 단위의 루마 위치이고; i 및 j는 보간 필터 윈도우 내의 상대 위치이고; pic_width_in_luma_samples은 루마 샘플의 픽처 너비이고; pic_height_in_luma_samples은 루마 샘플의 픽처 높이이며; Clip3()은 다음과 같이 명시된다:
Figure 112018104468668-pct00006
(Clip3 연산에 앞서) 샘플 위치가 음수 좌표를 가지면, 이것은 Clip3 연산으로 0으로 포화되는 것임을 알 수 있다. 유사하게, 샘플 위치가 너비(수평 위치의 경우) 또는 높이(수직 위치의 경우)보다 큰 좌표를 가지면, 이것은 각기 포화된 너비 -1 또는 높이 -1이다.
크로마 컴포넌트의 인터 예측을 위한 분수 샘플 보간 시 크로마 샘플 위치가 크로마 샘플 어레이 경계 내에 있도록 포화시키기 위한 유사한 수학식이 또한 존재한다.
360도 파노라마 비디오에서, 픽처 경계의 수평으로 외부에 있는 샘플이 예측 프로세스에서 필요할 때 경계 샘플을 사용하는 대신에 픽처의 반대쪽의 샘플 값이 사용될 수 있다. 이것은 실시예에 따라, 파노라마 비디오 코딩에서 픽처 경계를 통해 움직임 벡터를 처리하는 것을 도시하는 도 5b에 도시된다.
이렇게 픽처 경계 외부에 있는 픽셀을 처리하는 것은 참조 픽처를 코딩된 픽처에 비해 (폭 및/또는 높이에서) 더 크게 확장함으로써 처리될 수 있다. 아래에서 설명하는 바와 같은 다른 구현도 또한 가능하다.
도 5b의 예에서, 수평 샘플 위치는 인터 예측 프로세스에서 참조된 샘플에 대해 랩핑(wrapped)될 수 있음을 알 수 있다. 예를 들어, 참조 픽처 경계의 좌측에 인접한 컬럼(x = -1)은 참조 픽처의 최우측 컬럼(x = w-1)의 샘플 값을 참조할 수 있고, 더 좌측으로 다음 컬럼(x = -2)은 참조 픽처의 두 번째 최우측 컬럼(x = w-2)의 샘플 값을 참조할 수 있다. 다시 말하면, 음수의 수평 위치를 0으로 포화하고 너비 -1를 초과하는 수평 샘플 위치를 너비 -1(즉, 픽처의 최우측 샘플 컬럼의 수평 샘플 위치)로 포화시키는 대신에, 픽처 경계 외부의 참조된 수평 샘플 위치가 랩핑될 수 있는데, 즉, 너비 -1을 초과하는 수평 샘플 위치가 랩핑되어 그 수평 샘플 위치가 픽처의 좌측에 있는 샘플 컬럼을 참조하도록 한다. 그 반대의 경우, 0미만의 수평 샘플 위치가 랩핑되어 그 수평 샘플 위치가 픽처의 우측에 있는 샘플 컬럼을 참조하도록 한다.
따라서 Wrap() 함수는 다음과 같이 명시될 수 있다:
Figure 112018104468668-pct00007
EVC에서 분수 루마 샘플 보간에 대한 위의 수학식을 참조할 때, 다음의 수학식이 사용될 수 있고:
Figure 112018104468668-pct00008
수학식 대신에:
Figure 112018104468668-pct00009
이 사용될 수 있다.
유효 픽처 영역은 디스플레이하기에 유용한 디코딩된 샘플을 포함하는 디코딩된 픽처 내의 픽처 영역 또는 샘플 세트 또는 샘플 위치로서 정의될 수 있다. 유효 픽처 영역 외부의 영역은 디스플레이하는데 유용하지 않을 수 있지만, 예를 들어 픽처 너비 또는 높이를 코딩 시 사용된 블록 그리드와 일치하도록 만들기 위해 존재할 수 있다.
프레임 패킹은, 예를 들어, 다음과 같은 이유로 인해, 압축 성능(별칭으로 레이트 왜곡 성능(rate-distortion performance)이라 함) 면에서 멀티뷰 비디오 코딩보다 열등할 수 있다. 프레임 패킹에서, 인터 뷰 샘플 예측 및 인터 뷰 움직임 예측은 뷰들 사이에서 가능하지 않다. 또한, 프레임 패킹에서, 구성 프레임의 경계 외부를 (다른 구성 프레임을) 지시하는 또는 구성 프레임의 경계 외부의 (다른 구성 프레임 내의) 샘플을 사용하여 서브 픽셀 보간을 하게 하는 움직임 벡터는 최적에 못 미치게 처리될 수 있다. 통상의 멀티뷰 비디오 코딩에서, 인터 예측 및 서브-픽셀 보간에 사용되는 샘플 위치는 픽처 경계 내에 있도록 포화될 수 있거나 또는 동등하게는 재구성된 픽처의 픽처 경계 외부의 영역은 경계 샘플 값으로 패딩될 수 있다.
도 6a는 최적에 못 미치게 처리된 움직임 벡터에 관한 문제점을 도시한다. 이 예에서, 프레임 #N+1의 구성 프레임 #1(601) 내 제 2 블록 로우의 최우측 블록(604)은 도 6a에서 블록(603)으로 도시된 프레임 #N의 구성 프레임 #1 내 영역 외부의 일부 영역으로부터 이동하고 있었다. 화살표(605)는 최적에 못 미칠 수 있는 인터 예측의 예를 도시하거나, 또는 병렬 디코딩 능력을 갖는 비트스트림의 경우에는 허용되지 않을 수 있다. 비-프레임 패킹 코딩(non-frame-packed coding)에서, 픽처 경계 외부의 영역은 위에서 설명한 바와 같이, 패딩에 의한 인터 예측에서 처리될 수 있는데, 이것은 인터 예측 또는 분수 샘플 보간에 사용된 샘플 위치를 픽처 경계 내에 포화시키는 것과 동등하다. 프레임 패킹된 비디오 코딩에서, 그러한 패딩 또는 샘플 위치 포화는 이용 가능하지 않고, 그래서 구성 프레임 사이의 경계에 가까운 압축 성능은 비-프레임 패킹된 멀티뷰 비디오 코딩에서보다 더 나쁠 수 있다.
아래에서 하나 이상의 구성 프레임의 경계를 확장하기 위한 또는 구성 프레임의 경계 내에서 인터 예측 프로세스에서 사용된 샘플 위치를 포화시키기 위한 실시예가 설명된다. 아래에서 예컨대 구성 프레임의 경계를 확장하는 이라는 문구 또는 패딩하는 이라는 문구는, 아래에서 더 상세하게 설명되는 바와 같이, 예를 들면, 경계 픽셀을 카피함으로써 또는 360도 파노라마 콘텐츠를 나타내는 유효 픽처 영역의 신호를 유효 픽처의 반대 편으로부터 카피함으로써, 구성 프레임의 유효 픽처 영역의 신호를 외삽하는 것(extrapolating)을 말할 수 있다.
도 6b는 실시예에 따른 경계 확장부의 예를 도시한다. 도 6b에서, 보다 일반적인 경우에는 단지 구성 프레임의 서브세트에서만 경계 확장부가 있을 수 있지만, 각각 구성 프레임 #1(601)은 하나의 블록 컬럼(606)만큼 우측으로 확장되고, 구성 프레임 #2(602)는 하나의 블록 컬럼(607)(예를 들어, HEVC에서의 CTU 컬럼) 만큼 좌측으로 확장된다. 경계 확장부(606, 607) 내의 샘플은 예를 들어 각각의 구성 프레임의 유효 픽처 영역의 경계 샘플 값을 포함할 수 있다. 화살표(608)는 구성 프레임 #1(601)의 유효 픽처 영역을 통해 움직임 벡터를 이용한 인터 예측의 예를 도시한다.
아래에서는 경계 확장 영역을 인코딩 및/또는 디코딩하는 일부 방법의 실시예가 제시된다.
인코더는 인코딩을 위한 하나 이상의 픽처를 획득할 수 있다(도 7a의 흐름도의 블록(71)). 실시예에 따르면, 인코더는 경계 확장을 의도한 블록 로우(들) 및/또는 블록 컬럼(들)을 포함하도록 또는 인코딩 동안 경계 확장을 위한 블록 로우(들) 및/또는 블록 컬럼(들)을 코딩된 픽처에 포함시키도록(블록(75)) 인코딩하기(블록(74)) 전에 압축되지 않은 픽처를 정렬하도록(블록(73)) 결정할 수 있다(블록(72)). 실시예에 따르면, 이하에서 더 상세히 설명되는 바와 같이, 경계 확장부는 블록(75)에서 인트라 예측, 인트라 블록 카피 예측 또는 인터 예측에 의해 형성된다. 다른 실시예에 따르면, 아래에서 더 상세히 설명되는 바와 같이, 경계 확장부는 블록(75)에서 참조 프레임 패딩에 의해 형성된다.
이에 대응하여, 디코더는 디코딩을 위해 하나 이상의 인코딩된 픽처를 수신할 수 있다(도 7b의 흐름도의 블록(81)). 실시예에 따르면, 디코더는 재구성된 프레임(들)을 획득하기 위해 픽처를 디코딩하고(블록(82)), 필요하다면, 유효 픽처 영역의 외부에 있는 영역을 채우는 프레임 패딩을 수행하여 패딩된 참조 픽처를 생성할 수 있다(블록(83)).
실시예에서, 구성 프레임을 오른쪽으로 확장하는 블록 컬럼(예를 들어, 도 6b의 구성 프레임 #1(601)의 경계 확장부(606))는 수평 인트라 예측으로 인코딩된다. 실시예에서, 인코더는 예측 오차 코딩을 하지 않고 경계 확장부를 인코딩하도록 선택할 수 있다. 다른 실시예에서, 인코더는 예측 오차 코딩을 하지 않고 항상 경계 확장부를 인코딩한다.
실시예에서, 구성 프레임을 아래쪽으로 확장하는 블록 로우(예를 들어, 톱-바텀 프레임 패킹 배열에서 구성 프레임 #1의 경계 확장부)는 수직 인트라 예측으로 인코딩된다. 인코더는 예측 오차 코딩을 하지 않고 경계 확장부를 인코딩하도록 선택할 수 있다. 다른 실시예에서, 인코더는 예측 오차 코딩을 하지 않고 항상 경계 확장부를 인코딩한다.
실시예에서, 인코더는 예측 오차 코딩 블록이 존재하지 않거나 또는 제로 값의 예측 오차를 포함하는 것을 비트스트림에서 표시한다. 실시예에서, 인코더는 어떠한 예측 오차도 경계 확장부를 위해 포함되어 있지 않는다고 유추하고, 경계 확장부를 위한 임의의 예측 오차 관련 신택스 요소를 비트스트림으로 코딩하는 것을 생략한다. 실시예에서, 디코더는 블록이 경계 확장부에 속한다고 결론을 내리고 비트스트림으로부터 경계 확장부를 위한 임의의 예측 오차 관련 신택스 요소의 디코딩을 생략한다.
다른 실시예와 함께 또는 다른 실시예와 관계없이 적용될 수 있는 실시예에서, 제 1 뷰를 나타내는 제 1 구성 프레임 및 동일한 멀티뷰(예를 들어, 스테레오스코픽) 콘텐츠의 제 2 뷰를 나타내는 제 2 구성 프레임이 프레임 패킹된다. 제 1 구성 프레임으로부터 제 2 구성 프레임으로 인트라 블록 카피 예측하는 것은 인코딩 시에 가능하지만, 제 2 구성 프레임으로부터 제 1 구성 프레임으로 인트라 블록 카피 예측하는 것은 디코딩 시에 불능화된다. 따라서, 인터 뷰 예측은 본질적으로는 상이한 뷰의 구성 프레임 사이에 인트라 블록 카피 예측을 적용함으로써 달성된다. 따라서, 압축 효율은 인트라 블록 카피 예측이 없는 프레임 패킹된 멀티뷰 콘텐츠의 코딩에 비해 개선된다.
실시예에서, 인트라 블록 카피 예측이 다음과 같이 제약된 방식으로 제 2 구성 프레임 내에서만 적용된다는 것이 (예를 들어, 인코더에 의해) 표시된다. 여기서 코딩/디코딩되는 블록이라 지칭되는 제 2 구성 프레임의 각 블록에 대해, 인코딩이 다음과 같이 제약된다. 아래에서는 병치된 블록은 코딩/디코딩되는 블록과 병치된 제 1 구성 프레임 내의 블록이라 하는데, 여기서 병치(collocation)라는 것은 구성 프레임을 포함하는 상단 좌측 모서리에 대해 동일한 상대적 수평 및 수직 좌표를 갖는 또는 예를 들어, 코딩 트리 유닛의 단위로 수직 및/또는 수평 오프셋으로 합산된 동일한 좌표를 갖는 것의 특성으로 정의될 수 있다. 오프셋(들)은 인코더에 의해 비트스트림에서 표시될 수 있고 및/또는 디코더에 의해 비트스트림으로부터 디코딩될 수 있다. 블록 스캔 순서에서 후속하는 블록의 샘플 값이 없으면, 첫 번째 구성 프레임 내의 병치된 블록은 인터 블록 카피 예측에 사용된다.
실시예에서, 인코더는 예를 들어, 구성 프레임 간의 최대 수직 및/또는 수평 불일치(disparity)를 예를 들어 애플리케이션 프로그래밍 인터페이스(application programming interface, API) 또는 유사물을 통해 인식하게 되거나 또는 인코더는 소스 콘텐츠를 분석하여 구성 프레임 간의 최대 수직 및/또는 수평 불일치를 발견하거나 또는 인코더는 구성 프레임 간의 최대 수직 및/또는 수평 불일치를 추정하게 된다. 인코더는 최대 수직 및/또는 수평 불일치에 따라 인터 블록 카피 예측의 검색 범위를 제한한다. 예를 들어, 최대 수직 불일치는 0으로 추정될 수 있고, 따라서 탐색 범위는 현재 블록과 동일한 로우에 있는 것으로 제한된다.
프레임 패킹된 멀티뷰 콘텐츠의 인터 뷰 예측을 달성하기 위한 인트라 블록 카피의 사용을 설명하는 위의 실시예와 함께 또는 관계 없이 사용될 수 있는 실시예에서, 구성 프레임을 오른쪽으로 확장하는 블록 컬럼(예를 들어, 도 6b의 구성 프레임 #1(601)의 경계 확장부(606))은 구성 프레임의 최좌측 블록 컬럼으로부터의 인트라 블록 카피 예측으로 인코딩된다. 인코더는 예측 오차 코딩을 하지 않고 경계 확장부 블록 컬럼을 인코딩하도록 결정할 수 있다. 이러한 동작의 모드는 360도 파노라마(예를 들어, 등정방형 파노라마)인 구성 프레임에 적합한데, 그 이유는 인트라 블록 카피 예측에 의한 경계 확장을 적용한 덕분으로, 신호가 유효 픽처 경계 전체에서 지속적으로 유지되기 때문이다. 이러한 실시예는 픽처 내에 단일 구성 프레임이 있는 경우, 즉 모노스코픽 파노라마 코딩(monoscopic panorama coding)을 하는 경우에도 사용될 수 있다.
실시예에서, 구성 프레임을 왼쪽으로 확장하는 블록 컬럼(예를 들어, 도 6b의 구성 프레임 #2(602)의 경계 확장부(607))는 픽처 내의 다른 구성 프레임으로부터의 인트라 블록 카피 예측으로 인코딩된다. 실시예에서, 구성 프레임을 위쪽으로 확장하는 블록 로우(예를 들어, 톱-바텀 프레임 패킹 배열에서 구성 프레임 #2(602)의 경계 확장부(607))는 픽처 내의 다른 구성 프레임으로부터 인트라 블록 카피 예측으로 인코딩된다. 이들 두 개의 실시예는 경계 영역을 채우기 위해 인터 뷰 예측을 적용하는 것으로 간주될 수 있으며, 이들 실시예는 IBC 예측에 의해 경계 확장부로 카피된 샘플의 불일치 또는 거리가 일정이고, 유효 픽처 영역의 경계 샘플의 불일치 또는 거리와 일치할 때 효과적일 수 있다.
실시예에서, 경계 확장부의 블록은 인터 예측된다. 이것은 디코딩 순서에서, 이전의 픽처(들)이 경계 확장부에 적합한 샘플을 포함하고 있는 그런 움직임일 때, 예를 들어, 카메라가 적합한 방식으로 팬(pan)할 때 또는 카메라 및 픽처 콘텐츠가 정지되었고 그래서 이전 픽처의 경계 확장부가 현재 픽처에 대한 경계 확장부로서 또한 작용할 때 효과적일 수 있다.
실시예에서, 인코더는 예를 들어, PPS, SPS, VPS, SEI 메시지 또는 VUI에서, 구성 프레임의 유효 픽처 영역을 표시한다. 실시예에서, 디코더는 구성 프레임의 유효 픽처 영역의 표시를 디코딩한다. 실시예에서, 디코더는 디코딩된 픽처가 디코더에 의해 출력되기 전에 디코딩된 픽처에 적용되는 출력 크로핑 프로세스(output cropping process)의 일부로서 유효 픽처 영역 외부의 영역을 제외시키기 위해 디코딩된 픽처를 잘라낸다. 실시예에서, 디코더는 구성 프레임의 유효 픽처 영역의 디코딩된 표시를 출력한다. 실시예에서, 디코더 또는 디스플레이 프로세스는 디스플레이 프로세스로부터 경계 확장부(들)을 제외하고, 디스플레이 프로세스에서 구성 프레임의 유효 픽처 영역만을 사용한다.
실시예에서, 파일 생성기 또는 유사물은 구성 프레임의 유효 픽처 영역을 컨테이너 파일에서 표시한다. 실시예에서, 파일 파서 또는 유사물은 컨테이너 파일로부터 구성 프레임의 유효 픽처 영역의 표시를 디코딩한다. 실시예에서, 파일 파서 또는 유사물은 디코딩된 픽처를 표시하기에 앞서 유효 픽처 영역 외부의 영역을 제외시키기 위해 디코딩된 픽처를 잘라낸다. 실시예에서, 디스플레이 프로세스는 디스플레이 프로세스에서 경계 확장부(들)을 제외하고, 디스플레이 프로세스에서 구성 프레임의 유효 픽처 영역만을 사용한다.
다른 예시적인 실시예에서, 경계 확장부 블록이 먼저 인코딩되고 통상적으로는 중간 참조 프레임으로 재구성되지만 임의의 샘플 값을 포함할 수 있다. 유사하게, 경계 확장부 블록이 먼저 통상적으로 중간 참조 프레임으로 디코딩된다. 그런 다음 중간 참조 프레임의 경계 확장부가 수정된다. 예를 들어, 유효 픽처 영역의 경계 샘플의 재구성된 샘플 값은 경계 확장부 내의 동일한 샘플 컬럼 내의 샘플을 채우는데 사용될 수 있다. 구성 프레임이 360도 파노라마 픽처에 해당한다면, 유효 픽처 영역의 반대 편에서 재구성된 샘플이 경계 확장부 내의 샘플을 채우는데 사용될 수 있다. 예를 들어, 경계 확장부 내의 샘플은 샘플 로우 단위로: (경계 확장부에서) 유효 픽처 영역 외부의 첫 번째 샘플은 반대편의 유효 픽처 영역 내부의 첫 번째 샘플로부터 카피되고, 유효 픽처 영역 외부의 두 번째 샘플은 반대편의 유효 픽처 영역 내부의 두 번째 샘플로부터 카피되는 등등으로, 디코딩된 샘플을 유효 픽처 영역의 반대 편으로부터 카피함으로써 채워질 수 있다. 상기 카피하기 위한 소스 영역은 경계 영역이라고 지칭될 수 있다. 예를 들어, 경계 확장부가 유효 픽처 영역의 오른쪽에 있을 때, 경계 확장부의 최좌측 샘플 컬럼은 디코딩된 샘플을 유효 픽처 영역의 최좌측 샘플 컬럼으로부터 카피함으로써 채워질 수 있고, 경계 확장부 내의 좌측으로부터 두 번째 샘플 컬럼은 디코딩된 샘플을 유효 픽처 영역 내의 좌측으로부터 두 번째 샘플 컬럼으로부터 카피함으로써 채워질 수 있는 등등으로 채워질 수 있다.
인-루프 참조 프레임 패딩(in-loop reference frame padding)에 관한 실시예에서, 인코더는 예를 들어 PPS 또는 SPS와 같은 파라미터 세트에서, 구성 프레임의 유효 픽처 영역을 표시한다. 실시예에서, 디코더는 표시를 디코딩하고 이에 따라 경계 확장부를 결정 짓는다
실시예에서, 인코더는 예를 들어, 경계 확장부 또는 구성 프레임을 기준으로, 어떤 방법이 중간 참조 프레임의 경계 확장부를 채우는데 사용되는지를 예를 들어 PPS 또는 SPS에서 표시한다. 실시예에서, 디코더는 표시를 디코딩하고 표시된 방법을 사용하여 중간 참조 프레임의 경계 확장부를 채운다. 실시예에서, 디코더는 중간 참조 프레임의 경계 확장부를 채우는 방법을 결정 짓는데, 예를 들면, 구성 프레임이 360도 파노라마 픽처인 것으로 표시될 때 유효 픽처 영역의 반대편으로부터 카피하기를 사용하고, 그렇지 않으면 경계 샘플 카피하기를 사용한다.
인코딩될 픽처(들)가 적어도 제 1 구성 프레임 및 제 2 구성 프레임을 포함할 때 적용 가능한 실시예에서, 인코더는 제 1 타일 세트가 제 1 구성 프레임 및 그의 경계 확장부(들)을 전체적으로 커버하고 제 2 구성 프레임으로부터의 어떠한 데이터도 포함하지 않도록 하고, 제 2 타일 세트가 제 2 구성 프레임 및 그의 경계 확장부(들)을 전체적으로 커버하고 제 1 구성 프레임으로부터의 어떤 데이터도 포함하지 않도록 타일 파티션을 선택하거나 또는 타일 파티션을 사용하도록 구성된다.
실시예에서, 인코더는 제 1 타일 세트를 움직임 제약된 타일 세트로서 인코딩하고 제 2 타일 세트를 다른 움직임 제약된 타일 세트로서 인코딩한다. 인코더는 제 1 및 제 2 타일 세트의 인코딩이 움직임 제약된 방식으로 수행되었음을, 예를 들면, HEVC의 시간 움직임 제약된 타일 세트 메시지와 같은 SEI 메시지로 표시할 수 있다.
실시예에서, 디코더, 플레이어 또는 유사물은, 예를 들어, HEVC의 시간 움직임 제약된 타일 세트 SEI 메시지와 같은 SEI 메시지로부터, 제 1 및 제 2 타일 세트의 인코딩이 움직임 제약된 방식으로 수행되었다는 표시를 디코딩한다. 실시예에서, 디코더, 플레이어 또는 유사물은 디코딩된 표시에 기초하여 제 1 타일 세트를 제 1 디코더 인스턴스(예를 들어, 제 1 디코딩 프로세스)로 디코딩하고 제 2 타일 세트를 제 2 디코더 인스턴스(예를 들어, 제 2 디코딩 프로세스)로 디코딩할 것을 결정한다.
실시예에서, 인코더는 제 1 타일 세트를 움직임 제약된 타일 세트로서 인코딩한다. 실시예에서, 인코더는 (다른 실시예에서 설명한 바와 같이) 현재 픽처를 인트라 블록 카피 예측 또는 유사물로 참조할 때를 제외하고는 제 2 타일 세트를 움직임 제약된 타일 세트로서 인코딩한다. 실시예에서, 본 단락에서 설명한 바와 같이 인코더는 움직임 제약된 타일 세트가 인코딩에 사용되었다는 것을 비트스트림에서, 예를 들어, SEI 메시지에서 표시한다.
실시예에서, 디코더, 플레이어 또는 유사물은 예를 들어, HEVC의 시간 움직임 제약된 타일 세트 SEI 메시지와 같은 SEI 메시지로부터, (다른 실시예에서 설명한 바와 같이) 현재 픽처를 인트라 블록 카피 예측으로 참조할 때를 제외하고는 제 1 및 제 2 타일 세트의 인코딩이 움직임 제약된 방식으로 수행되었다는 표시를 디코딩한다. 실시예에서, 디코더, 플레이어 또는 유사물은 디코딩된 표시에 기초하여 제 1 타일 세트를 제 1 디코더 인스턴스(예를 들어, 제 1 디코딩 프로세스)로 디코딩하고 제 2 타일 세트를 제 2 디코더 인스턴스(예를 들어, 제 2 디코딩 프로세스)로 디코딩할 것을 결정한다. 제 1 디코더 인스턴스는 제 1 타일 세트를 디코딩한 다음에 제 2 디코더 인스턴스가 동일한 픽처의 제 2 타일 세트를 디코딩하도록 구성된다. 그러나, 제 1 디코더 인스턴스는 디코딩 순서에서 (현재 픽처 다음에 오는) 후속 픽처의 제 1 타일 세트를 디코딩할 수 있고, 반면에 제 2 디코더 인스턴스는 현재 픽처의 제 2 타일 세트를 디코딩할 수 있다.
구성 요소 프레임 경계상의 샘플 위치의 포화 또는 랩핑 오버(wrap-over)에 관한 예시적인 실시예에서, 구성 프레임은 "백-투-백(back-to-back)"으로, 즉, 이들 사이에 경계 확장 영역 없이 패킹될 수 있다. 인터 예측을 위한 샘플을 획득하는 프로세스는 구성 프레임 영역 외부의 샘플 위치가 사용되지 않는 방식으로 수정될 수 있다.
인코더는, 예를 들어, PPS 또는 SPS와 같은 파라미터 세트에서, 구성 프레임의 픽처 영역을 표시할 수 있다. 실시예에서, 디코더는 표시를 디코딩한다. 다음에서, 구성 프레임의 상단 좌측 모서리는 루마 샘플 좌표 leftCF, topCF를 갖고, 하단 우측 모서리는 루마 샘플 좌표 rightC, bottomC를 갖는다고 가정한다.
실시예에서, 인코더는 예를 들어, 구성 프레임 기준으로, 예를 들어, PPS 또는 SPS에서, 구성 프레임 경계 외부의 샘플 위치가 포화되었거나 랩핑 오버되었는지를 표시한다. 실시예에서, 디코더는 표시를 디코딩하고 표시된 방법을 인터 예측에서 사용한다. 실시예에서, 디코더는 방법을, 예를 들어, 구성 프레임이 360도 파노라마 픽처인 것으로 표시될 때 랩핑 오버를 사용하고 그렇지 않으면 포화를 사용하는 것으로 결정짓는다.
인코더 및/또는 디코더는 샘플 위치를 랩핑하기 위해 다음과 같은 수학식을 사용할 수 있다:
Figure 112018104468668-pct00010
인코더 및/또는 디코더는 샘플 위치가 구성 프레임 경계 내에 있도록 포화시키기 위해 다음과 같은 수학식을 사용할 수 있다:
Figure 112018104468668-pct00011
유사한 수학식이나 프로세싱이 수직 방향에 적용될 수 있다.
다음에서, 실시예에 따라, 인코더 및 디코더에서 인-루프 참조 프레임 패딩에 관한 더 상세한 설명이 제공될 것이다.
도 4는 본 발명의 실시예를 적용하기에 적합한 비디오 인코더의 블록도를 도시한다. 도 4는 두 계층의 인코더를 제시하지만, 제시된 인코더는 하나의 계층만을 인코딩하기 위해 유사하게 간략화되거나 또는 두 개를 초과하는 계층을 인코딩하기 위해 유사하게 확장될 수 있다는 것이 인식될 것이다. 도 4는 기본 계층을 위한 제 1 인코더 섹션(500) 및 강화 계층을 위한 제 2 인코더 섹션(502)을 포함하는 비디오 인코더의 실시예를 도시한다. 제 1 인코더 섹션(500) 및 제 2 인코더 섹션(502) 각각은 입력되는 픽처를 인코딩하는데 유사한 요소를 포함할 수 있다. 인코더 섹션(500, 502)은 픽셀 예측기(302, 402), 예측 오차 인코더(303, 403) 및 예측 오차 디코더(304, 404)를 포함할 수 있다. 도 4는 또한 픽셀 예측기(302, 402)의 실시예가 인터 예측기(306, 406), 인트라 예측기(308, 408), 모드 선택기(310, 410), 필터(316, 416) 및 참조 프레임 메모리(318, 418)를 포함하는 것으로 도시한다. 제 1 인코더 섹션(500)의 픽셀 예측기(302)는 (이미지와 움직임 보상된 참조 프레임(318) 사이의 차이를 결정하는) 인터 예측기(306) 및 (현재 프레임 또는 픽처의 이미 처리된 부분만을 기초로 하여 이미지 블록에 대한 예측을 결정하는) 인트라 예측기(308) 둘 모두에서 인코딩될 비디오 스트림의 기본 계층 이미지를 수신(300)한다. 인터 예측기 및 인트라 예측기 둘 모두의 출력은 모드 선택기(310)로 전달된다. 인트라 예측기(308)는 하나 초과의 인트라 예측 모드를 가질 수 있다. 따라서 각각의 모드는 인트라 예측을 수행하고 예측된 신호를 모드 선택기(310)에 제공할 수 있다. 모드 선택기(310)는 또한 기본 계층 픽처(300)의 카피를 수신한다. 대응적으로, 제 2 인코더 섹션(502)의 픽셀 예측기(402)는 (이미지와 움직임 보상된 참조 프레임(418) 사이의 차이를 결정하는) 인터 예측기(406) 및 (현재 프레임 또는 픽처의 이미 처리된 부분만을 기초로 하여 이미지 블록에 대한 예측을 결정하는) 인트라 예측기(408) 둘 모두에서 인코딩될 비디오 스트림의 강화 계층 이미지를 수신(400)한다. 인터 예측기 및 인트라 예측기 둘 모두의 출력은 모드 선택기(410)로 전달된다. 인트라 예측기(408)는 하나 초과의 인트라 예측 모드를 가질 수 있다. 따라서 각각의 모드는 인트라 예측을 수행하고 예측된 신호를 모드 선택기(410)에 제공할 수 있다. 모드 선택기(410)는 또한 강화 계층 픽처(300)의 카피를 수신한다.
어떤 인코딩 모드가 현재 블록을 인코딩하기 위해 선택되는지에 따라서, 인터 예측기(306, 406)의 출력 또는 임의적인 인트라 예측기 모드 중 하나의 모드의 출력 또는 모드 선택기 내 표면 인코더(surface encoder)의 출력이 모드 선택기(310, 410)의 출력으로 전달된다. 모드 선택기의 출력은 제 1 합산 디바이스(321, 421)에 전달된다. 제 1 합산 디바이스는 픽셀 예측기(302, 402)의 출력을 기본 계층 픽처(300)/강화 계층 픽처(400)로부터 감산하여 제 1 예측 오차 신호(320, 420)를 생성하며, 이 예측 오차 신호는 예측 오차 인코더(303, 403)에 입력된다.
픽셀 예측기(302, 402)는 예비 재구성기(preliminary reconstructor)(339, 439)로부터 이미지 블록의 예측 표현(312, 412)과 예측 오차 디코더(304, 404)의 출력(338, 438)의 조합을 추가로 수신한다. 예비 재구성된 이미지(314, 414)는 인트라 예측기(308, 408) 및 참조 프레임 패딩 유닛(315, 415)에 전달될 수 있다. 참조 프레임 패딩 유닛(315, 415)은 하나 이상의 상이한 실시예에 따라 유효 픽처 영역 외부의 영역을 채워 패딩된 참조 이미지를 생성할 수 있다. 패딩된 참조 이미지는 필터(316, 416)에 전달될 수 있다. 패딩된 참조 이미지를 수신하는 필터(316, 416)는 패딩된 참조 이미지를 필터링하고 참조 프레임 메모리(318)에 저장될 수 있는 최종 재구성된 이미지(340, 440)를 출력할 수 있다. 참조 프레임 메모리(318)는 인터 예측기(306)에 연결되어 참조 이미지로서 사용되도록 할 수 있고, 이 참조 이미지에 대비하여 미래의 기본 계층 픽처(300)가 인터 예측 동작에서 비교된다. 일부 실시예에 따라서 강화 계층의 인터 계층 샘플 예측 및/또는 인터 계층 움직임 정보 예측을 위해 선택되고 이를 위한 소스가 되는 것으로 표시되면, 참조 프레임 메모리(318)는 또한 인터 예측기(406)에 연결되어 참조 이미지로서 사용되도록 할 수 있고 이 참조 이미지에 대비하여 미래의 강화 계층 픽처(400)가 인터 예측 동작에서 비교된다. 더욱이, 참조 프레임 메모리(418)는 인터 예측기(406)에 연결되어 참조 이미지로서 사용되도록 할 수 있으며 이 참조 이미지에 대비하여 미래의 베이스 계층 픽처(400)가 인터 예측 동작에서 비교된다.
참조 프레임 패딩 유닛(315, 415)은 상이한 유닛에 대해 동작할 수 있고, 이것은 예를 들면, 코딩 표준에서 미리 결정될 수 있거나 또는 비트스트림에서 인코더에 의해 표시될 수 있다는 것을 이해할 필요가 있다. 실시예에서, 참조 프레임 패딩 유닛(315, 415)은 예비 재구성된 이미지(314, 414) 전체를 입력으로서 받아들인다. 다른 실시예에서, 참조 프레임 패딩 유닛(315, 415)은 예비 재구성된 구성 프레임을 입력으로서 받아들이며, 이에 따라 각각의 예비 재구성된 이미지마다 (예비 재구성된 이미지가 둘러싸는 구성 프레임의 수에 따라) 한번을 초과하여 호출될 수 있다. 예비 재구성된 구성 프레임을 입력으로서 받아들이는 참조 프레임 패딩 유닛(315, 415)을 호출할 때, 구성 프레임으로부터 동일한 픽처의 다른 구성 프레임으로의 인트라 블록 카피 예측을 사용할 때는 구성 프레임의 확장된 경계가 유리할 수 있다. 또 다른 실시예에서, 참조 프레임 패딩 유닛(315, 415)은 입력으로서 예비 재구성된 블록, 예비 재구성된 블록의 경계 샘플 로우(경계를 수직으로 확장할 때) 또는 예비 재구성된 블록의 경계 샘플 컬럼(경계를 수평으로 확장할 때)을 받아들인다. 이 실시예는 예를 들어, 구성 프레임으로부터 동일한 픽처의 다른 구성 프레임으로 인트라 블록 카피 예측을 사용하고 있을 때 유리할 수 있다.
상이한 실시예에서, 픽셀 예측기는 상이한 방법으로 필터링 및 패딩의 시퀀스를 수행하도록 배열될 수 있다는 것을 이해할 필요가 있다. 예를 들어, 픽셀 예측기는 참조 프레임 패딩 및 필터링을 반대 순서로, 즉, 참조 프레임 패딩에 앞서 필터링을 수행할 수 있다. 다른 예로서, 픽셀 예측기는 샘플 적응 오프셋 필터링(sample adaptive offset filtering) 및 디블로킹 필터링(deblocking filtering)과 같은 두 단계로 필터링을 수행할 수 있는데, 여기서 제 1 단계는 참조 프레임 패딩 전에 일어나고 제 2 단계는 참조 프레임 패딩 이후에 일어난다. 이것들은 비 제한적인 예이고 픽셀 예측기는 다른 방식으로 필터링을 수행할 수 있음을 알아야 한다.
제 1 인코더 섹션(500)의 필터(316)로부터의 필터링 파라미터는 제 2 인코더 섹션(502)으로 제공되어, 일부 실시예에 따라 기본 계층이 선택되고 강화 계층의 필터링 파라미터를 예측하기 위한 소스인 것으로 표시될 수 있다.
예측 오차 인코더(303, 403)는 변환 유닛(342, 442) 및 양자화기(344, 444)를 포함한다. 변환 유닛(342, 442)은 제 1 예측 오차 신호(320, 420)를 변환 도메인으로 변환한다. 변환은 예를 들어, DCT 변환이다. 양자화기(344, 444)는 변환 도메인 신호 예를 들어, DCT 계수를 양자화하여 양자화된 계수를 형성한다.
예측 오차 디코더(304, 404)는 예측 오차 인코더(303, 403)로부터의 출력을 수신하고 예측 오차 인코더(303, 403)의 프로세스를 반대로 수행하여 디코딩된 예측 오차 신호(338, 438)를 생성하며, 이 디코딩된 예측 오차 신호는 제 2 합산 디바이스(339, 439)에서 이미지 블록(312, 412)의 예측 표현과 조합될 때, 예비 재구성된 이미지(314, 414)를 생성한다. 예측 오차 디코더는 양자화된 계수 값, 예를 들어 DCT 계수를 역양자화하여 변환 신호를 재구성하는 역양자화기(361, 461) 및 재구성된 변환 신호로 역변환을 수행하는 역변환 유닛(363, 463)을 포함하는 것으로 간주될 수 있으며, 역변환 유닛(363, 463)의 출력은 재구성된 블록(들)을 포함하고 있다. 예측 오차 디코더는 추가로 디코딩된 정보 및 필터 파라미터에 따라서 재구성된 블록(들)을 필터링할 수 있는 블록 필터를 또한 포함할 수 있다.
엔트로피 인코더(330, 430)는 예측 오차 인코더(303, 403)의 출력을 수신하고, 신호에 대해 적합한 엔트로피 인코딩/가변 길이 인코딩을 수행하여 오류 검출 및 정정 능력을 제공할 수 있다. 엔트로피 인코더(330, 430)의 출력은 예를 들어 멀티플렉서(508)에 의해 비트스트림 내에 삽입될 수 있다.
도 8은 본 발명의 실시예를 적용하기에 적합한 비디오 디코더의 블록도를 도시한다. 도 8은 두 계층 디코더의 구조를 도시하지만, 디코딩 동작은 단일 계층 디코더에서 유사하게 적용될 수 있음을 인식할 것이다.
비디오 디코더(550)는 기본 뷰 컴포넌트를 위한 제 1 디코더 섹션(552) 및 비 기본 뷰 컴포넌트를 위한 제 2 디코더 섹션(554)을 포함한다. 블록(556)은 기본 뷰 컴포넌트에 관한 정보를 제 1 디코더 섹션(552)에 전달하고 비 기본 뷰 컴포넌트에 관한 정보를 제 2 디코더 부분(544)에 전달하기 위한 디멀티플렉서를 도시한다. 참조부호 (P'n)은 이미지 블록의 예측된 표현을 나타낸다. 참조부호 (D'n)은 재구성된 예측 오차 신호를 나타낸다. 블록(704, 804)은 예비 재구성된 이미지(I'n)을 예시한다. 참조부호 (R'n)은 최종 재구성된 이미지를 나타낸다. 블록(703, 803)은 역변환(T-1)을 도시한다. 블록(702, 802)은 역양자화(Q-1)를 도시한다. 블록(700, 800)은 엔트로피 디코딩(E-1)을 도시한다. 블록(706, 806)은 참조 프레임 메모리(reference frame memory, RFM)를 도시한다. 블록(707, 807)은 예측(P)(인터 예측 또는 인트라 예측 중 어느 하나)을 도시한다. 블록(708, 808)은 필터링(F)을 예시한다. 블록(709, 809)은 디코딩된 예측 오차 정보를 예측된 기본 뷰/비 기본 뷰 컴포넌트와 조합하여 예비 재구성된 이미지(I'n)를 획득하는데 사용될 수 있다. 예비 재구성되고 필터링된 기본 뷰 이미지는 제 1 디코더 섹션(552)으로부터의 출력(710)될 수 있고 예비 재구성되고 필터링된 기본 뷰 이미지는 제 2 디코더 섹션(554)으로부터 출력(810)될 수 있다.
여기서, 디코더는 플레이어, 수신기, 게이트웨이, 디멀티플렉서 및/또는 디코더와 같은 디코딩 동작을 수행할 수 있는 모든 동작 유닛을 망라하는 것으로 해석되어야 한다.
엔트로피 디코더(700, 800)는 수신된 신호에 대해 엔트로피 디코딩을 수행한다. 따라서, 엔트로피 디코더(700, 800)는 위에서 설명한 인코더(330, 430)의 엔트로피 인코더의 역 동작을 수행한다. 엔트로피 디코더(700, 800)는 엔트로피 디코딩의 결과를 예측 오차 디코더(701, 801) 및 픽셀 예측기(704, 804)로 출력한다.
픽셀 예측기(704, 804)는 엔트로피 디코더(700, 800)의 출력을 수신한다. 엔트로피 디코더(700, 800)의 출력은 현재 블록을 인코딩하는데 사용된 예측 모드에 관한 표시를 포함할 수 있다. 예측기(707, 807)는 표시에 의해 결정된 바와 같은 인트라 또는 인터 예측을 수행하고, 이미지 블록의 예측된 표현을 제 1 결합기(709, 809)에 출력할 수 있다. 이미지 블록의 예측된 표현은 재구성된 예측 오차 신호와 함께 사용되어 예비 재구성된 이미지를 생성한다. 예비 재구성된 이미지는 예측기에서 사용될 수 있거나 또는 참조 프레임 패딩 유닛(71 1, 811)으로 전달될 수 있다. 참조 프레임 패딩 유닛(711, 811)은 상이한 실시예에 따르면 유효 픽처 영역 외부의 영역을 채워 패딩된 참조 이미지를 생성한다. 패딩된 참조 이미지는 필터(708, 808)에 전달될 수 있다. 필터(708, 808)는 최종 재구성된 신호를 출력하는 필터링을 적용할 수 있다. 최종의 재구성된 신호는 참조 프레임 메모리(706, 806)에 저장될 수 있다. 참조 프레임 메모리(706, 806)는 예측 동작을 위한 예측기(707, 807)에 또한 연결될 수 있다.
참조 프레임 패딩 유닛(711, 811)은 상이한 유닛에서 동작할 수 있고, 이것은 예를 들어, 코딩 표준에서 사전에 결정될 수 있거나 또는 디코더에 의해 비트스트림으로부터 디코딩될 수 있다는 것을 이해할 필요가 있다. 실시예에서, 참조 프레임 패딩 유닛(711, 811)은 예비 재구성된 이미지 전체를 입력으로서 받아들인다. 다른 실시예에서, 참조 프레임 패딩 유닛(711, 811)은 예비 재구성된 구성 프레임을 입력으로서 받아들이고, 이에 따라 각각의 예비 재구성된 이미지마다 (예비 재구성된 이미지가 둘러싸는 구성 프레임의 수에 따라) 한번을 초과하여 호출될 수 있다. 또 다른 실시예에서, 참조 프레임 패딩 유닛(711, 811)은 입력으로서 예비 재구성된 블록, 예비 재구성된 블록의 경계 샘플 로우(경계를 수직으로 확장할 때) 또는 예비 재구성된 블록의 경계 샘플 컬럼(경계를 수평으로 확장할 때)을 받아들인다.
상이한 실시예에서, 픽셀 예측기(704, 804)는 상이한 방식으로 필터링 및 패딩의 시퀀스를 수행하도록 배열될 수 있음을 이해할 필요가 있다. 예를 들어, 픽셀 예측기(704, 804)는 참조 프레임 패딩 및 필터링을 반대 순서로, 즉, 참조 프레임 패딩 전에 필터링을 수행할 수 있다. 다른 예로서, 픽셀 예측기(704, 804)는 샘플 적응 오프셋 필터링 및 디블로킹 필터링과 같은 두 단계로 필터링을 수행할 수 있는데, 여기서 제 1 단계는 참조 프레임 패딩 이전에 일어나고 제 2 단계는 참조 프레임 패딩 이후에 일어난다. 이것들은 비 제한적인 예이며, 픽셀 예측기(704, 804)는 다른 방식으로 필터링을 수행할 수 있음을 알아야 한다.
최종 재구성된 신호는 또한 출력 크로퍼(output cropper)(712, 812)에 전달될 수 있으며, 출력 크로퍼는 (이것으로 제한되는 것은 아니지만) 다음 중 하나 또는 둘 모두를 수행할 수 있다. 출력 크로퍼(712, 812)는 표시된 유효 이미지 영역 또는 크로핑 윈도우 또는 유사물에 따라 최종 재구성된 이미지를 잘라낼 수 있다. 출력 크로퍼(712, 812)는 (예를 들어, 경계 확장부에서) 유효 픽처 영역 외부의 샘플 값을, 예를 들면, 검정 색을 나타내는 미리 정의된 값으로 설정할 수 있다.
출력 크로퍼(712, 812)는 출력 이미지를 출력으로서 제공할 수 있다. 출력 크로퍼(712, 812)는 또한 출력 이미지와 함께 유효 픽처 영역(들)을 나타낼 수 있다.
예측 오차 디코더(701, 801)는 엔트로피 디코더(700, 800)의 출력을 수신한다. 예측 오차 디코더의 역양자화기(702, 802)는 엔트로피 디코더의 출력을 역양자화할 수 있고, 역변환 블록(703, 803)은 역양자화기(702, 802)에 의해 출력된 역양자화된 신호에 대해 역변환 동작을 수행할 수 있다. 예측 오차 디코더(701, 801)는 대안적으로 또는 부가적으로 변환 바이패스 디코더(transform-bypass decoder)를 포함할 수 있으며, 변환 바이패스 디코더에서 샘플 값은 역변환 동작을 받지 않고 디코딩되는 대신 예를 들어, 차등 샘플 값 디코딩을 받는다. 엔트로피 디코더(700, 800)의 출력은 또한 예측 오차 신호가 적용되지 않아야 한다는 것을 표시할 수 있고, 이 경우에 예측 오차 디코더(701, 801)는 모두 제로 출력 신호를 생성할 수 있다.
다음에는 인코더의 필터에 대한 가능한 수정의 몇몇 예가 제공될 것이다.
필터 파라미터 값을 결정할 때, 인코더는 고려를 위해 유효 픽처 영역 내에 샘플을 포함시킬 수 있고, 유효 픽처 영역 외부의 샘플을 고려 대상으로부터 제외할 수 있다. 예를 들어, SAO 파라미터 값은 유효 픽처 영역 내부의 샘플 값만을 고려함으로써 도출될 수 있다.
경계 확장 영역 내의 블록을 처리하기 위해, 인코더는 다음 중 하나 이상을 수행할 수 있다. 인코더는 유효 픽처 영역 외부에 있는 블록의 코딩을 생략할 수 있다.
여기서, 블록은 예를 들어, 코딩 트리 유닛 및/또는 코딩 유닛을 포함할 수 있다. 유효 픽처 영역 외부의 블록의 샘플을 사용하여 인트라 예측 및 필터링하는 것이 가능해질 수 있다. 인코더는 유효 픽처 영역에 기초하여 블록 분할하는 것을 결정할 수 있다. 유효 픽처 영역의 완전히 외부에 있는 블록은 분할되지 않는 것으로 결정될 수 있다. 인코더는 유효 픽처 영역에 기초하여 모드를 선택할 수 있다. 이것은 유효 픽처 영역의 완전히 외부에 있는 블록이 특정 모드로 코딩되는 것으로 결정될 수 있고, 이것은 유효 픽처 영역이 적은 비트레이트를 제공한다는 것을 기초로 미리 결정될 수 있다. 예를 들어, 인코더는 (엔트로피 인코더에 의해 결정된 바와 같이) 가장 가능성 있는 인트라 모드를 선택할 수 있다. 인코더는 유효 픽처 영역의 완전히 외부에 있는 블록의 예측 오차 코딩을 또한 생략할 수도 있다. 인코더는 유효 픽처 영역의 완전히 외부에 있는 블록에 대한 비트스트림에서는 어떠한 예측 오차도 존재하지 않다는 것을 표시할 수 있다.
이에 대응하여, 디코더는 다음 중 하나 이상을 수행할 수 있다. 디코더는 유효 픽처 영역 외부에 있는 블록의 디코딩을 생략할 수 있다. 여기서, 블록은 예를 들어, 코딩 트리 유닛 및/또는 코딩 유닛일 수 있다. 경우에 따라, 유효 픽처 영역 외부에 있는 블록에 대해 비트스트림에서는 어떠한 신택스 요소도 존재하지 않으며, 디코더는 코딩된 다음 데이터가 어느 블록 위치에 대응하는지를 계속 추적한다. 경우에 따라, 유효 픽처 영역 외부에 있는 블록은 유효 픽처 영역 내부의 전체 또는 일부 블록과 동일한 신택스를 사용하며, 디코더는 블록을 엔트로피 디코딩하지만 그 블록에 대해서는 예측 오차 디코딩 및 픽셀 예측을 생략할 수 있다. 디코더는 유효 픽처 영역 외부의 블록의 샘플을 사용하여 인트라 예측 및 필터링하는 것을 불능하게 할 수 있다. 디코더는 유효 픽처 영역에 기초하여 블록 분할하는 것을 결정할 수 있다. 유효 픽처 영역의 완전히 외부에 있는 블록은 분할되지 않은 것으로 결정될 수 있다. 경우에 따라, 유효 픽처 영역의 완전히 외부에 있는 블록의 블록 분할을 위한 어떠한 신택스 요소도 비트스트림에는 존재하지 않는다. 디코더는 유효 픽처 영역에 기초하여 모드를 선택할 수 있다. 이것은 유효 픽처 영역의 완전히 외부에 있는 블록이 예를 들어, 코딩 표준에서 미리 결정될 수 있는 특정 모드로 디코딩되는 것으로 결정될 수 있다. 예를 들어, 디코더는 (엔트로피 디코더에 의해 결정된 바와 같이) 가장 가능성 있는 인트라 모드를 선택할 수 있다. 디코더는 유효 픽처 영역의 완전히 외부에 있는 블록의 예측 오차 디코딩을 생략할 수 있다. 경우에 따라, 유효 픽처 영역의 완전히 외부에 있는 예측 오차 블록에 대한 비트스트림에는 어떠한 신택스 요소도 존재하지 않는다.
H.265/HEVC의 움직임 벡터 예측은 실시예가 적용될 수 있는 시스템 또는 방법의 예로서 아래에서 설명된다.
H.265/HEVC는 두 개의 움직임 벡터 예측 방식, 즉, 진보된 움직임 벡터 예측(advanced motion vector prediction, AMVP) 및 병합 모드(merge mode)를 포함한다. AMVP 또는 병합 모드에서, 움직임 벡터 후보의 리스트는 PU를 위해 도출된다. 후보자에는 두 종류의 공간 후보 및 시간 후보가 있고, 시간 후보는 TMVP 후보라고도 지칭될 수 있다. 후보 움직임 벡터 예측기의 소스는 도6c 및 도 6d에 도시되어 있다. X는 현재 예측 유닛을 나타낸다. 도 6c에서 A0, A1, B0, B1, B2는 공간 후보이고 도 6d에서 C0, C1는 시간 후보이다. 도 6d에서 후보 C0 또는 C1를 포함하거나 그에 대응하는 블록은 그 어느 것이 시간 후보의 소스이든 병치된 블록(collocated block)으로 지칭될 수 있다.
후보 리스트 도출은 예를 들어 다음과 같이 수행될 수 있지만, 후보 리스트 도출을 위한 다른 가능성이 존재할 수 있다는 것을 이해하여야 한다. 후보 리스트의 점유가 최대가 아니면, 공간 후보는 공간 후보가 이용 가능하고 후보 리스트에 아직 존재하지 않은 경우라면 후보 리스트에 먼저 포함된다. 그 후, 후보 리스트의 점유가 아직 최대가 아니면, 시간 후보가 후보 리스트에 포함된다. 후보의 수가 여전히 최대 허용 개수에 도달하지 않으면, (B 슬라이스의 경우) 조합된 양방향 예측 후보 및 제로 움직임 벡터가 추가된다. 후보 리스트가 구성된 후에, 인코더는 예를 들어 레이트 왜곡 최적화(rate-distortion optimization, RDO) 결정에 기초하여 후보로부터 최종 움직임 정보를 결정하고 선택된 후보의 인덱스를 비트스트림으로 인코딩한다. 마찬가지로, 디코더는 비트스트림으로부터 선택된 후보의 인덱스를 디코딩하고, 후보 리스트를 구성하고, 디코딩된 인덱스를 사용하여 후보 리스트로부터 움직임 벡터 예측기를 선택한다.
H.265/HEVC에서, AMVP 및 병합 모드는 다음과 같이 특징 지어질 수 있다. AMVP에서, 인코더는 단방향 예측 또는 양방향 예측이 사용되는지 그리고 어떤 참조 픽처가 사용되는지 뿐만 아니라 움직임 벡터 차를 인코딩하는지를 표시한다. 병합 모드에서, 후보 리스트로부터 선택된 후보만이 현재 예측 유닛이 표시된 예측기의 움직임 정보와 동일한 움직임 정보를 갖는 것을 표시하는 비트스트림으로 인코딩된다. 따라서 병합 모드는 동일한 동작 정보를 공유하는 이웃 예측 블록으로 구성된 영역을 생성하고, 이것은 각 영역마다 한 번만 시그널링된다. H.265/HEVC에서 AMVP와 병합 모드의 다른 차이점은 AMVP의 최대 후보 수가 2이지만 병합 모드의 최대 수가 5라는 점이다.
진보된 움직임 벡터 예측은 예를 들어 다음과 같이 동작할 수 있지만, 상이한 후보 위치 세트 및 후보 위치 세트를 갖는 후보 위치를 이용하여 진보된 움직임 벡터 예측의 다른 유사한 실현이 또한 가능할 수 있다. 두 개의 공간 움직임 벡터 예측기(spatial motion vector predictor, MVP)가 유도될 수 있고 시간 움직임 벡터 예측기(temporal motion vector predictor, TMVP)가 도출될 수 있다. 이들 움직임 벡터 예측기는 위치: 현재 예측 블록 위에 위치한 세 개의 공간 움직임 벡터 예측기 후보 위치(B0, B1, B2) 및 왼쪽의 두 개의 위치(AO, A1) 중에서 선택될 수 있다. 각각의 후보 위치 세트(BO, B1, B2) 또는 (AO, A1)의 미리 정의된 순서에서 이용 가능한 (예를 들어, 동일한 슬라이스에 상주하는, 인터 코딩된 등) 제 1 움직임 벡터 예측기가 움직임 벡터 경쟁에서 그 예측 방향(위쪽 또는 왼쪽)을 나타내기 위해 선택될 수 있다. 시간 움직임 벡터 예측기에 대한 참조 인덱스는 인코더에 의해 슬라이스 헤더에서 (예를 들어, collocated_ref_idx 신택스 요소로서) 표시될 수 있다. 잠재적인 시간 후보 위치의 미리 정의된 순서에서, 예를 들어 순서(C0, C1)에서 이용 가능한 (예를 들어, 인터 코딩된) 제 1 움직임 벡터 예측기는 시간 움직임 벡터 예측기를 위한한 소스로서 선택될 수 있다. 동일 위치에 있는 픽처의 제 1 이용 가능한 후보 위치로부터 획득한 움직임 벡터는 시간 움직임 벡터 예측기의 참조 픽처, 동일 위치에 있는 픽처 및 현재 픽처의 픽처 순서 카운트 차의 비율에 따라 조정될 수 있다. 더욱이, 후보 중에서 동일한 후보를 제거하는 중복 검사(redundancy check)가 수행되어, 후보 리스트에서 0의 움직임 벡터가 포함되게 할 수 있다. 움직임 벡터 예측기는 예를 들어 공간 움직임 벡터 예측기의 방향(위쪽 또는 왼쪽) 또는 시간 움직임 벡터 예측기 후보의 선택을 표시함으로써 비트스트림에서 표시될 수 있다. 동일 위치에 있는 픽처는 병치된 픽처, 움직임 벡터 예측을 위한 소스 또는 움직임 벡터 예측을 위한 소스 픽처라고도 지칭될 수 있다.
머징(merging)/병합 모드/프로세스/메커니즘은 예를 들어 다음과 같이 동작할 수 있지만, 예를 들어 상이한 후보 위치 세트 및 후보 위치 세트를 갖는 후보 위치를 사용하여 병합 모드의 다른 유사한 실현이 또한 가능할 수 있다.
머징/병합 모드/프로세스/메커니즘은 블록/PU의 모든 움직임 정보가 임의의 수정/교정 없이 예측되고 사용된다. PU에 대해 전술한 움직임 정보는 다음과 같은 정보 중에서 하나 이상: 1) 'PU가 참조 픽처 list0만을 사용하여 단방향 예측된 것'인지 또는 'PU가 참조 픽처 list1만을 사용하여 단방향 예측된 것'인지 또는 'PU가 두 참조 픽처 list0 및 list2 모두를 사용하여 중복 예측된 것'인지에 관한 정보, 2) 수평 및 수직 움직임 벡터 컴포넌트를 포함할 수 있는, 참조 픽처 list0에 대응하는 움직임 벡터 값, 3) 참조 픽처 list0 내 참조 픽처 인덱스 및/또는 참조 픽처 list0에 대응하는 움직임 벡터에 의해 지시된 참조 픽처의 식별자 - 여기서 참조 픽처의 식별자는 예를 들어 픽처 순서 카운트 값, (인터 계층 예측의 경우) 계층 식별자 값 또는 픽처 순서 카운트 값과 계층 식별자 값의 쌍일 수 있음 -, 4) 참조 픽처의 참조 픽처 표시의 정보, 예를 들어 참조 픽처가 "단기간 참조에 사용됨" 또는 "장기간 참조에 사용됨"으로 표시되었는지에 관한 정보, 5-7) 참조 픽처 list1을 제외하고 2)-4)와 각각 동일하다는 것을 포함할 수 있다.
유사하게, 움직임 정보를 예측하는 것은 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록의 움직임 정보를 이용하여 수행된다. 흔히 병합 리스트라고 부르는 리스트는 이용 가능한 인접한/동일 위치에 있는 블록과 연관된 움직임 예측 후보를 포함함으로써 구성될 수 있고 그 리스트에서 선택된 움직임 예측 후보의 인덱스는 시그널링되며 선택된 후보의 움직임 정보는 현재 PU의 움직임 정보에 카피된다. 병합 메커니즘이 CU 전체에서 적용되고 CU에 대한 예측 신호가 재구성 신호로서 사용될 때, 즉, 예측 잔차가 처리되지 않을 때, CU를 코딩/디코딩하는 이러한 유형은 일반적으로 스킵 모드(skip mode) 또는 병합 기반 스킵 모드(merge based skip mode)라고 말한다. 스킵 모드 이외에, 병합 메커니즘은 개개의 PU에 대해서도 적용되며(스킵 모드에서와 같이 반드시 CU 전체에 대해서는 아님), 이 경우에, 예측 잔차는 예측 품질을 개선하는데 이용될 수 있다. 이러한 유형의 예측 모드는 일반적으로 인터 병합 모드(inter-merge mode)라고 말한다.
병합 리스트 내 및/또는 AMVP에 대한 후보 리스트 또는 임의의 유사한 움직임 벡터 후보 리스트 내 후보 중 하나는 예를 들어 슬라이스 헤더에서 표시된 참조 픽처와 같은 표시된 또는 유추된 참조 픽처 내의 병치된 블록으로부터 도출될 수 있는 TMVP 후보일 수 있다. HEVC에서, 병치된 파티션(collocated partition)을 획득하기 위해 사용될 참조 픽처 리스트는 슬라이스 헤더 내의 collocated_from_10_flag 신택스 요소에 따라 선택된다. 플래그가 1일 때, 이것은 병치된 파티션을 포함하는 픽처가 list 0으로부터 도출된 것이고, 그렇지 않으면 픽처가 list 1로부터 도출된 것임을 명시한다. collocated_from_10_flag가 존재하지 않을 때, 이것은 1일 것으로 유추된다. 슬라이스 헤더 내의 collocated_ref_idx는 병치된 파티션을 포함하는 픽처의 참조 인덱스를 명시한다. 현재 슬라이스가 P 슬라이스일 때, collocated_ref_idx는 list 0 내의 픽처를 참조한다. 현재 슬라이스가 B 슬라이스일 때, collocated_ref_idx는 collocated_from_10이 1이면 list 0 내의 픽처를 참조하고, 그렇지 않으면 list 1 내의 픽처를 참조한다. collocated_ref_idx는 항시 유효 리스트 엔트리를 참조하고, 결과적인 픽처는 코딩된 픽처의 모든 슬라이스에 대해 동일하다. collocated_ref_idx가 존재하지 않을 때, 이것은 0일 것으로 유추된다.
HEVC에서, 병합 리스트 내의 시간 움직임 벡터 예측을 위한 소위 타깃 참조 인덱스는 움직임 코딩 모드가 병합 모드일 때 0으로 설정된다. 시간 움직임 벡터 예측을 이용하는 HEVC에서 움직임 코딩 모드가 진보된 움직임 벡터 예측 모드일 때, 타깃 참조 인덱스 값은 (예를 들어, 각각의 PU마다) 명시적으로 표시된다.
HEVC에서 후보 예측된 움직임 벡터(candidate predicted motion vector, PMV)의 이용 가능성은 (두 공간 및 시간 후보 모두에 대해) 다음과 같이 결정될 수 있다(SRTP = 단기 참조 픽처, LRTP = 장기 참조 픽처).
Figure 112018104468668-pct00012
HEVC에서, 타깃 참조 인덱스 값이 결정되었을 때, 시간 움직임 벡터 예측의 움직임 벡터 값은 다음과 같이 도출될 수 있다: 현재 예측 유닛의 (도 6d에서 위치(C0)) 하단 우측 이웃과 병치된 블록에서의 움직임 벡터(PMV)가 획득된다. 병치된 블록이 상주하는 픽처는 예를 들어, 위에서 언급한 바와 같이 슬라이스 헤더 내의 시그널링된 참조 인덱스에 따라 결정된다. 위치(C0)에서의 PMV가 이용 가능하지 않으면, 병치된 픽처의 위치(C1)(도 6d 참조)에서의 움직임 벡터(PMV)가 획득된다. 동일위치에 있는 블록에서 결정된 이용 가능한 움직임 벡터(PMV)는 제 1 픽처 순서 카운트 차와 제 2 픽처 순서 카운트 차의 비율과 관련하여 조정된다. 제 1 픽처 순서 카운트 차는 동일위치에 있는 블록을 포함하는 픽처와 동일위치에 있는 블록의 움직임 벡터의 참조 픽처 사이에서 도출된다. 제 2 픽처 순서 카운트 차는 현재 픽처와 타깃 참조 픽처 사이에서 도출된다. 타깃 참조 픽처 및 병치된 블록의 움직임 벡터의 참조 픽처의 둘 모두가 아닌 하나가 장기 참조 픽처(반면에 다른 하나는 단기 참조 픽처)이면, TMVP 후보는 이용 불가능한 것으로 간주될 수 있다. 타깃 참조 픽처 및 병치된 블록의 움직임 벡터의 참조 픽처가 둘 모두 장기 참조 픽처이면, POC 기반 움직임 벡터 조정은 적용될 수 없다.움직임 파라미터 유형 또는 움직임 정보는 이것으로 제한되는 것은 아니지만, 다음의 유형 중 하나 이상을 포함할 수 있다:
- 예측 유형(예를 들어, 인트라 예측, 단방향 예측, 양방향 예측) 및/또는 다수의 참조 픽처의 표시;
- 인터(별칭으로 시간이라 함) 예측, 인터 계층 예측, 인터 뷰 예측, 뷰 합성 예측(view synthesis prediction, VSP) 및 인터 컴포넌트 예측과 같은 예측 방향의 표시(이것은 참조 픽처마다 및/또는 예측 유형마다 표시될 수 있고, 일부 실시예에서 인터 뷰 및 뷰 합성 예측은 공동으로 하나의 예측 방향으로서 간주될 수 있음) 및/또는
- 단기간 참조 픽처 및/또는 장기간 참조 픽처 및/또는 인터 계층 참조 픽처와 같은 참조 픽처 유형의 표시(이것은 예를 들어, 참조 픽처마다 표시될 수 있음);
- 참조 픽처 리스트에 대한 참조 인덱스 및/또는 참조 픽처의 임의의 다른 식별자(이것은 예를 들어, 참조 픽처마다 표시될 수 있고, 그 유형은 예측 방향 및/또는 참조 픽처 유형에 따라 다를 수 있으며, 참조 인덱스가 적용되는 참조 픽처 목록 또는 유사물과 같은 다른 관련된 한편의 정보가 동반될 수 있음);
- 수평 움직임 벡터 컴포넌트(예를 들어, 예측 블록마다 또는 참조 인덱스마다 또는 유사물마다 표시될 수 있음);
- 수직 움직임 벡터 컴포넌트(예를 들어, 예측 블록마다 또는 참조 인덱스마다 또는 유사물마다 표시될 수 있음);
- 하나 이상의 움직임 벡터 예측 프로세스에서 수평 움직임 벡터 컴포넌트 및/또는 수직 움직임 벡터 컴포넌트의 조정에 사용될 수 있는, 움직임 파라미터를 포함하는 또는 그와 연관된 픽처와 그의 참조 픽처 사이의 픽처 순서 카운트 차 및/또는 상대적인 카메라 분리와 같은 하나 이상의 파라미터(여기서 상기 하나 이상의 파라미터는 각각의 참조 픽처 또는 각각의 참조 인덱스 또는 유사물마다 표시될 수 있음);
- 움직임 파라미터 및/또는 움직임 정보가 적용되는 블록의 좌표, 예를 들어, 루마 샘플 유닛 내의 블록의 상단 좌측 샘플의 좌표;
- 움직임 파라미터 및/또는 움직임 정보가 적용되는 블록의 범위(예를 들어, 너비 및 높이).
일반적으로, 움직임 벡터 예측 메커니즘, 예컨대 위에서 예로서 제시된 그러한 움직임 벡터 예측 메커니즘은 특정한 미리 정의되거나 또는 표시된 움직임 파라미터의 예측 또는 상속을 포함할 수 있다.
픽처와 연관된 움직임 필드는 픽처의 모든 코딩된 블록에 대해 생성된 움직임 정보 세트를 포함하는 것으로 간주될 수 있다. 움직임 필드는 예를 들어 블록의 좌표에 의해 액세스될 수 있다. 움직임 필드는 예를 들어, TMVP 또는 현재 (디)코딩된 픽처 이외의 예측을 위한 소스 또는 참조가 사용되는 임의의 다른 움직임 예측 메커니즘에서 사용될 수 있다.
상이한 공간 세분성(spatial granularity) 또는 유닛이 움직임 필드를 표현 및/또는 저장하기 위해 적용될 수 있다. 예를 들어, 공간 유닛의 규칙적인 그리드가 사용될 수 있다. 예를 들어, 픽처는 (픽처의 에지에 있는 블록, 예컨대 우측 에지 및 아래쪽 에지에 있는 블록을 가능한 한 제외한) 특정 크기의 직사각형 블록으로 나누어질 수 있다. 예를 들어, 공간 유닛의 크기는 루마 샘플 유닛의 4x4 블록과 같이, 비트스트림에서 인코더에 의해 뚜렷한 움직임이 표시될 수 있는 가장 작은 크기와 동일할 수 있다. 예를 들어, 소위 압축된 움직임 필드가 사용될 수 있는데, 여기서 공간 유닛은 루마 샘플 유닛의 16x16 블록과 같이 미리 정의되거나 또는 표시된 크기와 동일할 수 있으며, 그 크기는 뚜렷한 움직임을 표시하기 위한 가장 작은 크기보다 클 수 있다. 예를 들어, HEVC 인코더 및/또는 디코더는 움직임 데이터 저장소 감축(motion data storage reduction, MDSR) 또는 움직임 필드 압축이 (픽처 간의 임의의 예측을 위해 움직임 필드를 사용하기 전에) 각각의 디코딩된 움직임 필드마다 수행되는 방식으로 구현될 수 있다. HEVC 구현에서, MDSR은 압축된 움직임 필드에서 16x16 블록의 상단 좌측 샘플에 적용할 수 있는 움직임을 유지함으로써 움직임 데이터의 세분성을 루마 샘플 유닛의 16x16 블록으로 줄일 수 있다. 인코더는 예를 들어, 비디오 파라미터 세트 또는 시퀀스 파라미터 세트와 같은 시퀀스 레벨의 신택스 구조에서 하나 이상의 신택스 요소 및/또는 신택스 요소 값으로서 압축된 움직임 필드의 공간 유닛에 관련된 표시(들)를 인코딩할 수 있다. 일부의 (디)코딩 방법 및/또는 디바이스에서, 움직임 필드는 (예를 들어, HEVC 표준의 예측 유닛에 따른) 움직임 예측의 블록 분할에 따라 표현되고 및/또는 저장될 수 있다. 일부 (디)코딩 방법 및/또는 장치에서, 규칙 그리드와 블록 분할의 조합이 적용되어 미리 정의된 또는 표시된 공간 유닛 크기보다 큰 파티션과 연관된 움직임이 이러한 파티션과 연관되어 표현 및/또는 저장될 수 있고, 반면에 미리 정의된 또는 표시된 공간 유닛 크기 또는 그리드보다 작은 파티션 또는 그러한 공간 유닛 크기 또는 그리드로 정렬되지 않은 파티션과 연관된 움직임은 미리 정의된 또는 표시된 유닛에 대해 표현 및/또는 저장된다.
HEVC의 스케일러블 비디오 코딩 확장(scalable video coding extension, SHVC)은 공간, 비트 깊이, 색 영역 및 품질 스케일러빌리티를 제공하면서 인터 계층 중복성을 활용하기 위한 메커니즘을 제공한다. HEVC의 멀티뷰 확장(MV-HEVC)은 예를 들어, 스테레오스코픽 디스플레이에 적합한 멀티뷰 비디오 데이터의 코딩을 가능하게 한다. MV-HEVC의 경우, 인코딩을 위해 입력된 입력 멀티뷰 비디오 시퀀스는 전형적으로 연이어 배열된 다수의 카메라에 의해 캡처된다. 카메라 투영 센터(camera projection center)는 일반적으로 동일 선상에 있고 각 이웃과 등거리에 떨어져 있으며 카메라는 일반적으로 같은 방향을 가리키고 있다. SHVC 및 MV-HEVC는 동일한 하이 레벨 신택스를 공유하고 이들의 디코딩 프로세스의 대부분도 동일하므로, 동일한 코덱 구현으로 SHVC 및 MV-HEVC를 둘 모두 지원할 수 있다.
SHVC 및 MV-HEVC는 두 가지 유형의 인터 계층 예측, 즉, 샘플 및 움직임 예측을 가능하게 한다. 인터 계층 샘플 예측에서, 인터 계층 참조(inter-layer reference, ILR) 픽처는 예측 블록의 샘플 값을 획득하는데 사용된다. MV-HEVC에서, 디코딩된 기본 계층 픽처는 수정 없이 ILR 픽처로서 작용한다. SHVC의 공간 및 색 영역 스케일러빌리티에서, 리샘플링과 같은 인터 계층 프로세싱이 디코딩된 기본 계층 픽처에 적용되어 ILR 픽처를 획득한다. SHVC의 리샘플링 프로세스에서, 기본 계층 픽처는 ILR 픽처를 획득하기 위해 잘려지거나, 업샘플링되거나 또는 패딩될 수 있다. 업샘플링된 기본 계층 픽처와 강화 계층 픽처의 상대적인 위치는 소위 참조 계층 위치 오프셋을 통해 표시된다. 이러한 특징은 관심 영역(region-of-interest, ROI) 스케일러빌리티를 가능하게 하며, 관심 영역 스케일러빌리티에서는 기본 계층의 픽처 영역의 서브세트만이 강화 계층 픽처에서 강화된다.
인터 계층 움직임 예측은 HEVC의 시간 움직임 벡터 예측(TMVP) 메커니즘을 이용한다. ILR 픽처는 TMVP를 위한 병치된 픽처로서 할당되고, 이에 따라 움직임 벡터 예측 프로세스에서 TMVP 후보의 소스가 된다. SHVC의 공간 스케일러빌리티에서, 움직임 필드 맵핑(motion field mapping, MFM)은 기본 계층 픽처의 움직임 정보로부터 ILR 픽처에 대한 움직임 정보를 획득하는데 사용된다. MFM에서, 기본 계층 픽처에서의 예측 종속성은 ILR 픽처의 참조 픽처 리스트(들)를 생성하기 위해 복제된 것으로 간주될 수 있다. 특정 블록 그리드(예를 들어, HEVC에서 16x16 그리드)를 갖는 리매핑된(remapped)) 움직임 필드의 각각의 블록에 대해, 인터 계층 예측을 위한 소스 픽처 내의 병치된 샘플 위치가 도출될 수 있다. 참조 샘플 위치는 예를 들어 블록의 가장 중앙의 샘플에 대해 도출될 수 있다. 참조 샘플 위치를 도출할 때, 리샘플링 비율, 참조 영역 및 리샘플링된 참조 영역이 고려될 수 있다 - 아래에서 리샘플링 비율, 참조 영역 및 리샘플링된 참조 영역의 정의를 추가 참조할 것. 더욱이, 참조 샘플 위치는 인터 계층 예측을 위한 참조 영역 또는 소스 픽처의 움직임 필드의 블록 그리드와 정렬되도록 라운딩되거나 절단될 수 있다. 참조 샘플 위치에 대응하는 움직임 벡터는 인터 계층 예측을 위한 참조 영역 또는 소스 픽처의 움직임 필드로부터 획득된다. 이러한 움직임 벡터는 리샘플링 비율에 따라 다시 조정된 다음, 리매핑된 움직임 필드에 포함된다. 리매핑된 움직임 필드는 나중에 TMVP 또는 유사물에 대한 소스로서 사용될 수 있다. 이에 반해, MFM은 기본 뷰 픽처가 인터 계층 움직임 예측 프로세스 동안 참조되도록 MV-HEVC에 적용되지 않는다.
참조 계층 픽처 및 강화 계층 픽처의 공간 대응성은 유추될 수 있거나 또는 하나 이상의 유형의 소위 참조 계층 위치 오프셋으로 표시될 수 있다. HEVC에서, 참조 계층 위치 오프셋은 인코더에 의해 PPS에 포함되고 디코더에 의해 PPS로부터 디코딩될 수 있다. 참조 계층 위치 오프셋은 이것으로 제한되는 것은 아니지만 관심 영역(ROI) 스케일러빌리티를 달성하는데 사용된다. 참조 계층 위치 오프셋은 조정된 참조 계층 오프셋, 참조 영역 오프셋 및 리샘플링 위상 세트 중 하나 이상을 포함할 수 있다. 조정된 참조 계층 오프셋은 참조 계층의 디코딩된 픽처 내의 참조 영역의 상단 좌측 루마 샘플과 병치된 현재 픽처 내 샘플 사이의 수평 및 수직 오프셋 및 참조 계층의 디코딩된 픽처 내의 참조 영역의 하단 우측 루마 샘플과 병치된 현재 픽처 내 샘플 사이의 수평 및 수직 오프셋을 명시하는 것으로 간주될 수 있다. 다른 방법은 강화 계층 픽처의 각 모서리 샘플에 대비한 업샘플링된 참조 영역 (또는 보다 일반적으로는 리샘플링된 참조 영역)의 모서리 샘플의 위치를 명시하는 것으로 조정된 참조 계층 오프셋을 간주하는 것이다. 조정된 참조 계층 오프셋은 조정된 참조 계층 픽처의 조정된 참조 영역에 대비한 (참조 계층 위치 오프셋이 표시되는) 현재 계층 픽처의 공간 대응성을 명시하는 것으로 간주될 수 있다. 조정된 참조 계층 오프셋 값은 부호 표시될 수 있다. 조정된 참조 계층 오프셋이 음수일 때, 참조 계층 위치 오프셋이 표시된 픽처는 참조 계층 픽처의 잘려진 영역에 대응한다. 참조 영역 오프셋은 참조 계층의 디코딩된 픽처 내의 참조 영역의 상단 좌측 루마 샘플 사이의 수평 및 수직 오프셋뿐만 아니라 참조 계층의 디코딩된 픽처 내의 참조 영역의 하단 우측 루마 샘플과 동일한 디코딩된 픽처의 하단 우측 루마 샘플 사이의 수평 및 수직 오프셋을 명시하는 것으로 간주될 수 있다. 참조 영역 오프셋은 디코딩된 참조 계층 픽처에 대한 참조 계층 픽처 내 참조 영역의 공간 대응성을 명시하는 것으로 간주될 수 있다. 참조 영역 오프셋 값은 부호 표시될 수 있다. 참조 영역 오프셋이 음수일 때, 참조 계층 픽처는 참조 계층 위치 오프셋이 표시되는 픽처의 잘려진 영역에 대응한다. 리샘플링 위상 세트는 위상 오프셋이 인터 계층 예측을 위한 소스 픽처의 리샘플링 프로세스에서 사용되는 것을 명시하는 것으로 간주될 수 있다. 루마 및 크로마 컴포넌트에 대해서는 상이한 위상 오프셋이 제공될 수 있다.
일부 스케일러블 비디오 코딩 방식은 액세스 유닛 내의 모든 픽처가 IRAP 픽처이거나 또는 액세스 유닛 내의 어떤 픽처도 IRAP 픽처가 아닌 방식으로 IRAP 픽처가 계층 전체에 걸쳐 정렬되도록 요구할 수 있다. HEVC의 다중 계층 확장과 같은 다른 스케일러블 비디오 코딩 방식은 정렬되지 않은 IRAP 픽처, 즉, 액세스 유닛 내의 하나 이상의 픽처가 IRAP 픽처인 반면, 액세스 유닛 내의 하나 이상의 다른 픽처는 IRAP 픽처가 아닌 것을 허용할 수 있다. 계층 전체에 걸쳐 정렬되지 않은 IRAP 픽처 또는 유사한 픽처를 갖는 스케일러블 비트스트림이 예를 들어 기본 계층에서 보다 빈번한 IRAP 픽처를 제공하기 위해 사용될 수 있는데, 기본 계층에서 이들은 예를 들어, 더 작은 공간 해상도로 인해 더 작은 코딩된 크기를 가질 수 있다. 디코딩의 계층별 시작(step-wise start)을 위한 프로세스 또는 메커니즘은 비디오 디코딩 방식에 포함될 수 있다. 따라서, 디코더는 기본 계층이 IRAP 픽처를 포함할 때 비트스트림의 디코딩을 시작할 수 있고 다른 계층이 IRAP 픽처를 포함할 때 다른 계층을 단계별 시작 디코딩할 수 있다. 다시 말하면, 디코딩 메커니즘 또는 프로세스의 계층별 시작 시, 디코더는 디코딩 프로세스에서 부가적인 강화 계층으로부터의 후속 픽처가 디코딩되므로 디코딩된 계층(여기서 계층은 공간 해상도, 품질 레벨, 뷰, 깊이와 같은 부가적인 컴포넌트, 또는 이들의 조합으로 강화를 표현할 수 있음)의 수를 점진적으로 증가시킨다. 디코딩된 계층 수의 점진적인 증가는 예를 들어 (품질 및 공간 스케일러빌리티의 경우) 픽처 품질의 점진적인 개선으로 인지될 수 있다.
계층별 시작(layer-wise start-up) 메커니즘은 특정 강화 계층에서 디코딩 순서에서 첫 픽처의 참조 픽처에 이용 불가능한 픽처를 생성할 수 있다. 대안적으로, 디코더는 디코딩 순서에서, 계층의 디코딩이 시작될 수 있는 IRAP 픽처에 선행하는 픽처의 디코딩을 생략할 수 있다. 생략될 수 있는 이러한 픽처는 비트스트림 내에서 인코더 또는 다른 엔티티에 의해 특별하게 표시가 붙을 수 있다. 예를 들어, 하나 이상의 특정 NAL 유닛 유형이 이러한 픽처를 위해 사용될 수 있다. 이러한 픽처가 NAL 유닛 유형을 이용하여 특별하게 표시되든지 아니면 예를 들어 디코더에 의해 유추되든지 상관없이, 이러한 픽처는 교차 계층 랜덤 액세스 스킵(cross-layer random access skip, CL-RAS) 픽처라고 지칭될 수 있다. 디코더는 생성된 이용 불가능한 픽처 및 디코딩된 CL-RAS 픽처의 출력을 생략할 수 있다.
스케일러빌리티는 두 개의 기본적인 방법으로 가능해질 수 있다. 스케일러블 표현의 하위 계층으로부터 픽셀 값 또는 신택스의 예측을 수행하기 위한 새로운 코딩 모드를 도입하거나 또는 하위 계층 픽처를 상위 계층의 참조 픽처 버퍼(예를 들어, 디코딩된 픽처 버퍼(decoded picture buffer, DPB))에 배치하는 것 중 어느 하나로부터 가능해질 수 있다. 제 1 접근방법은 보다 융통성 있고 그래서 대부분의 경우에 더 나은 코딩 효율을 제공할 수 있다. 그러나 제 2의 참조 프레임 기반의 스케일러빌리티 접근방법은 그럼에도 이용 가능한 코딩 효율 이득을 대부분 달성하면서 단일 계층 코덱을 최소한으로 변경하여 효율적으로 구현될 수 있다. 본질적으로, 참조 프레임 기반의 스케일러빌리티 코덱은 그저 외부 수단에 의해 DPB 관리에 주의하는 것만으로 모든 계층에 대해 동일한 하드웨어 또는 소프트웨어 구현을 활용함으로써 구현될 수 있다.
품질 스케일러빌리티(신호-대-잡음비(Signal-to-Noise) 또는 SNR으로도 알려져 있음) 및/또는 공간 스케일러빌리티를 위한 스케일러블 비디오 인코더는 다음과 같이 구현될 수 있다. 기본 계층에 대해, 통상의 비-스케일러블 비디오 인코더 및 디코더가 사용될 수 있다. 기본 계층의 재구성된/디코딩된 픽처는 강화 계층의 참조 픽처 버퍼 및/또는 참조 픽처 리스트에 포함된다. 공간 스케일러빌리티의 경우, 재구성된/디코딩된 기본 계층 픽처는 업샘플링된 다음에 강화 계층 픽처의 참조 픽처 리스트에 삽입될 수 있다. 기본 계층의 디코딩된 픽처는 강화 계층의 디코딩된 참조 픽처와 유사하게 강화 계층 픽처의 코딩/디코딩을 위한 참조 픽처 리스트(들)에 삽입될 수 있다. 그 결과, 인코더는 기본 계층 참조 픽처를 인터 예측 참조로서 선택할 수 있고 이것의 사용을 코딩된 비트스트림에서 참조 픽처 인덱스로 표시할 수 있다. 디코더는 비트스트림으로부터, 예를 들어 기본 계층 픽처가 강화 계층에 대한 인터 예측 참조로서 사용되는 참조 픽처 인덱스로부터 디코딩한다. 디코딩된 기본 계층 픽처가 강화 계층에 대한 예측 참조로서 사용될 때, 이것은 인터 계층 참조 픽처(inter-layer reference picture)라고 지칭된다.
이전 단락에서는 강화 계층 및 기본 계층으로 된 두 개의 스케일러빌리티 계층을 이용한 스케일러블 비디오 코덱에 대하여 설명하였지만, 이 설명은 둘을 초과하는 계층을 갖는 스케일러빌리티 계층구조에서 임의의 두 개의 계층으로 일반화될 수 있다는 것을 이해하여야 한다. 이 경우에, 제 2 강화 계층은 인코딩 및/또는 디코딩 프로세스에서 제 1 강화 계층에 종속할 수 있고, 이에 따라 제 1 강화 계층은 제 2 강화 계층을 인코딩 및/또는 디코딩하기 위한 기본 계층으로 간주될 수 있다. 또한 강화 계층의 참조 픽처 버퍼 또는 참조 픽처 리스트에서 하나를 초과하는 계층으로부터 생긴 인터-계층 참조 픽처가 존재할 수 있으며, 각각의 이러한 인터-계층 참조 픽처는 인코딩 및/또는 디코딩되는 강화 계층에 대한 기본 계층 또는 참조 계층에 존재하는 것으로 간주될 수 있다는 것을 이해하여야 한다. 뿐만 아니라, 참조 계층 픽처 업샘플링과는 다른 유형의 인터 계층 처리가 대신에 또는 부가적으로 이루어질 수 있다는 것을 이해하여야 한다. 예를 들어, 참조 계층 픽처의 샘플의 비트 깊이는 강화 계층의 비트 깊이로 변환될 수 있고 및/또는 샘플 값은 참조 계층의 색 공간으로부터 강화 계층의 색 공간으로 매핑을 받을 수 있다.
스케일러블 비디오 코딩 및/또는 디코딩 방식은 다중 루프 코딩 및/또는 디코딩을 사용할 수 있는데, 이것은 다음과 같이 특징지을 수 있다. 인코딩/디코딩에서, 기본 계층 픽처는 동일 계층 내에서 또는 인터 계층(또는 인터 뷰 또는 인터 컴포넌트) 예측을 위한 참조로서, 코딩/디코딩 순서에서, 후속하는 픽처에 대한 움직임 보상 참조 픽처로서 사용되도록 재구성/디코딩될 수 있다. 재구성된/디코딩된 기본 계층 픽처는 DPB에 저장될 수 있다. 강화 계층 픽처는 마찬가지로 동일 계층 내에서 또는 만일 있다면 상위의 강화 계층에 대한 인터 계층(또는 인터 뷰 또는 인터 컴포넌트) 예측을 위한 참조로서, 코딩/디코딩 순서에서, 후속하는 픽처에 대한 움직임 보상 참조 픽처로서 사용되도록 재구성/디코딩될 수 있다. 재구성된/디코딩된 샘플 값 이외에, 기본/참조 계층의 신택스 요소 값 또는 기본/참조 계층의 신택스 요소 값으로부터 도출된 변수는 인터 계층/인터 컴포넌트/인터 뷰 예측에서 사용될 수 있다.
인터 계층 예측은 (인코딩 또는 디코딩되는) 현재 픽처의 계층과는 상이한 계층으로부터의 참조 픽처의 데이터 요소(예를 들어, 샘플 값 또는 움직임 벡터)에 의존하는 방식으로 예측하는 것으로 정의될 수 있다. 많은 유형의 인터 계층 예측이 존재하고 스케일러블 비디오 인코더/디코더에 적용될 수 있다. 이용 가능한 유형의 인터 계층 예측은, 예를 들어, 비트스트림 또는 비트스트림 내의 어떤 특정 계층이 인코딩되는지에 따라 코딩 프로파일에 따라 달라지거나, 또는 디코딩할 때, 비트스트림 또는 비트스트림 내의 특정 계층이 적합한 것으로 표시되는 코딩 프로파일에 따라 달라질 수 있다. 선택적으로 또는 부가적으로, 이용 가능한 유형의 인터 계층 예측은 사용 중인 스케일러빌리티의 유형 또는 스케일러블 코덱 또는 비디오 코딩 표준 수정안(예를 들어, SHVC, MV-HEVC 또는 3D-HEVC)의 유형에 따라 달라질 수 있다.
인터 계층 예측의 유형은 이것으로 제한되는 것은 아니지만, 다음 중의 하나 이상: 인터 계층 샘플 예측, 인터 계층 움직임 예측, 인터 계층 잔차 예측을 포함할 수 있다. 인터 계층 샘플 예측에서, 인터 계층 예측을 위한 소스 픽처의 재구성된 샘플 값의 적어도 서브세트는 현재 픽처의 샘플 값을 예측하기 위한 참조로서 사용된다. 인터 계층 움직임 예측에서, 인터 계층 예측을 위한 소스 픽처의 움직임 벡터의 적어도 서브세트는 현재 픽처의 움직임 벡터를 예측하기 위한 참조로서 사용된다. 전형적으로, 어떤 참조 픽처가 움직임 벡터와 연관되는지에 관해 예측하는 정보는 인터 계층 움직임 예측에도 또한 포함된다. 예를 들어, 움직임 벡터에 대한 참조 픽처의 참조 인덱스가 인터 계층 예측될 수 있고 및/또는 픽처 순서 카운트 또는 참조 픽처의 임의의 다른 식별이 인터 계층 예측될 수 있다. 경우에 따라, 인터 계층 움직임 예측은 블록 코딩 모드, 헤더 정보, 블록 분할 및/또는 다른 유사한 파라미터의 예측을 또한 포함할 수도 있다. 경우에 따라, 블록 분할의 인터 계층 예측과 같은 코딩 파라미터 예측은 다른 유형의 인터 계층 예측으로 간주될 수 있다. 인터 계층 잔차 예측에서, 인터 계층 예측을 위한 소스 픽처의 선택된 블록의 예측 오차 또는 잔차가 현재 픽처를 예측하는데 사용된다. 3D-HEVC와 같은 멀티뷰 플러스 깊이 코딩(multiview-plus-depth coding)에서, 깊이 픽처와 같은 제 1 유형의 픽처가 통상의 텍스처 픽처와 같은 제 2 유형의 픽처의 인터 계층 예측에 영향을 미칠 수 있는 교차 컴포넌트 인터 계층 예측(cross-component inter-layer prediction)이 적용될 수 있다. 예를 들어, 불일치 보상된 인터 계층 샘플 값(disparity-compensated inter-layer sample value) 및/또는 움직임 예측이 적용될 수 있으며, 여기서 불일치는 적어도 부분적으로 깊이 픽처로부터 도출될 수 있다.
직접 참조 계층은 이 계층은 직접 참조 계층이 되는 다른 계층의 인터 계층 예측을 위해 사용될 수 있는 계층으로 정의될 수 있다. 직접 예측된 계층은 다른 계층이 직접 참조 계층이 되는 계층으로 정의될 수 있다. 간접 참조 계층은 제 2 계층의 직접 참조 계층이 아니고 이 계층이 간접 참조 계층이 되는 제 2 계층의 직접 참조 계층 또는 직접 참조 계층의 간접 참조 계층이 되는 제 3 계층의 직접 참조 계층이 되는 계층으로 정의될 수 있다. 간접 예측된 계층은 다른 계층이 간접 참조 계층이 되는 계층으로 정의될 수 있다. 독립 계층은 직접 참조 계층이 없는 계층으로 정의될 수 있다. 다시 말하면, 독립 계층은 인터 계층 예측을 사용하여 예측되지 않는다. 비 기본 계층은 기본 계층 이외의 다른 계층으로 정의될 수 있으며 기본 계층은 비트스트림에서 최하위 계층으로 정의될 수 있다. 독립 비 기본 계층은 독립 계층 및 비 기본 계층 둘 모두인 계층으로 정의될 수 있다.
인터 계층 예측을 위한 소스 픽처는 현재 픽처의 예측을 위한 참조 픽처로서 사용될 수 있는 인터 계층 참조 픽처인 디코딩된 픽처 또는 이러한 인터 계층 참조 픽처를 도출하는데 사용되는 디코딩된 픽처 중의 하나로서 정의될 수 있다. 다중 계층 HEVC 확장에서, 인터 계층 참조 픽처는 현재 픽처의 인터 계층 참조 픽처 세트에 포함된다. 인터 계층 참조 픽처는 현재 픽처의 인터 계층 예측을 위해 사용될 수 있는 참조 픽처로서 정의될 수 있다. 코딩 및/또는 디코딩 프로세스에서, 인터 계층 참조 픽처는 장기간 참조 픽처로서 취급될 수 있다.
인터 계층 예측을 위한 소스 픽처는 현재 픽처와 동일한 액세스 유닛 내에 있어야 할 수 있다. 경우에 따라, 예를 들어, 어떠한 리샘플링, 움직임 필드 매핑 또는 다른 인터 계층 프로세싱도 필요하지 않을 때, 인터 계층 예측을 위한 소스 픽처와 각각의 인터 계층 참조 픽처는 동일할 수 있다. 경우에 따라, 예를 들어, 참조 계층의 샘플링 그리드를 (인코딩 또는 디코딩되는) 현재 픽처의 계층의 샘플링 그리드와 일치시키기 위해 리샘플링이 필요할 때, 인터 계층 프로세싱이 적용되어 소스 픽처로부터 인터 계층 참조를 위한 인터 계층 참조 픽처를 도출한다. 이러한 인터 계층 프로세싱의 예는 다음 단락에서 설명된다.
인터 계층 샘플 예측은 인터 계층 예측을 위한 소스 픽처의 샘플 어레이(들)의 리샘플링을 포함할 수 있다. 인코더 및/또는 디코더는 강화 계층과 그의 참조 계층의 쌍에 대한 수평 스케일 인자(예를 들어, 변수 ScaleFactorX에 저장됨)와 수직 스케일 인자(예를 들어, 변수 ScaleFactorY에 저장됨)를 예를 들어, 그 쌍에 대한 참조 계층 위치 오프셋에 기초하여 도출할 수 있다. 스케일 인자 중 하나 또는 둘 모두가 1이 아니면, 인터 계층 예측을 위한 소스 픽처는 리샘플링되어 강화 계층 픽처를 예측하기 위한 인터 계층 참조 픽처를 생성할 수 있다. 리샘플링에 사용되는 프로세스 및/또는 필터는 예를 들어 코딩 표준에서 미리 정의될 수 있고 및/또는 인코더에 의해 비트스트림에서 (예를 들어, 미리 정의된 리샘플링 프로세스 또는 필터 중 하나의 인덱스로서) 표시되고 및/또는 디코더에 의해 비트스트림으로부터의 디코딩될 수 있다. 상이한 리샘플링 프로세스는 조정 인자의 값에 따라 인코더에 의해 표시되고 및/또는 디코더에 의해 디코딩될 수 있고 및/또는 조정 인자의 값에 따라 인코더 및/또는 디코더에 의해 유추될 수 있다. 예를 들어, 두 조정 인자가 모두 1 미만일 때, 미리 정의된 다운샘플링 프로세스가 유추될 수 있고; 두 스케일 인자가 모두 1 초과일 때, 미리 정의된 업샘플링 프로세스가 유추될 수 있다. 부가적으로 또는 대안적으로, 상이한 리샘플링 프로세스는 인코더에 의해 표시되고 및/또는 디코더에 의해 디코딩될 수 있고 및/또는 어떤 샘플 어레이가 처리되는지에 따라 인코더 및/또는 디코더에 의해 유추될 수 있다. 예를 들어, 제 1 리샘플링 프로세스는 루마 샘플 어레이에 사용되는 것으로 유추될 수 있고 제 2 리샘플링 프로세스는 크로마 샘플 어레이에 사용되는 것으로 유추될 수 있다.
SHVC는 (이것으로 제한되는 것은 아니지만) 색 영역 스케일러빌리티)에 대한 3D 룩업 테이블(lookup table, LUT)에 기초한 가중 예측 또는 색 매핑 프로세스의 사용을 가능하게 한다. 3D LUT 접근법은 다음과 같이 설명될 수 있다. 각각의 색 컴포넌트의 샘플 값 범위가 먼저 두 개의 범위로 분할되어, 2x2x2 옥탄트(octant)를 형성할 수 있고, 그런 다음 루마 범위가 네 개의 부분으로 더 분할되어, 최대 8x2x2 옥탄트로 만들어질 수 있다. 각각의 옥탄트 내에서, 색 매핑을 수행하기 위해 교차 색 컴포넌트 선형 모델이 적용된다. 각 옥탄트에 대해, 네 개의 꼭지점이 비트스트림으로부터 인코딩되고 및/또는 비트스트림으로부터 디코딩되어 옥탄트 내의 선형 모델을 표현한다. 색 매핑 테이블이 각 색 컴포넌트마다 별개로 비트스트림으로 인코딩되고 및/또는 비트스트림으로부터 디코딩된다. 색 매핑은 세 개의 단계를 포함하는 것으로 간주될 수 있다: 첫째, 주어진 기준 계층 샘플 트리플릿(triplet)(Y, Cb, Cr)이 속하는 옥탄트가 결정된다. 둘째, 루마 및 크로마의 샘플 위치가 색 컴포넌트 조정 프로세스를 적용하여 정렬될 수 있다. 셋째, 결정된 옥탄트에 대해 명시된 선형 매핑이 적용된다. 매핑은 교차 컴포넌트 특성을 가질 수 있는데, 즉, 하나의 색 컴포넌트의 입력 값은 다른 색 컴포넌트의 매핑된 값에 영향을 줄 수 있다. 또한, 인터 계층 리샘플링이 또한 필요하다면, 리샘플링 프로세스로의 입력은 색 매핑되었던 픽처이다. 색 매핑은 (하지 않아도 되지만) 첫 번째 비트 깊이의 샘플을 다른 비트 깊이의 샘플에 매핑할 수 있다.
인터 계층 움직임 예측은 다음과 같이 실현될 수 있다. H.265/HEVC의 TMVP와 같은 시간적 움직임 벡터 예측 프로세스는 상이한 계층 간의 움직임 데이터의 중복성을 이용하기 위해 사용될 수 있다. 이것은 다음과 같이 수행될 수 있다: 디코딩된 기본 계층 픽처가 업샘플링될 때, 기본 계층 픽처의 움직임 데이터는 강화 계층의 분해능에도 또한 매핑된다. 강화 계층 픽처가 H.265/HEVC의 TMVP와 같은 시간적 움직임 벡터 예측 메커니즘을 이용하여 기본 계층 픽처로부터 움직임 벡터 예측을 이용하면, 대응하는 움직임 벡터 예측기는 매핑된 기본 계층 움직임 필드로부터 유래된다. 이러한 방식으로 상이한 계층의 움직임 데이터 간의 상관 관계가 스케일러블 비디오 코더의 코딩 효율을 개선하는데 이용될 수 있다. SHVC 및/또는 유사물에서, 인터 계층 참조 픽처를 TMVP 도출을 위한 병치된 참조 픽처로서 설정함으로써 인터 계층 움직임 예측이 수행될 수 있다.
MVC와 유사하게, MV-HEVC에서, 인터 뷰 참조 픽처는 코딩 또는 디코딩되는 현재 픽처의 참조 픽처 리스트(들)에 포함될 수 있다. SHVC는 (H.264/AVC의 SVC 확장과 달리) 다중 루프 디코딩 동작을 사용한다. SHVC는 참조 인덱스 기반 접근법을 사용하는 것으로 간주될 수 있는데, 즉, 인터 계층 참조 픽처는 (위에서 설명한 바와 같이) 코딩 또는 디코딩되는 현재 픽처의 하나 이상의 참조 픽처 리스트에 포함될 수 있다.
강화 계층 코딩의 경우, HEVC 기본 계층의 개념 및 코딩 툴이 SHVC, MV-HEVC 및/또는 유사물에서 사용될 수 있다. 그러나, 강화 계층을 효율적으로 코딩하기 위해 참조 계층에서 이미 코딩된 데이터(재구성된 픽처 샘플 및 움직임 파라미터, 별칭으로 움직임 정보를 포함함)를 적용하는 부가적인 인터 계층 예측 툴이 SHVC, MV-HEVC 및/또는 유사물에 통합될 수 있다.
코딩 표준 또는 시스템은 디코딩이 동작하는 스케일러블 계층 및/또는 서브계층을 표시할 수 있고 및/또는 디코딩되는 스케일러블 계층 및/또는 서브계층을 포함하는 서브비트스트림과 연관될 수 있는 동작 포인트(operation point) 또는 유사어의 용어로 지칭할 수 있다. HEVC에서, 동작 포인트는 다른 비트스트림, 타깃 최상위 TemporalId 및 타깃 계층 식별자 리스트를 입력으로 하는 서브비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성되는 비트스트림으로 정의된다.
HEVC의 VPS는 계층 세트 및 이들 계층 세트에 대한 HRD 파라미터를 명시한다. 계층 세트는 서브비트스트림 추출 프로세스에서 타깃 계층 식별자 리스트로서 사용될 수 있다. HEVC에서, 계층 세트는 다른 비트스트림, 6과 동일한 타깃 최고위 TemporalId 및 계층 세트와 연관된 계층 식별자 리스트와 동일한 타깃 계층 식별자 리스트를 입력으로 하는 서브비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성되는 비트스트림 내에서 표현된 계층의 세트로서 정의될 수 있다.
출력 계층은 디코딩된 픽처가 디코딩 프로세스에 의해 출력되는 계층으로서 정의될 수 있다. 출력 계층은 다중 계층 비트스트림의 어떤 서브세트가 디코딩되는지에 따라 다를 수 있다. 디코딩 프로세스에 의해 출력된 픽처는 추가로 처리될 수 있는데, 예를 들면, YUV 색 공간으로부터 RGB 로의 색 공간 변환이 수행될 수 있고, 변환된 것들이 표시될 수 있다. 그러나, 추가적인 프로세싱 및/또는 디스플레이 처리는 디코더 및/또는 디코딩 프로세스의 외부 프로세스인 것으로 간주될 수 있고 이루어지지 않을 수도 있다.
다중 계층 비디오 비트스트림에서, 동작 포인트의 정의는 타깃 출력 계층 세트를 고려하는 것을 포함할 수 있다. 예를 들어, 동작 포인트는 다른 비트스트림, 타깃 최고위 시간 서브계층(예를 들어, 가장 최고위 TemporalId) 및 타깃 계층 식별자 목록을 입력으로 하는 서브비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성되고 출력 계층 세트와 연관되는 비트스트림으로 정의될 수 있다. 대안적으로, 출력 동작 포인트와 같은 다른 용어는 동작 포인트 및 연관된 출력 계층 세트를 언급할 때 사용될 수 있다. 예를 들어, MV-HEVC/SHVC에서, 출력 동작 포인트는 입력 비트스트림, 타깃 최고위 TemporalId 및 타깃 계층 식별자 리스트를 입력으로 하는 서브비트스트림 추출 프로세스의 동작에 의해 입력 비트스트림으로부터 생성되고 출력 계층 세트와 연관되는 비트스트림으로서 정의될 수 있다.
출력 계층 세트(output layer set, OLS)는 명시된 계층 세트 중 하나의 세트의 계층으로 구성된 계층의 세트로서 정의할 수 있고, 여기서 계층 세트 내의 하나 이상의 계층은 출력 계층인 것으로 표시된다. 출력 계층은 디코더 및/또는 HRD가 타깃 출력 계층 세트로서 설정된 출력 계층을 사용하여 동작할 때 출력되는 출력 계층 세트의 계층으로서 정의될 수 있다. MV-HEVC/SHVC에서, 변수 TargetOlsIdx는 TargetOlsIdx를 타깃 출력 계층 세트인 출력 계층 세트의 인덱스와 동일하게 설정함으로써 어떤 출력 계층 세트가 타깃 출력 계층 세트인지를 명시할 수 있다. 타깃 출력 계층 세트는 인덱스가 TargetOlsIdx와 동일한 출력 계층 세트로서 정의될 수 있다. TargetOlsIdx는 예를 들어 HRD에 의해 설정될 수 있고 및/또는 외부 수단에 의해, 예를 들어, 디코더에 의해 제공된 인터페이스를 통해 플레이어 또는 유사물에 의해 설정될 수 있다. MV-HEVC/SHVC에서, 출력 계층은 TargetOlsIdx가 출력 계층 세트의 인덱스와 동일할 때 출력되는 출력 계층 집합의 계층으로서 정의될 수 있다.
송신기, 게이트웨이, 클라이언트 또는 유사물은 스케일러블 비디오 비트스트림의 전송된 계층 및/또는 서브계층을 선택할 수 있다. 계층 추출, 계층의 추출 또는 계층 다운-스위칭이라는 용어는 송신기, 게이트웨이, 클라이언트 또는 유사물에 의해 수신된 비트스트림에서 이용 가능한 것보다 적은 수의 계층을 전송하는 것을 지칭할 수 있다. 계층 업-스위칭은 송신기, 게이트웨이, 클라이언트 또는 유사물에 의한 계층 업-스위칭 이전에 전송된 계층과 비교하여 추가 계층(들)을 전송하는 것, 즉, 계층 다운-스위칭 시 일찍 전송이 중단된 하나 이상의 계층의 전송을 다시 시작하는 것을 지칭할 수 있다. 계층 다운-스위칭 및/또는 업-스위칭과 유사하게, 송신기, 게이트웨이, 클라이언트 또는 유사물은 시간 서브계층의 다운-스위칭 및/또는 업-스위칭을 수행할 수 있다. 송신기, 게이트웨이, 클라이언트 또는 유사물은 계층 및 서브계층 다운-스위칭 및/또는 업-스위칭 둘 모두를 또한 수행할 수 있다. 계층 및 서브계층 다운-스위칭 및/또는 업-스위칭은 동일한 액세스 유닛 또는 유사물에서 (즉, 사실상 동시에) 수행될 수 있거나 또는 상이한 액세스 유닛 또는 유사물에서 (즉, 사실상 별개의 시간에) 수행될 수 있다.
일정한 출력 계층 세트는 최고위 계층이 각각의 액세스 단위에서 변경되지 않은 채로 머무르는 사용 사례 및 비트스트림에 아주 적합하지만, 최고위 계층이 하나의 액세스 유닛으로부터 다른 액세스 유닛으로 변경되는 사용 사례는 지원하지 않을 수 있다. 그러므로 인코더가 비트스트림 내에서 대체 출력 계층의 사용을 명시할 수 있고 대체 출력 계층의 명시된 사용에 응답하여 디코더가 동일한 액세스 유닛 내에서 출력 계층의 픽처가 없을 때 대체 출력 계층으로부터 디코딩된 픽처를 출력하는 것이 제안되었다. 대체 출력 계층을 나타내는 방법에는 여러 가능성이 존재한다. 예를 들어, HEVC에서 명시된 바와 같이, 단지 하나의 출력 계층만을 포함하는 출력 계층 세트에만 사용되도록 대체 출력 계층 세트 메커니즘이 제약될 수 있고, 출력 계층의 임의의 직접 또는 간접 참조 계층이 출력 계층 세트의 출력 계층에 대한 대체 출력 계층으로서 사용될 수 있음을 명시하기 위한 출력 계층 세트 별 플래그(HEVC에서 alt_output_layer_flag[olsldx])가 사용될 수 있다. 하나 초과의 대체 출력 계층이 사용될 수 있게 될 때, 이것은 표시된 최소 대체 출력 계층에까지 내림차순 계층 식별자 순서로 액세스 유닛에 존재하는 제 1 직접 또는 간접 인터 계층 참조 픽처가 출력된다는 것이 명시될 수 있다.
도 9는 다양한 실시예가 구현될 수 있는 예시적인 멀티미디어 통신 시스템의 그래픽 표현이다. 데이터 소스(1510)는 소스 신호를 아날로그, 압축되지 않은 디지털, 또는 압축된 디지털 포맷, 또는 이러한 포맷의 임의의 조합으로 제공한다. 인코더(1520)는 소스 신호의 데이터 포맷 변환 및/또는 필터링과 같은 전처리를 포함하거나 전처리와 관련될 수 있다. 인코더(1520)는 소스 신호를 코딩된 미디어 비트스트림으로 인코딩한다. 디코딩될 비트스트림은 가상적으로 임의의 유형의 네트워크 내부에 배치된 원격 디바이스로부터 직접 또는 간접적으로 수신될 수 있다는 것을 알아야 한다. 또한, 비트스트림은 로컬 하드웨어 또는 소프트웨어로부터 수신될 수 있다. 인코더(1520)가 오디오 및 비디오와 같은 하나를 초과하는 미디어 유형을 인코딩할 수 있거나, 하나를 초과하는 인코더(1520)가 상이한 미디어 유형의 소스 신호를 코딩하는데 필요할 수 있다. 인코더(1520)는 그래픽 및 텍스트와 같이 합성하여 만들어진 입력을 받을 수 있거나, 인코더는 합성 미디어의 코딩된 비트스트림을 생성할 수 있다. 아래에서는 설명을 간략화하기 위해 하나의 미디어 유형의 하나의 코딩된 미디어 비트스트림만을 처리하는 것이 고려된다. 그러나 전형적으로 실시간 방송 서비스는 여러 스트림(전형적으로 적어도 하나의 오디오, 비디오 및 텍스트 자막(sub-titling) 스트림)을 포함한다는 것을 또한 알아야 한다. 시스템은 많은 인코더를 포함할 수 있지만, 도면에서는 일반성의 부족 없이 설명을 간략화하기 위해 단지 하나의 인코더(1520)만이 표현된다는 것을 또한 알아야 한다. 본 명세서에 포함된 본문과 예가 인코딩 프로세스를 명시적으로 설명할 수 있지만, 본 기술분야에서 통상의 지식을 갖는 자라면 동일한 개념과 원리가 대응하는 디코딩 프로세스에도 또한 적용되고 그 반대로도 가능하다는 것을 또한 이해할 것이다.
코딩된 미디어 비트스트림은 저장소(1530)로 전달될 수 있다. 저장소(1530)는 코딩된 미디어 비트스트림을 저장하는 임의의 유형의 대용량 메모리를 포함할 수 있다. 저장소(1530) 내의 코딩된 미디어 비트스트림의 포맷은 기본의 자족형(elementary self-contained) 기본 비트스트림 포맷일 수 있거나, 또는 하나 이상의 코딩된 미디어 비트스트림은 컨테이너 파일로 캡슐화될 수 있거나, 또는 코딩된 미디어 비트스트림은 DASH (또는 유사한 스트리밍 시스템)에 적합한 세그먼트 포맷으로 캡슐화되고 세그먼트의 시퀀스로 저장될 수 있다. 하나 이상의 미디어 비트스트림이 컨테이너 파일로 캡슐화되면, 하나 이상의 미디어 비트스트림을 파일에 저장하고 그 파일에 또한 저장될 수도 있는 파일 포맷 메타데이터를 생성하는 파일 생성기(도면에 도시되지 않음)가 사용될 수 있다. 인코더(1520) 또는 저장소(1530)는 파일 생성기를 포함할 수 있거나, 또는 파일 생성기는 임의적으로 인코더(1520) 또는 저장소(1530) 중 어느 하나에 부속된다. 일부 시스템은 "라이브(live)" 동작을 수행하는데, 즉, 코딩된 미디어 비트스트림을 저장하는 것을 생략하고 인코더(1520)로부터 직접 송신기(1540)로 전달한다. 그 다음에 코딩된 미디어 비트스트림은 필요에 따라 서버라고도 지칭하는 송신기(1540)에 전달될 수 있다. 전송에 사용되는 포맷은 기본의 자족형 비트스트림 포맷, 패킷 스트림 포맷, DASH (또는 유사한 스트리밍 시스템)에 적합한 세그먼트 포맷일 수 있거나, 또는 하나 이상의 코딩된 미디어 비트스트림이 컨테이너 파일로 캡슐화될 수 있다. 인코더(1520), 저장소(1530), 및 서버(1540)는 동일한 물리 디바이스에서 상주할 수 있거나, 이들은 별개의 디바이스에 포함될 수 있다. 인코더(1520) 및 서버(1540)는 생생한 실시간 콘텐츠로 동작할 수 있고, 이 경우 코딩된 미디어 비트스트림은 통상 영구적으로 저장되지 않고, 그 대신 처리 지연, 전송 지연 및 코딩된 미디어 비트레이트의 변동을 완화하기 위해 콘텐츠 인코더(1520) 및/또는 서버(1540)에서 약간의 기간 동안 버퍼링된다.
서버(1540)는 코딩된 미디어 비트스트림을 통신 프로토콜 스택을 사용하여 전송한다. 스택은 이것으로 제한되는 것은 아니지만 실시간 전송 프로토콜(Real-Time Transport Protocol. RTP), 사용자 데이터그램 프로토콜(User Datagram Protocol, UDP), 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol, HTTP), 전송 제어 프로토콜(Transmission Control Protocol, TCP) 및 인터넷 프로토콜(Internet Protocol, IP)을 포함할 수 있다. 통신 프로토콜 스택이 패킷 지향형일 때, 서버(1540)는 코딩된 미디어 비트스트림을 패킷으로 캡슐화한다. 예를 들어, RTP가 사용될 때, 서버(1540)는 코딩된 미디어 비트스트림을 RTP 패이로드 포맷에 따라 RTP 패킷으로 캡슐화한다. 전형적으로, 각 미디어 유형은 전용 RTP 패이로드 포맷을 갖는다. 되풀이하면 시스템은 하나를 초과하는 서버(1540)를 포함할 수 있지만, 간략하게 하기 위해 다음의 설명은 단지 하나의 서버(1540)만 고려한다는 것을 알아야 한다.
미디어 콘텐츠가 저장소(1530)에 저장을 위해 또는 데이터를 송신기(1540)에 입력하기 위해 컨테이너 파일로 캡슐화되면, 송신기(1540)는 "파일 송신 파서(sending file parser)"(도면에 도시되지 않음)를 포함하거나 동작적으로 이것에 부속될 수 있다. 특히, 컨테이너 파일이 이처럼 전송되지 않고 담겨있는 코딩된 미디어 비트스트림 중 적어도 하나가 통신 프로토콜을 통한 전송을 위해 캡슐화되면, 파일 송신 파서는 코딩된 미디어 비트스트림의 적절한 부분을 찾아 통신 프로토콜을 통해 전달되도록 한다. 파일 송신 파서는 패킷 헤더 및 패이로드와 같이, 통신 프로토콜에 맞는 포맷을 생성하는데도 또한 도움이 될 수 있다. 멀티미디어 컨테이너 파일에는 ISOBMFF의 힌트 트랙과 같은, 통신 프로토콜에 의거하여 담겨있는 미디어 비트스트림 중 적어도 하나를 캡슐화하기 위한 캡슐화 명령어를 포함할 수 있다.
서버(540)는 예를 들어, CDN, 인터넷 및/또는 하나 이상의 액세스 네트워크의 조합일 수 있는 통신 네트워크를 통해 게이트웨이(1550)에 연결될 수 있거나 연결되지 않을 수 있다. 게이트웨이는 또한 또는 대안적으로 미들-박스(middle-box)라고 지칭될 수 있다. DASH의 경우, 게이트웨이는 (CDN의) 에지 서버(CDN) 또는 웹 프록시일 수 있다. 시스템은 일반적으로 임의의 개수의 게이트웨이 또는 유사물을 포함할 수 있지만, 간략화를 위해, 다음의 설명은 단지 하나의 게이트웨이(1550)만을 고려한다는 것을 알아야 한다. 게이트웨이(1550)는 하나의 통신 프로토콜 스택에 따라서 패킷 스트림을 다른 통신 프로토콜 스택으로 변환하고, 데이터 스트림을 병합하고 나누며, 포워딩된 스트림의 비트 레이트를 우세한 다운링크 네트워크 조건에 따라서 조절하는 것과 같은 다운링크 및/또는 수신기 능력에 따라서 데이터 스트림을 조작하는 것과 같은 상이한 유형의 기능을 수행할 수 있다.
시스템은 전형적으로 전송된 신호를 수신하고, 코딩된 미디어 비트스트림으로 복조하고, 탈캡슐화할 수 있는 하나 이상의 수신기(1560)를 포함한다. 코딩된 미디어 비트스트림은 기록 저장소(1570)로 전달된다. 기록 저장소(1570)는 코딩된 미디어 비트스트림을 저장하는 임의의 종류의 대용량 메모리를 포함할 수 있다. 기록 저장소(1570)는 대안적으로 또는 부가적으로 랜덤 액세스 메모리와 같은 계산 메모리를 포함할 수 있다. 기록 저장소(1570) 내의 코딩된 미디어 비트스트림의 포맷은 기본의 자족형 비트스트림 포맷일 수 있거나, 또는 하나 이상의 코딩된 미디어 비트스트림이 컨테이너 파일로 캡슐화될 수 있다. 오디오 스트림 및 비디오 스트림과 같이, 서로 연관된 다수의 코딩된 미디어 비트스트림이 있다면, 전형적으로 컨테이너 파일이 사용되고 수신기(1560)는 입력 스트림으로부터 컨테이너 파일을 생성하는 컨테이너 파일 발생기를 포함하거나 컨테이너 파일 발생기에 부속될 수 있다. 일부 시스템은 "라이브" 동작을 수행하는데, 즉, 기록 저장소(1570)에 저장하는 것을 생략하고 코딩된 미디어 비트스트림을 수신기(1560)로부터 직접 디코더(1580)로 전달한다. 일부 시스템에서, 기록된 스트림 중 가장 최근 부분, 예를 들어, 기록된 스트림 중 가장 최근 10분의 발췌 부분이 기록 저장소(1570) 내에 보존되지만, 임의의 이전에 기록된 데이터는 기록 저장소(1570)로부터 폐기된다.
코딩된 미디어 비트스트림은 기록 저장소(1570)로부터 디코더(1580)로 전달된다. 오디오 스트림 및 비디오 스트림과 같이 서로 연관되고 컨테이너 파일로 캡슐화된 코딩된 미디어 비트스트림이 많으면 또는 단일 미디어 스트림이 예를 들어 액세스를 보다 쉽게 하기 위해 컨테이너 파일로 캡슐화된다면, 각각의 코딩된 미디어 비트스트림을 컨테이너 파일로부터 탈캡슐화하는 파일 파서(도면에 도시되지 않음)가 사용된다. 기록 저장소(1570) 또는 디코더(1580)는 파일 파서를 포함할 수 있거나, 또는 파일 파서가 기록 저장소(1570) 또는 디코더(1580) 중 어느 하나에 부속될 수 있다. 시스템은 많은 디코더를 포함할 수 있지만, 본 명세서에서 일반성의 부족 없이 설명을 간략화하기 위해 단지 하나의 디코더(1570)만이 논의된다는 것을 또한 알아야 한다.
코딩된 미디어 비트스트림은 디코더(1580)에 의해 추가로 처리될 수 있고, 디코더의 출력은 하나 이상의 압축되지 않은 미디어 스트림이다. 마지막으로, 렌더러(1590)는 예를 들어 스피커 또는 디스플레이를 이용하여 압축되지 않은 미디어 스트림을 재생할 수 있다. 수신기(1560), 기록 저장소(1570), 디코더(1580) 및 렌더러(1590)는 동일한 물리 디바이스에서 상주할 수 있거나 또는 이들은 별개의 디바이스에 포함될 수 있다.
송신기(1540) 및/또는 게이트웨이(1550)는 상이한 표현 사이에서, 예를 들어, 뷰 스위칭, 비트레이트 적응 및/또는 빠른 실행(fast start-up)을 위해 스위칭을 수행하도록 구성될 수 있고, 및/또는 송신기(1540) 및/또는 게이트웨이(1550)는 전송된 표현(들)을 선택하도록 구성될 수 있다. 상이한 표현 사이의 스위칭은 수신기(1560)의 요청에 응답하는 것 또는 비트스트림이 전달되는 네트워크의 처리량과 같은 지배적인 조건과 같은 여러 이유로 인해 발생할 수 있다. 수신기로부터의 요청은 예를 들어, 이전과는 상이한 표현으로부터 세그먼트(Segment) 또는 서브세그먼트(Subsegment) 요청, 전송된 스케일러빌리티 계층 및/또는 서브계층의 변경 요청 또는 이전의 디바이스와 비교하여 상이한 능력을 갖는 렌더링 디바이스의 변경 요청일 수 있다. 세그먼트 요청은 HTTP GET 요청일 수 있다. 서브세그먼트 요청은 바이트 범위가 있는 HTTP GET 요청일 수 있다. 부가적으로 또는 대안으로, 비트레이트 조정 또는 비트레이트 적응은, 예를 들어, 스트리밍 서비스에서 소위 빠른 실행을 제공하기 위해 사용될 수 있고, 스트리밍 서비스에서 전송된 스트림의 비트레이트는 재생을 즉시 시작하기 위해 및 우발성 패킷 지연 및/또는 재전송을 용인하는 버퍼 점유 레벨을 달성하기 위해 스트리밍을 시작 또는 랜덤 액세스한 후에는 채널 비트레이트보다 낮다. 비트 레이트 적응은 다양한 순서로 일어나는 다중 표현 또는 계층 업-스위칭 및 표현 또는 계층 다운-스위칭 동작을 포함할 수 있다.
디코더(1580)는 상이한 표현 사이에서 예를 들어, 뷰 스위칭, 비트레이트 적응 및/또는 빠른 실행을 위해 스위칭을 수행하도록 구성될 수 있고, 및/또는 디코더(1580)는 전송된 표현(들)을 선택하도록 구성될 수 있다. 상이한 표현 사이에서 스위칭하는 것은 여러 이유 때문에, 예컨대 보다 빠른 디코딩 동작을 달성하기 위해 또는 전송된 비트스트림을, 예를 들면, 비트레이트의 측면에서는, 비트스트림이 전달되는 네트워크의 처리량과 같은 지배적인 조건에 적응시키기 위해 발생할 수 있다. 예를 들어, 디코더(1580)를 포함하는 디바이스가 멀티 태스킹을 하고 스케일러블 비디오 비트스트림을 디코딩하는 것 이외의 다른 목적을 위해 컴퓨팅 자원을 사용한다면, 보다 빠른 디코딩 동작이 필요할 수도 있다. 다른 예에서, 콘텐츠가 통상의 재생 속도보다 빠른 속도로, 예를 들어, 통상의 실시간 재생 속도보다 2 배 또는 3 배 빠르게 재생될 때, 보다 빠른 디코딩 동작이 필요할 수도 있다. 디코더 동작의 속도는 디코딩 또는 재생 동안 예를 들어 일반적인 재생 속도로부터 빨리 감기 재생으로 또는 그 반대로의 변경에 대한 응답으로서 변경될 수 있으며, 결과적으로 다중 계층 업-스위칭 및 다운-스위칭 동작은 다양한 순서로 발생할 수 있다.
공간적으로 스케일러블 이미지 및/또는 비디오 코딩은 재구성된 참조 계층 픽처를 리샘플링하여 예측된 계층 픽처(predicted-layer picture)를 인코딩/디코딩(이후 (디)코딩으로 지칭함)하기 위한 참조 픽처로서 제공함으로써 실현될 수 있다. 대안적으로, 공간적으로 스케일러블 비디오 코딩은 인트라 코딩된 블록과 같은 참조 계층 픽처의 일부를 리샘플링하여 예측된 계층 픽처의 일부를 (디)코딩하기 위한 예측 블록으로서 제공함으로써 실현될 수 있다. 리샘플링은 다수의 참조 계층 샘플이 필터링되어 인터 계층 예측을 위한 참조로서 사용되는 샘플(예를 들면, SHVC에서 인터 계층 참조 픽처의 샘플)을 획득하는 필터링 동작을 포함할 수 있다. 따라서, 이러한 리샘플링은 픽처 경계 외부의 샘플 위치에 액세스할 수 있다. 마찬가지로, 예측된 계층 픽처가 프레임 패킹되면, 즉, 다수의 구성 프레임을 둘러싸고 있으면, 이러한 리샘플링은 구성 프레임의 경계 외부의 샘플 위치에 액세스할 수 있다. 또한, 참조 계층 위치 오프셋 또는 유사물이 참조 계층 픽처에 대해 예측된 계층 픽처의 상대적인 공간적 대응성을 표시하는데 사용될 수 있고, 인터 계층 리샘플링 프로세서로 하여금 참조 계층 픽처의 픽처 경계 외부 및/또는 참조 계층 픽처 내 고정 프레임의 경계 외부의 샘플을 참조하게 할 수 있다. 위에서 설명한 실시예는 또한 또는 대안적으로 인터 계층 예측에 적용된다는 것을 이해할 필요가 있다. 예를 들어, 경계 확장부는 인터 계층 예측에 사용되는 필터링 프로세스에 이용될 수 있다. 다른 예에서, 인터 계층 예측을 위한 필터링 프로세스에서 사용된 샘플 위치는 (예를 들어, 360도 구성 프레임의 수평 방향의 경우) 랩 오버(wrapped over)되거나, 또는 (그렇지 않으면) 구성 프레임의 경계 내에 있도록 포화(saturated)된다.
위에서 설명한 실시예는 또한 또는 대안적으로 인터 뷰 예측에 적용된다는 것을 이해할 필요가 있다. 예에서, 참조 계층 또는 뷰의 첫 번째 픽처는 예를 들어 콘텐츠의 두 개의 뷰를 나타내는 하나 초과의 구성 프레임을 둘러싸고 있다. 예측된 계층 또는 뷰의 두 번째 픽처는 예를 들어 (첫 번째 픽처에 의해 표현된 뷰 이외의) 콘텐츠의 다른 뷰를 나타내는 적어도 하나의 구성 프레임을 둘러싸고 있다. 인터 뷰 예측은 첫 번째 픽처의 하나 이상의 구성 프레임으로부터 두 번째 픽처로 이루어진다. 인터 뷰 예측에 사용되는 (움직임 벡터와 유사하거나 동일한) 불일치 벡터는 부분적으로 구성 프레임 외부에 있는 예측 블록을 참조할 수 있거나 또는 하나 초과의 구성 프레임으로부터의 입력 샘플을 요구하는 분수 샘플 위치를 참조할 수 있다. 실시예는 인터 뷰 예측 블록이 단지 하나의 구성 프레임의 샘플들로부터 유래되는 것으로 제약되도록, 구성 프레임 내의 샘플 위치의 경계 확장부, 또는 포화 또는 랩 오버를 배열하는데 사용될 수 있다.
상기에서, 일부 실시예는 구성 프레임이라는 용어를 단수 형태로 참조하여 설명되었다. 실시예는 다수의 구성 프레임에 적용될 수 있고, 구성 프레임의 수는 일반적으로는 실시예에 의해 제한되지 않는다는 것을 이해할 필요가 있다.
상기에서, 일부 실시예는 구성 프레임이라는 용어를 참조하여 설명되었다. 구성 프레임은 입력 프레임 또는 입력 필드를 나타낼 수 있고, 여기서 필드는 프레임의 대체 샘플 로우의 세트이고 소스 신호가 인터레이스될 때는 인코더 입력으로서 사용될 수 있다는 것을 이해할 필요가 있다.
상기에서, 일부 실시예는 구성 프레임이라는 용어를 참조하여 설명되었다. 실시예는 코딩 또는 디코딩되는 픽처의 공간적으로 인접한 부분이 명시적으로 구성 프레임이라고 불리지 않을지라도 그러한 모든 부분에 적용 가능하다는 것을 이해할 필요가 있다. 실시예는 구성 프레임보다는 작은 유닛이 코딩 또는 디코딩되는 픽처 내에서 공간적으로 인접한 영역을 점유하는 한, 그러한 유닛에 유사하게 적용된다는 것을 이해할 필요가 있다. 예시적인 실시예에서, 구성 프레임은 인코딩 이전의 전처리 단계에서 또는 인코딩의 일부로서 두 개 이상의 공간적으로 분리된 구성 프레임 파티션으로 분할된다. 구성 프레임 파티션 중 하나 이상은 다른 실시예에서 설명되는 바와 같이 경계 확장부를 갖는다. 동일한 픽처는 하나 초과의 구성 프레임으로부터의 구성 프레임 경계를 포함할 수 있다. 경계 확장부를 포함하거나 포함하지 않는 각 구성 프레임 경계는, 만일 있다면, 움직임 제약된 타일 세트로서 코딩될 수 있다. 경계 연장 부분은 제거될 수 있고, 구성 프레임 파티션은 구성 프레임이 전체적으로 연속하도록 디코더에 의해, 예를 들면, 출력 잘라내기 프로세스의 일부로서 또는 디코딩 이후의 후 처리 단계에 의해, 공간적으로 연속하는 방식으로 배열될 수 있다. 예를 들어, 360도 파노라마 구성 프레임은 예를 들어, 수직으로 45도, 90도 및 45 도의 그리드 및 수평으로 90도 간격의 그리드를 사용하여 분할되고, 예시적인 실시예에서 설명된 바와 같이 처리될 수 있다. 다른 예에서, 큐브맵 투영된 구형 픽처(cubemap-projected spherical picture)의 각 큐브 사이드는 구성 프레임 파티션으로 간주되고 예시적인 실시예에서 설명된 바와 같이 처리될 수 있다.
실시예에서, 비디오 인코딩을 위한 입력 픽처는 도 10a 내지 도 10c에 도시된 바와 같은 피라미드 매핑으로부터 유래된다. 구형 비디오 시퀀스의 각 입력 픽처, 등정방형 파노라마와 같은 구형 비디오 투영을 나타내는 비디오 시퀀스, 외향 포인팅 카메라 셋업(outward pointing camera setup)의 멀티뷰 픽처 또는 유사물이 도 10a에 도시된 피라미드(1000) 상에 투영된다. 피라미드 투영은 또한 생략될 수 있고 소스 콘텐츠로부터 예를 들어, 도 10b에서의 피라미드형 투영과 같은 전개된 피라미드형 투영(unfolded pyramidal projection)(1002)으로의 직접 매핑 또는 예를 들어 도 10c에서의 피라미드형 투영과 같은 프레임 패킹된 피라미드형 투영(frame-packed pyramidal projection)(1004)으로의 직접 매핑이 수행될 수 있다. 피라미드의 직사각형 면(1006)은 주 관찰 방향이 정확히 또는 대략 정면을 향하는 것으로 가정하면 전방 면이라고 지칭될 수 있다. 전방 면의 수평 축은 (가정된 헤딩 방향과 일치하는) 주 관찰 방향에 따라 선택된다. 피라미드 내의 가상 관찰 위치는 전방 면이 원하는 시야를 갖는 방식으로 선택될 수 있다. 예를 들어, 90 도의 수평 및 수직 시야가 전방 면에 선택될 수 있다. 삼각형 피라미드 면은 가정된 주 관찰 방향 및 주 관찰 방위에 대한 이들의 위치에 따라 좌측 면(1008), 상단 면(1010), 우측 면(1012) 및 하단 면(1014)으로 명명될 수 있다. 삼각형 피라미드 면은 도 10b에 도시된 바와 같이 전방 면(1006)의 평면 상에 전개되는 것으로 간주될 수 있지만, 이와 같은 중간 단계는 생략될 수 있고, 도 10a의 피라미드(1000)로부터 예를 들어 도 10c의 피라미드형 투영과 같은 프레임 패킹된 피라미드형 투영(1006)이 수행될 수 있다. 전개의 일부로서, 삼각형 피라미드 면은 도 10c에 도시된 것과 동일하게 또는 유사하게 배열될 때, 전체 너비 및 높이가 전방 면의 너비 및 높이와 일치하는 방식으로 리샘플링될 수 있다. 삼각형 면은 다양한 방법으로 경계 직사각형으로 배열될 수 있는데, 그 중 하나는 도 10c에 도시되고, 도 10c에서 전개된 우측 면(1012) 및 좌측 면(1008)은 변경되지 않은 채로 유지되는 반면, 전개되지 않은 상부 면(1010) 및 하단 면(1014)은 180도 회전된다. 실시예에서, 전방 면(1006)은 제 1 구성 프레임으로 간주되고 삼각형 면을 포함하는 경계 직사각형은 다른 실시예에서 제 2 구성 프레임으로 간주될 수 있다. 실시예에서, 전방 면(1006)은 삼각형 면의 경계 직사각형에 인접한 사이드 상에서 경계 확장부를 갖는다. 예를 들어, 삼각형 면의 경계 직사각형이 도 10c에 도시된 바와 같이 전방 면(1006)의 우측 상에서 또한 존재할 때, 경계 확장부는 전방 면(1006)의 우측 상에 존재할 수 있다. 경계 확장부는 다른 실시예에서 설명된 것과 유사하게 취급된다. 도 10c는 경계 확장부를 도시하지만, 경계 확장부가 존재하지 않는 (및 예를 들어, 구성 프레임 외부의 참조가 샘플 위치를 구성 프레임 내에 있도록 포화함으로써 처리되는) 다른 실시예가 도 10c의 배열과 유사하지만 경계 확장부가 없는 배열에도 또한 적용 가능하다는 것을 이해할 필요가 있다. 실시예에서, 그 경계 확장부(존재한다면)를 포함하는 전방 면(1006)은 인코딩시에 제 1 타일 세트 내에 둘러싸이고, 제 1 타일 세트는 움직임 제약된 타일 세트로서 인코딩된다. 실시예에서, 삼각형 면(1008 내지 1014)을 포함하는 경계 직사각형은 인코딩 시 제 2 타일 세트 내에 둘러싸이고 제 2 타일 세트는 움직임 제약된 타일 세트로서 인코딩된다. 움직임 제약된 타일 세트(들)는 다른 실시예에서 설명된 것과 유사하게 취급된다. 이 단락은 인코딩 실시예를 설명하지만, 디코딩 실시예는 전방 면(1006)을 디코딩을 위한 다양한 다른 실시예에서의 구성 프레임으로서 취급함으로써 유사하게 실현될 수 있다는 것을 이해할 필요가 있다.
상기에서, 일부 실시예는 블록이라는 용어를 참조하여 설명되었다. 코딩 시스템은 실시예가 적용되는 동일하거나 유사한 개념에 대해 상이한 용어를 가질 수 있다는 것을 이해할 필요가 있다. 예를 들어, HEVC에서 블록이라는 용어는 예를 들어, 상이한 실시예에서 코딩 트리 유닛, 코딩 트리 블록, 코딩 유닛 또는 코딩 블록으로 이해될 수 있다.
상기에서, 일부 실시예는 HEVC 및/또는 HEVC 규격에서 사용된 용어와 관련하여 설명되었다. 실시예는 다른 코덱 및 코딩 포맷 및 위에서 설명한 실시예에서 사용된 용어와의 동등성 또는 유사성을 갖는 다른 용어에 유사하게 적용된다는 것을 이해할 필요가 있다.
위에서, 예시적인 실시예가 인코더를 참조하여 설명되었다면, 결과적인 비트스트림 및 디코더에는 이들 내에 대응하는 요소가 있을 수 있다는 것을 이해하여야 한다. 마찬가지로, 예시적인 실시예가 디코더를 참조하여 설명되었다면, 인코더는 디코더에 의해 디코딩될 비트스트림을 발생하기 위한 구조 및/또는 컴퓨터 프로그램을 갖고 있다는 것을 이해하여야 한다.
위에서 설명된 본 발명의 실시예는 연루된 프로세스를 이해하는데 도움을 주기 위해서 별개의 인코더 및 디코더 장치의 관점에서 코덱을 설명한다. 그러나 장치, 구조 및 동작은 단일의 인코더-디코더 장치/구조/동작으로서 구현될 수 있다는 것이 인식될 것이다. 뿐만 아니라, 코더 및 디코더는 일부 또는 모든 공통 요소를 공유할 수 있는 것이 가능하다.
위의 예가 전자 디바이스 내부의 코덱 내에서 동작하는 본 발명의 실시예를 설명하지만, 청구범위에서 정의되는 바와 같이 본 발명은 임의의 비디오 코덱의 일부로서 구현될 수 있다는 것이 인식될 것이다. 따라서, 예를 들어, 본 발명의 실시예는 고정 또는 유선 통신 경로를 통해 비디오 코딩을 구현할 수 있는 비디오 코덱에서 구현될 수 있다.
따라서, 사용자 장비는 위에서 본 발명의 실시예에서 설명한 바와 같은 비디오 코덱을 포함할 수 있다. 사용자 장비라는 용어는 이동 전화, 휴대용 데이터 처리 디바이스 또는 휴대용 웹 브라우저와 같은 임의의 적합한 유형의 무선 사용자 장비를 망라하려 의도한다는 것이 인식될 것이다.
또한 공중 육상 모바일 네트워크(public land mobile network, PLMN)의 요소가 또한 위에서 설명한 바와 같은 비디오 코덱을 포함할 수 있다.
일반적으로, 본 발명의 다양한 실시예는 하드웨어 또는 특수 목적 회로, 소프트웨어, 로직 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들어, 일부 양태는 하드웨어로 구현될 수 있는데 반해, 본 발명이 이것으로 제한되는 것은 아니지만, 다른 양태는 제어기, 마이크로프로세서 또는 다른 컴퓨팅 디바이스에 의해 실행될 수 있는 펌웨어 또는 소프트웨어로 구현될 수 있다. 본 발명의 다양한 양태가 블록도, 흐름도로서 또는 일부 다른 회화적 표현을 사용하여 예시되고 설명될 수 있지만, 본 명세서에서 설명된 이와 같은 블록, 장치, 시스템, 기술 또는 방법은, 비제한적인 예로서, 하드웨어, 소프트웨어, 펌웨어, 특수 목적 회로나 로직, 범용 하드웨어나 제어기나 기타 컴퓨팅 디바이스, 또는 이들의 일부 조합으로 구현될 수 있다는 것 또한 잘 이해된다.
본 발명의 실시예는 프로세서 엔티티에서와 같은 이동 디바이스의 데이터 프로세서에 의해 실행 가능한 컴퓨터 소프트웨어에 의해, 또는 하드웨어에 의해, 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있다. 또한, 이 점에서, 도면에서처럼 로직 흐름의 임의의 블록은 프로그램 단계 또는 상호 연결된 로직 회로, 블록 및 기능, 또는 프로그램 단계와 로직 회로, 블록 및 기능의 조합을 표현할 수 있다는 것을 알아야 한다. 소프트웨어는 메모리 칩과 같은 물리적 매체, 또는 프로세서 내부에서 구현된 메모리 블록, 하드 디스크 또는 플로피 디스크와 같은 자기 매체, 및 예를 들어 DVD 및 그의 데이터 변형체인 CD와 같은 광학 매체상에 저장될 수 있다.
메모리는 로컬 기술 환경에 적합한 임의의 유형일 수 있고 반도체 기반 메모리 디바이스, 자기 메모리 디바이스 및 시스템, 광학 메모리 디바이스 및 시스템, 고정 메모리 및 분리 가능한 메모리와 같은 임의의 적합한 데이터 저장 기술을 이용하여 구현될 수 있다. 데이터 프로세서는 로컬 기술 환경에 적합한 임의의 유형일 수 있고, 비제한적인 예로서, 범용 컴퓨터, 특수 목적 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP) 및 멀티-코어 프로세서 아키텍처에 기반한 프로세서 중 하나 이상을 포함할 수 있다.
본 발명의 실시예는 집적 회로 모듈과 같은 다양한 컴포넌트에서 실시될 수 있다. 집적 회로의 디자인은 대체로 고도로 자동화된 프로세스이다. 복잡하고 강력한 소프트웨어 툴은 로직 레벨 디자인을 반도체 기판 상에서 에칭되어 형성되도록 준비된 반도체 회로 디자인으로 변환하는데 이용할 수 있다.
캘리포니아 마운틴 뷰 소재의 시놉시스 인코포레이티드(Synopsys Inc.)와 캘리포니아 산호세 소재의 카덴스 디자인(Cadence Design)에 의해 제공된 것과 같은 프로그램은 잘 구축된 디자인 규칙뿐만 아니라 미리 저장된 디자인 모듈의 라이브러리를 이용하여 자동적으로 전도체를 경로설정하고 컴포넌트를 반도체 칩상에 배치한다. 일단 반도체 회로의 디자인이 완성되면, 표준화된 전자 포맷(예를 들어, Opus 또는 GDSII 등)의 결과 디자인은 반도체 제조 설비 또는 제조용 "팹(fab)"으로 전달될 수 있다.
전술한 설명은 본 발명의 예시적인 실시예의 충분하고 유익한 설명을 예시적이고 비제한적인 예로서 제공하였다. 그러나 첨부 도면 및 첨부의 청구범위와 함께 읽어볼 때 전술한 설명에 비추어 관련 기술에서 통상의 지식을 갖는 자에게는 다양한 수정과 적응이 자명해질 수 있다. 그러나 그럼에도 본 발명의 가르침의 그러한 모든 변형과 유사한 수정은 본 발명의 범주 내에 속할 것이다.
다음에서 몇 가지 예가 제공될 것이다.
제 1 예에 따르면,
인코딩된 픽처를 수신하는 단계와,
유효 픽처 영역을 갖는 픽처의 재구성된 구성 프레임을 형성하기 위해 인코딩된 픽처를 디코딩하는 단계와,
다음 중 어느 하나를 수행하는 단계를 포함하되, 다음 중 어느 하나는:
패딩된 참조 픽처를 생성하기 위해 유효 픽처 영역 외부의 영역을 채우는 단계 - 채워진 영역은 경계 확장부를 형성함 -, 또는
디코딩 시 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 샘플 위치가 유효 픽처 영역 내에 있도록 포화되거나 랩핑 오버되는 것을 결정하는 단계인 방법이 제공된다.
방법의 실시예에 따르면, 상기 채우는 단계는 유효 픽처 영역 외부의 적어도 하나의 샘플에 대해 다음 중 적어도 하나의 단계를 포함하되, 다음 중 적어도 하나의 단계는,
적어도 하나의 샘플 값을 수평 인트라 예측에 의해 디코딩하는 단계,
적어도 하나의 샘플 값을 수직 인트라 예측에 의해 디코딩하는 단계,
적어도 하나의 샘플 값을 경계 확장부와는 반대쪽의 유효 픽처 영역의 경계 영역으로부터 인트라 블록 카피 예측에 의해 디코딩하는 단계,
적어도 하나의 샘플 값을 픽처 내의 다른 구성 프레임으로부터 인트라 블록 카피 예측에 의해 디코딩하는 단계,
적어도 하나의 샘플 값을 디코딩 순서에서 이전 픽처로부터 인터 예측에 의해 디코딩하는 단계이다.
실시예에 따르면, 방법은,
구성 프레임 경계 외부의 샘플 위치가 포화되었거나 랩핑 오버되었는지에 관한 표시를 디코딩하는 단계와,
디코딩된 표시에 따라 상기 샘플 위치가 유효 픽처 영역 내에 있도록 포화되었거나 또는 랩핑 오버되었는지를 결정하는 단계를 더 포함한다.
실시예에 따르면, 방법은,
구성 프레임의 유효 픽처 영역의 표시를 디코딩하는 단계를 더 포함한다.
실시예에 따르면, 방법은,
구성 프레임이 360도 파노라마 픽처인 것으로 표시될 때 유효 픽처 영역의 반대 측으로부터 카피함으로써 적어도 하나의 샘플 값을 삽입하는 단계를 더 포함한다.
실시예에 따르면, 방법은,
인코딩된 픽처를 디코딩하여 픽처의 제 2 재구성된 구성 프레임을 형성하는 단계를 포함한다.
실시예에 따르면, 방법은,
제 2 인코딩된 픽처를 수신하는 단계와,
제 2 인코딩된 픽처로부터 움직임 벡터를 디코딩하는 단계 - 움직임 벡터는 디코딩 시에 재구성된 구성 프레임의 유효 픽처 영역 외부의 샘플 위치를 참조하게 함 - 와;
샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 단계를 포함한다.
제 2 예에 따르면, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함 - 상기 적어도 하나의 메모리에는 코드가 저장됨 - 하는 장치가 제공되고, 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
인코딩된 픽처를 수신하는 것과,
유효 픽처 영역을 갖는 픽처의 재구성된 구성 프레임을 형성하기 위해 인코딩된 픽처를 디코딩하는 것과,
다음 중 어느 하나를 수행하는 것을 수행하게 하되, 다음 중 어느 하나는,
패딩된 참조 픽처를 생성하기 위해 유효 픽처 영역 외부의 영역을 채우는 것 - 채워진 영역은 경계 확장부를 형성함 -, 또는
디코딩 시 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 샘플 위치가 유효 픽처 영역 내에 있도록 포화되거나 랩핑 오버되는 것을 결정하는 것이다.
장치의 실시예에 따르면, 상기 채우는 것은 상기 코드가 상기 장치로 하여금,
적어도 하나의 샘플 값을 수평 인트라 예측에 의해 디코딩하는 것,
적어도 하나의 샘플 값을 수직 인트라 예측에 의해 디코딩하는 것,
적어도 하나의 샘플 값을 경계 확장부와는 반대쪽의 유효 픽처 영역의 경계 영역으로부터 인트라 블록 카피 예측에 의해 디코딩하는 것,
적어도 하나의 샘플 값을 픽처 내의 다른 구성 프레임으로부터 인트라 블록 카피 예측에 의해 디코딩하는 것,
적어도 하나의 샘플 값을 디코딩 순서에서 이전 픽처로부터 인터 예측에 의해 디코딩하는 것 중 적어도 하나를 수행하게 하는 것을 포함한다.
실시예에 따르면 장치는 장치로 하여금 적어도,
구성 프레임 경계 외부의 샘플 위치가 포화되었거나 랩핑 오버되었는지에 관한 표시를 디코딩하는 것과,
디코딩된 표시에 따라 상기 샘플 위치가 유효 픽처 영역 내에 있도록 포화되었거나 또는 랩핑 오버되었는지를 결정하는 것을 수행하게 하는 코드를 더 포함한다.
실시예에 따르면, 장치는 장치로 하여금 적어도,
구성 프레임의 상기 유효 픽처 영역의 표시를 디코딩하는 것을 수행하게 하는 코드를 더 포함한다.
실시예에 따르면, 장치는 장치로 하여금 적어도,
구성 프레임이 360도 파노라마 픽처인 것으로 표시될 때 유효 픽처 영역의 반대 측으로부터 카피함으로써 적어도 하나의 샘플 값을 삽입하는 것을 수행하게 하는 코드를 더 포함한다.
실시예에 따르면, 장치는 장치로 하여금 적어도,
유효 픽처 영역 외부의 영역을 디코딩하여 중간 참조 프레임을 획득하는 것을 수행하게 하는 코드를 더 포함하고,
추가로 채우는 것은 중간 참조 프레임의 경계 확장부의 적어도 하나의 샘플 값을 수정하는 것을 포함한다.
실시예에 따르면, 장치는 장치로 하여금 적어도,
인코딩된 픽처를 디코딩하여 픽처의 제 2 재구성된 구성 프레임을 형성하는 것을 수행하게 하는 코드를 더 포함한다.
실시예에 따르면, 장치는 장치로 하여금 적어도,
제 2 인코딩된 픽처를 수신하는 것과,
제 2 인코딩된 픽처로부터 움직임 벡터를 디코딩하는 것 - 움직임 벡터는 디코딩 시에 재구성된 구성 프레임의 유효 픽처 영역 외부의 샘플 위치를 참조하게 함 - 과;
샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 것을 수행하게 하는 코드를 더 포함한다.
제 3 예에 따르면, 장치에 의해 사용하기 위한 코드가 저장된 컴퓨터 판독 가능한 저장 매체가 제공되고, 코드는 프로세서에 의해 실행될 때, 장치로 하여금,
인코딩된 픽처를 수신하는 것과,
유효 픽처 영역을 갖는 픽처의 재구성된 구성 프레임을 형성하기 위해 인코딩된 픽처를 디코딩하는 것과,
다음 중 어느 하나를 수행하는 것을 수행하게 하되, 다음 중 어느 하나는,
패딩된 참조 픽처를 생성하기 위해 유효 픽처 영역 외부의 영역을 채우는 것 - 채워진 영역은 경계 확장부를 형성함 -, 또는
디코딩 시 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 샘플 위치가 유효 픽처 영역 내에 있도록 포화되거나 랩핑 오버되는 것을 결정하는 것이다.
제 4 예에 따르면,
인코딩된 픽처를 수신하기 위한 수단과,
유효 픽처 영역을 갖는 픽처의 재구성된 구성 프레임을 형성하기 위해 인코딩된 픽처를 디코딩하기 위한 수단과,
다음 중 어느 하나를 수행하기 위한 수단을 포함하되, 다음 중 어느 하나는,
패딩된 참조 픽처를 생성하기 위해 유효 픽처 영역 외부의 영역을 채우는 것 - 채워진 영역은 경계 확장부를 형성함 -, 또는
디코딩 시 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 샘플 위치가 유효 픽처 영역 내에 있도록 포화되거나 랩핑 오버되는 것을 결정하는 것인 장치가 제공된다.
제 5 예에 따르면,
압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 단계 -상기 인코딩은 결과적으로 재구성된 제 1 픽처를 또한 생성하고 상기 구성 프레임은 제 1 재구성된 픽처 내에 유효 픽처 영역을 가짐 - 와,
상기 인코딩의 일부로서 다음 중 하나를 수행하는 단계를 포함하되, 다음 중 어느 하나는,
유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 재구성된 제 1 픽처에서 구성 프레임에 대한 경계 확장부를 형성하는 단계, 또는
유효 픽처 영역 외부의 샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 단계인 방법이 제공된다.
실시예에 따르면, 방법은,
적어도 하나의 샘플 값을 수평 인트라 예측에 의해 획득하는 단계와,
적어도 하나의 샘플 값을 수직 인트라 예측에 의해 획득하는 단계와,
적어도 하나의 샘플 값을 경계 확장부와는 반대쪽의 유효 픽처 영역의 경계 영역으로부터 인트라 블록 카피 예측에 의해 획득하는 단계와,
적어도 하나의 샘플 값을 픽처 내의 다른 구성 프레임으로부터 인트라 블록 카피 예측에 의해 획득하는 단계와,
적어도 하나의 샘플 값을 디코딩 순서에서 이전 픽처로부터 인터 예측에 의해 획득하는 단계를 더 포함한다.
실시예에 따르면 방법은,
구성 프레임 경계 외부의 샘플 위치가 포화되었거나 랩핑 오버되었는지에 관한 표시를 인코딩하는 단계를 더 포함한다.
실시예에 따르면, 방법은,
구성 프레임의 유효 픽처 영역의 표시를 인코딩하는 단계를 더 포함한다.
실시예에 따르면, 방법은,
구성 프레임이 360도 파노라마 픽처인 것으로 표시될 때 유효 픽처 영역의 반대 측으로부터 카피함으로써 적어도 하나의 샘플 값을 삽입하는 단계를 더 포함한다.
상기 방법의 실시예에 따르면, 상기 인코딩 단계는,
유효 픽처 영역 외부의 영역을 재구성하여 중간 참조 프레임을 획득하는 단계를 포함하고,
추가로 채우는 단계는 중간 참조 프레임의 경계 확장부의 적어도 하나의 샘플 값을 수정하는 단계를 포함한다.
실시예에 따르면, 방법은,
제 2 비 압축된 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 단계를 포함한다.
실시예에 따르면, 방법은,
제 2 인코딩된 픽처를 인코딩하는 단계 -
제 2 인코딩된 픽처의 상기 인코딩은 디코딩 시 재구성된 구성 프레임의 유효 픽처 영역 외부의 샘플 위치를 참조하게 하는 단계를 포함함 - 와,
샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 단계를 더 포함한다.
제 6 예에 따르면, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함 - 상기 적어도 하나의 메모리에는 코드가 저장됨 - 하는 장치가 제공되고, 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 적어도,
압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 것 - 상기 인코딩은 결과적으로 재구성된 제 1 픽처를 또한 생성하고 상기 구성 프레임은 제 1 재구성된 픽처 내에 유효 픽처 영역을 가짐 - 과,
인코딩의 일부로서 다음 중 하나를 수행하는 것을 수행하게 하되, 다음 중 어느 하나는,
유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 재구성된 제 1 픽처에서 구성 프레임에 대한 경계 확장부를 형성하는 것, 또는
유효 픽처 영역 외부의 샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 것이다.
실시예에 따르면, 장치는,
적어도 하나의 샘플 값을 수평 인트라 예측에 의해 획득하는 것과,
적어도 하나의 샘플 값을 수직 인트라 예측에 의해 획득하는 것과,
적어도 하나의 샘플 값을 경계 확장부와는 반대쪽의 유효 픽처 영역의 경계 영역으로부터 인트라 블록 카피 예측에 의해 획득하는 것과,
적어도 하나의 샘플 값을 픽처 내의 다른 구성 프레임으로부터 인트라 블록 카피 예측에 의해 획득하는 것과,
적어도 하나의 샘플 값을 디코딩 순서에서 이전 픽처로부터 인터 예측에 의해 획득하는 것을 포함한다.
실시예에 따르면, 장치는 장치로 하여금,
구성 프레임 경계 외부의 샘플 위치가 포화되었거나 랩핑 오버되었는지에 관한 표시를 인코딩하는 것의 적어도 하나를 수행하게 하는 코드를 더 포함한다.
실시예에 따르면, 장치는 장치로 하여금,
구성 프레임의 유효 픽처 영역의 표시를 인코딩하는 것을 수행하게 하는 코드를 더 포함한다.
실시예에 따르면, 장치는 장치로 하여금 적어도,
구성 프레임이 360도 파노라마 픽처인 것으로 표시될 때 유효 픽처 영역의 반대 측으로부터 카피함으로써 적어도 하나의 샘플 값을 삽입하는 것을 수행하게 하는 코드를 더 포함한다.
장치의 실시예에 따르면, 상기 인코딩하는 것은 장치로 하여금 적어도,
유효 픽처 영역 외부의 영역을 재구성하여 중간 참조 프레임을 획득하는 것을 수행하게 하는 코드를 포함하고,
추가로 채우는 것은 중간 참조 프레임의 경계 확장부의 적어도 하나의 샘플 값을 수정하는 것을 포함한다.
실시예에 따르면, 장치는 장치로 하여금 적어도,
제 2 비 압축된 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 것을 수행하게 하는 코드를 더 포함한다.
실시예에 따르면, 장치는 장치로 하여금,
제 2 인코딩된 픽처를 인코딩하는 것 -
상기 제 2 인코딩된 픽처의 인코딩은 디코딩 시 재구성된 구성 프레임의 유효 픽처 영역 외부의 샘플 위치를 참조하게 하는 단계를 포함함 - 과,
샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 것 중 적어도 하나를 수행하게 하는 코드를 더 포함한다.
제 7 예에 따르면, 장치에 의해 사용하기 위한 코드가 저장된 컴퓨터 판독 가능한 저장 매체가 제공되고, 코드는 프로세서에 의해 실행될 때, 장치로 하여금,
압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 것 -상기 인코딩은 결과적으로 재구성된 제 1 픽처를 또한 생성하고 상기 구성 프레임은 제 1 재구성된 픽처 내에 유효 픽처 영역을 가짐 - 와,
상기 인코딩의 일부로서 다음 중 하나를 수행하는 것을 수행하게 하되, 다음 중 어느 하나는,
유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 재구성된 제 1 픽처에서 구성 프레임에 대한 경계 확장부를 형성하는 것, 또는
유효 픽처 영역 외부의 샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 것이다.
제 8 예에 따르면,
압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하기 위한 수단 - 상기 인코딩은 결과적으로 재구성된 제 1 픽처를 또한 생성하고 상기 구성 프레임은 제 1 재구성된 픽처 내에 유효 픽처 영역을 가짐 - 와,
상기 인코딩의 일부로서 다음 중 어느 하나를 수행하기 위한 수단을 포함하되, 다음 중 어느 하나는,
유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 재구성된 제 1 픽처에서 구성 프레임에 대한 경계 확장부를 형성하는 것, 또는
유효 픽처 영역 외부의 샘플 위치를 포화하거나 랩핑 오버하여 유효 픽처 영역 내에 있게 하는 것인 장치가 제공된다.

Claims (22)

  1. 디코딩 방법으로서,
    인코딩된 픽처를 수신하는 단계와,
    제 1 유효 픽처 영역(effective picture area)을 갖는 픽처의 제 1 재구성된 구성 프레임 및 제 2 유효 픽처 영역을 갖는 픽처의 제 2 재구성된 구성 프레임을 형성하기 위해 상기 인코딩된 픽처를 디코딩하는 단계와,
    다음 중 어느 하나의 단계를 상기 제 1 재구성된 구성 프레임 및 상기 제 2 재구성된 구성 프레임의 경계에 수행하는 단계를 포함하되, 상기 다음 중 어느 하나의 단계는,
    패딩된 참조 픽처를 생성하기 위해 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부의 영역을 채우는 단계 - 채워진 영역은 상기 제 1 재구성된 구성 프레임 및 상기 제 2 재구성된 구성 프레임 사이의 경계 확장부 (boundary extension)를 형성함 -, 또는
    디코딩에 있어서 상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 상기 방법은 다음 중 하나의 단계를 더 포함한다고 결정하는 단계 - 상기 다음 중 하나의 단계는, 상기 경계의 샘플들의 픽셀 값들을 상기 경계 확장부에 대한 상기 샘플 위치로 복사하는 단계, 또는 상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들의 픽셀 값들을 상기 경계 확장부로 복사하는 단계를 포함함 - 인
    방법.
  2. 제 1 항에 있어서,
    상기 채우는 단계는 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부의 적어도 하나의 샘플에 대해 다음 중 적어도 하나의 단계를 포함하되, 상기 다음 중 적어도 하나의 단계는,
    상기 적어도 하나의 샘플 값을 수평 인트라 예측에 의해 디코딩하는 단계,
    상기 적어도 하나의 샘플 값을 수직 인트라 예측에 의해 디코딩하는 단계,
    상기 적어도 하나의 샘플 값을 상기 경계 확장부와는 반대쪽의 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 경계 영역으로부터 인트라 블록 카피 예측에 의해 디코딩하는 단계,
    상기 적어도 하나의 샘플 값을 상기 픽처 내의 다른 구성 프레임으로부터 인트라 블록 카피 예측에 의해 디코딩하는 단계,
    상기 적어도 하나의 샘플 값을 디코딩 순서에서 이전 픽처로부터 인터 예측에 의해 디코딩하는 단계인
    방법.
  3. 제 1 항에 있어서,
    구성 프레임 경계 외부의 샘플 위치가 상기 경계의 샘플들의 픽셀 값들로부터 복사되거나 또는 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들의 픽셀 값들로부터 복사되었는지에 대한 표시를 디코딩하는 단계와,
    상기 디코딩된 표시에 따라 상기 샘플 위치가 상기 경계의 샘플들의 픽셀 값들로부터 복사되거나 또는 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들의 픽셀 값들로부터 복사되었는지를 결정하는 단계를 더 포함하는
    방법.
  4. 제 1 항, 제 2 항 또는 제 3 항에 있어서,
    상기 구성 프레임의 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 표시를 디코딩하는 단계를 더 포함하는
    방법.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 구성 프레임이 360도 파노라마 픽처인 것으로 표시될 때 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 반대 측으로부터 카피함으로써 상기 적어도 하나의 샘플 값을 삽입하는 단계를 포함하는
    방법.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 인코딩된 픽처를 디코딩하는 단계는,
    상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부의 영역을 디코딩하여 중간 참조 프레임을 획득하는 단계를 포함하고,
    또한, 상기 채우는 단계는 상기 중간 참조 프레임의 상기 경계 확장부의 적어도 하나의 샘플 값을 수정하는 단계를 포함하는
    방법.
  7. 삭제
  8. 제 1 항 또는 제 3 항에 있어서,
    제 2 인코딩된 픽처를 수신하는 단계와,
    상기 제 2 인코딩된 픽처로부터 움직임 벡터를 디코딩하는 단계 - 상기 움직임 벡터는 디코딩 시에 상기 제 1 재구성된 구성 프레임의 상기 제 1 유효 픽처 영역 및 상기 제 2 재구성된 구성 프레임의 상기 제 2 유효 픽처 영역 외부의 샘플 위치를 참조하게 함 - 와,
    상기 경계의 샘플들로부터 또는 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들로부터 픽셀 값들을 복사하는 단계를 더 포함하는
    방법.
  9. 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 디코딩 장치로서,
    상기 적어도 하나의 메모리에는 코드가 저장되고, 상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 적어도,
    인코딩된 픽처를 수신하는 것과,
    제 1 유효 픽처 영역을 갖는 픽처의 제 1 재구성된 구성 프레임 및 제 2 유효 픽처 영역을 갖는 픽처의 제 2 재구성된 구성 프레임을 형성하기 위해 상기 인코딩된 픽처를 디코딩하는 것과,
    다음 중 어느 하나를 수행하는 것을 수행하게 하되, 상기 다음 중 어느 하나는,
    패딩된 참조 픽처를 생성하기 위해 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부의 영역을 채우는 것 - 채워진 영역은 상기 제 1 재구성된 구성 프레임 및 상기 제 2 재구성된 구성 프레임 사이의 경계 확장부를 형성함 -, 또는
    디코딩에 있어서 상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 상기 경계의 샘플들의 픽셀 값들을 상기 경계 확장부에 대한 상기 샘플 위치로 복사하는 것, 또는 상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들의 픽셀 값들을 상기 경계 확장부로 복사하는 것인
    장치.
  10. 제 9 항에 있어서,
    상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 제 2 항 또는 제 3 항에서 청구된 방법의 각 단계를 더 수행하게 하도록 구성되는
    장치.
  11. 디코딩 장치로서,
    인코딩된 픽처를 수신하기 위한 수단과,
    제 1 유효 픽처 영역을 갖는 픽처의 제 1 재구성된 구성 프레임 및 제 2 유효 픽처 영역을 갖는 픽처의 제 2 재구성된 구성 프레임을 형성하기 위해 상기 인코딩된 픽처를 디코딩하기 위한 수단과,
    다음 중 어느 하나를 상기 제 1 재구성된 구성 프레임 및 상기 제 2 재구성된 구성 프레임의 경계에 수행하기 위한 수단을 포함하되, 상기 다음 중 어느 하나는,
    패딩된 참조 픽처를 생성하기 위해 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부의 영역을 채우는 것 - 채워진 영역은 상기 제 1 재구성된 구성 프레임 및 상기 제 2 재구성된 구성 프레임 사이의 경계 확장부 (boundary extension)를 형성함 -, 또는
    디코딩에 있어서 상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역 외부의 샘플 위치를 참조할 때, 상기 경계의 샘플들의 픽셀 값들을 상기 경계 확장부에 대한 상기 샘플 위치로 복사하는 것 또는 상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들의 픽셀 값들을 상기 경계 확장부로 복사하는 것을 결정하는 것인
    장치.
  12. 인코딩 방법으로서,
    제 1 압축되지 않은 구성 프레임 및 제 2 압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 단계 - 상기 인코딩은 결과적으로 디코딩시 제 1 재구성된 픽처를 또한 생성하고 상기 제 1 구성 프레임은 상기 제 1 재구성된 픽처 내에 제 1 유효 픽처 영역을 갖고 상기 제 2 구성 프레임은 상기 제 1 재구성된 픽처 내에 제 2 유효 픽처 영역을 가짐 - 와,
    상기 인코딩의 일부로서 상기 제 1 구성 프레임 및 상기 제 2 구성 프레임에 다음 중 어느 하나를 수행하는 단계를 포함하되, 상기 다음 중 어느 하나는,
    상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 상기 제 1 재구성된 픽처내에 상기 제 1 구성 프레임 및 상기 제 2 구성 프레임에 대한 경계 확장부를 형성하는 단계, 또는
    상기 경계의 샘플들의 픽셀 값들을 상기 경계 확장부에 대한 상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역 외부의 샘플 위치에 복사하는 단계, 또는
    상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들의 픽셀 값들을 상기 경계 확장부로 복사하는 단계인
    방법.
  13. 제 12 항에 있어서,
    상기 적어도 하나의 샘플 값을 수평 인트라 예측에 의해 획득하는 단계,
    상기 적어도 하나의 샘플 값을 수직 인트라 예측에 의해 획득하는 단계,
    상기 적어도 하나의 샘플 값을 상기 경계 확장부와는 반대쪽의 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 경계 영역으로부터 인트라 블록 카피 예측에 의해 획득하는 단계,
    상기 적어도 하나의 샘플 값을 상기 제 1 재구성된 픽처 및 상기 제 2 재구성된 픽처 내의 다른 구성 프레임으로부터 인트라 블록 카피 예측에 의해 획득하는 단계,
    상기 적어도 하나의 샘플 값을 디코딩 순서에서 이전 픽처로부터 인터 예측에 의해 획득하는 단계
    중 적어도 하나를 포함하는
    방법.
  14. 제 12 항에 있어서,
    구성 프레임 경계 외부의 샘플 위치가 상기 경계의 샘플들의 픽셀 값들로부터 복사되거나 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들의 픽셀 값들로부터 복사되었는지에 관한 표시를 인코딩하는 단계를 포함하는
    방법.
  15. 제 12 항, 제 13 항 또는 제 14 항에 있어서,
    상기 구성 프레임의 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 표시를 인코딩하는 단계를 포함하는
    방법.
  16. 제 12 항에 있어서,
    상기 구성 프레임이 360도 파노라마 픽처인 것으로 표시될 때 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 반대 측으로부터 카피함으로써 상기 적어도 하나의 샘플 값을 삽입하는 단계를 포함하는
    방법.
  17. 제 12 항, 제 13 항 또는 제 16 항 중 어느 한 항에 있어서,
    상기 인코딩하는 단계는, 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부의 영역을 재구성하여 중간 참조 프레임을 획득하는 단계를 포함하고,
    추가로 상기 채우는 단계는 상기 중간 참조 프레임의 상기 경계 확장부의 적어도 하나의 샘플 값을 수정하는 단계를 포함하는
    방법.
  18. 삭제
  19. 제 12 항 또는 제 14 항에 있어서,
    상기 제 1 압축되지 않은 구성 프레임 및 상기 제 2 압축되지 않은 구성 프레임을 제 2 인코딩된 픽처로 인코딩하는 단계 - 상기 제 2 인코딩된 픽처의 상기 인코딩은 디코딩 시 상기 제 1 재구성된 픽처 내의 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부의 샘플 위치를 참조하게 하는 모션 벡터를 인코딩하는 단계를 포함함 - 와,
    상기 경계의 샘플들 또는 상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들로부터 픽셀 값들을 복사하는 단계를 더 포함하는
    방법.
  20. 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 인코딩 장치로서,
    상기 적어도 하나의 메모리에는 코드가 저장되고, 상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 장치로 하여금 적어도,
    제 1 압축되지 않은 구성 프레임 및 제 2 압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하는 것 - 상기 인코딩은 결과적으로 디코딩시 제 1 재구성된 픽처를 또한 생성하고 상기 제 1 구성 프레임은 상기 제 1 재구성된 픽처 내에 제 1 유효 픽처 영역을 갖고 상기 제 2 구성 프레임은 상기 제 1 재구성된 픽처 내에 제 2 유효 픽처 영역을 가짐 - 과,
    상기 인코딩의 일부로서 상기 제 1 구성 프레임 및 상기 제 2 구성 프레임에 다음 중 어느 하나를 수행하는 것을 수행하게 하되, 상기 다음 중 어느 하나는,
    상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 상기 제 1 재구성된 픽처내에 상기 제 1 구성 프레임 및 상기 제 2 구성 프레임에 대한 경계 확장부를 형성하는 것, 또는
    상기 경계의 샘플들의 픽셀 값들을 상기 경계 확장부에 대한 상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역 외부의 샘플 위치에 복사하는 것, 또는
    상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들의 픽셀 값들을 상기 경계 확장부로 복사하는 것인
    장치.
  21. 제 20 항에 있어서,
    상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 제 13 항, 제 14 항 또는 제 16 항 중 어느 한 항에서 청구된 방법의 각 단계를 더 수행하게 하도록 구성되는
    장치.
  22. 인코딩 장치로서,
    제 1 압축되지 않은 구성 프레임 및 제 2 압축되지 않은 구성 프레임을 제 1 인코딩된 픽처로 인코딩하기 위한 수단 - 상기 인코딩은 결과적으로 제 1 재구성된 픽처를 또한 생성하고 상기 제 1 구성 프레임은 상기 제 1 재구성된 픽처 내에 제 1 유효 픽처 영역을 갖고 상기 제 2 구성 프레임은 상기 제 1 재구성된 픽처 내에 제 2 유효 픽처 영역을 가짐 - 과,
    상기 인코딩의 일부로서 상기 제 1 구성 프레임 및 상기 제 2 구성 프레임에 다음 중 어느 하나를 수행하기 위한 수단을 포함하되, 상기 다음 중 어느 하나는,
    상기 제 1 유효 픽처 영역 및 상기 제 2 유효 픽처 영역 외부에 적어도 하나의 샘플 값을 삽입하여 상기 제 1 재구성된 픽처내에 상기 제 1 구성 프레임 및 상기 제 2 구성 프레임에 대한 경계 확장부를 형성하는 것, 또는
    상기 경계의 샘플들의 픽셀 값들을 상기 경계 확장부에 대한 상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역 외부의 샘플 위치에 복사하는 것, 또는
    상기 제 1 유효 픽처 영역 또는 상기 제 2 유효 픽처 영역의 반대쪽 경계의 샘플들의 픽셀 값들을 상기 경계 확장부로 복사하는 것인
    장치.
KR1020187030567A 2016-03-24 2017-03-17 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 KR102273418B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217020305A KR102567284B1 (ko) 2016-03-24 2017-03-17 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FI20165256A FI20165256L (fi) 2016-03-24 2016-03-24 Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen
FI20165256 2016-03-24
PCT/FI2017/050180 WO2017162912A1 (en) 2016-03-24 2017-03-17 An apparatus, a method and a computer program for video coding and decoding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217020305A Division KR102567284B1 (ko) 2016-03-24 2017-03-17 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20180124972A KR20180124972A (ko) 2018-11-21
KR102273418B1 true KR102273418B1 (ko) 2021-07-06

Family

ID=59901151

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187030567A KR102273418B1 (ko) 2016-03-24 2017-03-17 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
KR1020217020305A KR102567284B1 (ko) 2016-03-24 2017-03-17 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217020305A KR102567284B1 (ko) 2016-03-24 2017-03-17 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램

Country Status (10)

Country Link
US (1) US10863182B2 (ko)
EP (1) EP3434019A4 (ko)
JP (1) JP6644903B2 (ko)
KR (2) KR102273418B1 (ko)
CN (1) CN108886620B (ko)
AU (1) AU2017236196C1 (ko)
FI (1) FI20165256L (ko)
MX (1) MX2018011085A (ko)
PH (1) PH12018502011A1 (ko)
WO (1) WO2017162912A1 (ko)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230051319A (ko) * 2016-07-08 2023-04-17 브이아이디 스케일, 인크. 지오메트리 투영을 이용한 360도 비디오 코딩
WO2018025660A1 (ja) * 2016-08-05 2018-02-08 ソニー株式会社 画像処理装置および画像処理方法
WO2018045108A1 (en) 2016-09-02 2018-03-08 Vid Scale, Inc. Method and system for signaling of 360-degree video information
EP3518534B1 (en) * 2016-09-26 2023-05-17 Sony Group Corporation Encoding device, encoding method, decoding device, decoding method, transmission device, and reception device
WO2018066980A1 (ko) 2016-10-04 2018-04-12 김기백 영상 데이터 부호화/복호화 방법 및 장치
EP3975559A1 (en) 2016-10-04 2022-03-30 B1 Institute of Image Technology, Inc. Image data encoding/decoding method and apparatus
US20190253624A1 (en) * 2017-07-17 2019-08-15 Ki Baek Kim Image data encoding/decoding method and apparatus
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
JP6922215B2 (ja) * 2016-12-27 2021-08-18 富士通株式会社 動画像符号化装置
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) * 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
KR20200005539A (ko) * 2017-04-11 2020-01-15 브이아이디 스케일, 인크. 면 연속성을 사용하는 360 도 비디오 코딩
US10467775B1 (en) * 2017-05-03 2019-11-05 Amazon Technologies, Inc. Identifying pixel locations using a transformation function
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
CN109089119B (zh) * 2017-06-13 2021-08-13 浙江大学 一种运动矢量预测的方法及设备
CN107396081B (zh) * 2017-06-19 2019-04-12 深圳市铂岩科技有限公司 针对全景视频的优化编码方法及装置
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images
EP3643062A1 (en) * 2017-07-04 2020-04-29 Huawei Technologies Co., Ltd. Decoder side intra mode derivation (dimd) tool computational complexity reduction
FR3068557A1 (fr) * 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
WO2019073113A1 (en) * 2017-10-09 2019-04-18 Nokia Technologies Oy APPARATUS, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
CN111771382B (zh) * 2018-02-26 2022-12-06 交互数字Vc控股公司 帧内预测中基于梯度的边界滤波
TWI690728B (zh) * 2018-03-02 2020-04-11 聯發科技股份有限公司 用於處理包括堆疊在具有填充的基於立方體的投影佈局中的投影面的基於投影的圖框的方法
WO2019182294A1 (ko) * 2018-03-19 2019-09-26 주식회사 케이티 비디오 신호 처리 방법 및 장치
JP7253564B2 (ja) * 2018-03-29 2023-04-06 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. パディングのためのイントラ予測モードを選択する装置
US10735778B2 (en) 2018-08-23 2020-08-04 At&T Intellectual Property I, L.P. Proxy assisted panoramic video streaming at mobile edge
TWI822863B (zh) 2018-09-27 2023-11-21 美商Vid衡器股份有限公司 360度視訊寫碼樣本導出
WO2020094061A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Multi-models for intra prediction
JP7164813B2 (ja) * 2018-11-21 2022-11-02 日本電信電話株式会社 予測装置、予測方法、及びプログラム。
CN113170122B (zh) 2018-12-01 2023-06-27 北京字节跳动网络技术有限公司 帧内预测的参数推导
AU2019391197B2 (en) 2018-12-07 2023-05-25 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
US11252434B2 (en) * 2018-12-31 2022-02-15 Tencent America LLC Method for wrap-around padding for omnidirectional media coding
CN113273206A (zh) * 2019-01-05 2021-08-17 Lg 电子株式会社 用于处理视频数据的方法和设备
US11240518B2 (en) * 2019-01-06 2022-02-01 Tencent America LLC Method and apparatus for video coding
MX2021009788A (es) * 2019-02-22 2021-09-08 Beijing Bytedance Network Tech Co Ltd Seleccion de muestra colindante para intraprediccion.
AU2020226566A1 (en) 2019-02-24 2021-08-19 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
US11127166B2 (en) * 2019-03-01 2021-09-21 Tencent America LLC Method and apparatus for enhanced patch boundary identification for point cloud compression
EP3935841A4 (en) * 2019-03-08 2023-01-04 Beijing Dajia Internet Information Technology Co., Ltd. VIDEO ENCODING TO HANDLE DIFFERENT IMAGE SIZES
GB2618718B (en) * 2019-03-20 2024-03-13 V Nova Int Ltd Low complexity enhancement video coding
CN113767631B (zh) 2019-03-24 2023-12-15 北京字节跳动网络技术有限公司 用于帧内预测的参数推导中的条件
US11252442B2 (en) * 2019-04-08 2022-02-15 Tencent America LLC Method and apparatus for video coding
CN114097228B (zh) * 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
EP3977728A4 (en) 2019-06-21 2022-08-17 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ENCODING VIDEO AND STILL IMAGES USING ADAPTIVE RESIDUAL BLOCK SHAPE RESAMPLING
EP4022901A4 (en) * 2019-08-31 2022-11-23 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ENCODING VIDEO AND STILL IMAGES USING ADAPTIVE RESIDUAL BLOCK SHAPE RESAMPLING
US11375238B2 (en) 2019-09-20 2022-06-28 Tencent America LLC Method for padding processing with sub-region partitions in video stream
CN117544773A (zh) * 2019-09-24 2024-02-09 华为技术有限公司 不允许不必要的层包括在多层视频码流中
US11589037B2 (en) * 2019-12-20 2023-02-21 Qualcomm Incorporated Motion compensation using size of reference picture
KR20220115958A (ko) * 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
WO2021134019A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Constraints on coding of layered video
WO2021134055A1 (en) 2019-12-27 2021-07-01 Bytedance Inc. Subpicture signaling in parameter sets
CN115004669A (zh) 2020-01-09 2022-09-02 字节跳动有限公司 不同sei消息的解码顺序
US11412253B2 (en) * 2020-02-24 2022-08-09 Alibaba Group Holding Limited Methods for combining decoder side motion vector refinement with wrap-around motion compensation
CN111598806B (zh) * 2020-05-15 2023-06-13 Oppo(重庆)智能科技有限公司 图像滤波方法和装置、电子设备及存储介质
CN115715466A (zh) * 2020-05-22 2023-02-24 抖音视界有限公司 子比特流提取处理中的填充符有效载荷
KR102403817B1 (ko) * 2020-11-24 2022-05-31 이화여자대학교 산학협력단 화면 내 블록 카피를 이용한 다시점 영상에서의 블록 벡터 예측 기법 및 디코더
EP4037320A1 (en) * 2021-01-29 2022-08-03 Lemon Inc. Boundary extension for video coding
WO2022174784A1 (en) * 2021-02-20 2022-08-25 Beijing Bytedance Network Technology Co., Ltd. On boundary padding motion vector clipping in image/video coding
WO2022174783A1 (en) * 2021-02-20 2022-08-25 Beijing Bytedance Network Technology Co., Ltd. On boundary padding sample filtering in image/video coding
US20230102088A1 (en) * 2021-09-29 2023-03-30 Tencent America LLC Techniques for constraint flag signaling for range extension
WO2023215108A1 (en) * 2022-05-05 2023-11-09 Dolby Laboratories Licensing Corporation Stereoscopic high dynamic range video
WO2023239147A1 (ko) * 2022-06-07 2023-12-14 현대자동차주식회사 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20240080463A1 (en) * 2022-09-02 2024-03-07 Tencent America LLC Cross component sample clipping

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060034530A1 (en) * 2004-08-13 2006-02-16 Samsung Electronics Co., Ltd. Method and device for making virtual image region for motion estimation and compensation of panorama image

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141034A (en) 1995-12-15 2000-10-31 Immersive Media Co. Immersive imaging method and apparatus
KR100285599B1 (ko) * 1998-03-14 2001-04-02 전주범 격행 부호화에서의 움직임 추정을 위한 텍스쳐 패딩 장치 및그 패딩 방법
JP3413721B2 (ja) * 1998-06-26 2003-06-09 ソニー株式会社 画像符号化方法及び装置、並びに画像復号方法及び装置
JP3413720B2 (ja) * 1998-06-26 2003-06-09 ソニー株式会社 画像符号化方法及び装置、並びに画像復号方法及び装置
WO2003021936A2 (en) * 2001-09-05 2003-03-13 Emblaze Semi Conductor Ltd Method for reducing blocking artifacts
KR100477801B1 (ko) * 2002-12-26 2005-03-22 한국전자통신연구원 3차원 영상정보 기술장치와 그 방법 및 이를 이용한 3차원영상정보 검색장치 및 그 방법
US20050008240A1 (en) * 2003-05-02 2005-01-13 Ashish Banerji Stitching of video for continuous presence multipoint video conferencing
EP1503597A3 (en) * 2003-07-28 2007-01-03 Matsushita Electric Industrial Co., Ltd. Video decoding apparatus
KR100677142B1 (ko) 2004-08-13 2007-02-02 경희대학교 산학협력단 파노라마 영상의 움직임 추정 및 보상
US7623682B2 (en) * 2004-08-13 2009-11-24 Samsung Electronics Co., Ltd. Method and device for motion estimation and compensation for panorama image
JP4703449B2 (ja) * 2006-03-23 2011-06-15 三洋電機株式会社 符号化方法
RU2008146977A (ru) * 2006-04-28 2010-06-10 НТТ ДоКоМо, Инк. (JP) Устройство прогнозирующего кодирования изображений, способ прогнозирующего кодирования изображений, программа прогнозирующего кодирования изображений, устройство прогнозирующего декодирования изображений, способ прогнозирующего декодирования изображений и программа прогнозирующего декодирования изображений
US8208563B2 (en) * 2008-04-23 2012-06-26 Qualcomm Incorporated Boundary artifact correction within video units
CN102239506B (zh) * 2008-10-02 2014-07-09 弗兰霍菲尔运输应用研究公司 中间视合成和多视点数据信号的提取
CN101394569B (zh) * 2008-10-29 2010-04-21 北京创毅视讯科技有限公司 一种avs视频解码器的容错方法、装置及芯片
US20110122950A1 (en) * 2009-11-26 2011-05-26 Ji Tianying Video decoder and method for motion compensation for out-of-boundary pixels
US9025933B2 (en) * 2010-02-12 2015-05-05 Sony Corporation Information processing device, information processing method, playback device, playback method, program and recording medium
EP2569942A1 (en) 2010-05-11 2013-03-20 Telefonaktiebolaget LM Ericsson (publ) Video signal compression coding
KR102009049B1 (ko) 2011-11-11 2019-08-08 소니 주식회사 송신 장치, 송신 방법, 수신 장치 및 수신 방법
JP5849681B2 (ja) 2011-12-16 2016-02-03 富士通株式会社 符号化装置、復号装置、符号化方法、復号方法、符号化プログラム、及び復号プログラム
WO2014078068A1 (en) * 2012-11-13 2014-05-22 Intel Corporation Content adaptive transform coding for next generation video
GB2513090B (en) * 2013-01-28 2019-12-11 Microsoft Technology Licensing Llc Conditional concealment of lost video data
KR102127281B1 (ko) * 2013-04-08 2020-06-26 지이 비디오 컴프레션, 엘엘씨 효율적인 다-시점/계층 코딩을 허용하는 코딩 개념
KR102167350B1 (ko) * 2013-07-22 2020-10-19 르네사스 일렉트로닉스 가부시키가이샤 동화상 부호화 장치 및 그 동작 방법
JP6373008B2 (ja) 2013-12-27 2018-08-15 三菱電機株式会社 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
US20150237351A1 (en) * 2014-02-18 2015-08-20 Penne Lee Techniques for inclusion of region of interest indications in compressed video data
US9591325B2 (en) * 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
US10217189B2 (en) * 2015-09-16 2019-02-26 Google Llc General spherical capture methods
KR20230051319A (ko) 2016-07-08 2023-04-17 브이아이디 스케일, 인크. 지오메트리 투영을 이용한 360도 비디오 코딩

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060034530A1 (en) * 2004-08-13 2006-02-16 Samsung Electronics Co., Ltd. Method and device for making virtual image region for motion estimation and compensation of panorama image

Also Published As

Publication number Publication date
MX2018011085A (es) 2018-11-22
AU2017236196A1 (en) 2018-08-09
KR102567284B1 (ko) 2023-08-14
JP2019513320A (ja) 2019-05-23
AU2017236196C1 (en) 2022-07-21
AU2017236196B2 (en) 2022-04-07
CN108886620B (zh) 2022-08-26
JP6644903B2 (ja) 2020-02-12
KR20180124972A (ko) 2018-11-21
EP3434019A1 (en) 2019-01-30
US20190082184A1 (en) 2019-03-14
EP3434019A4 (en) 2019-08-14
FI20165256A (fi) 2017-09-25
FI20165256L (fi) 2017-09-25
WO2017162912A1 (en) 2017-09-28
CN108886620A (zh) 2018-11-23
PH12018502011A1 (en) 2019-07-15
US10863182B2 (en) 2020-12-08
KR20210086720A (ko) 2021-07-08

Similar Documents

Publication Publication Date Title
KR102273418B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
US10979727B2 (en) Apparatus, a method and a computer program for video coding and decoding
US11800131B2 (en) Apparatus, a method and a computer program for video coding and decoding
KR101825575B1 (ko) 비디오 코딩 및 디코딩 방법 및 장치
US20190268599A1 (en) An apparatus, a method and a computer program for video coding and decoding
US20150264404A1 (en) Method and apparatus for video coding and decoding
CN111327893B (zh) 用于视频编码和解码的装置、方法和计算机程序
US20140085415A1 (en) Method and apparatus for video coding
KR20160132992A (ko) 비디오 코딩 및 디코딩 장치, 방법 및 컴퓨터 프로그램
JP2015535405A (ja) ビデオコーディングのための方法と装置
WO2017162911A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2019211522A2 (en) An apparatus, a method and a computer program for video coding and decoding

Legal Events

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