KR20230173699A - 멀티뷰 뷰 포지션 보충 향상 정보 메시지 - Google Patents

멀티뷰 뷰 포지션 보충 향상 정보 메시지 Download PDF

Info

Publication number
KR20230173699A
KR20230173699A KR1020237039703A KR20237039703A KR20230173699A KR 20230173699 A KR20230173699 A KR 20230173699A KR 1020237039703 A KR1020237039703 A KR 1020237039703A KR 20237039703 A KR20237039703 A KR 20237039703A KR 20230173699 A KR20230173699 A KR 20230173699A
Authority
KR
South Korea
Prior art keywords
view
sei message
video
value
cvs
Prior art date
Application number
KR1020237039703A
Other languages
English (en)
Inventor
병두 최
스테판 웽거
샹 리
샨 리우
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20230173699A publication Critical patent/KR20230173699A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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
    • 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/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/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

본 개시내용의 양상은 비디오 디코딩을 위한 방법, 장치, 및 비-일시적 컴퓨터-판독가능 저장 매체를 제공한다. 장치는 프로세싱 회로부를 포함한다. 프로세싱 회로부는, 비트스트림으로부터, 코딩된 비디오 시퀀스(CVS: coded video sequence)의 개개의 계층의 뷰(view)와 연관된 픽처(picture)를 디코딩할 수 있다. 프로세싱 회로부는, 제1 보충 향상 정보(SEI: supplemental enhancement information) 메시지 및 제2 SEI 메시지에 기반하여, 일 차원으로 디스플레이될 뷰의 포지션을 결정하도록 구성된다. 제1 SEI 메시지는 확장성 차원 정보(SDI: scalability dimension information)를 포함하고, 제2 SEI 메시지는 멀티뷰 뷰 포지션(MVP: multiview view position) 정보를 포함한다. 프로세싱 회로부는, 일 차원의 뷰의 포지션에 기반하여, 디코딩된 픽처를 디스플레이하도록 구성된다.

Description

멀티뷰 뷰 포지션 보충 향상 정보 메시지
본 출원은, "멀티뷰 뷰 포지션 보충 향상 정보 메시지"란 명칭으로 2022년 6월 27일자 출원된 미국 특허 출원 제17/850,581호에 대한 우선권의 이익을 주장하며, 이 특허 출원은 "코딩된 비디오 스트림을 위한 멀티뷰 뷰 포지션 SEI 메시지에 대한 기법"이란 명칭으로 2021년 6월 28일자 출원된 미국 가출원 제63/215,944호에 대한 우선권의 이익을 주장한다. 이로써, 선행 출원의 개시내용은 그 전체가 참조로 본원에 포함된다.
본 개시내용은 일반적으로, 비디오 코딩과 관련된 실시예를 설명한다.
본원에서 제공되는 배경 설명은 일반적으로, 본 개시내용의 맥락을 제시하는 것을 목적으로 한다. 이 배경기술 섹션에 설명되어 있는, 현재 지명된 발명자의 저작물의 범위에서, 이 저작물뿐만 아니라 본 출원의 출원 당시 선행 기술로서 달리 적격하지 않을 수 있는 설명의 양상은, 명시적으로도 또는 암시적으로도 본 개시내용에 대한 선행 기술로서 인정되지 않는다.
이미징 및/또는 비디오 코딩 및 디코딩은 모션 보상과 함께 인터 픽처 예측(inter-picture prediction)을 사용하여 수행될 수 있다. 미압축된 디지털 이미지 및/또는 비디오는 일련의 픽처를 포함할 수 있고, 각각의 픽처는, 예를 들어, 1920×1080 휘도(luminance) 샘플 및 연관된 색차(chrominance) 샘플의 공간 차원을 갖는다. 일련의 픽처는, 예를 들어, 초당 60개의 픽처 또는 60 Hz의 고정 또는 가변 픽처 레이트(약식으로는 프레임 레이트로 또한 알려짐)를 가질 수 있다. 미압축된 이미지 및/또는 비디오는 특정 비트 레이트(bitrate) 요건을 갖는다. 예를 들어, 샘플당 8 비트의 1080p60 4:2:0 비디오(60 Hz 프레임 레이트에서 1920×1080 휘도 샘플 해상도)는 1.5 Gbit/s에 가까운 대역폭을 요구한다. 한 시간의 이러한 비디오는 600 GBytes 초과의 저장 공간을 요구한다.
이미지 및/또는 비디오 코딩 및 디코딩의 한 가지 목적은 압축을 통해 입력 이미지 및/또는 비디오 신호의 리던던시(redundancy) 감소일 수 있다. 압축은 앞서 언급된 대역폭 및/또는 저장 공간 요건을 감소시키는 데 도움이 될 수 있고, 일부 경우에서는, 100배 이상 감소시키는 데 도움이 될 수 있다. 동일한 기법이 본 개시내용의 사상을 벗어나지 않고 유사한 방식으로 이미지 인코딩/디코딩에 적용될 수 있다. 무손실 압축과 손실 압축 둘 다뿐만 아니라 이들의 조합이 이용될 수 있다. 무손실 압축은, 오리지널 신호의 정확한 카피가 압축된 오리지널 신호로부터 재구성될 수 있는 기법을 지칭한다. 손실 압축을 사용하는 경우, 재구성된 신호가 오리지널 신호와 동일하지는 않을 수 있지만, 오리지널 신호와 재구성된 신호 간의 왜곡은 재구성된 신호가 의도된 애플리케이션에 유용하도록 충분히 작다. 비디오의 경우, 손실 압축이 널리 이용된다. 용인되는 왜곡의 양은 애플리케이션에 따라 다르며; 예를 들어, 특정 소비자 스트리밍 애플리케이션의 사용자는, 텔레비전 배포 애플리케이션의 사용자보다 더 높은 왜곡을 용인할 수 있다. 달성가능한 압축비는, 허용가능한/용인가능한 왜곡이 높을수록 더 높은 압축비가 산출될 수 있다는 것을 반영할 수 있다.
비디오 인코더 및 디코더는, 예를 들어, 모션 보상(motion compensation), 변환, 양자화(quantization), 엔트로피 코딩(entropy coding)을 포함하는 여러 광범위한 카테고리로부터의 기법을 활용할 수 있다.
비디오 코덱 기술은 인트라 코딩(intra coding)으로 알려진 기법을 포함할 수 있다. 인트라 코딩에서, 샘플 값은 이전에 재구성된 참조 픽처로부터의 샘플 또는 다른 데이터에 대한 참조 없이 표현된다. 일부 비디오 코덱에서, 픽처는 샘플 블록으로 공간적으로 세분화된다. 샘플의 모든 블록이 인트라 모드로 코딩되는 경우, 해당 픽처는 인트라 픽처일 수 있다. 인트라 픽처 및 이의 도출물, 이를 테면, 독립적 디코더 리프레시 픽처(independent decoder refresh picture)는, 디코더 상태를 재설정하는 데 사용될 수 있고, 따라서, 코딩된 비디오 비트스트림 및 비디오 세션의 제1 픽처로서, 또는 스틸 이미지(still image)로서 사용될 수 있다. 인트라 블록의 샘플은 변환에 노출될 수 있으며, 변환 계수는 엔트로피 코딩 이전에 양자화될 수 있다. 인트라 예측은 변환전 도메인(pre-transform domain)에서 샘플 값을 최소화하는 기법일 수 있다. 일부 경우에서, 변환 후 DC 값이 작을수록 그리고 AC 계수가 작을수록, 엔트로피 코딩 후 블록을 표현하기 위해, 정해진 양자화 스텝 크기(quantization step size)에서 요구되는 비트는 더 적다.
예를 들어, MPEG-2 세대 코딩 기술로부터 알려진 것과 같은 통상적 인트라 코딩은 인트라 예측을 사용하지 않는다. 그러나, 일부 더 새로운 비디오 압축 기술은, 예를 들어, 공간적으로 이웃하고 디코딩 순서에 있어 앞선 데이터 블록의 인코딩 및/또는 디코딩 동안 획득된 주변 샘플 데이터 및/또는 메타데이터로부터 시도하는 기법을 포함한다. 이러한 기법은 이후 "인트라 예측" 기법이라 칭해진다. 적어도 일부 경우에서, 인트라 예측은, 참조 픽처로부터가 아닌, 재구성 하의 현재 픽처로부터의 참조 데이터만을 사용한다는 것이 주목된다.
많은 상이한 형태의 인트라 예측이 존재할 수 있다. 이러한 기법 중 2개 이상이 정해진 비디오 코딩 기술에 사용될 수 있는 경우, 사용 중인 기법은 인트라 예측 모드로 코딩될 수 있다. 특정 경우에서, 모드는 서브모드 및/또는 파라미터를 가질 수 있고, 이는 개별적으로 코딩되거나 또는 모드 코드워드에 포함될 수 있다. 어떤 코드워드를 정해진 모드, 서브모드, 및/또는 파라미터 조합에 사용할지는, 인트라 예측을 통한 코딩 효율 이득(coding efficiency gain)에 영향을 미칠 수 있어서, 코드워드를 비트스트림으로 변환하는 데 사용되는 엔트로피 코딩 기술에도 영향을 미칠 수 있다.
특정 모드의 인트라 예측은 H.264와 함께 도입되었고, H.265에서 개량되었고, 그리고 JEM(joint exploration model), VVC(versatile video coding) 및 BMS(benchmark set)와 같은 더 새로운 코딩 기술로 추가로 개량되었다. 이미 이용가능한 샘플에 속하는 이웃 샘플 값을 사용하여 예측자 블록이 형성될 수 있다. 이웃 샘플의 샘플 값은 방향에 따라 예측기 블록에 카피된다. 사용 중인 방향에 대한 참조는 비트스트림에서 코딩될 수 있거나 또는 자체적으로 예측될 수 있다.
도 1a를 참조하면, 우측 하단에 도시된 것은, H.265의 33개의 가능한 예측기 방향(35개의 인트라 모드 중 33개의 각도 모드(angular mode)에 대응함)으로부터 알려진 9개의 예측기 방향의 서브세트이다. 화살표가 수렴하는 포인트 (101)은 예측되는 샘플을 표현한다. 화살표는 샘플이 예측되고 있는 방향을 표현한다. 예를 들어, 화살표 (102)는, 샘플 (101)이 샘플 또는 샘플들로부터, 수평으로부터 45도 각도로, 우측 상단으로 예측된다는 것을 지시한다. 유사하게, 화살표 (103)는, 샘플 (101)이 샘플 또는 샘플들로부터, 수평으로부터 22.5도 각도로, 샘플 (101)의 좌측 하단으로 예측된다는 것을 지시한다.
도 1a를 계속 참조하면, 좌측 상단에는 (굵은 파선에 의해 지시된) 4×4 샘플의 정사각형 블록(104)이 도시되어 있다. 정사각형 블록(104)은 16개의 샘플을 포함하고, 각각은 "S", Y 차원에서의 그의 포지션(예를 들어, 로우(row) 인덱스), 및 X 차원에서의 그의 포지션(예를 들어, 컬럼(column) 인덱스)로 라벨링된다. 예를 들어, 샘플 S21은 (상단으로부터) Y 차원의 두 번째 샘플이고 X 차원의 (좌측으로부터) 첫 번째 샘플이다. 유사하게, 샘플 S44는, Y 및 X 차원 둘 다에서, 블록(104)에 있는 네 번째 샘플이다. 블록이 크기가 4×4 샘플이므로, S44는 우측 하단에 있다. 유사한 넘버링 방식을 따르는 예시적 참조 샘플이 추가로 도시되어 있다. 참조 샘플은 R, 블록(104)에 대한 그의 Y 포지션(예를 들어, 로우 인덱스) 및 X 포지션(컬럼 인덱스)으로 라벨링된다. H.264 및 H.265 둘 다에서, 예측 샘플은 재구성 하의 블록에 이웃하고; 따라서 네거티브 값이 사용될 필요가 없다.
인트라 픽처 예측은, 시그널링된 예측 방향에 의해 적절하게 이웃 샘플로부터 참조 샘플 값을 카피함으로써 작동할 수 있다. 예를 들어, 코딩된 비디오 비트스트림이 이 블록에 대해 화살표 (102)와 일치하는 예측 방향을 지시하는 시그널링을 포함한다고 가정한다 ―즉, 샘플은, 예측 샘플 또는 샘플들로부터, 수평으로부터 45도 각도로 우측 상단으로 예측된다. 그런 경우, 샘플 S41, S32, S23 및 S14가 동일한 참조 샘플 R05로부터 예측된다. 그런 다음, 샘플 S44가 참조 샘플 R08로부터 예측된다.
특정 경우에, 참조 샘플을 계산하기 위해; 특히 방향을 45도로 균등하게 나눌 수 없는 경우, 다수의 참조 샘플 값이 예를 들어 보간(interpolation)을 통해 결합될 수 있다.
가능한 방향의 수는 비디오 코딩 기술의 발전됨에 따라 증가되었다. H.264(2003년)에서는, 9개의 상이한 방향이 표현될 수 있다. 이는 H.265(2013년)에서 33개까지 증가했고, 본 개시내용 출원시 JEM/VVC/BMS는 65개까지의 방향을 지원할 수 있다. 가장 가능성이 있는 방향을 식별하기 위한 실험이 수행되었으며, 엔트로피 코딩에서의 특정 기법은 가능성이 적은 방향에 대한 특정 페널티를 수용하여 적은 수의 비트로 그 가능성이 있는 방향을 표현하는 데 사용된다. 추가로, 방향 자체는 때때로, 이미 디코딩된 이웃 블록에서 사용되는 이웃 방향으로부터 예측될 수 있다.
도 1b는, 시간이 지남에 따라 증가하는 예측 방향의 수를 예시하기 위해, JEM에 따른 65개의 인트라 예측 방향을 도시하는 개략도(110)를 도시한다.
코딩된 비디오 비트스트림에서, 방향을 표현하는 인트라 예측 방향 비트의 매핑은 비디오 코딩 기술마다 상이할 수 있고; 그리고 예를 들어, 예측 방향의 간단한 직접적 매핑으로부터, 인트라 예측 모드, 코드워드, 대부분의 유망한 모드, 및 유사한 기법을 수반하는 복잡한 적응 체계에 이르기까지 다양할 수 있다. 그러나, 모든 경우에서, 통계적으로 다른 특정 방향보다 비디오 콘텐츠에서 발생할 가능성이 적은 특정 방향이 있을 수 있다. 비디오 압축의 목표는 리던던시의 감소이므로, 가능성이 적은 이러한 방향은 잘 작동하는 비디오 코딩 기술에서 가능성이 높은 방향보다 더 많은 수의 비트로 표현될 것이다.
모션 보상은, 손실 압축 기법일 수 있고, 그리고 이전에 재구성된 픽처 또는 이의 일부(참조 픽처)로부터의 샘플 데이터 블록이, 모션 벡터(이후 MV)에 의해 지시된 방향으로 공간적으로 시프트된 후, 새롭게 재구성된 픽처 또는 픽처 부분의 예측을 위해 사용되는 기법에 관련될 수 있다. 일부 경우에, 참조 픽처는 현재 재구성 하의 픽처와 동일할 수 있다. MV는 2개의 차원 X 및 Y, 또는 3개의 차원을 가질 수 있으며, 제3 차원은 사용 중인 참조 픽처의 지시이다(마지막 것은 간접적으로 시간 차원일 수 있음).
일부 비디오 압축 기법에서, 샘플 데이터의 특정 영역에 적용가능한 MV는 다른 MV, 예를 들어 재구성 하의 영역에 공간적으로 인접하고 디코딩 순서에 있어 해당 MV에 선행하는 샘플 데이터의 다른 영역과 관련된 MV로부터 예측될 수 있다. 이렇게 하면, MV를 코딩하는 데 요구되는 데이터의 양이 실질적으로 감소될 수 있고, 이로써 리던던시가 제거되고 압축이 강화된다. 예를 들어, 카메라로부터 도출되는 입력 비디오 신호(내추럴 비디오로 알려짐)를 코딩할 때, 단일 MV가 적용가능한 영역보다 더 큰 영역이 유사한 방향으로 이동할 통계적 가능성이 있기 때문에, MV 예측이 효과적으로 작동할 수 있고, 따라서, 일부 경우에, 이웃 영역의 MV로부터 도출되는 유사한 모션 벡터를 사용하여 예측될 수 있다. 이는 정해진 영역에 대해 발견되는 MV가 주변 MV로부터 예측되는 MV와 유사하거나 동일한 결과를 초래하며, 그리고 이는 결국, 엔트로피 코딩 후에, MV를 직접 코딩하는 경우 사용되는 것보다 적은 수의 비트로 표현될 수 있다. 일부 경우에서, MV 예측은 오리지널 신호(즉, 샘플 스트림)로부터 도출되는 신호(즉, MV)의 무손실 압축의 예일 수 있다. 다른 경우에서, 예를 들어, 여러 주변 MV로부터 예측기를 계산할 때 반올림 에러(rounding error) 때문에, MV 예측 자체가 손실될 수 있다.
다양한 MV 예측 메커니즘이 H.265/HEVC(ITU-T Rec.H.265, "High Efficiency Video Coding", 2016년 12월)에 기술되어 있다. H.265가 제공하는 많은 MV 예측 메커니즘 중에서, 본원에서는 이후 "공간 병합(spatial merge)"으로 지칭되는 기술이 설명된다.
도 2를 참조하면, 현재 블록(201)은, 공간적으로 시프트된 동일한 크기의 이전 블록으로부터 예측가능하도록 모션 서치 프로세스 동안 인코더에 의해 발견된 샘플을 포함한다. MV를 직접 코딩하는 대신, MV는, A0, A1 및 B0, B1, B2(각각 202 내지 206)로 표기된 5개의 주변 샘플 중 하나와 연관된 MV를 사용하여, 하나 이상의 참조 픽처와 연관된 메타데이터로부터, 예를 들어 (디코딩 순서상) 가장 최근의 참조 픽처로부터 도출될 수 있다. H.265에서, MV 예측은 이웃 블록이 사용하는 것과 동일한 참조 픽처로부터의 예측기를 사용할 수 있다.
본 개시내용의 양상은 비디오 인코딩 및 디코딩을 위한 방법 및 장치를 제공한다. 일부 예에서, 비디오 디코딩을 위한 장치는 프로세싱 회로부(processing circuitry)를 포함한다. 프로세싱 회로부는, 비트스트림으로부터, 코딩된 비디오 시퀀스(CVS: coded video sequence)의 개개의 계층의 뷰(view)와 연관된 픽처를 디코딩하도록 구성된다. 프로세싱 회로부는, 제1 보충 향상 정보(SEI: supplemental enhancement information) 메시지 및 제2 SEI 메시지에 기반하여, 일 차원으로 디스플레이될 뷰의 포지션을 결정할 수 있다. 제1 SEI 메시지는 확장성 차원 정보(SDI: scalability dimension information)를 포함하고, 제2 SEI 메시지는 멀티뷰 뷰 포지션(MVP: multiview view position) 정보를 포함한다. 프로세싱 회로부는, 일 차원의 뷰의 포지션에 기반하여, 디코딩된 픽처를 디스플레이할 수 있다.
일 실시예에서, CVS의 개개의 계층의 뷰 각각에 대해, 프로세싱 회로부는, 제1 SEI 메시지에 기반하여, 개개의 뷰의 뷰 식별자를 결정할 수 있다. 프로세싱 회로부는, 제2 SEI 메시지 내의 뷰 포지션 변수 및 결정된 뷰 식별자에 기반하여, 일 차원으로 디스플레이될 개개의 뷰의 포지션을 결정할 수 있다.
일 실시예에서, 프로세싱 회로부는, 제1 SEI 메시지로부터 뷰의 수(number of the view)를 지시하는 제1 값을 도출한다. 프로세싱 회로부는, 제2 SEI 메시지로부터 뷰의 수와 연관된 제2 값을 획득할 수 있다. 제2 값은 제1 값과 상이하다. 프로세싱 회로부는, 적합성 체크에서, 1 +(plus) 제2 값을 제1 값과 비교할 수 있다.
일 실시예에서, 제2 SEI 메시지는 CVS의 인트라 랜덤 액세스 포인트(IRAP: intra random access point) 액세스 유닛과 연관된다.
일 실시예에서, 뷰의 포지션은 CVS의 액세스 유닛에 적용된다.
일 예에서, 제2 SEI 메시지는, 제1 SEI 메시지가 CVS에 포함되는 것에 기반하여, CVS에 포함된다. 결정하는 것 및 디스플레이하는 것은, 제1 SEI 메시지 및 제2 SEI 메시지가 CVS에 포함되는 것에 기반하여 수행된다.
일 실시예에서, CVS는 3D 참조 디스플레이 정보를 포함하는 제3 SEI 메시지를 포함한다. 3D 참조 디스플레이 정보는 좌측 뷰의 뷰 식별자, 우측 뷰의 뷰 식별자, 및 참조 디스플레이의 참조 디스플레이 폭을 지시한다. 프로세싱 회로부는, 제1 SEI 메시지로부터 뷰의 수를 지시하는 제1 값을 도출할 수 있다. 프로세싱 회로부는, 제3 SEI 메시지로부터 뷰의 수와 연관된 제3 값을 획득할 수 있다. 제3 값은 제1 값과 상이하다. 프로세싱 회로부는, 적합성 체크에서, 1 + 제3 값을 제1 값과 비교할 수 있다.
일 예에서, 제3 SEI 메시지는 제3 SEI 메시지에서 시그널링되는 참조 디스플레이의 수를 지시한다. 참조 디스플레이 수의 최대 값은 제3 SEI 메시지에서의 뷰의 수와 연관된 제3 값에 기반한다.
일 예에서, 제1 SEI 메시지는 SDI SEI 메시지이고, 제2 SEI 메시지는 MVP SEI 메시지이다.
본 개시내용의 양상은 또한, 비디오 디코딩을 위한 방법을 수행하기 위해 적어도 하나의 프로세서에 의해 실행가능한 프로그램을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체를 제공한다.
개시된 청구대상의 추가 특징, 속성, 및 다양한 이점은 다음의 상세한 설명 및 첨부 도면으로부터 더 명백해질 것이다.
도 1a는 인트라 예측 모드의 예시적인 서브세트의 개략적 예시이다.
도 1b는 예시적인 인트라 예측 방향의 예시이다.
도 2는 일 실시예에 따른 현재 블록(201) 및 주변 샘플을 도시한다.
도 3은 일 실시예에 따른 통신 시스템(300)의 단순화된 블록 다이어그램의 개략적 예시이다.
도 4는 일 실시예에 따른 통신 시스템(400)의 단순화된 블록 다이어그램의 개략적 예시이다.
도 5는 일 실시예에 따른 디코더의 단순화된 블록 다이어그램의 개략적 예시이다.
도 6은 일 실시예에 따른 인코더의 단순화된 블록 다이어그램의 개략적 예시이다.
도 7은 다른 실시예에 따른 인코더의 블록 다이어그램을 도시한다.
도 8은 다른 실시예에 따른 디코더의 블록 다이어그램을 도시한다.
도 9는 본 개시내용의 일 실시예에 따른 자동-입체(auto-stereoscopic) 디스플레이의 다이어그램을 도시한다.
도 10a는 본 개시내용의 일 실시예에 따른 멀티뷰 뷰 포지션에 기반하여 픽처를 재정렬하는 예를 도시한다.
도 10b 내지 도 10c는 본 개시내용의 일 실시예에 따른 멀티뷰 뷰 포지션에 기반하여 픽처를 재정렬하는 예를 도시한다.
도 11은 본 개시내용의 실시예에 따른 멀티뷰 비디오에 대한 뷰 포지션을 지시하기 위한 보충 향상 정보(SEI: supplemental enhancement information) 메시지의 구문(syntax) 예를 도시한다.
도 12는 본 개시내용의 일 실시예에 따른 3D 참조 디스플레이 정보를 지시하기 위한 SEI 메시지의 구문 예를 도시한다.
도 13은 본 발명의 실시예에 따른 인코딩 프로세스를 약술하는 흐름도를 도시한다.
도 14는 본 개시내용의 일 실시예에 따른 디코딩 프로세스를 약술하는 흐름도를 도시한다.
도 15는 일 실시예에 따른 컴퓨터 시스템의 개략적 예시이다.
도 3은 본 개시내용의 일 실시예에 따른 통신 시스템(300)의 단순화된 블록 다이어그램을 예시한다. 통신 시스템(300)은, 예를 들어, 네트워크(350)를 통해 서로 통신할 수 있는 복수의 단말 디바이스를 포함한다. 예를 들어, 통신 시스템(300)은 네트워크(350)를 통해 상호연결되는 제1 쌍의 단말 디바이스(310 및 320)를 포함한다. 도 3의 예에서, 제1 쌍의 단말 디바이스(310 및 320)는 데이터의 단방향 전송(unidirectional transmission)을 수행한다. 예를 들어, 단말 디바이스(310)는, 네트워크(350)를 통한 다른 단말 디바이스(320)로의 전송을 위해 비디오 데이터(예를 들어, 단말 디바이스(310)에 의해 캡처되는 비디오 픽처의 스트림)를 코딩할 수 있다. 인코딩된 비디오 데이터는 하나 이상의 코딩된 비디오 비트스트림의 형태로 전송될 수 있다. 단말 디바이스(320)는, 네트워크(350)로부터, 코딩된 비디오 데이터를 수신하고, 코딩된 비디오 데이터를 디코딩하여 비디오 픽처를 복원하고, 그리고 복원된 비디오 데이터에 따라 비디오 픽처를 디스플레이할 수 있다. 단방향 데이터 전송은 미디어 서빙 애플리케이션 등에서 일반적일 수 있다.
다른 예에서, 통신 시스템(300)은, 예를 들어, 화상 회의 동안, 코딩된 비디오 데이터의 양방향 전송을 수행하는 제2 쌍의 단말 디바이스(330 및 340)를 포함한다. 데이터의 양방향 전송의 경우, 일 예에서, 단말 디바이스(330 및 340)의 각각의 단말 디바이스는, 네트워크(350)를 통한 단말 디바이스(330 및 340) 중 다른 단말 디바이스로의 전송을 위해 비디오 데이터(예를 들어, 단말 디바이스에 의해 캡처되는 비디오 픽처의 스트림)를 코딩할 수 있다. 단말 디바이스(330 및 340)의 각각의 단말 디바이스는 또한, 단말 디바이스(330 및 340) 중 다른 단말 디바이스에 의해 전송되는 코딩된 비디오 데이터를 수신할 수 있고, 그리고 코딩된 비디오 데이터를 디코딩하여 비디오 픽처를 복원할 수 있고, 그리고 복원된 비디오 데이터에 따라, 액세스가능한 디스플레이 디바이스에 비디오 픽처를 디스플레이할 수 있다.
도 3의 예에서, 단말 디바이스(310, 320, 330 및 340)는 서버, 개인용 컴퓨터 및 스마트폰으로 예시되어 있으나, 본 개시내용의 원리가 이로 제한되지 않을 수 있다. 본 개시내용의 실시예는 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어, 및/또는 전용 화상 회의 장비를 이용하는 애플리케이션에 맞는다. 네트워크(350)는, 예를 들어, 유선(유선형(wired)) 및/또는 무선 통신 네트워크를 비롯하여, 단말 디바이스(310, 320, 330 및 340) 사이에서 코딩된 비디오 데이터를 전달하는 임의의 수의 네트워크를 표현한다. 통신 네트워크(350)는 회선-교환 및/또는 패킷-교환 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크는 전기통신 네트워크(telecommunications network), 근거리 네트워크, 광역 네트워크 및/또는 인터넷을 포함한다. 본 논의의 목적을 위해, 네트워크(350)의 아키텍처 및 토폴로지는, 하기 본원에서 설명되지 않는 한 본 개시내용의 동작에 중요하지 않을 수 있다.
도 4는, 개시되는 청구대상에 대한 애플리케이션에 대한 예로서, 스트리밍 환경에서의 비디오 인코더 및 비디오 디코더의 배치를 예시한다. 개시되는 청구대상은, 예를 들어, CD, DVD, 메모리 스틱(memory stick) 등을 포함하는 디지털 미디어에 압축된 비디오를 저장하는 것, 디지털 TV, 화상 회의 등을 비롯한 다른 비디오 인에이블 애플리케이션(video enabled application)에 동일하게 적용될 수 있다.
스트리밍 시스템은 캡처 서브시스템(413)을 포함할 수 있고, 이는 예를 들어, 비디오 소스(401), 예를 들어 비압축된 비디오 픽처(402)의 스트림을 생성하는 디지털 카메라를 포함할 수 있다. 일 예에서, 비디오 픽처의 스트림(402)은 디지털 카메라에 의해 촬영된 샘플을 포함한다. 인코딩된 비디오 데이터(404)(또는 코딩된 비디오 비트스트림)와 비교할 때 높은 데이터 볼륨을 강조하기 위해 굵은 선으로 도시된 비디오 픽처의 스트림(402)은, 비디오 소스(401)에 커플링된 비디오 인코더(403)를 포함하는 전자 디바이스(420)에 의해 프로세싱될 수 있다. 비디오 인코더(403)는, 아래에서 더 상세히 설명되는 바와 같이, 개시되는 청구대상의 양상을 가능하게 하거나 또는 구현하기 위해, 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 비디오 픽처의 스트림(402)과 비교할 때 낮은 데이터 볼륨을 강조하기 위해 얇은 선으로 도시된 인코딩된 비디오 데이터(404)(또는 인코딩된 비디오 비트스트림)는 향후 사용을 위해 스트리밍 서버(405)에 저장될 수 있다. 도 4에서의 클라이언트 서브시스템(406 및 408)과 같은 하나 이상의 스트리밍 클라이언트 서브시스템은, 인코딩된 비디오 데이터(404)의 카피(407 및 409)를 검색(retrieve)하기 위해 스트리밍 서버(405)에 액세스할 수 있다. 클라이언트 서브시스템(406)은, 예를 들어, 전자 디바이스(430)에 비디오 디코더(410)를 포함할 수 있다. 비디오 디코더(410)는, 인코딩된 비디오 데이터의 인입 카피(incoming copy)(407)를 디코딩하고, 그리고 디스플레이(412)(예를 들어, 디스플레이 스크린) 또는 다른 렌더링 디바이스(미도시) 상에 렌더링될 수 있는 비디오 픽처의 인출 스트림(outgoing stream)(411)을 생성한다. 일부 스트리밍 시스템에서, 인코딩된 비디오 데이터(404, 407 및 409)(예를 들어, 비디오 비트스트림)은 특정 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 이러한 표준의 예는 ITU-T Recommendation H.265를 포함한다. 일 예에서, 개발 중인 비디오 코딩 표준은 약식으로 VVC(Versatile Video Coding)로 알려져 있다. 개시되는 청구대상은 VVC의 맥락에서 사용될 수 있다.
전자 디바이스(420 및 430)가 다른 컴포넌트(미도시)를 포함할 수 있다는 것이 주목된다. 예를 들어, 전자 디바이스(420)가 비디오 디코더(미도시)를 포함할 수 있고, 그리고 전자 디바이스(430)도 마찬가지로 비디오 인코더(미도시)를 포함할 수 있다.
도 5는 본 개시내용의 일 실시예에 따른 비디오 디코더(510)의 블록 다이어그램을 도시한다. 비디오 디코더(510)는 전자 디바이스(530)에 포함될 수 있다. 전자 디바이스(530)는 수신기(531)(예를 들어, 수신 회로부)를 포함할 수 있다. 비디오 디코더(510)는 도 4 예에서의 비디오 디코더(410) 대신에 사용될 수 있다.
수신기(531)는 비디오 디코더(510)에 의해 디코딩될 하나 이상의 코딩된 시퀀스를 수신할 수 있고; 동일한 또는 다른 실시예에서는, 한 번에 하나의 코딩된 비디오 시퀀스를 수신할 수 있고, 여기서, 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스와 독립적이다. 코딩된 비디오 시퀀스는, 인코딩된 비디오 데이터를 저장하는 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(501)로부터 수신될 수 있다. 수신기(531)는, 다른 데이터와 함께, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 함께, 인코딩된 비디오 데이터를 수신할 수 있으며, 이는 그 개개의 사용 엔티티(미도시)에 포워딩될 수 있다. 수신기(531)는 코딩된 비디오 시퀀스를 다른 데이터로부터 분리할 수 있다. 네트워크 지터(network jitter)를 방지하기 위해, 버퍼 메모리(515)가 수신기(531)와 엔트로피 디코더/파서(520)(이하 "파서(520)") 사이에 커플링될 수 있다. 특정 애플리케이션에서, 버퍼 메모리(515)는 비디오 디코더(510)의 일부이다. 다른 애플리케이션에서, 이는 비디오 디코더(510) 외부에 있을 수 있다(미도시). 또 다른 애플리케이션에서, 예를 들어, 네트워크 지터를 방지하기 위해, 비디오 디코더(510) 외부에 버퍼 메모리(미도시)가 있을 수 있고, 그리고 예를 들어, 재생 타이밍을 다루기 위해, 비디오 디코더(510) 내부에 추가의 다른 버퍼 메모리(515)가 있을 수 있다. 수신기(531)가, 충분한 대역폭 및 제어성(controllability)의 저장/포워드 디바이스로부터, 또는 등시성 네트워크(isosynchronous network)로부터 데이터를 수신하고 있을 때, 버퍼 메모리(515)는 필요하지 않을 수 있거나, 또는 작을 수 있다. 인터넷과 같은 최선 노력 패킷 네트워크(best effort packet network)에서 사용하기 위해, 버퍼 메모리(515)가 요구될 수 있고, 비교적 클 수 있고 그리고 유리하게는 적응형 크기일 수 있고, 그리고 적어도 부분적으로 비디오 디코더(510) 외부의 운영 시스템 또는 유사한 엘리먼트(미도시)에서 구현될 수 있다.
비디오 디코더(510)는 코딩된 비디오 시퀀스로부터의 심볼(521)을 재구성하기 위해 파서(520)를 포함할 수 있다. 이러한 심볼의 카테고리는, 도 5에 도시된 바와 같이, 비디오 디코더(510)의 동작을 관리하는 데 사용되는 정보, 및 잠재적으로, 전자 디바이스(530)의 일체형 부분이 아니지만, 전자 디바이스(530)에 커플링될 수 있는 렌더 디바이스(512)(예를 들어, 디스플레이 스크린)와 같은 렌더링 디바이스를 제어하기 위한 정보를 포함한다. 렌더링 디바이스(들)에 대한 제어 정보는 SEI(Supplemental Enhancement Information) 메시지 또는 VUI(Video Usability Information) 파라미터 세트 프래그먼트(미도시)의 형태일 수 있다. 파서(520)는 수신되는 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은, 비디오 코딩 기술 또는 표준을 따를 수 있고, 그리고 가변 길이 코딩, 허프만(Huffman) 코딩, 맥락 민감도(context sensitivity)가 있거나 없는 산술 코딩 등을 포함하는 다양한 원리를 따를 수 있다. 파서(520)는, 그룹에 대응하는 적어도 하나의 파라미터에 기반하여, 비디오 디코더의 픽셀의 서브그룹 중 적어도 하나에 대한 한 세트의 서브그룹 파라미터를 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브그룹은, GOP(Group of Picture), 픽처, 타일(tile), 슬라이스, 매크로블록, CU(Coding Unit), 블록, TU(Transform Unit), PU(Prediction Unit) 등을 포함할 수 있다. 파서(520)는 또한, 변환 계수, 양자화기 파라미터(quantizer parameter) 값, 모션 벡터 등과 같은 정보를, 코딩된 비디오 시퀀스로부터 추출할 수 있다
파서(520)는 버퍼 메모리(515)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행하여 심볼(521)을 생성할 수 있다.
심볼(521)의 재구성은 코딩된 비디오 픽처 또는 이의 일부의 타입(이를테면, 인터 및 인트라 픽처, 인터 및 인트라 블록) 및 다른 팩터에 의존하여 다수의 상이한 유닛을 수반할 수 있다. 코딩된 비디오 시퀀스로부터 파서(520)에 의해 파싱된 서브그룹 제어 정보에 의해 어떤 유닛이 수반되는지 그리고 어떻게 수반되는지가 제어될 수 있다. 파서(520)와 아래의 다수의 유닛 간의 이러한 서브그룹 제어 정보의 흐름은 명확성을 위해 도시되지 않는다.
이미 언급된 기능 블록 이외에, 비디오 디코더(510)는 아래에서 설명되는 바와 같이 개념적으로 다수의 기능 유닛으로 세분화될 수 있다. 상업적 제약 하에서 동작하는 실제 구현에서, 이러한 유닛 중 다수는 서로 밀접하게 상호작용하며, 적어도 부분적으로는 서로 통합될 수 있다. 그러나, 개시되는 청구대상을 설명하는 목적을 위해서는, 아래의 기능 유닛으로의 개념적 세분화가 적절하다.
제1 유닛은 스케일러(scaler)/역변환(inverse transform) 유닛(551)이다. 스케일러/역변환 유닛(551)은, 파서(520)로부터 심볼(들)(521)로서, 사용할 변환, 블록 크기, 양자화 팩터, 양자화 스케일링 행렬 등을 비롯한 제어 정보뿐만 아니라 양자화된 변환 계수를 수신한다. 스케일러/역변환 유닛(551)은 어그리게이터(aggregator)(555)에 입력될 수 있는 샘플 값을 포함하는 블록을 출력할 수 있다.
일부 경우에서, 스케일러/역변환 유닛(551)의 출력 샘플은 인트라 코딩된 블록; 즉, 이전에 재구성된 픽처로부터의 예측 정보는 사용하지 않지만 현재 픽처의 이전에 재구성된 부분으로부터의 예측 정보는 사용할 수 있는 블록에 관련될 수 있다. 이러한 예측 정보는 인트라 픽처 예측 유닛(552)에 의해 제공될 수 있다. 일부 경우에서, 인트라 픽처 예측 유닛(552)은, 현재 픽처 버퍼(558)로부터 페칭된(fetched) 이미 재구성된 주변 정보를 사용하여, 재구성 하의 블록과 동일한 크기 및 형상의 블록을 생성한다. 현재 픽처 버퍼(558)는, 예를 들어, 부분적으로 재구성된 현재 픽처 및/또는 완전히 재구성된 현재 픽처를 버퍼링한다. 일부 경우에서, 어그리게이터(555)는, 인트라 예측 유닛(552)이 생성한 예측 정보를, 샘플 단위로, 스케일러/역변환 유닛(551)에 의해 제공되는 출력 샘플 정보에 추가한다.
다른 경우에서, 스케일러/역변환 유닛(551)의 출력 샘플은, 인터 코딩되며 잠재적으로 모션 보상된 블록에 관련될 수 있다. 그러한 경우에, 모션 보상 예측 유닛(553)은 예측에 사용되는 샘플을 페칭하기 위해 참조 픽처 메모리(557)에 액세스할 수 있다. 페칭된 샘플을 블록과 관련된 심볼(521)에 따라 모션 보상한 후, 이러한 샘플은, 출력 샘플 정보를 생성하기 위해, 어그리게이터(555)에 의해 스케일러/역변환 유닛 (551)의 출력에 추가될 수 있다(이 경우, 잔차 샘플 또는 잔차 신호로 불림). 모션 보상 예측 유닛(553)이 예측 샘플을 페칭하는 참조 픽처 메모리(557) 내의 어드레스는, 예를 들어, X, Y 및 참조 픽처 컴포넌트를 가질 수 있는 심볼(521)의 형태로 모션 보상 예측 유닛(553)이 이용가능한 모션 벡터에 의해 제어될 수 있다. 모션 보상은 또한, 서브-샘플 일치 모션 벡터(sub-sample exact motion vector)가 사용 중일 때, 참조 픽처 메모리(557)로부터 페칭된 샘플 값의 보간, 모션 벡터 예측 메커니즘 등을 포함할 수 있다.
어그리게이터(555)의 출력 샘플은 루프 필터 유닛(556)에서 다양한 루프 필터링 기법으로 처리될 수 있다. 비디오 압축 기술은 인-루프 필터 기술을 포함할 수 있으며, 이 기술은, 코딩된 비디오 시퀀스(또한, 코딩된 비디오 비트스트림으로 지칭됨)에 포함된 파라미터에 의해 제어되고 그리고 파서(520)로부터의 심볼(521)로서 루프 필터 유닛(556)이 이용가능할 수 있지만, 또한, 코딩된 픽처 또는 코딩된 비디오 시퀀스의 이전(디코딩 순서상) 부분을 디코딩하는 동안 획득되는 메타 정보에 응답할 수 있을 뿐만 아니라 이전에 재구성되고 루프-필터링된 샘플 값에 응답할 수 있다.
루프 필터 유닛(556)의 출력은, 렌더 디바이스(512)에 출력될 수 있을뿐만 아니라 향후 인터 픽처 예측에 사용하기 위해 참조 픽처 메모리(557)에 저장될 수 있는 샘플 스트림일 수 있다.
특정 코딩된 픽처는, 일단 완전히 재구성되면, 향후 예측을 위한 참조 픽처로서 사용될 수 있다. 예를 들어, 일단 현재 픽처에 대응하는 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가 참조 픽처로서 (예를 들어, 파서(520)에 의해) 식별되었다면, 현재 픽처 버퍼(558)는 참조 픽처 메모리(557)의 일부가 될 수 있고, 그리고 새로운(fresh) 현재 픽처 버퍼가 다음의 코딩된 픽처의 재구성을 개시하기 전에 재할당될 수 있다.
비디오 디코더(510)는 ITU-T Rec.H.265와 같은 표준에서의 미리 결정된 비디오 압축 기술에 따라 디코딩 동작을 수행할 수 있다. 코딩된 비디오 시퀀스는, 코딩된 비디오 시퀀스가 비디오 압축 기술 또는 표준의 구문 및 비디오 압축 기술 또는 표준에 문서화된 프로파일 둘 다를 준수한다는 점에서, 사용되는 비디오 압축 기술 또는 표준에 의해 특정된 구문을 따를 수 있다. 특히, 프로파일은, 비디오 압축 기술 또는 표준에서 이용가능한 모든 툴(tool)로부터, 해당 프로파일 하에 이용가능한 유일한 툴구로서의 특정 툴을 선택할 수 있다. 또한, 규정 준수(compliance)에 필요한 것은, 코딩된 비디오 시퀀스의 복잡성이 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 범위 내에 있다는 것일 수 있다. 일부 경우에서, 레벨은 최대 픽처 크기, 최대 프레임 레이트, 최대 재구성 샘플 레이트(예를 들어, 초당 메가샘플로 측정됨), 최대 참조 픽처 크기 등을 제한한다. 일부 경우에서, 레벨에 의해 설정된 제한은, 코딩된 비디오 시퀀스로 시그널링되는, HRD(Hypothetical Reference Decoder) 버퍼 관리를 위한 메타데이터 및 HRD 사양을 통해 추가로 제약될 수 있다.
일 실시예에서, 수신기(531)는 인코딩된 비디오와 함께 추가적인(리던던트) 데이터를 수신할 수 있다. 추가적인 데이터는 코딩된 비디오 시퀀스(들)의 일부로서 포함될 수 있다. 추가적인 데이터는, 데이터를 적절하게 디코딩하기 위해 그리고/또는 오리지널 비디오 데이터를 보다 정확하게 재구성하기 위해 비디오 디코더(510)에 의해 사용될 수 있다. 추가 데이터는, 예를 들어, 시간적, 공간적 또는 SNR(signal noise ratio) 향상 계층, 리던던트 슬라이스, 리던던트 픽처, 순방향 에러 정정 코드 등의 형태일 수 있다.
도 6은 본 개시내용의 일 실시예에 따른 비디오 인코더(603)의 블록 다이어그램을 도시한다. 비디오 인코더(603)는 전자 디바이스(620)에 포함된다. 전자 디바이스(620)는 전송기(640)(예를 들어, 전송 회로부)를 포함한다. 비디오 인코더(603)는 도 4의 예에서의 비디오 인코더(403) 대신 사용될 수 있다.
비디오 인코더(603)는, 비디오 인코더(603)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(601)(도 6의 예에서는 전자 디바이스(620)의 일부가 아님)로부터 비디오 샘플을 수신할 수 있다. 다른 예에서, 비디오 소스(601)는 전자 디바이스(620)의 일부이다.
비디오 소스(601)는, 임의의 적절한 비트 깊이(예를 들어, 8 비트, 10 비트, 12 비트,..), 임의의 컬러 공간(예를 들어, BT.601 Y CrCB, RGB,…), 및 임의의 적절한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림 형태의, 비디오 인코더(603)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서, 비디오 소스(601)는 이전에 준비된 비디오를 저장하는 저장 디바이스일 수 있다. 화상 회의 시스템에서, 비디오 소스(601)는 로컬 이미지 정보를 비디오 시퀀스로서 캡처하는 카메라일 수 있다. 비디오 데이터는, 순서대로 볼 때 모션을 부여하는 복수의 개별 픽처로서 제공될 수 있다. 픽처 자체는 픽셀의 공간적 어레이로서 편성될 수 있으며, 여기서 각각의 픽셀은 사용 중인 샘플링 구조, 컬러 공간 등에 의존하여 하나 이상의 샘플을 포함할 수 있다. 당업자는 픽셀과 샘플 간의 관계를 쉽게 이해할 수 있다. 아래 설명은 샘플에 중점을 둔다.
일 실시예에 따라, 비디오 인코더(603)는, 소스 비디오 시퀀스의 픽처를, 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약 하에, 코딩된 비디오 시퀀스(643)로 코딩하고 압축할 수 있다. 적절한 코딩 속도를 강행하는 것은 제어기(650)의 하나의 기능이다. 일부 실시예에서, 제어기(650)는 아래에서 설명되는 바와 같이 다른 기능 유닛을 제어하고 그리고 다른 기능 유닛에 기능적으로 커플링된다. 명확성을 위해 커플링은 도시되지 않는다. 제어기(650)에 의해 설정되는 파라미터는, 레이트 제어 관련 파라미터(픽처 스킵, 양자화기, 레이트 왜곡 최적화 기법의 람다 값,..), 픽처 크기, GOP(group of picture) 레이아웃, 최대 모션 벡터 서치 범위 등을 포함할 수 있다. 제어기(650)는 특정 시스템 설계에 최적화된 비디오 인코더(603)에 관련 있는 다른 적절한 기능을 갖도록 구성될 수 있다.
일부 실시예에서, 비디오 인코더(603)는 코딩 루프에서 동작하도록 구성될 수 있다. 과도하게 단순화된 설명으로서, 일 예에서, 코딩 루프는 비디오 인코더(603)에 내장된 (로컬) 디코더(633), 및 소스 코더(630)(예를 들어, 코딩될 입력 픽처에 기반하여, 심볼 스트림과 같은 심볼을, 그리고 참조 픽처(들)의 생성을 담당)를 포함할 수 있다. (개시된 청구대상에서 고려되는 비디오 압축 기술에서는 심볼과 코딩된 비디오 비트스트림 사이의 임의의 압축이 무손실이기 때문에) 디코더(633)는 (원격) 디코더가 생성하는 것과 유사한 방식으로 샘플 데이터를 생성하기 위해 심볼을 재구성할 수 있다. 재구성된 샘플 스트림(샘플 데이터)은 참조 픽처 메모리(634)에 입력된다. 심볼 스트림의 디코딩은 디코더 위치(로컬 또는 원격)와 무관하게 정확한 비트 결과(bit-exact result)로 이어지므로, 참조 픽처 메모리(634)의 콘텐츠는 로컬 인코더와 원격 인코더 사이에서 또한 비트가 정확하다(bit exact). 즉, 인코더의 예측 부분은, 디코딩 동안 예측을 사용할 때 디코더가 "보는" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플로서 "본다". 참조 픽처 동시성(reference picture synchronicity)의 이러한 기본 원리(그리고, 예를 들어, 채널 에러로 인해, 동시성이 유지될 수 없는 경우, 결과적인 드리프트)는 일부 관련 분야에서 마찬가지로 사용된다.
"로컬" 디코더(633)의 동작은, 비디오 디코더(510)와 같은, "원격" 디코더의 동작과 동일할 수 있으며, 이는 도 5과 관련하여 위에서 이미 상세히 설명되었다. 그러나, 도 5를 잠시 다시 또한 참조하면, 심볼이 이용가능하고 엔트로피 코더(645) 및 파서(520)에 의해 코딩된 비디오 시퀀스에 대한 심볼의 인코딩/디코딩이 무손실일 수 있으므로, 버퍼 메모리(515) 및 파서(520)를 포함하는 비디오 디코더(510)의 엔트로피 디코딩 부분은 인코더의 로컬 디코더(633)에서 완전히 구현되지 않을 수 있다.
일 실시예에서, 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 디코더 기술은 동일한 또는 실질적으로 동일한 기능적 형태로 해당 인코더에 존재한다. 이에 따라, 개시되는 청구대상은 디코더 동작에 중점을 둔다. 인코더 기술의 설명은 포괄적으로 설명되는 디코더 기술의 역(inverse)이므로 생략될 수 있다. 특정 분야에서는, 더 상세한 설명이 아래에 제공된다.
동작 동안, 일부 예에서, 소스 코더(630)는, "참조 픽처"로 지정된, 비디오 시퀀스로부터의 하나 이상의 이전에 코딩된 픽처를 참조하여 입력 픽처를 예측적으로 코딩하는 모션 보상된 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(632)은, 입력 픽처에 대한 예측 참조(들)로서 선택될 수 있는 참조 픽처(들)의 픽셀 블록과 입력 픽처의 픽셀 블록 간의 차이를 코딩한다.
로컬 비디오 디코더(633)는, 소스 코더(630)에 의해 생성된 심볼에 기반하여, 참조 픽처로서 지정될 수 있는 픽처의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(632)의 동작은 유리하게 손실 프로세스일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 6에서는 미도시)에서 디코딩될 수 있는 경우, 재구성된 비디오 시퀀스는 통상적으로, 약간의 에러가 있는 소스 비디오 시퀀스의 복제본(replica)일 수 있다. 로컬 비디오 디코더(633)는, 참조 픽처에 대해 비디오 디코더에 의해 수행될 수 있고 그리고 재구성된 참조 픽처로 하여금, 참조 픽처 메모리(634)에 저장되게 할 수 있는 디코딩 프로세스를 복제한다. 이러한 방식으로, 비디오 인코더(603)는, (전송 에러 없이) 원단(far-end) 비디오 디코더에 의해 획득될 재구성된 참조 픽처로서 공통 콘텐츠를 갖는 재구성된 참조 픽처의 카피를 국부적으로 저장할 수 있다.
예측기(635)는 코딩 엔진(632)에 대한 예측 서치를 수행할 수 있다. 즉, 코딩될 새로운 픽처에 대해, 예측기(635)는, 새로운 픽처에 대한 적절한 예측 참조로서의 역할을 할 수 있는, 참조 픽처 모션 벡터, 블록 형상 등과 같은 특정 메타데이터 또는 (후보 참조 픽셀 블록으로서의) 샘플 데이터에 대해 참조 픽처 메모리(634)를 서치할 수 있다. 예측기(635)는 적절한 예측 참조를 찾기 위해 샘플 블록-픽셀 블록 단위(sample block-by-pixel block basis)로 동작할 수 있다. 일부 경우에서, 예측기(635)에 의해 획득되는 서치 결과에 의해 결정된 바와 같이, 입력 픽처는 참조 픽처 메모리(634)에 저장된 다수의 참조 픽처로부터 도출되는 예측 참조를 가질 수 있다.
제어기(650)는, 예를 들어, 비디오 데이터를 인코딩하기 위해 사용되는 서브그룹 파라미터 및 파라미터의 설정을 비롯한, 소스 코더(630)의 코딩 동작을 관리할 수 있다.
앞서 언급된 모든 기능 유닛의 출력은 엔트로피 코더(645)에서 엔트로피 코딩 처리될 수 있다. 엔트로피 코더(645)는, 허프만 코딩, 가변 길이 코딩, 산술 코딩 등과 같은 기술에 따라 심볼에 대한 무손실 압축을 적용함으로써, 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 변환한다.
전송기(640)는 엔트로피 코더(645)에 의해 생성된 코딩된 비디오 시퀀스(들)를 버퍼링하여, 통신 채널(660)을 통한 전송에 준비할 수 있으며, 이 통신 채널(660)은 인코딩된 비디오 데이터를 저장할 수 있는 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있다. 전송기(640)는 비디오 인코더에(603)로부터의 코딩된 비디오 데이터를 전송될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림(소스는 도시되지 않음)과 병합할 수 있다.
제어기(650)는 비디오 인코더(603)의 동작을 관리할 수 있다. 코딩 동안, 제어기(650)는 각각의 코딩된 픽처에 특정 코딩된 픽처 타입을 할당할 수 있으며, 이는 개개의 픽처에 적용될 수 있는 코딩 기법에 영향을 미칠 수 있다. 예를 들어, 픽처는 종종 다음의 픽처 타입 중 하나로서 할당될 수 있다:
인트라 픽처(I 픽처)는, 예측의 소스로서, 시퀀스의 임의의 다른 픽처를 사용하지 않고 코딩 및 디코딩될 수 있는 픽처일 수 있다. 일부 비디오 코덱은, 예를 들어, "IDR(Independent Decoder Refresh)" 픽처를 비롯한 상이한 타입의 인트라 픽처를 허용한다. 당업자는 I 픽처의 이러한 변형 및 이 개개의 애플리케이션 및 특징을 인식한다.
예측 픽처(P 픽처)는, 각각의 블록의 샘플 값을 예측하기 위해 최대 하나의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 픽처일 수 있다.
양-방향 예측 픽처(B 픽처)는, 각각의 블록의 샘플 값을 예측하기 위해 최대 2개의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 픽처일 수 있다. 유사하게, 다수의-예측 픽처는 단일 블록의 재구성을 위해 2개 초과의 참조 픽처 및 연관된 메타데이터를 사용할 수 있다.
소스 픽처는 일반적으로, 공간적으로 복수의 샘플 블록(예를 들어, 각각 4×4, 8×8, 4×8 또는 16×16 샘플의 블록)으로 세분화되고 블록 단위(block-by-block basis)로 코딩될 수 있다. 블록은 블록의 개개의 픽처에 적용되는 코딩 할당에 의해 결정된 바와 같이 (이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비-예측적으로 코딩될 수 있거나 또는 이는 동일한 픽처의 이미 코딩된 블록을 참조하여 예측적으로 코딩될 수 있다(공간적 예측 또는 인트라 예측). P 픽처의 픽셀 블록은, 하나의 이전에 코딩된 참조 픽처를 참조로, 공간적 예측을 통해 또는 시간적 예측을 통해 예측적으로 코딩될 수 있다. B 픽처의 블록은, 하나의 또는 2개의 이전에 코딩된 참조 픽처를 참조로, 공간적 예측을 통해 또는 시간적 예측을 통해, 예측적으로 코딩될 수 있다.
비디오 인코더(603)는 ITU-T Rec.H.265와 같은 미리 결정된 비디오 코딩 기술 또는 표준에 따라 코딩 동작을 수행할 수 있다. 이 동작에서, 비디오 인코더(603)는, 입력 비디오 시퀀스로 시간적 및 공간적 리던던시를 이용하는 예측 코딩 동작을 비롯한 다양한 압축 동작을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는, 사용되는 비디오 코딩 기술 또는 표준에 의해 특정된 구문을 따를 수 있다.
일 실시예에서, 전송기(640)는 인코딩된 비디오와 함께 추가적인 데이터를 전송할 수 있다. 소스 코더(630)는 코딩된 비디오 시퀀스의 일부로서 이러한 데이터를 포함할 수 있다. 추가 데이터는 시간적/공간적/SNR 향상 계층, 리던던트 픽처 및 슬라이스와 같은 다른 형태의 리던던트 데이터, SEI 메시지, VUI 파라미터 세트 프래그먼트 등을 포함할 수 있다.
비디오는 시간적 시퀀스로 복수의 소스 픽처(비디오 픽처)로서 캡처될 수 있다. 인트라 픽처 예측(종종 인트라 예측으로 약칭됨)은, 정해진 픽처에서 공간적 상관관계를 이용하고, 인터 픽처 예측은 픽처 간의 (시간적 또는 다른) 상관관계를 이용한다. 일 예에서, 현재 픽처로 지칭되는, 인코딩/디코딩 하의 특정 픽처는 블록으로 파티셔닝될 수 있다. 현재 픽처 내의 블록이 비디오에서 이전에 코딩되고 여전히 버퍼링되는 참조 픽처의 참조 블록과 유사한 경우, 현재 픽처의 블록은 모션 벡터로 지칭되는 벡터에 의해 코딩될 수 있다. 모션 벡터는 참조 픽처 내의 참조 블록을 포인팅하며, 다수의 참조 픽처가 사용 중인 경우, 참조 픽처를 식별하는 제3 차원을 가질 수 있다.
일부 실시예에서, 양방향 예측 기법이 인터 픽처 예측에 사용될 수 있다. 양방향 예측 기법에 따라, 비디오에서 현재 픽처보다 디코딩 순서에 있어 모두 앞서는(그러나, 디스플레이 순서에서는 각각, 지난 것 및 향후의 것일 수 있는) 제1 참조 픽처 및 제2 참조 픽처와 같은 2개의 참조 픽처가 사용된다. 현재 픽처의 블록은 제1 참조 픽처의 제1 참조 블록을 포인팅하는 제1 모션 벡터 및 제2 참조 픽처의 제2 참조 블록을 포인팅하는 제2 모션 벡터에 의해 코딩될 수 있다. 블록은 제1 참조 블록과 제2 참조 블록의 결합에 의해 예측될 수 있다.
추가로, 코딩 효율성을 개선시키기 위해 인터 픽처 예측에 병합 모드 기법이 사용될 수 있다.
본 개시내용의 일부 실시예에 따라, 인터 픽처 예측 및 인트라 픽처 예측과 같은 예측은 블록 유닛으로 수행된다. 예를 들어, HEVC 표준에 따라, 비디오 픽처 시퀀스의 픽처는 압축을 위해 코딩 트리 유닛(CTU)으로 파티셔닝되고, 픽처의 CTU는 64×64 픽셀, 32×32 픽셀 또는 16×16 픽셀과 같은 동일한 크기를 갖는다. 일반적으로, CTU는, 1개의 루마 CTB와 2개의 크로마 CTB인 3개의 코딩 트리 블록(CTB)을 포함한다. 각각의 CTU는 반복적으로 하나 또는 다수의 코딩 유닛(CU)으로 쿼드트리 분할될 수 있다. 예를 들어, 64×64 픽셀의 CTU는 64×64 픽셀의 1개의 CU, 32×32 픽셀의 4개의 CU 또는 16×16 픽셀의 16개의 CU로 분할될 수 있다. 일 예에서, 각각의 CU는 CU에 대한 예측 타입, 예컨대 인터 예측 타입 또는 인트라 예측 타입을 결정하기 위해 분석된다. CU는 시간적 및/또는 공간적 예측가능성(predictability)에 의존하여 하나 이상의 예측 유닛(PU)으로 분할될 수 있다. 일반적으로, 각각의 PU는 루마 예측 블록(PB) 및 2개의 크로마 PB를 포함한다. 일 실시예에서, 코딩(인코딩/디코딩)에서의 예측 동작은 예측 블록의 유닛으로 수행된다. 예측 블록의 예로서 루마 예측 블록을 사용하여, 예측 블록은 8×8 픽셀, 16×16 픽셀, 8×16 픽셀, 16×8 픽셀 등과 같은, 픽셀에 대한 값(예를 들어, 루마 값)의 행렬을 포함한다.
도 7은 본 개시내용의 다른 실시예에 따른 비디오 인코더(703)의 다이어그램을 도시한다. 비디오 인코더(703)는, 비디오 픽처의 시퀀스로 현재 비디오 픽처 내의 샘플 값의 프로세싱 블록(예를 들어, 예측 블록)을 수신하도록 그리고 프로세싱 블록을 코딩된 비디오 시퀀스의 일부인 코딩된 픽처로 인코딩하도록 구성된다. 일 예에서, 비디오 인코더(703)는 도 4 예에서의 비디오 인코더(403) 대신 사용된다.
HEVC 예에서, 비디오 인코더(703)는, 8×8 샘플의 예측 블록 등과 같은, 프로세싱 블록에 대한 샘플 값의 행렬을 수신한다. 비디오 인코더(703)는, 프로세싱 블록이, 예를 들어, 레이트 왜곡 최적화를 사용하는 인트라 모드, 인터 모드 또는 양방향 예측 모드를 사용하여 최상으로 코딩되는지 여부를 결정한다. 프로세싱 블록이 인트라 모드로 코딩될 경우, 비디오 인코더(703)는 프로세싱 블록을 코딩된 픽처로 인코딩하기 위해 인트라 예측 기법을 사용할 수 있고; 그리고 프로세싱 블록이 인터 모드 또는 양방향 예측 모드로 코딩될 경우, 비디오 인코더(703)는 프로세싱 블록을 코딩된 픽처로 인코딩하기 위해 인터 예측 또는 양방향 예측 기법을 각각 사용할 수 있다. 특정 비디오 코딩 기술에서, 병합 모드는, 모션 벡터가 예측기 외부의 코딩된 모션 벡터 컴포넌트의 이점 없이 하나 이상의 모션 벡터 예측기로부터 도출되는 인터 픽처 예측 서브모드일 수 있다. 특정 다른 비디오 코딩 기술에서, 대상 블록에 적용가능한 모션 벡터 컴포넌트가 존재할 수 있다. 일 예에서, 비디오 인코더(703)는 프로세싱 블록의 모드를 결정하기 위한 모드 판단 모듈(미도시)과 같은 다른 컴포넌트를 포함한다.
도 7 예에서, 비디오 인코더(703)는, 도 7에 도시된 바와 같이 함께 커플링되는, 인터 인코더(730), 인트라 인코더(722), 잔차 계산기(723), 스위치(726), 잔차 인코더(724), 일반 제어기(721), 및 엔트로피 인코더(725)를 포함한다.
인터 인코더(730)는, 현재 블록(예를 들어, 프로세싱 블록)의 샘플을 수신하도록, 블록을 참조 픽처의 하나 이상의 참조 블록(예를 들어, 이전 픽처 및 나중 픽처의 블록)과 비교하도록, 인터 예측 정보(예를 들어, 인터 인코딩 기법에 따른 리던던트 정보의 설명, 모션 벡터, 병합 모드 정보)를 생성하도록, 그리고 임의의 적합한 기법을 사용하여, 인터 예측 정보를 기반으로 인터 예측 결과(예를 들어, 예측 블록)를 계산하도록 구성된다. 일부 예에서, 참조 픽처는 인코딩된 비디오 정보에 기반하여 디코딩되는 디코딩된 참조 픽처이다.
인트라 인코더(722)는, 현재 블록(예를 들어, 프로세싱 블록)의 샘플을 수신하도록, 일부 경우에서는 블록을 동일한 픽처 내의 이미 코딩된 블록과 비교하도록, 변환 후 양자화된 계수를 그리고 일부 경우에서는 또한, 인트라 예측 정보(예를 들어, 하나 이상의 인트라 인코딩 기법에 따른 인트라 예측 방향 정보)를 생성하도록 구성된다. 일 예에서, 인트라 인코더(722)는 또한, 동일한 픽처 내의 참조 블록 및 인트라 예측 정보에 기반하여 인트라 예측 결과(예를 들어, 예측된 블록)를 계산할 수 있다.
일반 제어기(721)는, 일반 제어 데이터를 결정하도록 그리고 일반 제어 데이터에 기반하여 비디오 인코더(703)의 다른 컴포넌트를 제어하도록 구성될 수 있다. 일 예에서, 일반 제어기(721)는, 블록의 모드를 결정하고 그리고 모드에 기반하여 스위치(726)에 제어 신호를 제공한다. 예를 들어, 모드가 인트라 모드인 경우, 일반 제어기(721)는, 잔차 계산기(723)에 의해 사용될 인트라 모드 결과를 선택하도록 스위치(726)를 제어하고, 그리고 인트라 예측 정보를 선택하고 인트라 예측 정보를 비트스트림에 포함하도록 엔트로피 인코더(725)를 제어하고; 그리고 모드가 인터 모드인 경우, 일반 제어기(721)는, 잔차 계산기(723)에 의해 사용될 인터 예측 결과를 선택하고 스위치(726)를 제어하고, 그리고 인터 예측 정보를 선택하고 인터 예측 정보를 비트스트림에 포함하도록 엔트로피 인코더(725)를 제어한다.
잔차 계산기(723)는, 인트라 인코더(722) 또는 인터 인코더(730)로부터 선택된 예측 결과와 수신된 블록 간의 차이(잔차 데이터)를 계산하도록 구성된다. 잔차 인코더(724)는 변환 계수를 생성하기 위해 잔차 데이터를 인코딩하도록 잔차 데이터에 기반하여 동작하도록 구성된다. 일 예에서, 잔차 인코더(724)는, 잔차 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 그리고 변환 계수를 생성하도록 구성된다. 그런 다음, 변환 계수는 양자화된 변환 계수를 획득하기 위해 양자화 프로세싱으로 처리된다. 다양한 실시예에서, 비디오 인코더(703)는 또한, 잔차 디코더(728)를 포함한다. 잔차 디코더(728)는, 역변환을 수행하도록 그리고 디코딩된 잔차 데이터를 생성하도록 구성된다. 디코딩된 잔차 데이터는 인트라 인코더(722) 및 인터 인코더(730)에 의해 적절하게 사용될 수 있다. 예를 들어, 인터 인코더(730)는 디코딩된 잔차 데이터 및 인터 예측 정보에 기반하여 디코딩된 블록을 생성할 수 있고, 그리고 인트라 인코더(722)는 디코딩된 잔차 데이터 및 인트라 예측 정보에 기반하여 디코딩된 블록을 생성할 수 있다. 디코딩된 블록은 디코딩된 픽처를 생성하도록 적절하게 프로세싱되고, 그리고 디코딩된 픽처는 메모리 회로(미도시)에 버퍼링되어 일부 예에서 참조 픽처로서 사용될 수 있다.
엔트로피 인코더(725)는 비트스트림을 포맷하여 인코딩된 블록을 포함하도록 구성된다. 엔트로피 인코더(725)는, HEVC 표준과 같은 적절한 표준에 따라 다양한 정보를 포함하도록 구성된다. 일 예에서, 엔트로피 인코더(725)는, 일반 제어 데이터, 선택된 예측 정보(예를 들어, 인트라 예측 정보 또는 인터 예측 정보), 잔차 정보 및 다른 적절한 정보를 비트스트림에 포함하도록 구성된다. 개시된 청구대상에 따르면, 인터 모드 또는 양방향 예측 모드의 병합 서브모드에서 블록을 코딩하는 경우, 잔차 정보가 없다는 것이 주목된다.
도 8은 본 개시내용의 다른 실시예에 따른 비디오 디코더(810)의 다이어그램을 도시한다. 비디오 디코더(810)는, 코딩된 비디오 시퀀스의 일부인 코딩된 픽처를 수신하도록 그리고 코딩된 픽처를 디코딩하여 재구성된 픽처를 생성하도록 구성된다. 일 예에서, 비디오 디코더(810)는 도 4 예에서의 비디오 디코더(410) 대신 사용된다.
도 8 예에서, 비디오 디코더(810)는, 도 8에 도시된 바와 같이 함께 커플링되는, 엔트로피 디코더(871), 인터 디코더(880), 잔차 디코더(873), 재구성 모듈(874), 및 인트라 디코더(872)를 포함한다.
엔트로피 디코더(871)는, 코딩된 픽처를 구성하는 구문 엘리먼트를 표현하는 특정 심볼을 코딩된 픽처로부터 재구성하도록 구성될 수 있다. 이러한 심볼은, 예를 들어, 블록이 코딩되는 모드(예컨대, 예를 들어, 인트라 모드, 인터 모드, 양방향 예측된 모드, 후자의 두 모드는 병합 서브모드 또는 다른 서브모드), 각각, 인트라 디코더(872) 또는 인터 디코더(880)에 의한 예측에 사용되는 특정 샘플 또는 메타데이터를 식별할 수 있는 예측 정보(예컨대, 예를 들어, 인트라 예측 정보 또는 인터 예측 정보), 예를 들어, 양자화된 변환 계수 형태의 잔차 정보 등을 포함할 수 있다. 일 예에서, 예측 모드가 인터 또는 양방향 예측된 모드인 경우, 인터 예측 정보가 인터 디코더(880)에 제공되고; 그리고 예측 타입이 인트라 예측 타입인 경우, 인트라 예측 정보는 인트라 디코더(872)에 제공된다. 잔차 정보는 역양자화 처리될 수 있고 그리고 잔차 디코더(873)에 제공된다.
인터 디코더(880)는, 인터 예측 정보를 수신하도록 그리고 인터 예측 정보에 기반하여, 인터 예측 결과를 생성하도록 구성된다.
인트라 디코더(872)는, 인트라 예측 정보를 수신하도록 그리고 인트라 예측 정보에 기반하여, 예측 결과를 생성하도록 구성될 수 있다.
잔차 디코더(873)는, 탈양자화된 변환 계수(de-quantized transform coefficient)를 추출하기 위해 역양자화를 수행하도록 그리고 탈양자화된 변환 계수를 프로세싱하여 잔차를 주파수 도메인으로부터 공간 도메인으로 변환하도록 구성된다. 잔차 디코더(873)는 또한, (QP(Quantizer Parameter)를 포함하도록) 특정 제어 정보를 요구할 수 있고, 그리고 그 정보는 엔트로피 디코더(871)에 의해 제공될 수 있다(이와 같이 도시되지 않은 데이터 경로는 단지 낮은 볼륨 제어 정보일 수 있음).
재구성 모듈(874)은, 공간 도메인에서, 잔차 디코더(873)에 의한 출력으로서의 잔차 및 예측 결과(경우에 따라 인터 또는 인트라 예측 모듈에 의한 출력으로서)를 결합하여, 재구성된 픽처의 일부일 수 있는 재구성된 블록을 형성하도록 구성되고, 이 재구성된 블록은 결국 재구성된 비디오의 일부일 수 있다. 블록해제(deblocking) 동작 등과 같은 다른 적절한 동작이 시각적 품질을 개선하기 위해 수행될 수 있다는 것이 주목된다.
비디오 인코더(403, 603 및 703) 및 비디오 디코더(410, 510 및 810)는 임의의 적절한 기법을 사용하여 구현될 수 있다는 것이 주목된다. 일 실시예에서, 비디오 인코더(403, 603 및 703) 및 비디오 디코더(410, 510 및 810)는 하나 이상의 집적 회로를 사용하여 구현될 수 있다. 다른 실시예에서, 비디오 인코더(403, 603 및 603) 및 비디오 디코더(410, 510 및 810)는 소프트웨어 명령을 실행하는 하나 이상의 프로세서를 사용하여 구현될 수 있다.
본 개시내용의 일 실시예에 따르면, 비트스트림은 하나 이상의 코딩된 비디오 시퀀스(CVS)를 포함할 수 있다. CVS는 다른 CVS로부터 독립적으로 코딩될 수 있다. 각각의 CVS는 하나 이상의 계층을 포함할 수 있고, 각각의 계층은 특정 품질(예를 들어, 공간 해상도)을 갖는 비디오의 표현일 수 있거나, 또는 예를 들어, 깊이 맵, 투명도 맵, 또는 시점 뷰(perspective view)와 같은, 특정 컴포넌트 해석 속성의 표현일 수 있다. 시간적 차원에서, 각각의 CVS는 하나 이상의 액세스 유닛(AU: access unit)을 포함할 수 있다. 각각의 AU는 동일한 시간 인스턴스에 대응하는 상이한 계층의 하나 이상의 픽처를 포함할 수 있다. 코딩된 계층 비디오 시퀀스(CLVS: coded layer video sequence)는 동일한 계층에 픽처 유닛의 시퀀스를 포함할 수 있는 계층별 CVS(layer-wise CVS)이다. 비트스트림이 다수의 계층을 갖는 경우, 비트스트림의 CVS는 각각의 계층에 대해 하나 이상의 CLVS를 가질 수 있다.
일 실시예에서, CVS는 AU의 시퀀스를 포함하며, 여기서 AU의 시퀀스는, 디코딩 순서에 있어, 인트라 랜덤 액세스 포인트(IRAP) AU에 후속하여 IRAP AU가 아닌 제로 또는 그 초과의 AU를 포함한다. 일 예에서, 제로 또는 그 초과의 AU는 IRAP AU인 임의의 후속 AU 이전까지의 모든 후속 AU를 포함한다. 일 예에서, CLVS는 CVS의 기본 계층의 연관된 비-비디오 코딩 계층(VCL) 네트워크 추상 계층(NAL) 유닛 및 픽처의 시퀀스를 포함한다.
본 개시내용의 양상은 코딩된 비디오 스트림에 대한 멀티뷰 뷰 포지션 보충 향상 정보(SEI) 메시지를 포함한다.
본 개시내용의 일부 양상에 따르면, 비디오는 단일 뷰 비디오 및 멀티뷰 비디오로 카테고리화될 수 있다. 예를 들어, 단일 뷰 비디오(예를 들어, 모노스코픽 비디오(monoscopic video))는 뷰어에게 장면의 단일 뷰를 제공하는 2-차원 매체이다. 멀티뷰 비디오는, 장면에 대한 다양한 뷰포인트를 제공할 수 있고 뷰어에게 사실적인 느낌을 줄 수 있다. 일 예에서, 3D 비디오는 사람 뷰어에 대응하는 좌측 뷰와 우측 뷰와 같은 2개의 뷰를 제공할 수 있다. 2개의 뷰는 광의 상이한 편광을 사용하여 동시에 또는 거의 동시에 디스플레이(제시)될 수 있고, 뷰어는 뷰어의 눈 각각이 뷰의 개개의 뷰를 수신하도록 편광 안경(polarized glasses)을 착용할 수 있다.
또 다른 예에서, 자동-입체 디스플레이 디바이스와 같은 디스플레이 디바이스는, 뷰어의 눈의 포지션에 따라 상이한 픽처를 생성하도록 구성되며, 뷰잉을 위한 안경을 요구하지 않는다. 디스플레이 디바이스는 무안경(glassless) 3D 디스플레이로 지칭될 수 있다.
멀티뷰 뷰 비디오는 다수의 카메라를 사용하여 동시에 장면을 캡처함으로써 생성될 수 있고, 여기서 다수의 카메라는 각각의 카메라가 하나의 뷰포인트로부터 장면을 캡처하도록 적절히 위치된다. 다수의 카메라는 다수의 뷰포인트에 대응하는 다수의 비디오 시퀀스를 캡처할 수 있다. 더 많은 뷰를 제공하기 위해서, 더 많은 카메라가, 뷰와 연관된 다수의 비디오 시퀀스를 갖는 멀티뷰 비디오를 생성하는 데 사용될 수 있다. 멀티뷰 비디오는 저장을 위해 큰 저장 공간을 그리고/또는 전송을 위해 높은 대역폭을 요구할 수 있다. 요구되는 저장 공간 또는 전송 대역폭을 감소시키기 위해 해당 분야에서 멀티뷰 비디오 코딩 기법이 개발되었다.
멀티뷰 비디오 코딩의 효율성을 개선하기 위해, 뷰 간의 유사성이 활용된다. 일부 실시예에서, 뷰 중에서, 기본 뷰로 지칭되는 뷰는 모노스코픽 비디오처럼 인코딩된다. 예를 들어, 기본 뷰를 인코딩하는 동안, 인트라(픽처) 및/또는 시간적 인터(픽처) 예측이 사용된다. 기본 뷰는 인트라(픽처) 예측 및 인터(픽처) 예측을 수행하는 모노스코픽 디코더(예를 들어, 모노스코픽 디코더)를 사용하여 디코딩될 수 있다. 멀티뷰 비디오에서 기본 뷰 옆에 있는 다른 뷰는 종속 뷰(dependent view)로 지칭될 수 있다. 종속 뷰를 코딩하기 위해, 인트라(픽처) 및 인터(픽처) 예측 외에도, 디스패리티(disparity) 보상을 통한 뷰간 예측(inter-view prediction)이 사용될 수 있다. 일 예에서, 뷰간 예측에서, 종속 뷰에서의 현재 블록은 동일한 시간 인스턴스의 다른 뷰의 픽처로부터의 샘플의 참조 블록을 사용하여 예측된다. 참조 블록의 위치는 디스패리티 벡터로 지시된다. 뷰간 예측은, 모션 벡터가 디스패리티 벡터로 대체되고 시간적 참조 픽처가 다른 뷰로부터의 참조 픽처로 대체된다는 점을 제외하면, 인터(픽처) 예측과 유사하다.
본 개시내용의 일부 양상에 따르면, 멀티뷰 코딩은 멀티-계층 접근법을 이용할 수 있다. 멀티-계층 접근법은 계층이라고 불리는 비디오 시퀀스의 상이한 코딩된(예를 들어, HEVC 코딩된) 표현을 하나의 비트스트림으로 멀티플렉싱할 수 있다. 계층은 서로 의존할 수 있다. 상이한 계층 간의 유사성을 활용하여 증가된 압축 성능을 달성하기 위해, 계층간 예측에 의해 종속성이 사용될 수 있다. 계층은 특정 카메라 시점과 관련된 장면의 텍스처, 깊이, 또는 다른 보조 정보를 표현할 수 있다. 일부 예에서, 동일한 카메라 시점에 속하는 모든 계층이 뷰로 표기되고; 그리고 동일한 타입의 정보(예를 들어, 텍스처 또는 깊이)를 전달하는 계층이 멀티뷰 비디오의 범위의 컴포넌트로 불린다.
본 개시내용의 일 양상에 따르면, 멀티뷰 비디오 코딩은 기존의 단일 계층 디코딩 코어와 함께 HLS(high level syntax)(예를 들어, 슬라이스 레벨보다 높은) 추가를 포함할 수 있다. 일부 예에서, 멀티뷰 뷰 코딩은 슬라이스 레벨 아래에서 단일 계층 코딩(예를 들어, HEVC)을 위해 요구되는 구문 또는 디코딩 프로세스를 변경하지 않는다. 멀티뷰 비디오 디코더를 구축하기 위해 큰 변경 없이 기존 구현을 재사용하는 것이 허용될 수 있다. 예를 들어, 비디오 디코더(510) 또는 비디오 디코더(810)를 기반으로 멀티뷰 비디오 디코더가 구현될 수 있다.
일부 예에서, 동일한 캡처 또는 디스플레이 시간 인스턴스와 연관된 모든 픽처는 AU에 함유되고 동일한 픽처 순서 카운트(POC: picture order count)를 갖는다. 멀티뷰 비디오 코딩은 동일한 AU의 픽처로부터 예측을 수행하는 뷰간 예측을 허용할 수 있다. 예를 들어, 다른 뷰의 디코딩된 픽처는 현재 픽처의 참조 픽처 목록 중 하나 또는 둘 다에 삽입될 수 있다. 추가로, 일부 예에서, 모션 벡터는, 동일한 뷰의 시간적 참조 픽처와 관련될 때는 실제 시간적 모션 벡터일 수 있거나, 또는 뷰간 참조 픽처와 관련될 때는 디스패리티 벡터일 수 있다. 블록-레벨 모션 보상 모듈(예를 들어, 블록 레벨 인코딩 소프트웨어 또는 하드웨어, 블록 레벨 디코딩 소프트웨어 또는 하드웨어)은, 모션 벡터가 시간적 모션 벡터인지 또는 디스패리티 벡터인지 여부에 관계없이, 동일한 방식으로 동작하는 데 사용될 수 있다.
본 개시내용의 일 양상에 따르면, 멀티뷰 비디오 코딩은, 대응하는 디스플레이 포지션 순서 또는 디스플레이 순서와 반드시 연관될 필요는 없는 순서(예를 들어, 디코딩 순서)로 디스플레이 시간 인스턴스에서 상이한 뷰의 픽처를 코딩할 수 있다.
도 9는 일부 예에서 자동-입체 디스플레이(900)의 다이어그램을 도시한다. 자동-입체 디스플레이(900)는 상이한 포지션에서 상이한 뷰의 픽처를 디스플레이할 수 있다. 일 예에서, 자동-입체 디스플레이(900)는 관찰자의 검출된 눈 포지션에 응답하여 상이한 뷰의 픽처를 디스플레이한다. 도 9 예에서, 관찰자의 눈 포지션은 일 차원에서, 가장 좌측 포지션과 가장 우측 포지션 사이에서 검출될 수 있다. 예를 들어, 관찰자의 눈 포지션이 E0에 있을 때, 자동-입체 디스플레이(900)는 뷰 식별자 ViewId[0]를 갖는 뷰의 픽처를 디스플레이하고; 관찰자의 눈 포지션이 E1에 있을 때, 자동-입체 디스플레이(900)는 뷰 식별자 ViewId[1]를 갖는 뷰의 픽처를 디스플레이하고; 관찰자의 눈 포지션이 E2에 있을 때, 자동-입체 디스플레이(900)는 뷰 식별자 ViewId[2]를 갖는 뷰의 픽처를 디스플레이하고; 그리고 관찰자의 눈 포지션이 E3에 있을 때, 자동-입체 디스플레이(900)는 뷰 식별자 ViewId[3]를 갖는 뷰의 픽처를 디스플레이한다. 관찰자의 눈 포지션의 순서는, 좌측으로부터 우측으로, E2, E0, E1, 및 E3이다.
도 10a는 본 개시내용의 일 실시예에 따른 멀티뷰 뷰 포지션에 기반하여 픽처를 재정렬하는 예를 도시한다. 다수의 뷰 또는 상이한 뷰가 제시되는 경우, 일 차원에 따른 디스플레이 순서(예를 들어, 수평 축을 따라 좌측에서 우측으로의 디스플레이)를 지시하는 뷰 포지션 정보가 의도된 사용자 경험을 위해 시그널링될 수 있다. 디스플레이 순서는 다수의 뷰 또는 대응하는 픽처의 멀티뷰 뷰 포지션에 의해 지시될 수 있다. 일 예에서, 다수의 뷰는 제1 멀티뷰 뷰 포지션에 디스플레이될 제1 뷰 및 제2 멀티뷰 뷰 포지션에 디스플레이될 제2 뷰를 포함한다. 제1 뷰의 제1 픽처는 제1 멀티뷰 뷰 포지션에 디스플레이될 수 있다. 제2 뷰의 제2 픽처는 제2 멀티뷰 뷰 포지션에 디스플레이될 수 있다.
일부 예에서, 픽처 P0-P3은 각각 다수의 뷰(예를 들어, ViewId[0]-ViewId[3])에 대응한다. 픽처 P0-P3은 동일한 캡처 시간 인스턴스 또는 동일한 디스플레이 시간 인스턴스와 연관된다. 픽처 P0-P3은, 레이트 왜곡 최적화 등과 같은 특정 코딩 요건에 기반하여 결정될 수 있는 코딩 순서(예를 들어, 인코딩 순서 또는 디코딩 순서)로 코딩(인코딩 또는 디코딩)될 수 있다. 디코딩 순서는 픽처 P0-P3에 기반하여 또는 대응하는 뷰 ViewId[0]-ViewId[3]에 기반하여 지시될 수 있다. 도 10a를 참조로, 디코딩 순서의 일 예는 뷰 ViewId[0]의 P0, 뷰 ViewId[1]의 P1, 뷰 ViewId[2]의 P2, 및 뷰 ViewId[3]의 P3이며, 여기서 ViewId[0]의 P0는 각각 ViewId[1]-ViewId[3]의 P1-P3을 디코딩하기 전에 디코딩된다. 대안적으로, 디코딩 순서는 ViewId[0], ViewId[1], ViewId[2], 및 ViewId[3]이다.
일 실시예에서, 디코딩 순서는 픽처의 디스플레이 순서(예를 들어, P0-P3) 또는 대응하는 뷰(예를 들어, ViewId[0]-ViewId[3])와 상이하다. 본 개시내용의 실시예에 따르면, 디코딩된 픽처(예를 들어, P0-P3) 또는 대응하는 뷰(예를 들어, ViewId[0]-ViewId[3])는 디스플레이 순서에 따라 재정렬될 수 있다. 디스플레이 순서는 의도된 사용자 경험을 위해 시그널링될 수 있다. 도 10a를 참조로, 디스플레이 순서는 ViewId[2], ViewId[0], ViewId[1], ViewId[3]이며, 여기서 뷰 ViewId[2]는 최좌측 뷰로서 디스플레이되고, 뷰 ViewId[3]는 최우측 뷰로서 디스플레이된다. 픽처에 기반하는 대응하는 디스플레이 순서는 P2, P0, P1 및 P3이다. 뷰(및 디코딩된 픽처)는 디스플레이 순서에 따라 재정렬된다.
일부 예에서, AU는 동일한 캡처 또는 디스플레이 시간 인스턴스와 연관된 상이한 뷰의 픽처의 코딩된 정보를 포함한다. 예를 들어, AU는 뷰 ViewId[0]의 픽처 P0, 뷰 ViewId[1]의 픽처 P1, 뷰 ViewId[2]의 픽처 P2, 뷰 ViewId[3]의 픽처 P3의 디코딩된 정보를 포함한다. 픽처 P0-P3의 코딩 순서가 반드시 관찰자의 눈 포지션의 순서를 따르는 것은 아니다.
도 10b 내지 도 10c는 일 예에서 멀티뷰 뷰 포지션에 따라 픽처를 재정렬하는 예를 도시한다. 도 10b는 디코딩 순서에 따라 디코딩되는 AU 내의 픽처를 도시한다. 도 10b의 예에서, AU 내의 픽처 P0-P3가 P0, P1, P2 및 P3의 순서로 디코딩된다. 관찰자의 눈 포지션 순서는 좌측으로부터 우측으로 E2, E0, E1, E3이기 때문이다. 디코딩된 픽처 순서는 좌측으로부터 우측인 관찰자의 눈 포지션의 순서에 대응하지 않는다.
일부 예에서, 디코딩된 픽처는, 예를 들어, 의도된 사용자 경험을 위해 시그널링되는 디스플레이 순서에 따라 재정렬될 수 있다. 일 예에서, 디스플레이 순서는 관찰자의 눈 포지션의 순서(예컨대, 좌측으로부터 우측)와 연관된다.
도 10c는, 일부 예에서 디스플레이 순서에 따라 재정렬된 AU 내의 디코딩된 픽처를 도시한다. 예를 들어, 디스플레이 순서는, 좌측으로부터 우측인 관찰자의 눈 포지션의 순서와 연관된다.
본 개시내용의 일부 양상에 따르면, 보충 향상 정보(SEI) 메시지는, 예를 들어, 인코딩된 비트스트림의 디코딩 및/또는 디스플레이를 보조 위해 또는 다른 목적을 위해, 인코딩된 비트스트림에 포함될 수 있다. SEI 메시지(들)는, VCL NAL 유닛으로부터 코딩된 픽처의 샘플을 디코딩하는 것과 같은 디코딩에 필요하지 않은 정보를 포함할 수 있다. SEI 메시지(들)는 디코딩 프로세스에 의해 루마 또는 크로마 샘플을 구성하는 데 선택적일 수 있다. 일부 예에서, SEI 메시지는 디코딩 프로세스 동안 루마 또는 크로마 샘플을 재구성하는 데 요구되지 않다. 부가적으로, SEI 메시지를 지원하는 비디오 코딩 표준을 준수하는 디코더는 SEI 메시지를 준수하도록 프로세싱하는 것이 요구되지 않는다. 일부 코딩 표준에 대해, 타이밍 디코더 적합성을 출력하기 위해 또는 비트스트림 적합성을 체크하기 위해 일부 SEI 메시지 정보가 요구될 수 있다. SEI 메시지(들)는 특정 표준(예를 들어, HEVC 265 또는 VVC)에 대한 출력 순서 적합성을 위해 준수 디코더에 의해 선택적으로 프로세싱될 수 있다. 일 실시예에서, SEI 메시지(들)는 비트스트림에 존재한다.
SEI 메시지는, 비디오 픽처의 타이밍을 지시하거나 또는 코딩된 비디오의 다양한 속성, 또는 다양한 속성이 사용되거나 향상될 수 있는 방법을 설명하는 다양한 타입의 데이터를 함유할 수 있다. 일부 예에서, SEI 메시지는 핵심 디코딩 프로세스에 영향에 미치지 않지만, 비디오가 사후-프로세싱되거나 또는 디스플레이되도록 권장되는 방법을 지시할 수 있다.
SEI 메시지는 인코딩된 비트스트림에 대한 추가적인 정보를 제공하는 데 사용될 수 있고, 이는, 비트스트림이 일단 디코딩되면 비트스트림의 프리젠테이션(presentation)을 변경하거나, 또는 이 정보를 디코더에 제공하는 데 사용될 수 있다. 예를 들어, SEI 메시지는 (예를 들어, 비디오 데이터가 비디오 프레임에 배열되는 방식을 설명하는) 프레임 패킹 정보, (예를 들어, 인코딩된 비트스트림이 예를 들어, 360도 비디오임을 지시하기 위한) 콘텐츠 설명, 및 컬러 정보(예를 들어, 색역(color gamut) 및/또는 컬러 범위)를 제공하기 위해 사용되어 왔다.
일부 예에서, SEI 메시지는, 인코딩된 비트스트림이 360도 비디오를 포함한다는 것을 디코더에게 시그널링하는 데 사용될 수 있다. 디코더는 상기의 정보를 사용하여 360도 프리젠테이션을 위한 비디오 데이터를 렌더링할 수 있다. 대안적으로, 디코더가 360도 비디오를 렌더링할 수 없는 경우, 디코더는 상기의 정보를 이용하여 비디오 데이터를 렌더링하지 않을 수 있다.
본 개시내용의 실시예에 따르면, 제1 SEI 메시지는 멀티뷰 비디오의 확장성 차원 정보(SDI)를 지시할 수 있다. 예를 들어, 제1 SEI 메시지(예를 들어, SDI SEI 메시지)는, 멀티뷰 비디오에 대한 뷰의 수 등을 지시하는 정보와 같은 확장성 차원의 수 및 타입을 포함할 수 있다. 본 개시내용의 일 실시예에 따르면, 현재 CVS의 i번째 계층의 뷰 식별자(view ID)(예를 들어, ViewID로 표기됨)는, 제1 SEI 메시지(예를 들어, SDI SEI 메시지)에서 시그널링될 수 있다. 일 예에서, 구문 요소 sdi_view_id_val[i]는 현재 CVS의 i번째 계층의 뷰 ID(예를 들어, ViewID)의 값을 지정한다. 구문 요소 sdi_view_id_val[i]의 길이(예를 들어, 구문 요소 sdi_view_id_val[i]를 표현하는 데 사용되는 비트 수)는 구문 요소 sdi_view_id_len_minus1에 의해 지시될 수 있다. 길이의 단위는 비트일 수 있다. 일 예에서, 구문 요소 sdi_view_id_val[i]의 길이 값은 구문 요소 sdi_view_id_len_minus1의 값 + 1과 같다.
본 개시내용의 일 양상에 따르면, 디스플레이 순서는 멀티뷰 뷰 포지션(MVP) 정보를 지시하는 SEI 메시지와 같은 제2 SEI 메시지를 사용하여 시그널링될 수 있다. 일부 관련된 예에서, 제2 SEI 메시지는 (예를 들어, 수평 축을 따른) 일 차원의 뷰 포지션을 지시하는 정보를 포함할 수 있다. 예를 들어, 제2 SEI 메시지는, 관찰자 눈 포지션에 대응하는, 일 차원의 뷰 포지션을 포함할 수 있다. 제2 SEI 메시지(예를 들어, MVP SEI 메시지)는, 예를 들어, 무안경 3D 디스플레이에 대해, 3D 렌더링 뷰의 수평 축을 따라 상대적인 뷰 포지션을 지시하는 데 유용할 수 있다.
도 11은 멀티뷰 비디오에 대한 뷰 포지션을 지시하기 위한 제2 SEI 메시지(예를 들어, MVP SEI 메시지)의 구문 예(1100)를 도시한다. 예를 들어, MVP SEI 메시지는 3D 렌더링 뷰의 수평 축을 따라 CVS 내 뷰의 상대적인 뷰 포지션을 지정한다. 다수의 뷰가 존재하는 경우, 좌측으로부터 우측으로의 디스플레이 순서를 지시하는 MVP SEI 메시지의 MVP 정보는 의도된 사용자 경험을 위해 시그널링될 수 있다.
MVP SEI 메시지는 CVS의 IRAP AU와 연관될 수 있다. MVP SEI 메시지에서 시그널링되는 MVP 정보는 전체 CVS에 적용될 수 있다. 일부 예에서, MVP SEI 메시지는 뷰의 수를 시그널링한 다음, 뷰의 포지션을 각각 시그널링할 수 있다.
도 11의 예에서, num_views_minus1로 표기되는 파라미터는 (1110)에 의해 도시된 바와 같은 MVP SEI 메시지에 의해 시그널링될 수 있다. 파라미터 num_views_minus1은, 예를 들어, 액세스 유닛으로, 뷰의 수(예를 들어, NumViews로 표기되는 파라미터)를 지시한다. 예를 들어, 뷰의 수는 1 + 파라미터 num_views_minus1의 값의 합과 같다.
일 차원의 뷰의 순서(예를 들어, 디스플레이 순서), 예컨대 디스플레이 순서에서 뷰의 포지션은, 파라미터 view_positions[i]를 사용하여 MVP SEI 메시지에서 시그널링될 수 있다. 값 i는 도 11의 (1120)에 의해 도시된 바와 같이, 0 내지 num_views_minus1의 정수이다.
파라미터 view_position[i]는, 디스플레이 목적으로 좌측으로부터 우측으로의 뷰(예를 들어, 모든 뷰) 중에서 제1 SEI 메시지에서의 구문 요소 sdi_view_id_val[i]의 값과 같은 뷰 식별자(ID)(ViewId)를 갖는 뷰의 순서(디스플레이 순서)를 지시할 수 있다. 최좌측 뷰에 대한 순서의 값은 0과 같을 수 있고, 그 다음 뷰에 대해 순서의 값은 좌측으로부터 우측으로 1씩 증가할 수 있다. 파라미터 view_position[i]의 값은 0 내지 62(0과 62 포함)의 범위에 있을 수 있다.
일 예에서, 도 10a의 예에 대한 뷰 포지션을 시그널링하기 위해, "3"은 뷰의 수가 4임을 지시하기 위해 파라미터 num_views_minus1로서 시그널링될 수 있다. "1"은 ViewId가 0인 경우 view_position[0]으로서 시그널링되고, "2"은 ViewId가 1인 경우 view_position[1]으로서 시그널링되고, "0"는 ViewId가 2인 경우 view_position[2]으로서 시그널링되고, 그리고 "3"은 ViewId가 3인 경우 view_position[3]으로서 시그널링되고, 여기서, 좌측으로부터 우측으로의 포지션에서, "0"은 최좌측 뷰이고, "3"은 최우측 뷰이다. 그런 다음, 뷰 ViewId[0]-ViewId[3]이 액세스 유닛으로 디코딩되는 경우, 뷰 ViewId[0]는 view_position[0]을 갖고, 뷰 ViewId[1]는 view_position[1]을 갖고, 뷰 ViewId[2]는 view_position[2]를 갖고, 그리고 뷰 ViewId[3]는 view_position[3]을 갖는다. 뷰 ViewId[0]-ViewId[3]이 대응하는 뷰 포지션 view_position[0] 내지 view_position[3]에 따라 재정렬되어, 도 10a에서의 디스플레이 순서가 획득될 수 있다.
본 개시내용의 일 실시예에 따르면, CVS의 개개의 계층의 뷰와 연관된 픽처가 비트스트림으로부터 디코딩될 수 있다. 제1 SEI 메시지 및 제2 SEI 메시지에 기반하여, (예를 들어, 수평 축을 따라) 일 차원으로 디스플레이될 뷰의 포지션이 결정될 수 있다. 디코딩된 픽처는 (예를 들어, 수평 축을 따른) 일 차원의 뷰의 포지션을 기반으로 디스플레이될 수 있다. CVS의 개개의 계층의 뷰 각각에 대해, 개개의 뷰의 뷰 ID(예를 들어, ViewId[i])는 제1 SEI 메시지에 기반하여 결정될 수 있다. (예를 들어, 수평 축을 따라) 일 차원으로 디스플레이될 개개의 뷰의 포지션은, 제2 SEI 메시지 내의 뷰 포지션 변수(예를 들어, view_position[i]), 및 결정된 뷰 식별자(예를 들어, ViewId[i])에 기반하여 결정될 수 있다.
도 10a 및 도 11을 참조하면, 일 예에서, 구문 요소 num_view_minus1의 값은 3이고, 디스플레이될 뷰의 수는 3 + 1이며, 이는 4이다. 제1 SEI 메시지(예를 들어, SDI SEI 메시지)의 구문 요소 sdi_view_id_val[i]의 정수 i는 각각 구문 요소 sdi_view_id_val[0], sdi_view_id_val[1], sdi_view_id_val[2] 또는 sdi_view_id_val[3]에 대응하는 0, 1, 2 또는 3이다. 일 예에서, sdi_view_id_val[0]은 0이고, sdi_view_id_val[1]은 1이고, sdi_view_id_val[2]은 2이고, 그리고 sdi_view_id_val[3]은 3이다. 제2 SEI 메시지(예를 들어, MVP SEI 메시지)에 기반하여, 구문 요소 view_position[i]는 제1 SEI 메시지의 구문 요소 sdi_view_id_val[i]와 같은 ViewId를 갖는 디스플레이 순서 또는 뷰 포지션을 지시한다. 구문 요소 view_position[0]은 sdi_view_id_val[0](예를 들어, 0)과 같은 ViewId를 갖는 뷰 포지션을 지시하고, 따라서 뷰 ViewId[0]는 view_position[0](예를 들어, 1)에 있다. 구문 요소 view_position[1]은 sdi_view_id_val[1](예를 들어, 1)과 같은 ViewId를 갖는 뷰 포지션을 지시하고, 따라서 뷰 ViewId[1]는 view_position[1](예를 들어, 2)에 있다. 구문 요소 view_position[2]은 sdi_view_id_val[2](예를 들어, 2)과 같은 ViewId를 갖는 뷰 포지션을 지시하고, 따라서 뷰 ViewId[2]는 view_position[2](예를 들어, 0)에 있다. 구문 요소 view_position[3]은 sdi_view_id_val[3](예를 들어, 3)과 같은 ViewId를 갖는 뷰 포지션을 지시하고, 따라서 뷰 ViewId[3]는 view_position[3](예를 들어, 3)에 있다.
본 개시내용의 일 양상에 따르면, MVP SEI 메시지는 SDI SEI 메시지의 정보에 의미론적 종속성을 가질 수 있는 하나 이상의 파라미터를 포함한다. 예를 들어, MVP SEI 메시지의 구문 요소 num_views_minus1은 SDI SEI 메시지로부터 도출되는 파라미터 NumViews의 값에 대한 의미론적 종속성을 갖는다. 일 예에서, 뷰의 수를 지시하는 제1 값(예를 들어, 파라미터 NumViews의 값)은 SDI SEI 메시지로부터 도출된다. 뷰의 수와 연관된 제2 값(예를 들어, 구문 요소 num_views_minus1의 값)은 MVP SEI 메시지로부터 획득된다. 제2 값은 제1 값과 상이할 수 있다. 수 "1" + 제2 값은 적합성 체크에서 제1 값과 비교될 수 있다. 도 10a를 참조하면, 제1 값은 4이고, 제2 값은 3이다. 제2 값(예를 들어, 3) + 1은, 제1 값(예를 들어, 4)과 동일하며 적합성 체크를 만족한다. 따라서, MVP SEI 메시지는 SDI SEI 메시지와 연관하여 제약을 받을 수 있다.
일 예에서, CVS가 SDI SEI 메시지를 함유하지 않는 경우, CVS는 MVP SEI 메시지를 함유하지 않는다. 일부 예에서, SDI SEI 메시지가 존재하지 않는 경우, MVP SEI 메시지도 존재하지 않는다. 일 예에서, MVP SEI 메시지는, SDI SEI 메시지가 CVS에 포함되는 것에 기반하여, CVS에 포함된다.
일 실시예에서, 제3 SEI 메시지는 3D 참조 디스플레이 정보가 시그널링된다는 것을 지시한다. 도 12는 본 개시내용의 일 실시예에 따른 3D 참조 디스플레이 정보를 지시하기 위한 제3 SEI 메시지의 구문 예(1200)를 도시한다.
제3 SEI 메시지(예를 들어, 도 12에 도시된 3D 참조 디스플레이 정보 SEI 메시지)는, 참조 디스플레이 폭(들)에 관한 참조 디스플레이 정보, 참조 뷰 거리(들), 및 대응하는 참조 스테레오 쌍(들), 예를 들어, 참조 뷰잉 거리에서 참조 디스플레이 상에 뷰어의 좌측 눈과 우측 눈에 대해 디스플레이될 뷰의 쌍(들)에 관한 정보를 포함할 수 있다. 참조 디스플레이 정보는, 뷰 렌더러(view renderer)가 타깃 스크린 폭과 뷰잉 거리에 대한 적절한 스테레오 쌍을 생성하게 할 수 있다. 참조 디스플레이 폭(들) 및 참조 뷰잉 거리(들)의 값은 센티미터 단위로 시그널링될 수 있다. 제3 SEI 메시지에 명시된 참조 뷰 쌍은, 참조 스테레오 쌍에서 카메라 중심 간의 거리와 관련된 파라미터를 추출하거나 추론하는 데 사용될 수 있으며, 이는 타깃 디스플레이에 대한 뷰의 생성을 위해 사용될 수 있다. 멀티-뷰 디스플레이의 경우, 참조 스테레오 쌍은 뷰어의 좌측 눈과 우측 눈에 의해 동시에 관찰될 수 있는 한 쌍의 뷰에 대응할 수 있다.
존재하는 경우, 제3 SEI 메시지는, 디코딩 순서에 있어 AU를 따르는 모든 AU가 출력 순서에 있어 AU를 따르는 경우, AU(예를 들어, IRAP AU 또는 비-IRAP AU)와 연관될 수 있다. 제3 SEI 메시지는, 다른 3D 참조 디스플레이 정보 SEI 메시지를 함유하는 다음 AU 또는 다음 IRAP AU를 포함하지 않을 때까지 출력 순서와 디코딩 순서 둘 모두에서 현재 AU 및 AU를 따르는 모든 AU에 적용될 수 있다.
제3 SEI 메시지(예를 들어, 3D 참조 디스플레이 정보 SEI 메시지)는, 3D 비디오 시퀀스가 최적화되는 디스플레이 파라미터 및 대응하는 참조 파라미터를 지정할 수 있다. 각각의 참조 디스플레이(예를 들어, 참조 디스플레이 폭 및 선택적으로 대응하는 뷰잉 거리)는 개개의 뷰 식별자(예를 들어, ViewId로 표기됨)를 시그널링함으로써 하나의 참조 뷰 쌍과 연관될 수 있다. ViewId 값 간의 차이가 베이스라인 거리(예를 들어, 3D 비디오 시퀀스를 획득하는 데 사용되는 카메라 중심 간의 거리)로 지칭된다.
수신기의 뷰잉 거리와 참조 뷰잉 거리의 간의 비율이 수신기의 스크린 폭과 참조 스크린 폭의 비율과 동일한 경우, 수신기에서의 디스플레이의 베이스라인 거리와 수평 시프트를 결정하기 위해 다음의 식이 사용될 수 있다.
식 1
식 2
여기서 refBaseline[i]는 제3 SEI 메시지에서 시그널링된 (right_view_id[i] - left_view_id[i])와 같다. 뷰 생성과 관련된 다른 파라미터는 유사한 식을 사용함으로써 결정되어 획득될 수 있다.
식 3
refParameter[i]는 left_view_id[i] 및 right_view_id[i]에 의해 시그널링되는 참조 뷰 쌍에 대응하는 뷰 생성 관련 파라미터이다. 상기 식에서, 비디오 시퀀스를 보여주기 위해 사용되는 디스플레이의 가시 부분의 폭은 "디스플레이 폭" 하에서 이해될 수 있다. 상기 식은, 뷰잉 거리가 참조 디스플레이 파리미터와 비교하여 스크린 폭에 비례하여 스케일링되지 않은 경우, 뷰 쌍과 수평 시프트 또는 다른 뷰 합성 파라미터를 결정하는 데 사용될 수 있고, 여기서 상기 식을 적용하는 효과는 지각되는 깊이가 참조 설정에서와 같이 뷰잉 거리에 동일한 비율로 유지된다는 것이다.
참조 스테레오 쌍에 대응하는 뷰 합성 관련 파라미터가 하나의 AU에서 다른 AU로 변경되는 경우, 뷰 합성 관련 파라미터는 제3 SEI 메시지와 연관되는 AU의 파라미터와 동일한 스케일링 팩터로 스케일링될 수 있다. 상기 식은 다음의 AU에 대한 파라미터를 획득하기 위해 적용될 수 있으며, 여기서 refParameter[i]는 다음의 액세스 유닛과 연관된 참조 스테레오 쌍에 관련된 파라미터이다.
수신기 디스플레이의 수평 시프트는 베이스라인 거리(또는 다른 뷰 합성 파라미터를 스케일링하는 데 사용된 것과 동일한 팩터로 이를 스케일링함으로써 수정될 수 있다.
CVS가 제1 SEI 메시지(예를 들어, SDI SEI 메시지)를 함유하지 않는 경우, CVS는 제3 SEI 메시지(예를 들어, 3D 참조 디스플레이 정보 SEI 메시지)를 함유하지 않는다.
도 12를 참조하면, 구문 요소 prec_ref_display_width는 (2-prec_ref_display_width)에 의해 주어지는 refDisplayWidth[i]에 대한 최대 허용가능한 절단 에러(truncation error)의 지수(exponent)를 지정할 수 있다. 구문 요소 prec_ref_display_width의 값은 0부터 31(0과 31 포함)의 범위에 있을 수 있다.
1과 같은 구문 요소 ref_viewing_distance_flag는 참조 뷰잉 거리의 존재를 지시할 수 있다. 0과 같은 구문 요소 ref_viewing_distance_flag는 참조 뷰잉 거리가 존재하지 않음을 지시한다.
구문 요소 prec_ref_viewing_dist는, (2-prec_ref_viewing_dist)에 의해 주어지는 refViewingDist[i]에 대한 최대 허용가능한 절단 에러의 지수를 지정할 수 있다. prec_ref_viewing_dist의 값은 0 내지 31(0과 31 포함)의 범위에 있을 수 있다.
구문 요소 num_views_minus1 + 1은 CVS에 대한 제1 SEI 메시지(예를 들어, SDI SEI 메시지)로부터 도출되는 NumViews와 같을 수 있다. 본 개시내용의 일 양상에 따르면, 제3 SEI 메시지는 제1 SEI 메시지(예를 들어, SDI SEI 메시지)의 정보에 의미론적 종속성을 가질 수 있는 하나 이상의 파라미터를 포함한다. 일 예에서, 뷰의 수를 지시하는 제1 값(예를 들어, NumViews)은 제1 SEI 메시지로부터 도출된다. 제3 SEI 메시지로부터 뷰의 수와 연관된 제3 값(예를 들어, num_views_minus1)이 획득된다. 제3 값은 제1 값과 상이할 수 있다. 1(예를 들어, 값 "1") + 제3 값은 적합성 체크에서 제1 값과 비교될 수 있다.
구문 요소 num_ref_displays_minus1 + 1은 제3 SEI 메시지에서 시그널링되는 참조 디스플레이의 수를 지정할 수 있다. 참조 디스플레이의 수의 최대 값은 제3 SEI 메시지에서의 뷰의 수와 연관된 제3 값(예를 들어, num_views_minus1)에 기반하여 결정될 수 있다. num_ref_displays_minus1의 값은 0 내지 num_views_minus1(0과 num_views_minus1 포함)의 범위에 있을 수 있다.
구문 요소 left_view_id[i]는 i번째 참조 디스플레이에 대응하는 스테레오 쌍의 좌측 뷰의 ViewId를 지시할 수 있다.
구문 요소 right_view_id[i]는 i번째 참조 디스플레이에 대응하는 스테레오 쌍의 우측 뷰의 ViewId를 지시할 수 있다.
구문 요소 expont_ref_display_width[i]는 i번째 참조 디스플레이의 참조 디스플레이 폭의 지수 부분을 지정할 수 있다. expont_ref_display_width[i]의 값은 0 내지 62(0과 62 포함)의 범위에 있을 수 있다. 값 63은 ITU-T | ISO/IEC에 의해 향후 사용하기 위해 예비된다. 디코더는 미지정 참조 디스플레이 폭을 지시하는 것으로 값 63을 처리할 수 있다.
구문 요소 mantissa_ref_display_width[i]는 i번째 참조 디스플레이의 참조 디스플레이 폭의 가수(mantissa) 부분을 지정할 수 있다. mantissa_ref_display_width[i] 구문 요소의 비트의 수를 지정하는 변수 refDispWidthBits는 다음과 같이 도출될 수 있다:
구문 요소 expont_ref_display_width[i]가 0과 같다면, refDispWidthBits는 Max(0, prec_ref_display_width - 30)와 같게 설정된다.
그렇지 않은 경우(0 < expont_ref_display_width[i] < 63), refDispWidthBits는 Max(0, expont_ref_display_width[i] + prec_ref_display_width - 31)와 같게 설정된다.
구문 요소 expont_ref_viewing_distance[i]는 i번째 참조 디스플레이의 참조 뷰잉 거리의 지수 부분을 지정할 수 있다. expont_ref_viewing_distance[i]의 값은 0 내지 62(0과 62 포함)의 범위에 있을 수 있다. 값 63은 ITU-T | ISO/IEC에 의해 향후 사용하기 위해 예비된다. 디코더는 미지정 참조 디스플레이 폭을 지시하는 것으로 값 63을 처리할 수 있다.
구문 요소 mantissa_ref_viewing_distance[i]는 i번째 참조 디스플레이의 참조 뷰잉 거리의 가수 부분을 지정할 수 있다. mantissa_ref_viewing_distance[i] 구문 요소의 비트의 수를 지정하는 변수 refViewDistBits는 다음과 같이 도출된다:
구문 요소 expont_ref_viewing_distance[i]가 0과 같다면, refViewDistBits는 Max(0, prec_ref_viewing_distance - 30)와 같게 설정된다.
그렇지 않은 경우(0 < expont_ref_viewing_distance[i] < 63), refViewDistBits는 Max(0, expont_ref_viewing_distance[i] + prec_ref_viewing_distance - 31)와 같게 설정된다.
표 1은 제3 SEI 메시지의 카메라 파라미터 변수와 구문 요소 간의 예시적인 연관을 보여준다.
표 1 - 카메라 파라미터 변수와 구문 요소 간의 연관성
표 1의 x 로우에 있는 변수는 다음과 같이 표 1의 e, n 및 v 로우에 있는 개개의 변수 또는 값으로부터 도출된다:
e가 0과 같지 않다면, 다음이 적용된다:
그렇지 않다면(예를 들어, e가 0인 경우), 다음이 적용된다:
다시 도 12를 참조하면, 1과 같은 구문 요소 added_shift_present_flag[i]는, i번째 참조 디스플레이에 대한 좌측 뷰 및 우측 뷰의 추가적인 수평 시프트에 대한 정보가 제3 SEI 메시지에 존재함을 지시할 수 있다. 0과 같은 구문 요소 added_shift_present_flag[i]는, i번째 참조 디스플레이에 대한 좌측 뷰 및 우측 뷰의 추가적인 수평 시프트에 대한 정보가 제3 SEI 메시지에 존재하지 않음을 지시할 수 있다.
구문 요소 num_sample_shift_plus512[i]는 i번째 참조 베이스라인 및 i번째 참조 디스플레이에 대응하는 스테레오 쌍에 대해 권장되는 추가적인 수평 시프트를 지시할 수 있다.
(num_sample_shift_plus512[i] - 512)가 0 미만인 경우, i번째 참조 베이스라인 및 i번째 참조 디스플레이에 대응하는 스테레오 쌍의 좌측 뷰는 스테레오 쌍의 우측 뷰에 대해 (512 - num_sample_shift_plus512[i]) 샘플만큼 좌측 방향으로 시프트될 수 있다.
그렇지 않고, 구문 요소 num_sample_shift_plus512[i]가 512와 같다면, 시프트가 적용되지 않을 수 있다.
그렇지 않고, (num_sample_shift_plus512[i] - 512)가 0 초과인 경우, i번째 참조 베이스라인 및 i번째 참조 디스플레이에 대응하는 스테레오 쌍의 좌측 뷰는 스테레오 쌍의 우측 뷰에 대해 (512 - num_sample_shift_plus512[i]) 샘플에 의해 우측 방향으로 시프트될 수 있다.
num_sample_shift_plus512의 값은 0 내지 1023(0과 1023 포함) 범위에 있을 수 있다.
일 실시예에서, 우측 뷰에 대해 x 샘플만큼 좌측(또는 우측) 방향으로 좌측 뷰를 시프트하는 것은, 다음의 2-단계 프로세싱에 의해 수행될 수 있다: 1) 좌측 뷰를 좌측(또는 우측) 방향으로 x/2 샘플만큼 시프트하고, 우측 뷰를 우측(또는 좌측) 방향으로 x/2 샘플만큼 시프트한다; 2) 좌측 및 우측 뷰 둘 모두에서 폭이 x/2 샘플인 좌측 및 우측 이미지 여백(margin)을 배경 컬러로 채운다.
다음의 의사 코드(pseudo code)는, 좌측 뷰를 우측 뷰에 대해 x 샘플만큼 좌측 방향으로 시프트하는 경우의 시프트 프로세싱의 예를 보여준다.
다음의 의사 코드는, 좌측 뷰를 우측 뷰에 대해 x 샘플만큼 우측 방향으로 시프트하는 경우의 시프트 프로세싱의 예를 보여준다.
변수 backgroundColor는 상이한 시스템에서 상이한 값, 예를 들어, 검정 또는 회색을 취할 수 있다.
0과 같은 구문 요소 three_Dimensional_reference_displays_extension_flag는, 제3 SEI 메시지(예를 들어, 3D 참조 디스플레이 SEI 메시지) 내에 추가적인 데이터가 뒤따르지 않음을 지시할 수 있다. 일 예에서, three_Dimensional_reference_displays_extension_flag의 값은 일부 표준을 준수하는 비트스트림에서 0과 같다. three_dimensional_reference_displays_extension_flag에 대한 1의 값은, ITU-T | ISO/IEC에 의해 향후 사용하기 위해 예비된다. 디코더는 제3 SEI 메시지(예를 들어, 3D 참조 디스플레이 SEI 메시지)에서의 three_Dimensional_reference_displays_extension_flag에 대해 1 값을 따르는 모든 데이터를 무시할 수 있다.
도 13은 본 개시내용의 일 실시예에 따른 인코딩 프로세스(1300)를 약술하는 흐름도를 도시한다. 다양한 실시예에서, 프로세스(1300)는 프로세싱 회로부, 예컨대 단말 디바이스(310, 320, 330 및 340)의 프로세싱 회로부, 비디오 인코더(예를 들어, 403, 603, 703)의 기능을 수행하는 프로세싱 회로부 등에 의해 실행된다. 일부 실시예에서, 프로세스(1300)는 소프트웨어 명령으로 구현되며, 따라서 프로세싱 회로부가 소프트웨어 명령을 실행할 때, 프로세싱 회로부는 프로세스(1300)를 수행한다. 프로세스는 (S1301)에서 시작하여 (S1310)으로 진행한다.
(S1310)에서, 비트스트림 내의 뷰(예를 들어, 도 10a-도 10c의 ViewId[0]-ViewId[3])와 연관된 픽처가 인코딩될 수 있다. 일 예에서, 뷰와 연관된 픽처는 인코딩 순서로 인코딩될 수 있다. 일 예에서, 픽처는 CVS의 AU에 포함되고, 픽처(및 뷰)는 동일한 캡처 시간 인스턴스 또는 디스플레이 시간 인스턴스와 연관된다.
(S1320)에서, 확장성 차원 정보(SDI)를 지시하는 제1 보충 향상 정보(SEI) 메시지 및 멀티뷰 뷰 포지션(MVP) 정보를 지시하는 제2 SEI 메시지가 형성될 수 있다. 일 예에서, 본 개시내용에 설명된 바와 같이, 제1 SEI 메시지는 SDI SEI 메시지로 표기되고, 제2 SEI 메시지는 MVP SEI 메시지로 표기된다.
제1 SEI 메시지(예를 들어, SDI SEI 메시지)는 CVS에 대한 뷰의 수를 지시할 수 있다. 제1 SEI 메시지는 CVS의 i번째 계층의 뷰 ID를 지정할 수 있고, 여기서 값 i는 정수이다. 값 i는 0 이상일 수 있다. 일 예에서, 값 i는, 도 11을 참조하여 설명되는 바와 같이, 0 내지 num_views_minus1의 정수이다. 일 예에서, 구문 요소 sdi_view_id_val[i]는 CVS의 i번째 계층의 뷰 ID(예를 들어, ViewID)의 값을 지정한다. CVS의 개개의 계층의 뷰 ID는 제2 SEI 메시지(예를 들어, MVP SEI 메시지)에 의해 참조될 수 있다.
전술한 바와 같이, 코딩 순서(예를 들어, 인코딩 순서 또는 디코딩 순서)는 뷰와 연관된 픽처를 디스플레이하는 데 사용되는 디스플레이 순서와 상이할 수 있다. 제2 SEI 메시지는 디스플레이 순서를 지시할 수 있다. 일 예에서, 제2 SEI 메시지는 일 차원(예를 들어, 수평 축)에서 뷰의 뷰 포지션(예를 들어, view_position[i])를 지시하며, 여기서 뷰는, 본 개시내용에 설명되는 바와 같이, 제1 SEI 메시지의 ViewId에 의해 지정될 수 있다.
일 예에서, 제2 SEI 메시지는 CVS의 IRAP AU와 연관된다. 일 예에서, 제2 SEI 메시지는, 제1 SEI 메시지가 CVS에 포함되는 것에 기반하여, CVS에 포함된다.
(S1330)에서, 제1 SEI 메시지 및 제2 SEI 메시지가 비트스트림에 포함될 수 있다. 일 예에서, 제1 SEI 메시지 및 제2 SEI 메시지는 인코딩되고 전송된다. CVS의 뷰에 대응하는 개개의 계층의 뷰 ID가 시그널링될 수 있다. 일 예에서, 계층은 각각 뷰에 대응한다. 일 차원의 뷰의 뷰 포지션이 시그널링될 수 있다.
프로세스(1300)는 (S1399)로 진행되어 종료된다.
프로세스(1300)는 다양한 시나리오에 적합하게 적응될 수 있고, 프로세스(1300)의 단계가 이에 따라 조정될 수 있다. 프로세스(1300)의 단계 중 하나 이상은, 적응되고, 생략되고, 반복되고 그리고/또는 결합될 수 있다. 프로세스(1300)를 구현하기 위해 임의의 적합한 순서가 사용될 수 있다. 추가 단계(들)가 추가될 수 있다.
일 예에서, CVS는, 좌측 뷰의 뷰 식별자, 우측 뷰의 뷰 식별자, 및 참조 디스플레이의 참조 디스플레이 폭을 지시하는 3D 참조 디스플레이 정보를 포함하는 제3 SEI 메시지(예를 들어, 도 12에 도시된 3D 참조 디스플레이 정보 SEI 메시지)를 포함한다. 제3 SEI 메시지는 제3 SEI 메시지에서 시그널링되는 참조 디스플레이의 수 및 뷰의 수를 지시할 수 있다. 참조 디스플레이의 수의 최대 값은 제3 SEI 메시지에서 지시되는 뷰의 수에 기반한다.
일 예에서, 뷰의 수를 지시하는 제1 값(예를 들어, NumViews)은 제1 SEI 메시지로부터 도출된다. 제3 SEI 메시지로부터 뷰의 수와 연관된 제3 값이 획득된다. 제3 값은 제1 값과 상이할 수 있다. 1(예를 들어, 값 "1") + 제3 값은 적합성 체크에서 제1 값과 비교될 수 있다.
도 14는 본 개시내용의 일 실시예에 따른 디코딩 프로세스(1400)를 약술하는 흐름도를 도시한다. 다양한 실시예에서, 프로세스(1400)는 프로세싱 회로부, 이를테면, 단말 디바이스(310, 320, 330 및 340) 내의 프로세싱 회로부, 비디오 인코더(403)의 기능을 수행하는 프로세싱 회로부, 비디오 디코더(410)의 기능을 수행하는 프로세싱 회로부, 비디오 디코더(510)의 기능을 수행하는 프로세싱 회로부, 비디오 인코더(603)의 기능을 수행하는 프로세싱 회로부 등에 의해 실행된다. 일부 실시예에서, 프로세스(1400)는 소프트웨어 명령으로 구현되며, 따라서 프로세싱 회로부가 소프트웨어 명령을 실행할 때, 프로세싱 회로부는 프로세스(1400)를 수행한다. 프로세스는 (S1401)에서 시작하여 (S1410)으로 진행한다.
(S1410)에서, 코딩된 비디오 시퀀스(CVS)의 개개의 계층의 뷰와 연관된 픽처가 비트스트림으로부터 디코딩될 수 있다. 일 예에서, 뷰와 연관된 픽처는 디코딩 순서에 따라 디코딩될 수 있다. 일 예에서, 픽처는 CVS의 AU에 포함되고, 픽처(및 뷰)는 동일한 캡처 시간 인스턴스 또는 디스플레이 시간 인스턴스와 연관된다.
단계(S1420)에서, 제1 보충 향상 정보(SEI) 메시지 및 제2 SEI 메시지에 기반하여, 일 차원(예를 들어, 수평 축)으로 디스플레이될 뷰의 포지션이 결정될 수 있다. 제1 SEI 메시지는 확장성 차원 정보(SDI)를 포함할 수 있다. 제2 SEI 메시지는 멀티뷰 뷰 포지션(MVP) 정보를 포함할 수 있다.
일 예에서, 제1 SEI 메시지는 SDI SEI 메시지를 포함하고, 제2 SEI 메시지는 MVP SEI 메시지를 포함한다.
제1 SEI 메시지(예를 들어, SDI SEI 메시지)는 CVS에 대한 뷰의 수를 지시할 수 있다. 제1 SEI 메시지는 CVS의 i번째 계층의 뷰 ID(예컨대, ViewID[i])를 지정할 수 있고, 여기서 값 i는 정수이다. 값 i는 0 이상일 수 있다. 일 예에서, 값 i는, 도 11을 참조하여 설명되는 바와 같이, 0 내지 num_views_minus1의 정수이다. 일 예에서, 제1 SEI 메시지의 구문 요소 sdi_view_id_val[i]는 CVS의 i번째 계층의 뷰 ID(예를 들어, ViewID) 값을 지정한다. CVS의 개개의 계층의 뷰 ID는 제2 SEI 메시지(예를 들어, MVP SEI 메시지)에 의해 참조될 수 있다.
제2 SEI 메시지(예를 들어, MVP SEI 메시지)는 일 차원의 뷰의 포지션(예를 들어, view_position[i])을 지시할 수 있고, 여기서 뷰는 제1 SEI 메시지의 ViewId에 의해 지정될 수 있다. 일 예에서, 일 차원은 수평 축이고, 디스플레이될 뷰의 포지션은 수평 축을 따른다.
일 실시예에서, CVS의 개개의 계층의 뷰 각각에 대해, 개개의 뷰의 뷰 ID(예를 들어, ViewId[i])는 제1 SEI 메시지에 기반하여 결정된다. 예를 들어, 제1 SEI 메시지의 구문 요소 sdi_view_id_val[i]는 뷰 ID(예를 들어, ViewID로 표기됨)의 값을 지정한다. (예를 들어, 수평 축을 따라) 일 차원으로 디스플레이될 개개의 뷰의 포지션은, 제2 SEI 메시지 내의 뷰 포지션 변수(예를 들어, view_position[i]), 및 결정된 뷰 ID(예를 들어, ViewId[i])에 기반하여 결정될 수 있다.
일 실시예에서, 제2 SEI 메시지는 CVS의 IRAP(Intra Random Access Point) AU와 연관된다. 일 예에서, 뷰의 포지션은 CVS의 AU에 적용된다.
(S1410)에서, 디코딩된 픽처는 도 10a-도 10c를 참조하여 설명되는 바와 같이, (예를 들어, 수평 축을 따른) 일 차원의 뷰의 결정된 포지션에 기반하여 디스플레이될 수 있다.
프로세스(1400)는 (S1499)로 진행되어 종료된다.
프로세스(1400)는 다양한 시나리오에 적합하게 적응될 수 있고, 프로세스(1400)의 단계가 이에 따라 조정될 수 있다. 프로세스(1400)의 단계 중 하나 이상은, 적응되고, 생략되고, 반복되고 그리고/또는 결합될 수 있다. 프로세스(1400)를 구현하기 위해 임의의 적합한 순서가 사용될 수 있다. 추가 단계(들)가 추가될 수 있다.
일 실시예에서, 제2 SEI 메시지가 CVS에 포함되는지 여부는 제1 SEI 메시지가 CVS에 포함되는지 여부에 기반한다. 제1 SEI 메시지가 CVS에 존재할 때, 제2 SEI 메시지가 CVS에 존재할 수 있다.
CVS가 제1 SEI 메시지(예를 들어, SDI SEI 메시지)를 함유하지 않는 경우, CVS는 제2 SEI 메시지(예를 MVP SEI 메시지)를 함유하지 않는다. (S1420)은, 제1 SEI 메시지가 CVS에 없는 경우, 생략된다. (S1430)은, 디코딩 순서, 디폴트 순서 등에 기반하여, 디코딩된 픽처를 디스플레이하도록 적응될 수 있다.
일 실시예에서, 뷰의 수를 지시하는 제1 값(예를 들어, NumViews)은 제1 SEI 메시지로부터 도출된다. 뷰의 수와 연관된 제2 값(예를 들어, num_views_minus1)은 제2 SEI 메시지로부터 획득될 수 있다. 제2 값은 제1 값과 상이할 수 있다. 1 + 제2 값을 제1 값과 비교함으로써 적합성 체크가 수행될 수 있다.
일 예에서, CVS는, 뷰 거리 및 좌측 뷰의 뷰 식별자, 우측 뷰의 뷰 식별자, 및 참조 디스플레이의 참조 디스플레이 폭을 지시하는 3D 참조 디스플레이 정보를 포함하는 제3 SEI 메시지(예를 들어, 도 12에 도시된 3D 참조 디스플레이 정보 SEI 메시지)를 포함한다. 제3 SEI 메시지는 제3 SEI 메시지에서 시그널링되는 참조 디스플레이의 수 및 뷰의 수를 지시할 수 있다. 일 예에서, 뷰의 수를 지시하는 제1 값(예를 들어, NumViews)은 제1 SEI 메시지로부터 도출된다. 제3 SEI 메시지로부터 뷰의 수와 연관된 제3 값(예를 들어, num_views_minus1)이 획득된다. 제3 값은 제1 값과 상이할 수 있다. 1(예를 들어, 값 "1") + 제3 값은 적합성 체크에서 제1 값과 비교될 수 있다. 참조 디스플레이 수의 최대 값은 제3 SEI 메시지에서의 뷰의 수와 연관된 제3 값에 기반한다.
본 개시내용의 실시예는 개별적으로 사용되거나 또는 임의의 순서로 조합될 수 있다. 추가로, 방법(또는 실시예), 인코더, 및 디코더 각각은 프로세싱 회로부(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 비-일시적 컴퓨터-판독가능 매체에 저장된 프로그램을 실행한다.
상기 설명된 기법은, 컴퓨터-판독가능 명령을 사용하는 컴퓨터 소프트웨어로서 구현될 수 있고 그리고 하나 이상의 컴퓨터-판독가능 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 15은 개시되는 청구대상의 특정 실시예를 구현하는 데 적합한 컴퓨터 시스템(1500)을 도시한다.
컴퓨터 소프트웨어는, 임의의 적절한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있으며, 이는, 하나 이상의 컴퓨터 CPU(central processing unit), GPU(Graphics Processing Unit) 등에 의해, 직접 실행되거나 또는 해석, 마이크로-코드 실행 등을 통해 실행될 수 있는 명령을 포함하는 코드를 생성하기 위해, 어셈블리, 컴필레이션(compilation), 링킹 등의 메커니즘으로 처리될 수 있다.
명령은, 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게임 디바이스, 사물 인터넷 디바이스 등을 포함하는, 다양한 타입의 컴퓨터 또는 이의 컴포넌트에서 실행될 수 있다.
컴퓨터 시스템(1500)에 대해 도 15에 도시된 컴포넌트는 사실상 예시적이며, 본 개시내용의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능성의 범위에 대한 어떠한 제한을 제안하려는 의도는 아니다. 컴포넌트의 구성은 컴퓨터 시스템(1500)의 예시적인 실시예에 예시된 컴포넌트 중 임의의 하나 또는 이의 조합과 관련된 임의의 종속성 또는 요건을 갖는 것으로 해석되어서는 안 된다.
컴퓨터 시스템(1500)은 특정 인간 인터페이스 입력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 입력 디바이스는, 예를 들어, 촉각적 입력(예컨대, 키스트로크(keystrokes), 스와이프(swipes), 데이터 글러브 움직임), 오디오 입력(예컨대, 음성, 클랩핑(clapping)), 시각적 입력(예컨대, 제스처), 후각적 입력(도시되지 않음)을 통해, 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스는 또한, 오디오(예컨대, 스피치, 음악, 주변 소리), 이미지(예컨대, 스캔된 이미지, 스틸 이미지 카메라로부터 획득된 사진 이미지), 비디오(예컨대, 2-차원 비디오, 입체 비디오를 포함하는 3-차원 비디오)와 같이 인간에 의한 의식적인 입력과 반드시 직접 관련된 것은 아닌 특정 미디어를 캡처하는 데 사용될 수 있다.
입력 인간 인터페이스 디바이스는, 키보드(1501), 마우스(1502), 트랙 패드(1503), 터치-스크린(1510), 데이터-글러브(미도시), 조이스틱(1505), 마이크로폰(1506), 스캐너(1507), 카메라(1508) 중 하나 이상(각각 단 하나만이 도시됨)을 포함할 수 있다.
컴퓨터 시스템(1500)은 또한, 특정 인간 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 출력 디바이스는, 예를 들어, 촉각적 출력, 소리, 빛 및 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 인간 인터페이스 출력 디바이스는, 촉각적 출력 디바이스(예를 들어, 터치 스크린(1510), 데이터-글러브(미도시) 또는 조이스틱(1505)에 의한 촉각적 피드백, 그러나 입력 디바이스로서의 역할을 하지 않는 촉각적 피드백 디바이스가 또한 있을 수 있음), 오디오 출력 디바이스(예컨대, 스피커(1509), 헤드폰(미도시)), 시각적 출력 디바이스(이를테면, CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하는 스크린(1510), 이 각각은 터치 스크린 입력 능력이 있거나 없음, 이 각각은 촉각 피드백 능력이 있거나 없음 ―이들 중 일부는 입체 출력과 같은 수단을 통해 2-차원 시각적 출력 또는 3-차원 이상의 출력을 출력할 수 있음; 가상-현실 안경(미도시), 홀로그래픽 디스플레이 및 스모크 탱크(미도시)), 및 프린터(미도시)을 포함할 수 있다.
컴퓨터 시스템(1500)은 또한, 인간이 액세스가능한 저장 디바이스 및 이들의 연관된 매체, 예컨대 CD/DVD 등의 매체(1521)를 갖는 CD/DVD ROM/RW(1520), 썸-드라이브(thumb-drive)(1522), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(1523)를 포함하는 광학 매체, 레거시 자기 매체, 예컨대, 테이프 및 플로피 디스크(floppy disc)(미도시), 특수 ROM/ASIC/PLD 기반 디바이스, 예컨대, 보안 동글(security dongle)(미도시) 등을 포함할 수 있다.
당업자는 또한, 현재 개시되는 청구대상과 관련하여 사용되는 "컴퓨터-판독가능 매체"라는 용어가 전송 매체, 반송파 또는 다른 일시적 신호를 포괄하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(1500)은 또한, 하나 이상의 통신 네트워크(1555)에 대한 인터페이스(1554)를 포함할 수 있다. 네트워크는, 예를 들어, 무선, 유선, 광학(optical) 네트워크일 수 있다. 네트워크는 추가로, 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연-내성(delay-tolerant) 네트워크 등일 수 있다. 네트워크의 예는, 이더넷, 무선 LAN과 같은 로컬 영역 네트워크, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량 및 산업 네트워크 등을 포함한다. 특정 네트워크는 일반적으로, 특정 범용 데이터 포트 또는 주변 버스(1549)(예컨대, 예를 들어, 컴퓨터 시스템(1500)의 USB 포트)에 부착된 외부 네트워크 인터페이스 어댑터를 필요로 하며; 다른 것은 일반적으로, 아래에 설명되는 바와 같은 시스템 버스에 대한 부착에 의해 컴퓨터 시스템(1500)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 임의의 것을 사용하여, 컴퓨터 시스템(1500)이 다른 엔티티와 통신할 수 있다. 이러한 통신은, 예를 들어, 로컬 영역 네트워크 또는 광역 디지털 네트워크를 사용하는 다른 컴퓨터 시스템에 대해, 단방향성의 수신-전용(예를 들어, 방송 TV), 단방향성의 송신-전용(예를 들어, CANbus-특정 CANbus 디바이스) 또는 양방향성일 수 있다. 위에서 설명된 바와 같이, 특정 프로토콜 및 프로토콜 스택이 그의 네트워크 및 네트워크 인터페이스 각각에서 사용될 수 있다.
앞서 언급된 인간 인터페이스 디바이스, 인간이 액세스가능한 저장 디바이스 및 네트워크 인터페이스는 컴퓨터 시스템(1500)의 코어(1540)에 부착될 수 있다.
코어(1540)는 하나 이상의 CPU(Central Processing Unit)(1541), GPU(Graphics Processing Unit)(1542), FPGA(Field Programmable Gate Areas)(1543) 형태의 특수 프로그램가능 프로세싱 유닛, 특정 작업을 위한 하드웨어 가속기(1544), 그래픽 어댑터(1550) 등을 포함할 수 있다. 이러한 디바이스는, ROM(Read-only memory)(1545), 랜덤 액세스 메모리(1546), 내부 비-사용자 액세스가능 하드 드라이브, SSD 등과 같은 내부 대용량 저장소(1547)와 함께, 시스템 버스(1548)를 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(1548)는 추가적 CPU, GPU 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스가능할 수 있다. 주변 디바이스는 코어의 시스템 버스(1548)에 직접 또는 주변 버스((1549)를 통해 부착될 수 있다. 일 예에서, 스크린(1510)은 그래픽 어댑터(1550)에 연결될 수 있다. 주변 버스를 위한 아키텍처는 PCI, USB 등을 포함한다.
CPU(1541), GPU(1542), FPGA(1543) 및 가속기(1544)는 앞서 언급된 컴퓨터 코드를 조합하여 구성할 수 있는 특정 명령을 실행할 수 있다. 그 컴퓨터 코드는 ROM(1545) 또는 RAM(1546)에 저장될 수 있다. 전이 데이터(transitional data)는 RAM(1546)에 저장될 수 있는 반면, 영구 데이터는, 예를 들어, 내부 대용량 저장소(1547)에 저장될 수 있다. 하나 이상의 CPU(1541), GPU(1542), 대용량 저장소(1547), ROM(1545), RAM(1546) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해, 메모리 디바이스 중 임의의 메모리 디바이스에 대한 빠른 저장 및 검색이 가능해질 수 있다.
컴퓨터-판독가능 매체는 다양한 컴퓨터-구현 동작을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적을 위해 특별히 설계되고 구성된 것일 수 있거나, 또는 이는, 컴퓨터 소프트웨어 분야의 당업자가 이용가능한 잘 알려진 종류일 수 있다.
제한이 아닌 예로서, 아키텍처(1500), 특히 코어(1540)를 갖는 컴퓨터 시스템은, 하나 이상의 유형의(tangible) 컴퓨터-판독가능 매체에 구현된 소프트웨어를 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터-판독가능 매체는, 위에서 소개된 바와 같은 사용자가 액세스가능한 대용량 저장소와 연관된 매체일 수 있을 뿐만 아니라, 코어-내부 대용량 저장소(1547) 또는 ROM(1545)과 같은 비-일시적 특성을 갖는 코어(1540)의 특정 저장소일 수 있다. 본 개시내용의 다양한 실시예를 구현하는 소프트웨어는 이러한 디바이스에 저장되고 코어(1540)에 의해 실행될 수 있다. 컴퓨터-판독가능 매체는 특정 필요사항에 따라 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는, 코어(1540) 및 구체적으로 그 안에 있는 프로세서들(CPU, GPU, FPGA 등을 포함)로 하여금, RAM(1546)에 저장된 데이터 구조를 정의하는 것 그리고 소프트웨어에 의해 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 비롯하여, 본원에서 설명되는 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하게 할 수 있다. 추가로 또는 대안적으로, 컴퓨터 시스템은, 본원에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 동작할 수 있는 회로(예를 들어, 가속기(1544))에 하드와이어링된 또는 다른 방식으로 구현된 로직의 결과로서 기능을 제공할 수 있다. 소프트웨어에 대한 참조는, 적절한 경우, 로직을 포괄할 수 있으며 이 역도 가능하다. 컴퓨터-판독가능 매체에 대한 참조는, 적절한 경우, 실행을 위한 소프트웨어를 저장하는 회로(예컨대, 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로, 또는 이 둘 다를 포괄할 수 있다. 본 개시내용은 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포괄한다.
부록 A: 약어
JEM: joint exploration model
VVC: versatile video coding
BMS: benchmark set
MV: Motion Vector
HEVC: High Efficiency Video Coding
SEI: Supplementary Enhancement Information
VUI: Video Usability Information
GOPs: Groups of Pictures
TUs: Transform Units,
PUs: Prediction Units
CTUs: Coding Tree Units
CTBs: Coding Tree Blocks
PBs: Prediction Blocks
HRD: Hypothetical Reference Decoder
SNR: Signal Noise Ratio
CPUs: Central Processing Units
GPUs: Graphics Processing Units
CRT: Cathode Ray Tube
LCD: Liquid-Crystal Display
OLED: Organic Light-Emitting Diode
CD: Compact Disc
DVD: Digital Video Disc
ROM: Read-Only Memory
RAM: Random Access Memory
ASIC: Application-Specific Integrated Circuit
PLD: Programmable Logic Device
LAN: Local Area Network
GSM: Global System for Mobile communications
LTE: Long-Term Evolution
CANBus: Controller Area Network Bus
USB: Universal Serial Bus
PCI: Peripheral Component Interconnect
FPGA: Field Programmable Gate Areas
SSD: solid-state drive
IC: Integrated Circuit
CU: Coding Unit
R-D: Rate-Distortion
본 개시내용이 여러 예시적인 실시예를 설명했지만, 본 개시내용의 범위 내에 속하는 변경, 치환 및 다양한 대체 등가물이 존재한다. 따라서, 당업자가 본원에 명시적으로 도시되거나 설명되지 않았지만, 본 개시내용의 원리를 구현하고, 따라서 본 개시내용의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 안출할 수 있을 것임이 이해될 것이다.

Claims (20)

  1. 비디오 디코더에서의 비디오 디코딩을 위한 방법으로서,
    비트스트림으로부터, 코딩된 비디오 시퀀스(CVS: coded video sequence)의 개개의 계층의 뷰(view)와 연관된 픽처(picture)를 디코딩하는 단계;
    제1 보충 향상 정보(SEI: supplemental enhancement information) 메시지 및 제2 SEI 메시지에 기반하여, 일 차원으로 디스플레이될 뷰의 포지션을 결정하는 단계 ― 상기 제1 SEI 메시지는 확장성 차원 정보(SDI: scalability dimension information)를 포함하고, 상기 제2 SEI 메시지는 멀티뷰 뷰 포지션(MVP: multiview view position) 정보를 포함함 ―; 및
    상기 일 차원의 뷰의 포지션에 기반하여, 상기 디코딩된 픽처를 디스플레이하는 단계
    를 포함하는, 비디오 디코더에서의 비디오 디코딩을 위한 방법.
  2. 제1항에 있어서,
    상기 결정하는 단계는,
    상기 CVS의 개개의 계층의 뷰 각각에 대해,
    상기 제1 SEI 메시지에 기반하여 상기 개개의 뷰의 뷰 식별자를 결정하는 단계; 및
    상기 제2 SEI 메시지 내의 뷰 포지션 변수 및 상기 결정된 뷰 식별자에 기반하여, 상기 일 차원으로 디스플레이될 상기 개개의 뷰의 포지션을 결정하는 단계
    를 포함하는, 비디오 디코더에서의 비디오 디코딩을 위한 방법.
  3. 제1항에 있어서,
    상기 제1 SEI 메시지로부터 상기 뷰의 수(number of the view)를 지시하는 제1 값을 도출하는 단계;
    상기 제2 SEI 메시지로부터 상기 뷰의 수와 연관된 제2 값을 획득하는 단계 ― 상기 제2 값은 상기 제1 값과 상이함―; 및
    적합성 체크(conformance check)에서, 1 +(plus) 상기 제2 값을 상기 제1 값과 비교하는 단계
    를 더 포함하는, 비디오 디코더에서의 비디오 디코딩을 위한 방법.
  4. 제1항에 있어서,
    상기 제2 SEI 메시지는 상기 CVS의 인트라 랜덤 액세스 포인트(IRAP: intra random access point) 액세스 유닛과 연관되는, 비디오 디코더에서의 비디오 디코딩을 위한 방법.
  5. 제1항에 있어서,
    상기 뷰의 포지션은 상기 CVS의 액세스 유닛에 적용되는, 비디오 디코더에서의 비디오 디코딩을 위한 방법.
  6. 제1항에 있어서,
    상기 제2 SEI 메시지는, 상기 제1 SEI 메시지가 상기 CVS에 포함되는 것에 기반하여, 상기 CVS에 포함되고, 그리고
    상기 결정하는 단계 및 상기 디스플레이하는 단계는, 상기 제1 SEI 메시지 및 상기 제2 SEI 메시지가 상기 CVS에 포함되는 것에 기반하여 수행되는, 비디오 디코더에서의 비디오 디코딩을 위한 방법.
  7. 제1항에 있어서,
    상기 CVS는 3D 참조 디스플레이 정보를 포함하는 제3 SEI 메시지를 포함하고, 상기 3D 참조 디스플레이 정보는 좌측 뷰의 뷰 식별자, 우측 뷰의 뷰 식별자, 및 참조 디스플레이의 참조 디스플레이 폭을 지시하고, 그리고
    상기 방법은,
    상기 제1 SEI 메시지로부터 상기 뷰의 수를 지시하는 제1 값을 도출하는 단계;
    상기 제3 SEI 메시지로부터 상기 뷰의 수와 연관된 제3 값을 획득하는 단계 ― 상기 제3 값은 상기 제1 값과 상이함―; 및
    적합성 체크에서, 1 + 상기 제3 값을 상기 제1 값과 비교하는 단계
    를 포함하는, 비디오 디코더에서의 비디오 디코딩을 위한 방법.
  8. 제7항에 있어서,
    상기 제3 SEI 메시지는 상기 제3 SEI 메시지에서 시그널링되는 참조 디스플레이의 수를 지시하고, 그리고
    상기 참조 디스플레이 수의 최대 값은 상기 제3 SEI 메시지에서의 상기 뷰의 수와 연관된 상기 제3 값에 기반하는, 비디오 디코더에서의 비디오 디코딩을 위한 방법.
  9. 제1항에 있어서,
    상기 제1 SEI 메시지는 SDI SEI 메시지이고, 상기 제2 SEI 메시지는 MVP SEI 메시지인, 비디오 디코더에서의 비디오 디코딩을 위한 방법.
  10. 비디오 디코딩을 위한 장치로서,
    프로세싱 회로부를 포함하고,
    상기 프로세싱 회로부는,
    비트스트림으로부터, 코딩된 비디오 시퀀스(CVS)의 개개의 계층의 뷰와 연관된 픽처를 디코딩하도록;
    제1 보충 향상 정보(SEI) 메시지 및 제2 SEI 메시지에 기반하여, 일 차원으로 디스플레이될 뷰의 포지션을 결정하도록 ― 상기 제1 SEI 메시지는 확장성 차원 정보(SDI)를 포함하고, 상기 제2 SEI 메시지는 멀티뷰 뷰 포지션(MVP) 정보를 포함함 ―; 그리고
    상기 일 차원의 뷰의 포지션에 기반하여, 상기 디코딩된 픽처를 디스플레이하도록
    구성되는, 비디오 디코딩을 위한 장치.
  11. 제10항에 있어서,
    상기 프로세싱 회로부는,
    상기 CVS의 개개의 계층의 뷰 각각에 대해,
    상기 제1 SEI 메시지에 기반하여 상기 개개의 뷰의 뷰 식별자를 결정하도록; 그리고
    상기 제2 SEI 메시지 내의 뷰 포지션 변수 및 상기 결정된 뷰 식별자에 기반하여, 상기 일 차원으로 디스플레이될 상기 개개의 뷰의 포지션을 결정하도록
    구성되는, 비디오 디코딩을 위한 장치.
  12. 제10항에 있어서,
    상기 프로세싱 회로부는,
    상기 제1 SEI 메시지로부터 상기 뷰의 수를 지시하는 제1 값을 도출하도록;
    상기 제2 SEI 메시지로부터 상기 뷰의 수와 연관된 제2 값을 획득하도록 ― 상기 제2 값은 상기 제1 값과 상이함―; 그리고
    적합성 체크에서, 1 + 상기 제2 값을 상기 제1 값과 비교하도록
    구성되는, 비디오 디코딩을 위한 장치.
  13. 제10항에 있어서,
    상기 제2 SEI 메시지는 상기 CVS의 인트라 랜덤 액세스 포인트(IRAP) 액세스 유닛과 연관되는, 비디오 디코딩을 위한 장치.
  14. 제10항에 있어서,
    상기 뷰의 포지션은 상기 CVS의 액세스 유닛에 적용되는, 비디오 디코딩을 위한 장치.
  15. 제10항에 있어서,
    상기 제2 SEI 메시지는, 상기 제1 SEI 메시지가 상기 CVS에 포함되는 것에 기반하여, 상기 CVS에 포함되고, 그리고
    상기 프로세싱 회로부는, 상기 제1 SEI 메시지 및 상기 제2 SEI 메시지가 상기 CVS에 포함되는 것에 기반하여 상기 결정하는 것 및 상기 디스플레이하는 것을 수행하도록 구성되는, 비디오 디코딩을 위한 장치.
  16. 제10항에 있어서,
    상기 CVS는 3D 참조 디스플레이 정보를 포함하는 제3 SEI 메시지를 포함하고, 상기 3D 참조 디스플레이 정보는 좌측 뷰의 뷰 식별자, 우측 뷰의 뷰 식별자, 및 참조 디스플레이의 참조 디스플레이 폭을 지시하고, 그리고
    상기 프로세싱 회로부는,
    상기 제1 SEI 메시지로부터 상기 뷰의 수를 지시하는 제1 값을 도출하도록;
    상기 제3 SEI 메시지로부터 상기 뷰의 수와 연관된 제3 값을 획득하도록 ― 상기 제3 값은 상기 제1 값과 상이함―; 그리고
    적합성 체크에서, 1 + 상기 제3 값을 상기 제1 값과 비교하도록
    구성되는, 비디오 디코딩을 위한 장치.
  17. 제16항에 있어서,
    상기 제3 SEI 메시지는 상기 제3 SEI 메시지에서 시그널링되는 참조 디스플레이의 수를 지시하고, 그리고
    상기 참조 디스플레이 수의 최대 값은 상기 제3 SEI 메시지에서의 상기 뷰의 수와 연관된 상기 제3 값에 기반하는, 비디오 디코딩을 위한 장치.
  18. 제10항에 있어서,
    상기 제1 SEI 메시지는 SDI SEI 메시지이고, 상기 제2 SEI 메시지는 MVP SEI 메시지인, 비디오 디코딩을 위한 장치.
  19. 비-일시적 컴퓨터-판독가능 저장 매체로서,
    비트스트림으로부터, 코딩된 비디오 시퀀스(CVS)의 개개의 계층의 뷰와 연관된 픽처를 디코딩하는 것;
    제1 보충 향상 정보(SEI) 메시지 및 제2 SEI 메시지에 기반하여, 일 차원으로 디스플레이될 뷰의 포지션을 결정하는 것 ― 상기 제1 SEI 메시지는 확장성 차원 정보(SDI)를 포함하고, 상기 제2 SEI 메시지는 멀티뷰 뷰 포지션(MVP) 정보를 포함함 ―; 그리고
    상기 일 차원의 뷰의 포지션에 기반하여, 상기 디코딩된 픽처를 디스플레이하는 것
    을 수행하도록, 적어도 하나의 프로세서에 의해 실행가능한 프로그램을 저장하는, 비-일시적 컴퓨터-판독가능 저장 매체.
  20. 제19항에 있어서,
    상기 프로그램은,
    상기 CVS의 개개의 계층의 뷰 각각에 대해,
    상기 제1 SEI 메시지에 기반하여 상기 개개의 뷰의 뷰 식별자를 결정하는 것; 그리고
    상기 제2 SEI 메시지 내의 뷰 포지션 변수 및 상기 결정된 뷰 식별자에 기반하여, 상기 일 차원으로 디스플레이될 상기 개개의 뷰의 포지션을 결정하는 것
    을 수행하도록, 상기 적어도 하나의 프로세서에 의해 실행가능한, 비-일시적 컴퓨터-판독가능 저장 매체.
KR1020237039703A 2021-06-28 2022-06-28 멀티뷰 뷰 포지션 보충 향상 정보 메시지 KR20230173699A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163215944P 2021-06-28 2021-06-28
US63/215,944 2021-06-28
US17/850,581 2022-06-27
US17/850,581 US20220417543A1 (en) 2021-06-28 2022-06-27 Multiview view position supplementary enhancement information message
PCT/US2022/073239 WO2023279010A1 (en) 2021-06-28 2022-06-28 Multiview view position supplementary enhancement information message

Publications (1)

Publication Number Publication Date
KR20230173699A true KR20230173699A (ko) 2023-12-27

Family

ID=84541799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237039703A KR20230173699A (ko) 2021-06-28 2022-06-28 멀티뷰 뷰 포지션 보충 향상 정보 메시지

Country Status (6)

Country Link
US (1) US20220417543A1 (ko)
EP (1) EP4136842A4 (ko)
JP (1) JP2023543891A (ko)
KR (1) KR20230173699A (ko)
CN (1) CN116325725A (ko)
WO (1) WO2023279010A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8126260B2 (en) * 2007-05-29 2012-02-28 Cognex Corporation System and method for locating a three-dimensional object using machine vision
US10158873B2 (en) * 2011-11-30 2018-12-18 Qualcomm Incorporated Depth component removal for multiview video coding (MVC) compatible three-dimensional video coding (3DVC)
KR101595397B1 (ko) * 2013-07-26 2016-02-29 경희대학교 산학협력단 서로 다른 다계층 비디오 코덱의 통합 부호화/복호화 방법 및 장치
US10958934B2 (en) * 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
US11284066B2 (en) * 2018-10-10 2022-03-22 Tencent America LLC Method and apparatus for intra block copy in intra-inter blending mode and triangle prediction unit mode

Also Published As

Publication number Publication date
EP4136842A1 (en) 2023-02-22
JP2023543891A (ja) 2023-10-18
US20220417543A1 (en) 2022-12-29
EP4136842A4 (en) 2023-10-18
WO2023279010A1 (en) 2023-01-05
CN116325725A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
KR102472686B1 (ko) 비디오 코딩을 위한 방법 및 장치
KR102530377B1 (ko) 비디오 코딩을 위한 방법 및 장치
KR102637562B1 (ko) 비디오 압축에서의 비-정사각형 블록들에 대한 인트라 예측을 위한 방법 및 장치
JP7391121B2 (ja) ビデオエンコーディング及びデコーディングのための方法、装置、コンピュータプログラム、及び非一時的なコンピュータ可読媒体
KR102542428B1 (ko) 인트라 모드 코딩을 위한 방법 및 장치
KR102496457B1 (ko) 비디오 코딩에서 추가적인 중간 후보들을 갖는 병합 모드를 위한 방법 및 장치
US11394957B2 (en) Constraints on reference sample locations in the dedicated buffer for intra picture block compensation
KR20200125733A (ko) 비디오 코딩을 위한 방법 및 장치
KR20210068512A (ko) 비디오 코딩을 위한 방법 및 장치
CN113711586A (zh) 简化的最可能模式列表生成方案
JP7399550B2 (ja) 動きベクトル差シグナリングを用いたジオメトリ分割モードおよびマージモード
KR20240050427A (ko) 루마 인트라 예측 모드로부터의 크로마에 대한 다운샘플링 필터들의 시그널링
CN112437306A (zh) 视频编解码方法、装置、计算机设备和存储介质
US11750843B2 (en) Multiview-related supplementary enhancement information messages
US20220417543A1 (en) Multiview view position supplementary enhancement information message
US20230097425A1 (en) Techniques for signaling multiview view positions in sei message
US11785239B2 (en) Independent coded region output supplementary enhancement information message
KR20230169953A (ko) 루마로부터의 크로마 인트라 예측 모드에서 파라미터를 스케일링하는 개선된 시그널링 방법
JP2024508459A (ja) ビデオ復号化方法及び装置、並びにビデオ符号化方法
KR20240052053A (ko) 루마로부터 크로마 인트라 예측 모드에 대한 다운샘플링 필터의 시그널링

Legal Events

Date Code Title Description
A201 Request for examination