KR20110014507A - 비디오 인코딩/디코딩 방법 및 그 장치 - Google Patents

비디오 인코딩/디코딩 방법 및 그 장치 Download PDF

Info

Publication number
KR20110014507A
KR20110014507A KR1020100019893A KR20100019893A KR20110014507A KR 20110014507 A KR20110014507 A KR 20110014507A KR 1020100019893 A KR1020100019893 A KR 1020100019893A KR 20100019893 A KR20100019893 A KR 20100019893A KR 20110014507 A KR20110014507 A KR 20110014507A
Authority
KR
South Korea
Prior art keywords
layer
view
bitstream
prediction structure
video
Prior art date
Application number
KR1020100019893A
Other languages
English (en)
Other versions
KR101144752B1 (ko
Inventor
박광훈
박민우
Original Assignee
경희대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경희대학교 산학협력단 filed Critical 경희대학교 산학협력단
Publication of KR20110014507A publication Critical patent/KR20110014507A/ko
Application granted granted Critical
Publication of KR101144752B1 publication Critical patent/KR101144752B1/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • 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/187Methods 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 scalable video layer
    • 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
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

비디오 인코딩/디코딩 방법 및 그 장치가 개시(disclose)된다. 일실시예에 따른 방법은 복수의 시점별 비디오 영상들을 부호화하되, 상기 복수의 시점별 비디오 영상들 중 적어도 하나에 대해서는 다시점 비디오 인코딩을 적용하고, 상기 복수의 시점별 비디오 영상들 중 적어도 하나에 대해서는 스케일러블 비디오 인코딩을 적용하여, 시점별 계층별 비트스트림들을 생성하는 단계; 및 상기 생성된 시점별 계층별 비트스트림들을, 시점 및 계층에 기초한 미리 설정된 순서에 따라 조합하여, 출력 비트스트림을 생성하는 단계를 포함한다.

Description

비디오 인코딩/디코딩 방법 및 그 장치 {video encoding/decoding method and apparatus thereof}
개시된 기술은, 비디오 인코딩/디코딩 기술에 관한 것으로, 보다 상세하지만 제한됨이 없이는(more particularly, but not exclusively), 다양한 종류의 네트워크 환경과 다양한 포맷의 단말들 - 다양한 종류의 실감형(Realistic) 디스플레이(예컨대, 스테레오스코픽 디스플레이, 다시점 디스플레이, 시점 선택형 디스플레이 등)를 지원하는 단말과 기존의 다양한 종류의 2차원 디스플레이를 지원하는 단말 등을 포함함 - 을 고려하여 영상 정보를 효율적으로 처리할 수 있는 비디오 인코딩/디코딩 기술에 관한 것이다.
최근, 비디오 코딩 기술의 급속한 발전을 통하여, 다양한 응용 분야(예컨대, 통신, 방송, 저장매체 등)에서 사용자는 고해상도 및/또는 고화질의 영상 서비스를 향유할 수 있게 되었다.
한편, 현재까지는 주로 2차원 평면 디스플레이 장치를 지원하거나 특정 포맷 - 예컨대, 특정 어플리케이션/전송 환경/단말에 전용적인(dedicated) 영상 포맷 - 에 한하여 지원하는 비디오 코딩 기술이 사용되고 있지만, 앞으로는 다시점 비디오 코딩 (Multi-view Video Coding : MVC) 기술과 스케일러블 비디오 코딩 (Scalable Video Coding : SVC) 기술이 급속도로 보급될 것으로 예상되고 있다.
개시된 기술이 이루고자 하는 기술적 과제는 다양한 종류의 네트워크 환경과 다양한 종류의 단말을 고려하여 영상 정보를 효율적으로 처리할 수 있는 기술을 제공하는 데 있다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 일 측면은 (a) 복수의 시점별 비디오 영상들을 부호화하되, 상기 복수의 시점별 비디오 영상들 중 적어도 하나에 대해서는 다시점 비디오 인코딩을 적용하고, 상기 복수의 시점별 비디오 영상들 중 적어도 하나에 대해서는 스케일러블 비디오 인코딩을 적용하여, 시점별 계층별 비트스트림들을 생성하는 단계; 및 (b) 상기 생성된 시점별 계층별 비트스트림들을, 시점 및 계층에 기초한 미리 설정된 순서에 따라 조합하여, 출력 비트스트림을 생성하는 단계를 포함하는 비디오 인코딩 방법을 제공한다.
일실시예에 있어서, 상기 (a) 단계는, 상기 복수의 시점별 비디오 영상들 중 적어도 하나에 대해서는 다시점 비디오 인코딩 및 스케일러블 비디오 인코딩을 적용하는 단계를 포함한다.
일실시예에 있어서, 상기 (a) 단계에서 상기 다시점 비디오 코딩을 적용하는 것은, 타 시점의 비디오 영상 정보에 기초한 시점간 예측을 수행하는 것을 포함한다.
일실시예에 있어서, 상기 (a) 단계에서 상기 스케일러블 비디오 코딩을 적용하는 것은, 하위 계층에 대한 비디오 인코딩으로 얻어지는 비디오 영상 정보 및 현재 계층의 비디오 영상을 기초로 현재 계층의 비디오 영상을 부호화하는 것을 포함한다.
일실시예에 있어서, 상기 (a) 단계는, 계층별로 예측 구조를 설정하고, 상기 설정된 계층별 예측 구조에 따라 스케일러블 비디오 인코딩하는 단계를 포함한다.
일실시예에 있어서, 상기 (a) 단계는, 현재 시점 영상의 현재 계층의 예측 구조가, 상기 현재 시점 영상의 하위 계층의 예측 구조와 동일한지 여부를 판단하는 단계; 및 상기 판단 결과에 따라 상기 하위 계층의 예측 구조를 사용할지 여부를 결정하여 상기 현재 계층의 예측 구조를 인코딩하는 단계를 포함한다.
일실시예에 있어서, 상기 스케일러블 비디오 인코딩은, 상기 복수 개의 시점별 영상들에 대해, 공간적 스케일러블 비디오 인코딩, 시간적 스케일러블 비디오 인코딩 및 화질적 스케일러블 비디오 인코딩 중 적어도 하나를 포함한다.
일실시예에 있어서, 상기 (b) 단계는, 시간 순서에 따라 동일한 시간대의 시점별 계층별 비트스트림들끼리 나열한 시간대별 액세스 유닛(Access Unit)들을 생성하여, 상기 시간대별 액세스 유닛들을 시간 순서에 따라 나열한 다시점 스케일러블 비디오 비트스트림을 출력하는 단계를 포함한다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 다른 측면은 (a) 비트스트림을 수신하는 단계; (b) 상기 수신된 비트스트림으로부터 시점별 계층별 비트스트림들로 분할하는 단계; 및 (c) 상기 시점별 계층별 비트스트림들에 대해, 시점 간 정보 및 계층 간 정보를 이용하여 다시점 스케일러블 비디오 디코딩을 수행하는 단계를 포함하는 비디오 디코딩 방법을 제공한다.
일실시예에 있어서, 상기 (b) 단계는, 상기 비디오 비트스트림 중, 계층 및 시점에 따라 디코딩이 필요한 비트스트림을 선택하는 단계를 포함한다.
일실시예에 있어서, 상기 (c) 단계는, 현재 시점 영상에 대한 하위 계층의 영상 또는 하위 계층의 정보가 존부에 따라 계층 간 스케일러블 비디오 디코딩의 수행 여부를 판단하는 단계; 시점 방향 예측 코딩 수행 여부에 따라 다시점 비디오 디코딩의 수행 여부를 판단하는 단계; 및 상기 스케일러블 비디오 디코딩의 수행 여부 판단 결과 및 상기 다시점 비디오 디코딩의 수행 여부 판단 결과에 따라, 상기 현재 시점 영상에 대해 다시점 스케일러블 비디오 디코딩, 단일 시점 스케일러블 비디오 디코딩, 다시점 비디오 디코딩 및 단일 시점 비디오 디코딩 중 하나를 수행하는 단계를 포함한다.
일실시예에 있어서, 상기 (c) 단계는, 계층별로 설정된 예측 구조에 따라 디코딩하는 단계를 포함한다.
일실시예에 있어서, 상기 (c) 단계는, 상기 복수 개의 시점들 중, 현재 시점 이외의 다른 시점의 영상 정보를 참조하여 상기 현재 시점의 영상에 대해 다시점 비디오 디코딩을 수행하는 단계를 포함한다.
일실시예에 있어서, 상기 (b) 단계는, 상기 수신된 다시점 스케일러블 비디오 비트스트림을 시간 순서에 따라 나열된 시간대별 액세스 유닛들로 분할하고, 상기 시간대별 액세스 유닛들을 시간 순서에 따라 동일한 시간대의 시점별 계층별 비트스트림들로 분할하는 단계를 포함한다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 또 다른 측면은 복수 개의 시점별 영상들에 대해, 시점 간 정보 및 계층 간 정보를 이용한 다시점 스케일러블 비디오 인코딩을 수행하는 부호화부; 및 상기 시점별 영상들에 대한 스케일러블 비디오 인코딩에 의해 생성된 시점별 계층별 비트스트림을, 상기 시점 및 계층을 고려한 순서에 따라 조합하여 다시점 스케일러블 비디오 비트스트림을 출력하는 출력부를 포함하는 비디오 인코딩 장치를 제공한다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 또 다른 측면은 다시점 스케일러블 비디오 비트스트림을 수신하는 수신부; 상기 다시점 스케일러블 비디오 비트스트림의 복수 개의 시점들 및 복수 개의 계층들에 기초하여, 상기 다시점 스케일러블 비디오 비트스트림을 시점별 계층별 비트스트림들로 분할하는 분할부; 및 상기 시점별 계층별 비트스트림들에 대해, 시점 간 정보 및 계층 간 정보를 이용하여 다시점 스케일러블 비디오 디코딩을 수행하는 복호화부를 포함하는 비디오 디코딩 장치를 제공한다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 또 다른 측면은 개시된 비디오 인코딩 방법을 구현하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체를 제공한다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 또 다른 측면은 개시된 비디오 디코딩 방법을 구현하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체를 제공한다.
개시된 기술의 일 실시예들은 다음의 장점들을 포함하는 효과를 가질 수 있다. 다만, 개시된 기술의 모든 실시예들이 이를 전부 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
개시된 기술(예컨대, 다시점 스케일러블 비디오 인코딩/디코딩 기술, 계층별 적응적 예측 기술 등)을 통하여, 유비쿼터스 환경에서 실감형 단말과 기존 2차원 단말들에게 비디오 정보가 통합적으로 처리되어 손쉽게 변환, 전송될 수 있다.
도 1은 다시점 비디오 코딩 기술에서 사용되는 예측 구조의 일례를 나타낸다.
도 2는 스케일러블 비디오 코딩 기술을 사용하지 않는 방식과 스케일러블 비디오 코딩 기술을 사용하는 방식을 비교 설명하기 위한 도면이다.
도 3은 일실시예에 따른 다시점 스케일러블 비디오 인코딩 장치의 블록도를 도시한다.
도 4는 일실시예에 따른 다시점 스케일러블 비디오 디코딩 장치의 블록도를 도시한다.
도 5는 일실시예에 따라 구현 가능한 실감형 다시점 스케일러블 비디오 서비스의 개요도를 도시한다.
도 6은 일실시예에 따른 다시점 스케일러블 비디오 인코딩을 위한 구현된 인코더의 구조를 도시한다.
도 7은 일실시예에 따른 다시점 스케일러블 비디오 인코딩을 위한 구현된 인코더의 상세한 구조를 도시한다.
도 8은 일실시예에 따라 출력되는 비트스트림을 조합하기 위한 구조를 도시한다.
도 9는 일실시예에 따른 다시점 비디오 인코딩에 의해 생성된 비트스트림의 구성을 도시한다.
도 10은 일실시예에 따른 다시점 스케일러블 비디오 인코딩에 의해 생성된 비트스트림의 구성을 도시한다.
도 11은 일 실시예에 따른 시점별 계층별 비트스트림들을 도시한다.
도 12는 일 실시예에 따른 다시점 스케일러블 비디오 비트스트림의 상세한 구성을 도시한다.
도 13은 일 실시예에 따른 다시점 비디오 디코딩을 위한 구현된 디코더의 구조를 도시한다.
도 14는 일 실시예에 따른 다시점 스케일러블 비디오 디코딩을 위한 구현된 디코더의 구조를 도시한다.
도 15는 다른 일실시예에 따른 다시점 스케일러블 비디오 디코딩을 위한 구현된 디코더의 구조를 도시한다.
도 16은 일실시예에 따라, 서브 디코더에서 각 픽처 또는 슬라이스 단위로 디코딩을 수행하는 방법의 흐름도를 도시한다.
도 17은 일실시예에 따른, 단일 영상 및 영상 간 스케일러블 비디오 디코딩에 필요한 정보들을 도시한다.
도 18은 일실시예에 따른 계층별 예측 구조에 따라, 현재 계층의 예측 구조를 설정하는 일 방법의 흐름도를 도시한다.
도 19는 일실시예에 따른 계층별 예측 구조에 따라, 현재 계층의 예측 구조를 설정하는 다른 방법의 흐름도를 도시한다.
도 20은 다른 일실시예에 따른 계층별 예측 구조에 따라, 하위 계층의 예측 구조를 선택적으로 사용하여 현재 계층의 예측 구조를 코딩하는 일 방법의 흐름도를 도시한다.
도 21은 다른 일실시예에 따른 계층별 예측 구조에 따라, 하위 계층의 예측 구조를 선택적으로 사용하여 현재 계층의 예측 구조를 코딩하는 다른 방법의 흐름도를 도시한다.
도 22는 일실시예에 따라 4개의 시점 및 2개의 공간적 계층을 가지는 다시점 스케일러블 비디오 코딩에서 공간적 현재 계층 및 하위 계층의 예측 구조의 일례를 도시한다.
도 23은 일실시예에 따라 4개의 시점 및 2개의 공간적 계층을 가지는 다시점 스케일러블 비디오 코딩에서 공간적 현재 계층 및 하위 계층의 예측 구조의 다른 예를 도시한다.
도 24는 일실시예에 따라 4개의 시점 및 2개의 공간적 계층을 가지는 다시점 스케일러블 비디오 코딩에서 공간적 현재 계층 및 하위 계층의 예측 구조의 또 다른 실시예를 도시한다.
도 25는 다른 일실시예에 따른 다시점 스케일러블 비디오 인코더의 블록도를 도시한다.
도 26은 다른 일실시예에 따른 다시점 스케일러블 비디오 디코더의 블록도를 도시한다.
도 27은 일실시예에 따른 다시점 스케일러블 비디오 인코딩 방법의 흐름도를 도시한다.
도 28은 일실시예에 따른 다시점 스케일러블 비디오 디코딩 방법의 흐름도를 도시한다.
본 발명의 실시예들에 관한 설명은 본 발명의 구조적 내지 기능적 설명들을 위하여 예시된 것에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예들에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 본 발명의 실시예들은 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.
한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로 이들 용어들에 의해 본 발명의 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
"및/또는"의 용어는 하나 이상의 관련 항목으로부터 제시가능 한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, "제1 항목, 제2 항목 및/또는 제3 항목"의 의미는 "제1 항목, 제2 항목 및 제3 항목 중 적어도 하나 이상"을 의미하는 것으로, 제1, 제2 또는 제3 항목뿐만 아니라 제1, 제2 및 제3 항목들 중 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 발명에서 기재된 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명에서 기술한 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
먼저, 다시점 비디오 코딩 기술은, 기존의 비디오 국제표준인 MPEG-4 part 10 Advanced Video Coding(AVC; H.264) 방식에 기초하되 다양한 형태 안에서 일정한 간격으로 떨어져 있는 다수의 카메라로부터 입력된 복수의 시점의 비디오 영상들을 효율적으로 부호화하는 기술로서, 3차원 TV(3DTV)나 FTV(Free Viewpoint TV) 등의 실감형 디스플레이 장치를 지원한다. 이 다시점 비디오 부호화 기술에서는, 시간 방향으로는 JSVC(Joint Scalable Video Coding) 방식에서 시간적 스케일러빌리티(temporal scalability)를 지원하기 위해 수행되는 방법인 계층적 B-픽쳐(hierarchical B-pictures) 부호화가 사용되고, 시점 방향으로는 시점간 예측(inter-view prediction)이 사용된다.
도 1은 다시점 비디오 코딩 기술에서 사용되는 예측 구조의 일례를 나타내며, 보다 상세하게는, 8개의 시점 비디오 영상들이 존재하며, 시간 방향의 GOP(Group of Pictures)의 크기가 8 (=N)일 경우의 예측 구조를 나타낸다.
도 1에서, S0, S0, S1, S2, S3, S4, S5, S6, S7는 각각 하나의 시점(view)을 나타내고, T0, T1, T2, T3, ..., T16은 시간 상의 흐름을 나타낸다. 다시점 비디오 코딩 기술에서는, 도 1의 화살표 방향에 따라 다른 시점의 비디오 영상을 참조하는 부호화 즉, 시점 방향의 예측(시점간 예측)이 수행된다.
다음으로, 스케일러블 비디오 코딩 방식은 ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)의 MPEG 회의에서 2004년 3월에 표준화를 시작하였고, H.264 코딩 기술을 기반으로 표준화를 수행하기로 결정된 후 2005년 1월부터 JVT (Joint Video Team)에서 표준화를 진행하였으며, 2007년 7월 표준화가 완료되어 H.264 Amendment 3이 완성되었다. 스케일러블 비디오 코딩 방식은 다양한 종류의 단말들과 다양한 전송환경에서 비디오 정보를 통합적으로 취급하기 위한 기술로써 다양한 공간적 해상도(Spatial Resolution), 다양한 프레임율(Frame-rate)과 다양한 화질(Quality)를 지원 가능한 하나의 통합된 데이터를 생성하여 다양한 전송환경과 다양한 단말들에게 데이터를 효율적으로 전송할 수 있도록 지원하는 방법이다.
도 2는 스케일러블 비디오 코딩 기술을 사용하지 않는 방식(이하, 제1 방식)과 스케일러블 비디오 코딩 기술을 사용하는 방식(이하, 제2 방식)을 비교 설명하기 위한 도면이다. 도 2에서는, 4CIF(4ㅧCommon Intermediate Format, 704ㅧ576) 해상도의 비디오 컨텐트(Content)(200)를 CIF(352ㅧ288)급의 저화질(Low Quality) 2차원 디스플레이 장치(210), CIF급 고화질(High Quality) 2차원 디스플레이 장치(220), 및 4CIF급 고화질 2차원 디스플레이 장치(230)에 각각 전달한다고 전제한다.
제1 방식(240)에 따르면, 각각의 장치(210, 220, 230)의 포맷에 적합하도록 비디오 인코더들(242, 244, 246)은 각각의 인코딩 과정을 수행해서 각각의 비트스트림(252, 254, 256)을 생성해야 한다. 또한, 생성된 비트스트림들(252, 254, 256)을 모두 저장하는 전달해야 하는 복잡한 과정을 거치게 된다.
이에 반해 제2 방식(260)에 따르면, SVC 인코더(265)가 스케일러블 비디오 코딩 방식에 따른 인코딩 과정을 한번만 수행하여, SVC 비트스트림(275)을 생성한 후, SVC 비트스트림(275)에서 각각의 장치(210, 220, 230)에 맞도록 비트스트림을 추출 과정(285)를 거쳐 전송하면 된다.
실감형 디스플레이 장치들을 지원하기 위해 다시점 영상을 효율적으로 코딩하는 방법인 다시점 비디오 코딩 표준과, 다양한 전송환경과 다양한 종류의 단말들을 통합적으로 효율적으로 코딩 전송할 수 있는 스케일러블 비디오 코딩 표준이 존재하지만, 유비쿼터스 환경에서 실감형 단말들과 기존 2차원 단말들에게 비디오 정보를 통합적으로 처리하는 방법은 현재 존재하지 않는다.
비디오 코딩 기술의 발전을 통해 사용자가 고화질, 고해상도의 비디오 정보를 접할 수 있게 되었지만, 이들은 단지 2차원 평면 디스플레이 장치를 지원하기 위한 방법일 뿐이며 사용자에게 입체감을 주거나 시점을 자유롭게 선택할 수 있도록 하는 실감형 서비스(Realistic Service)를 고려하지 않고 있다.
또한 앞으로는 방송/통신의 융합 및 유/무선의 융합 등의 과정을 통해 다양한 전송환경 속에서 다양한 종류의 단말들이 혼재하는 유비쿼터스(Ubiquitous) 환경에서 비디오 정보를 효율적으로 전달할 수 있어야 한다. 하지만 이들 비디오 코딩 방법은 각각의 어플리케이션에서 특정한 전송환경과 특정한 단말을 대상으로 한정된 코딩을 수행하도록 설계되어 있기 때문에 효율적인 처리가 불가능하다.
만약 기존의 비디오 코딩 방법을 이용하여 하나의 비디오 정보를 서비스한다고 가정하면 다양한 전송환경과 단말들을 지원하기 위해 반복적으로 인코딩을 수행해야 하기 때문에 상당히 어렵고 복잡한 작업이 될 수 있음을 예상할 수 있다.
현재 실감형 콘텐츠에 대한 관심 및 사용자 욕구가 매우 높으며, 다양한 종류의 실감형 디스플레이 장치들이 상용화될 것으로 예측된다. 실감형 컨텐트에 대한 사용자의 관심은 영화산업을 중심으로 급격하게 높아지고 있으며, 현재 개인용 스테레오스코픽 디스플레이 장치나 다시점 영상 디스플레이 장치와 같은 실감형 디스플레이 장치들이 다양한 플랫폼에서 개발되고 있다.
따라서, 실감형 비디오 컨텐트를 다양한 전송 환경과 다양한 단말들에게 효율적으로 전달될 수 있도록, 실감형 서비스를 지원하고 다양한 전송 환경과 다양한 단말들의 다양한 포맷들을 지원하는 비디오 정보들을 통합적으로 처리하는 기술이 필요하다.
이하 도 3 내지 29를 참조하여, 각 실시예에 따른 다시점 스케일러블 비디오 인코딩/디코딩 기술을 상세히 설명한다.
도 3은 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치의 구성을 나타내는 블록도이다.
일실시예에 있어서, 다시점 스케일러블 비디오 인코딩 장치(300)는 부호화부(320) 및 출력부(330)를 포함하여 이루어지며, 다른 일실시예에 있어서, 도 3에 도시된 바와 같이, 다시점 스케일러블 비디오 인코딩 장치(300)는 획득부(310)를 더 포함할 수 있다.
획득부(310)는, 서로 다른 시점을 가진 복수의 비디오 영상들(이하, 시점 비디오 영상)을 획득하여 시점 비디오 영상들을 미리 설정된 영상 처리 단위로 출력한다. 비디오 영상을 획득하는 방법의 예로는, 획득부(310)가 촬영 모듈(예컨대, 다시점 카메라 또는 복수의 카메라들)을 구비하여 시점 비디오 영상들을 촬영을 통하여 획득하는 방법, 획득부(310)가 외부의 촬영 모듈로부터 시점 비디오 영상들을 제공받는 방법, 저장 매체(예컨대, 하드디스크, CD 롬 등)에 기록된 시점 비디오 영상들을 독취하는 방법을 들 수 있으나, 반드시 이에 한정되는 것은 아니다. 미리 설정된 영상 처리 단위의 예로는, 픽처, 슬라이스, 프레임, 필드 등을 들 수 있으나 반드시 이에 한정되는 것은 아니다. 또한, 본 명세서에서는, 편의상, 개시된 기술에 따른 영상 처리 방식을 픽처 단위로 주로 설명할 것이나, 기타의 영상 처리 단위(예컨대, 슬라이스 등)를 사용하는 영상 처리 방식도 본 발명의 범주에 속함은 이 분야에 종사하는 자라면 충분히 이해할 수 있다.
부호화부(320)는, 획득부(310)로부터 제공되는 복수의 시점 비디오 영상들을 부호화하되, 상기 복수의 시점 비디오 영상들 중 적어도 하나에 대해서는 다시점 비디오 코딩을 적용하고, 상기 복수의 시점 비디오 영상들 중 적어도 하나에 대해서는 스케일러블 비디오 코딩을 적용하여, 시점별 계층별 비트스트림들을 생성한다. 여기서, N개의 시점 비디오 영상(제1 내지 제N 시점 비디오 영상)은 동일한 해상도를 가질 수도 있고, 동일하지 않은 해상도를 가질 수도 있다. 일실시예에 있어서, 부호화부(320)는 복수의 시점별 비디오 영상들 중 적어도 하나에 대해서는 다시점 비디오 코딩 및 스케일러블 비디오 코딩을 적용할 수 있다.
해당 시점의 비디오 영상에 다시점 비디오 코딩을 적용하는 방법으로는, 타 시점의 비디오 영상 정보에 기초한 시점간 예측(inter-view prediction)을 통하여 상기 해당 시점의 비디오 영상을 부호화하는 방법을 들 수 있으나, 반드시 이에 한정되는 것은 아니다. 본 명세서에서, 비디오 영상 정보는 재구성 비디오 영상(예컨대, 타 시점의 재구성 비디오 영상, 하위 계층의 재구성 비디오 영상, 타 시점의 비디오 영상에 스케일러블 비디오 코딩이 적용된 경우, 타 시점의 계층별 재구성 비디오 영상 등), 및 부호화 정보(예컨대, 타 시점의 부호화 정보, 하위 계층의 부호화 정보, 타 시점의 비디오 영상에 스케일러블 비디오 코딩이 적용된 경우, 타시점의 계층별 부호화 정보 등)를 포괄하는 용어로 사용되며, 부호화 정보는 움직임 벡터, 부호화에 사용된 블록 타입(예컨대, 움직임 추정에 사용되는 블록 타입, DCT에 사용되는 블록 타입 등), 변환 계수 등을 포괄하는 용어로 사용된다.
또한, 해당 시점의 비디오 영상에 스케일러블 비디오 코딩을 적용하는 방법으로는, 상기 해당 시점의 하위 계층에 대한 부호화로 얻어지는 비디오 영상 정보 및 상기 해당 시점의 현재 계층의 비디오 영상을 기초로 현재 계층의 비디오 영상을 부호화하는 방법을 들 수 있으나, 반드시 이에 한정되는 것은 아니다. 스케일러블 비디오 코딩의 예로는 공간적 스케일러블 비디오 코딩, 시간적 스케일러블 비디오 코딩, 및 화질적 스케일러블 비디오 코딩 등을 들 수 있다. 공간적 스케일러블 비디오 코딩의 일례에 따르면, 공간적 해상도에 따라 현재 계층의 영상 및 하위 계층의 영상이 생성되고, 하위 계층의 영상을 참조하여 현재 계층의 영상을 예측할 수 있다. 또한 시간적 스케일러블 비디오 코딩의 일례에 따르면 프레임율에 따라 상위 및 하위 계층의 영상들이 생성되고, 화질적 스케일러블 비디오 코딩의 일례에 따라 화질에 따른 상위 및 하위 계층이 구별될 수 있다.
부호화부(320)의 다시점 스케일러블 비디오 코딩의 일례에 따라, 소정 시점에 대해, 입력 영상을 다운샘플링하여 해상도가 감소된 하위 계층의 영상이 생성되고, 하위 계층의 영상에 대해 시간적 스케일러블 비디오 코딩 및 화질적 스케일러블 비디오 코딩이 수행될 수 있다. 이때 일 실시예에 따른 부호화부(320)는, 입력 영상의 현재 계층의 영상에 대한 스케일러블 비디오 코딩을 위해, 하위 계층의 영상에 대해 시간적 스케일러블 비디오 코딩된 결과를 참조하여 공간적 스케일러블 비디오 코딩을 수행하고, 시간적 스케일러블 비디오 코딩 및 화질적 스케일러블 비디오 코딩을 선택적으로 수행할 수 있다. 이 때, 하위 계층에 대한 시간적 스케일러블 비디오 코딩 및 현재 계층에 대한 공간적 스케일러블 비디오 코딩은 소정 시점 이외의 다른 시점들의 영상들에 대한 부호화 정보를 참조함으로써, 인코딩 수행부(320)의 다시점 스케일러블 비디오 코딩의 일례가 수행될 수 있다.
일실시예에 있어서, 인코딩 수행부(320)는 계층별로 예측 구조를 적응적으로 설정하여, 계층별로 설정된 예측 구조에 따라 인코딩할 수 있다. 일례로, 공간적 계층 또는 화질적 계층에 따른 계층별로 시간 방향(temporal direction) 예측 구조 또는 시점 방향(view direction) 예측 구조가 적응적으로 결정될 수 있다. 이하, 일 실시예에 따라 계층별로 예측 구조를 개별적으로 설정한 일실시예의 예측 구조를 '계층별 예측 구조'라 지칭한다.
일실시예에 있어서, 계층별 예측 구조에 따른 부호화부(320)는, 모든 계층에 대해 계층별 예측 구조를 설정한 후, 각각의 계층별로 계층별 예측 구조에 따른 부호화를 수행할 수 있다. 또한, 다른 일실시예에 있어서, 계층별 예측 구조에 따른 인코딩 수행부(320)는, 계층마다 반복적으로, 예측 구조를 개별적으로 설정한 후, 설정된 예측 구조에 따른 부호화를 수행할 수 있다.
일실시예에 있어서, 계층별 예측 구조에 따른 부호화부(320)는, 현재 시점의 비디오 영상의 현재 계층의 예측 구조가, 현재 시점의 비디오 영상의 하위 계층의 예측 구조와 동일한지 여부를 판단하고, 판단 결과에 따라 하위 계층의 예측 구조를 사용할지 여부를 결정하여 현재 계층의 예측 구조를 인코딩할 수 있다. 이때 참조되는 하위 계층은, 현재 계층의 한 계층 하위의 하위 계층 또는 복수 개의 하위 계층들 중 선택된 소정 계층일 수 있다.
일실시예에 있어서, 계층별 예측 구조에 따른 부호화부(320)는, 공간적 향상 계층의 시점 방향 예측 구조를, 공간적 기본 계층의 시점 방향 예측 구조와 독립적으로 설정할 수 있다. 일례로, 계층별 예측 구조에 따른 부호화부(320)는, 공간적 기본 계층의 시점 방향 예측 구조는 모든 픽처에 대해 시점 방향 예측을 수행하는 반면에, 공간적 향상 계층에 대해서는 비앵커 픽처들 또는 모든 픽처들에 대해서는 시점 방향 예측을 수행하지 않는 예측 구조를 설정할 수 있다.
일 실시예에 있어서, 부호화부(320)는, 계층별 예측 구조에 따라 하위 계층의 부호화 정보를 이용하여 현재 계층의 예측 구조를 예측하도록 설정되었지만, 하위 계층의 부호화 정보가 현재 계층의 예측 구조의 부호화에 사용될 수 없는 구조인 경우(예컨대, 하위 계층의 부호화 정보가 현재 계층 픽처의 예측 구조에 부합하지 않는 경우), 하위 계층의 부호화 정보를 사용하지 않을 수 있다.
다른 일실시예에 있어서, 부호화부(320)는 현재 계층의 예측 구조와 부합하는 부분만 사용할 수 있다. 일례로, 만약 현재 계층의 픽처의 예측 구조가 시간 방향의 예측만을 허용하는데, 하위 계층의 부호화 정보가 시간 방향과 시점 방향의 예측을 모두 수행한 결과라면, 부호화부(320)는 하위 계층의 부호화 정보 중 시간 방향의 예측 정보만을 참조하여 현재 계층의 예측 구조에 따른 부호화를 수행할 수 있다. 다른 일례로, 현재 계층의 예측 구조가 시간 방향의 예측만을 허용하는데 하위 계층의 부호화 정보가 시점 방향의 예측을 수행한 결과라면, 부호화부(320)는 하위 계층의 블록 타입 및 분할 정보만을 참조할 수 있다.
출력부(330)는 부호화부(320)에서 생성된 시점별 계층별 비트스트림들을, 시점 및 계층에 기초한 미리 설정된 순서에 따라 조합하여, 출력 비트스트림(즉, 다시점 스케일러블 비디오 비트스트림)을 생성한다. 일실시예에 있어서, 출력부(330)는 시간 순서에 따라 동일한 시간대의 시점별 계층별 비트스트림들끼리 나열한 시간대별 액세스 유닛(Access Unit)들을 생성할 수 있다. 액세스 유닛은 날 유닛(NAL unit)의 일종이다. 시간대별 액세스 유닛들은 시간 순서에 따라 나열되어 다시점 스케일러블 비디오 비트스트림을 구성할 수 있다. 다시점 스케일러블 비디오 비트스트림 구성 방법에 대해서는 이하 도 9 내지 도 13을 참조하여 보다 상세히 설명된다.
일실시예에 있어서, 다시점 스케일러블 비디오 코딩 장치(300)는, 액세스 유닛의 시점별 계층별 비트스트림을 식별하기 위해, 공간적 스케일러빌리티(Spatial Scalability) 정보의 식별 정보, 시간적 스케일러빌리티(Temporal Scalability) 정보의 식별 정보, 화질적 스케일러빌리티(Quality Scalability) 정보의 식별 정보 및 시점별 계층별 비트스트림의 식별 정보를 포함하는 신택스를 전송할 수 있다. 이러한 식별 정보에 대한 보다 자세한 내용은 후술한다.
도 4 은 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치의 구성을 나타내는 블록도이다.
일실시예에 있어서, 다시점 스케일러블 비디오 디코딩 장치(400)는 분할부(420) 및 복호화부(430)를 포함하여 이루어지며, 다른 일실시예에 있어서, 도 4에 도시된 바와 같이, 다시점 스케일러블 비디오 디코딩 장치(300)는 수신부(410)를 더 포함할 수 있다.
수신부(410)는, 다시점 스케일러블 비디오 코딩 방식에 의해 부호화된 비트스트림(즉, 다시점 스케일러블 비디오 비트스트림)을 수신한다. 수신하는 방식의 예로는 유/무선 통신 또는 방송으로 비트스트림을 수신하는 방식, 저장 매체에 기록된 비트스트림을 독취하는 방식 등을 들 수 있으며, 해당 다시점 스케일러블 비디오 디코딩 장치(400)가 설치되는 환경에 따라 다양한 수신 방식이 존재할 수 있음은 이 분야에 종사하는 자라면 충분히 이해할 수 있다.
일실시예에 있어서, 다시점 스케일러블 비디오 디코딩 장치(400)는, 수신된 비트스트림에 대해, 디코딩하기 원하는 부분의 비트스트림들을 선택할 수도 있다. 예를 들어, 디코더 요청 또는 디스플레이 장치의 재생 능력에 따라, 디코딩을 원하는 비트스트림이 공간적 해상도, 시간적 해상도, 화질 등의 구체적 포맷에 따라 검출될 수 있다. 일실시예에 따른 다시점 스케일러블 비디오 비트스트림은 공간적 스케일러빌리티 기능, 시간적 스케일러빌리티 기능, 화질적 스케일러빌리티 기능을 지원하기 때문에, 공간적 해상도, 시간적 해상도, 화질 등의 구체적 포맷에 적합한 비디오에 해당하는 비트스트림이 다시점 스케일러블 비디오 비트스트림으로부터 선택될 수 있다.
분할부(420)는, 비트스트림 수신부(410)에 의해 수신된 비트스트림을, 다시점 스케일러블 비디오 코딩에 따른 복수 개의 시점들 및 복수 개의 계층들에 기초하여, 시점별 계층별 비트스트림들로 분할한다.
일 실시예에 따른 비트스트림 분할부(420)는, 비트스트림을 시간 순서에 따라 나열된 시간대별 액세스 유닛들로 분할하고, 시간대별 액세스 유닛들을 시간 순서에 따라 동일한 시간대의 시점별 계층별 비트스트림들로 분할할 수 있다. 또한 일 실시예에 따른 비트스트림 분할부(420)는, 각각의 시간대별 액세스 유닛으로부터 한 종류 이상의 계층들에 따른 각각의 계층별 비트스트림을 분할할 수 있다.
일실시예에 따른 분할부(420)는, 비트스트림에 대한 신택스 중, 공간적 스케일러빌리티 정보의 식별 정보, 시간적 스케일러빌리티 정보의 식별 정보, 화질적 스케일러빌리티 정보의 식별 정보 및 시점별 계층별 비트스트림의 식별 정보에 따라, 액세스 유닛의 시점별 계층별 비트스트림을 식별하여 분할할 수 있다. 분할부(420)는 공간적 스케일러빌리티 정보의 식별 정보, 시간적 스케일러빌리티 정보의 식별 정보, 화질적 스케일러빌리티 정보의 식별 정보 및 시점별 계층별 비트스트림의 식별 정보를 이용하여, 원하는 비트스트림 조각을 선택적으로 추출할 수 있다.
복호화부(430)는, 비트스트림 분할부(420)에 의해 분할된 시점별 계층별 비트스트림들에 대해, 시점 간 정보 및 계층 간 정보를 이용하여 다시점 스케일러블 비디오 디코딩을 수행한다.
일실시예에 따른 복호화부(430)는, 복수 개의 시점들 중, 현재 시점 이외의 다른 시점의 비디오 영상 정보를 참조하여 현재 시점의 비디오 영상에 대해 다시점 비디오 디코딩을 수행할 수 있다. 또한, 일실시예에 따른 복호화부(430)는, 현재 시점의 현재 계층의 비디오 영상, 하위 계층의 비디오 영상 정보, 및 현재 계층과 하위 계층 간의 계층 간 예측 정보 중 적어도 하나를 이용하여 스케일러블 비디오 디코딩을 수행할 수 있다. 일 실시예에 따른 스케일러블 비디오 디코딩은, 복수 개의 시점별 계층별 비트스트림들에 대한, 공간적 스케일러블 비디오 디코딩, 시간적 스케일러블 비디오 디코딩 및 화질적 스케일러블 비디오 디코딩 중 적어도 하나를 포함할 수 있다.
일 실시예에 따른 복호화부(430)는, 현재 시점의 비디오 영상에 대한 하위 계층의 비디오 영상 또는 하위 계층의 비디오 영상 정보의 존부에 따라, 스케일러블 비디오 디코딩의 수행 여부를 판단하고, 시점 방향 예측 코딩 수행 여부에 따라 다시점 비디오 디코딩의 수행 여부를 판단할 수 있다. 판단 결과에 따라, 일 실시예에 따른 디코딩 수행부(430)는, 현재 시점 영상에 대해 다시점 스케일러블 비디오 디코딩, 단일 시점 스케일러블 비디오 디코딩, 다시점 비디오 디코딩 및 단일 시점 비디오 디코딩 중 하나를 수행할 수 있다.
일실시예에 따른 복호화부(430)는, 계층별로 예측 구조를 개별적으로 설정하는 계층별 예측 구조에 따라 디코딩을 수행할 수 있다. 따라서, 하위 계층의 예측 구조를 선택적으로 참조하여 현재 계층의 예측 구조를 예측할 수 있다.
이에 따라 계층별 예측 구조에 따른 복호화부(430)는, 모든 계층에 대한 계층별 예측 구조를 설정한 후, 각각의 계층별로 계층별 예측 구조에 따라 디코딩할 수 있다. 또한 계층별 예측 구조에 따른 디코딩 수행부(430)는, 계층마다 반복적으로, 예측 구조를 개별적으로 설정한 후 디코딩할 수 있다.
또한 계층별 예측 구조에 따른 복호화부(430)는, 현재 시점 영상의 현재 계층의 예측 구조가, 현재 시점 영상의 하위 계층의 예측 구조와 동일한지 여부를 판단하고, 판단 결과에 따라 하위 계층의 예측 구조를 참조할지 여부를 결정하여 현재 시점 영상의 예측 구조를 디코딩할 수 있다. 이때 참조되는 하위 계층은, 현재 계층의 한 계층 하위의 하위 계층 또는 복수 개의 하위 계층들 중 선택된 소정 계층일 수 있다.
디코딩 수행부(430)의 계층별 예측 구조에 따라 하위 계층의 부호화 정보가 현재 계층의 예측 구조와 부합하지 않는 경우, 디코딩 수행부(430)는 하위 계층의 부호화 정보를 사용하지 않거나, 하위 계층의 부호화 정보 중 현재 계층의 예측 구조와 부합하는 부분만 참조하여, 현재 계층의 예측 구조를 예측할 수 있다.
계층별 예측 구조에 따라, 디코딩 수행부(430)는 공간적 향상 계층의 시점 방향 예측 구조를 공간적 기본 계층의 시점 방향 예측 구조와 독립적으로 결정할 수 있다.
일 실시예에 따른 복호화부(430)에 의해 디코딩된 비디오는, 다양한 해상도, 다양한 시점, 다양한 화질, 다양한 프레임율의 다양한 포맷의 다시점 비디오들로 복원될 수 있다. 다양한 시점, 다양한 화질, 다양한 프레임율의 다양한 포맷의 다시점 비디오는 지원 가능한 디스플레이 장치들에 의해 재생될 수 있다.
일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300)에 의해, 기존 2차원 디스플레이, 스테레오스코픽 디스플레이, 다시점 영상 디스플레이, 자유로운 시점 선택형 디스플레이 등을 포함하는 다양한 시점, QVGA, SD, HD, Full HD 등을 포함하는 다양한 화면 크기, VCD, DVD, HDTV 등을 포함하는 다양한 화질, 5Hz, 15Hz, 30Hz, 60Hz 등을 포함하는 다양한 시간적 해상도 등의 다양한 포맷의 컨텐트가 인코딩되어 비트스트림으로 전송될 수 있다.
또한, 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)에 의해, 수신된 비트스트림들로부터 원하는 포맷의 컨텐트에 해당하는 비트스트림을 선택하여 컨텐트가 추출될 수 있다. 이에 따라, 다양한 시점, 다양한 화면 크기, 다양한 화질, 다양한 시간적 해상도를 지원할 수 있는 디스플레이 장치들에게 각각의 환경에 맞는 컨텐트가 제공될 수 있다.
따라서, 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300) 및 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)에 의해 구현되는 다시점 스케일러블 비디오 코딩 방식에 따라, 다양한 시점, 다양한 화면 크기, 다양한 화질, 다양한 시간적 해상도를 지원할 수 있는 디스플레이 장치들에게 각각의 포맷에 적합한 컨텐트가 제공할 수 있으며, 다양한 포맷의 영상 정보가 한 단위의 비트스트림를 통해 통합적으로 처리되어 효율적으로 전송 및 수신할 수 있다.
도 5 는 일 실시예에 따라 구현 가능한 실감형 다시점 스케일러블 비디오 서비스의 개요도를 도시한다.
일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300) 및 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)는, 다양한 시점, 다양한 해상도, 다양한 화질, 다양한 프레임율을 지원할 수 있어, 실감형 비디오 컨텐트를 다양한 전송 환경과 다양한 단말들에게 효율적으로 전달할 수 있다.
실감형 다시점 스케일러블 비디오 서비스(500)에 의해, HD급 해상도의 다시점 영상 컨텐트(510)를 이용한 다양한 포맷의 비디오 컨텐트들이 제공될 수 있다. 실감형 다시점 스케일러블 비디오 서비스(500) 중 인코더 동작 단계(520)는 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300)에 의해 구현될 수 있으며, 비트스트림 추출 단계(540)는 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)에 의해 구현될 수 있다.
인코더 동작 단계(520)는 HD급 해상도의 다시점 영상 컨텐트(510)에 대해 한번의 인코딩을 수행하여 비트스트림(530)을 생성한다. 비트스트림은 비트스트림 추출 단계(540)로 전송되어, 다양한 해상도, 다양한 화질, 다양한 시간적 해상도, 다양한 시점을 지원하는 디스플레이 장치들에게 각각의 환경에 맞도록 비트스트림이 추출된다.
추출된 비디오 컨텐트들 중 저화질 및 고정 시점의 비디오 컨텐트는 소형 2차원 디스플레이 장치(550)로 제공될 수 있으며, 고화질 및 고정 시점의 비디오 컨텐트는 소형 2차원 디스플레이 장치(551)로, 고화질 및 고정 시점의 비디오 컨텐트는 SD급 2차원 디스플레이 장치(552)로, 고화질 및 고정 시점의 비디오 컨텐트는 HD급 2차원 디스플레이 장치(553)로 제공되어 재생될 수 있다.
또한, 추출된 비디오 컨텐트들 중 고화질 및 시점 선택형 비디오 컨텐트는 HD급 2차원 디스플레이 장치(554)로 제공될 수 있으며, 고화질의 비디오 컨텐트는 소형 스테레오 디스플레이 장치(555)로, HD급 스테레오 디스플레이 장치(556) 및 다시점 디스플레이 장치(558)로, 저화질 비디오 컨텐트는 다시점 디스플레이 장치(557)로 제공되어 재생될 수 있다. 이 중 디스플레이 장치들(554, 555, 556, 557, 558)는 실감형 디스플레이 장치들로서, 다시점 비디오 컨텐트를 재생할 수 있다.
일 실시예에 따른 실감형 다시점 스케일러블 비디오 서비스(500)에 따라 다양한 종류의 어플리케이션들이 손쉽게 지원될 수 있게 된다. 시점의 종류로는, 기존 2차원 디스플레이, 스테레오스코픽 디스플레이 다시점 영상 디스플레이 장치, 자유로운 시점 선택형 디스플레이 등이 있으며, 화질의 종류로는 QVGA, SD, HD, Full HD 등이 있고, 화질의 종류로는 VCD, DVD, HDTV 등이 있고, 프레임율의 종류로는 5Hz, 15Hz, 30Hz, 60Hz 등이 있다.
일 실시예에 따른 실감형 다시점 스케일러블 비디오 서비스(500)에 의해 유비쿼터스 컴퓨팅 환경 내에서, 다양한 시점, 다양한 화질, 다양한 해상도, 다양한 프레임율이 통합적으로 지원될 수 있으며, 또한 효율적으로 각각의 환경에 적합한 비디오 컨텐트들이 전달될 수 있다.
이하 도 6 내지 8을 참조하여, 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(400)의 인코딩 방법에 대해 상술된다.
도 6 은 일 실시예에 따른 다시점 비디오 인코딩을 위해 구현된 인코더의 구조를 도시한다.
도 6은 일실시예에 따른 인코더의 구체적인 구성을 예시한다.
도 6을 참조하면, 인코더(700)는 제1 내지 제N 시점 비디오 영상들 각각을 부호화하는 제1 내지 제N 부인코더(sub-encoder)(710, 720, 730, 740)로부터 생성된 시점별 계층별 비트스트림을 다중화하여 출력 비트스트림을 생성하는 다중화기(MUX, 750)를 포함하여 이루어진다. 도 6의 제1 내지 제N 부인코더(710, 720, 730, 740)는 도 3의 부호화부(320)에 대응되며, 도 6의 다중화기(750)는 도 3의 출력부(330)에 대응될 수 있다.
각각의 부인코더(710, 720, 730, 740)는 단일 시점 비디오 코딩이 가능하며, 다양한 화면 해상도를 제공할 수 있는 공간적 스케일러빌리티 기능, 다양한 프레임율을 제공할 수 있는 시간적 스케일러빌리티 기능, 다양한 화질을 제공할 수 있는 화질적 스케일러빌리티 기능을 포함한 다양한 스케일러빌리티 기능을 지원하는 스케일러블 비디오 코딩이 가능하다. 또한 이러한 부인코더들 중 적어도 하나(도 6에서는, 제2 내지 제N 부인코더)는, 다른 부인코더(도 6에서는, 제1 부인코더)에 의해 인코딩되어 재구성된 한 개 또는 그 이상의 다른 영상을 참조하는 예측 인코딩이 가능하다. 이러한 다양한 기능을 다양한 방법으로 조합한 형태의 인코딩이 각각의 부인코더(710, 720, 730, 740)에 의해 수행될 수 있다.
일실시예에 있어서, 도 6에 도시된 바와 같이, 부인코더(710, 720, 730, 740)는 입력되는 영상의 수에 따라 물리적 또는 논리적으로 별개로 존재할 수 있다. 이 경우 부인코더(710, 720, 730, 740)는 각각의 인코딩 과정을 병렬적으로 수행할 수도 있다.
다른 일실시예에 있어서, 부인코더(710, 720, 730, 740)는, 도 25에서 후술하는 바와 같이, 물리적 또는 논리적으로 하나만 존재하여 각각의 영상의 코딩 순서에 따라 순차적으로 각각의 영상에서 요구하는 형태의 인코딩을 수행할 수도 있다.
그리고 각각의 부인코더(710, 720, 730, 740)에서 인코딩이 수행된 후의 출력 데이터들(즉, 시점별 계층별 비트스트림)은 다중화기(750)를 통해 하나의 통합된 비트스트림(즉, 다시점 스케일러블 비트스트림)으로 출력된다.
도 7은 도 6의 다시점 스케일러블 비디오 코딩을 위한 인코더(700)의 상세한 구조를 예시 설명하기 위한 도면이다.
인코더(800)는, 3개 시점에 따른 비디오 영상(제1 내지 제3 비디오 영상)을 입력 받아, 도 7에 도시된 바와 같이, 각각의 시점마다 2개의 공간적 스케일러블 계층을 지원하는 스케일러빌러티 기능을 지원하는 다시점 스케일러블 비디오 코딩을 수행할 수 있다. 또한 인코더(800)는, 각각의 공간적 스케일러블 계층마다 화질적 스케일러빌리티 기능과 시간적 스케일러빌리티 기능을 지원하며, 서로 다른 시점 영상 정보를 참조하여 시점 방향 예측 코딩을 수행할 수 있다.
제1 내지 제3 부인코더(810, 820, 830) 각각은, 2개의 공간적 스케일러빌리티 기능을 지원하기 위해 입력 영상에 대해 다운샘플링(down-sampling)을 수행하여 원하는 저해상도의 하위 계층의 영상을 생성할 수 있다.
제1 부인코더(810)에서, 다운샘플링부(811)는 제1 시점 비디오 영상에 대해 다운샘플링을 수행하고, VC부(813)는 다운샘플링된 제1 시점 비디오 영상을 부호화한다. 일실시예에 있어서, VC부(813)는 시간적 스케일러빌리티 비디오 코딩을 수행할 수 있다. 이 경우, VC부(813)의 출력은 공간적 기본 계층(즉, 공간적 하위 계층)에 대해 시간적 스케일러빌리티 기능이 지원된 부호화 정보를 포함하게 된다. 시간적 스케일러빌리티 비디오 코딩 방법의 일례로는, H.264와 같이, 계층적인 B-픽처 구조(Hierarchical B-pictures Structure)를 사용하는 방법을 들 수 있으나, 반드시 이에 한정되는 것은 아니다.
QS-VC부(815)는 다운 샘플링된 제1 시점 비디오 영상 및 VC부(813)의 인코딩 결과 데이터(즉, 부호화 정보) 중 적어도 하나를 기초로, 화질적 스케일러빌리티 기능을 지원하기 위한 화질적 스케일러블 비디오 코딩을 수행한다. QS-VC부(815)의 출력은 공간적 기본 계층 또는 시간적 스케일러빌리티 기능이 지원된 공간적 기본 계층에 대해 화질적 스케일러빌리티 기능이 지원된 부호화 정보에 해당한다.
SS-VC부(817)는, 제1 시점 비디오 영상에 대해 공간적 스케일러블 비디오 코딩을 적용한다. SS-VC부(817)에서는 이미 인코딩을 수행한 다운샘플링된 제1 시점 비디오 영상의 정보(즉, 재구성 영상, 부호화 정보를 포함하는 비디오 영상 정보)를 참조하여, 예측 코딩을 수행하여, 공간적 향상 계층(즉, 공간적 상위 계층)에 대한 부호화 정보를 생성할 수 있다. 또한, SS-VC부(817)는, 시간적 스케일러빌리티 코딩을 선택적으로 공간적 스케일러블 비디오 코딩과 함께 수행할 수 있다. 이 경우, SS-VC부(817)의 출력은 공간적 향상 계층에 대해 시간적 스케일러빌러티 기능이 지원된 부호화 정보이다.
QS-VC부(819)는 제1 시점 비디오 영상 및 SS-VC부(817)로부터 제공되는 비디오 영상 정보(예컨대, 재구성 영상, 부호화 정보)를 기초로, 제1 시점 비디오 영상에 대한 화질적 스케일러빌리티 비디오 코딩을 수행한다. QS-VC부(819)의 출력은 공간적 향상 계층에 대해 화질적 스케일러빌리티 기능이 지원된 부호화 정보 또는 시간적 스케일러빌리티 기능이 지원된 공간적 향상 계층에 대해 화질적 스케일러빌리티 기능이 지원된 부호화 정보에 해당한다.
제2 부인코더(820)에서, 다운샘플링부(821)는 제2 시점 비디오 영상에 대해 다운샘플링을 수행하고, MVC부(823)는 제1 부인코더(810)로부터 제공되는 제1 시점 비디오 영상에 대한 정보(즉, 비디오 영상 정보)를 참조하여, 다운샘플링된 제2 시점 비디오 영상을 부호화한다. MVC(Multi-view Video Coding, H.264 Amendment 4) 방식은, H.264 (MPEG-4 Part 10 Advanced Video Coding(AVC)) 방식에 추가적으로 이미 다른 인코더를 통해 인코딩 되어 재구성된 동일 시간 대의 다른 시점의 영상 정보를 참조하여 인코딩하는 방법을 의미한다. MVC 방식에 따른 비디오 코딩을 수행할 때 각 픽처 단위로 혹은 픽처 타입 단위로 혹은 영상 시퀀스 단위로 이미 인코딩된 동일한 시간대의 다른 시점의 영상 정보를 참조할 수도 있고, 참조하지 않을 수도 있다. 일실시예에 있어서, VC부(813)와 마찬가지로, MVC부(823)는 시간적 스케일러빌리티 비디오 코딩을 수행할 수도 있다.
M&SS-VC부(827)는 제2 시점 비디오 영상 뿐만 아니라, 제1 부인코더(810)로부터 제공되는 제1 시점 비디오 영상에 대한 정보(즉, 비디오 영상 정보), 및 MVC부(823)로부터 제공되는 비디오 영상 정보를 기초로, 제2 시점 비디오영상에 대해 공간적 스케일러블 비디오 코딩과 다시점 비디오 코딩을 함께 수행한다. 즉, 제2 부인코더(820)의 부호화 정보에는 제1 부인코더 (810)의 부호화 정보와는 달리, 시점 방향 예측 코딩의 결과 데이터가 반영되어 있다. QS-VC(825, 829)는 QS-VC(815, 819)와 마찬가지 원리로 설명되므로 이하 설명은 생략한다.
제3 부인코더(830)는 제2 부인코더(820)와 마찬가지 원리로 설명되므로 이하 설명은 생략한다.
각각의 서브-인코더(810, 820, 830)에서 출력한 데이터는 다중화기(MUX, 850)에서 하나의 통합된 비트스트림으로 출력된다. 즉, 도 7의 다중화기(850)는 도 6의 다중화기(750)에 대응될 수 있다.
따라서, 인코더(800)에서 서로 다른 카메라로부터 입력 받은 다른 시점의 3개의 시점 비디오 영상을 입력으로 하여, 공간적 스케일러빌리티 기능, 시간적 스케일러빌리티 기능 및 화질적 스케일리빌리티 기능을 지원하도록 인코딩을 수행하여 생성된 통합된 비트스트림은, 다시점, 공간적 해상도, 프레임율, 화질에 따른 다양한 포맷에 대응하는 비트스트림으로 제공될 수 있다.
예를 들어, 먼저 제1 시점 비디오 영상의 다운샘플링된 영상의 해상도의 H.264 방식의 비트스트림이 제공될 수 있다. 또한, 제1 시점 비디오 영상의 공간적, 시간적, 화질적 스케일러빌리티를 제공할 수 있는 SVC 방식의 비트스트림이 제공될 수 있다. 그리고 다운샘플링된 해상도의 2개의 시점으로부터 3개의 시점까지의 MVC 방식의 비트스트림이 제공될 수 있다. 그리고 다운샘플링된 해상도의 2개의 시점부터 3개의 시점까지의 영상을 지원하며 각각의 영상에 다양한 스케일러빌리티를 포함하는 비트스트림이 제공할 수 있다. 그리고 입력된 각 시점 비디오 영상과 동일한 해상도를 갖는 2개의 시점부터 3개의 시점까지의 비디오 영상을 지원하며 각각의 영상에 다양한 스케일러빌리티를 포함하는 비트스트림이 제공될 수 있다.
인코더(800)의 실시예로부터 더욱 확장하여, 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300)는 임의의 개수의 시점 비디오 영상들을 입력받을 수 있으며, 각각의 서브-인코더에서 제공되는 스케일러블 계층을 갖는 비트스트림들이 더욱 다양한 조합으로 구성된 다시점 스케일러블 비디오 비트스트림을 생성할 수 있다.
인코더(800)에 따른 실시예에서 출력된 다시점 스케일러블 비디오 비트스트림은, 다양한 비디오 코딩 방법과 하방 호환성(backward compatibility)을 가질 수 있다. 일 예로 출력된 비트스트림은 기존의 비디오 코딩 방법인 H.264 (MPEG-4 Part 10 Advanced Video Coding(AVC)) 방식을 사용하는 단일 시점(single view-point) 디스플레이 단말들과 호환성을 가질 수 있다. 또 다른 일 예로 출력된 비트스트림은 기존의 비디오 코딩 방법인 SVC(Scalable Video Coding, H.264 Amendment 3) 방식을 사용하는 단일 시점 디스플레이 단말들과 호환성을 가질 수 있다. 또 다른 일 예로 출력된 비트스트림은 기존의 비디오 코딩 방법인 MVC(Multi-view Video Coding, H.264 Amendment 4) 방식을 사용하는 스테레오스코픽 디스플레이 단말 또는 다시점 디스플레이 단말들과 호환성을 가질 수 있다.
이하 도 8 내지 12를 참조하여, 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300)에 의해 생성되는 비트스트림의 구조에 대해 상술된다.
도 8은 일 실시예에 따라 출력되는 비트스트림을 조합하기 위한 구조를 도시한다.
본 실시예의 다중화기(900)는 도 6의 다중화기(750)에 대응될 수 있다. 일실시예에 있어서, 다중화기(900)는, 복수 개의 부인코더에서 생성된 N(N > 1)개의 비트스트림을 입력받아 각각의 비트스트림을 일정한 단위로 분해하고, 분해한 비트스트림을 조합함으로서 하나의 다시점 스케일러블 비디오 비트스트림을 생성할 수 있다.
다중화기(900)에 입력되는 비트스트림들은 다양한 시점 및 다양한 계층(지원하는 스케일러빌리티 기능에 따른 계층)을 지원 가능하게 하는 형태로 인코딩되어 있다. 일 예로 단일 시점의 하나의 화질을 가지는 비트스트림일 수 있고, 공간적 스케일러빌리티, 시간적 스케일러빌리티, 화질적 스케일러빌리티 등 다양한 스케일러빌리티를 지원하는 비트스트림일 수 있다. 또한 여러 개의 시점을 지원하는 비트스트림일 수도 있다.
도 9는 다시점 스케일러블 비디오 인코딩에 의해 생성되는 비트스트림을 예시한다.
비트스트림(1000)은, 다중화기(900)에서 입력받은 N개의 비트스트림을 하나의 다시점 스케일러블 비디오 비트스트림으로 구성된 비트스트림이다. 비트스트림 0, 비트스트림 1, 비트스트림 2 내지 비트스트림 N의 N개의 비트스트림은 각각 일정한 단위의 비트스트림 조각으로 분할되어, 동일한 시간대의 화면을 나타내는 비트스트림 조각끼리 조합되어 전체 비트스트림을 구성한다.
예를 들어, 비트스트림 0, 비트스트림 1, 비트스트림 2 내지 비트스트림 N이 분할된 비트스트림 조각으로 분할되어, 동일 시간대별로 비트스트림 조각 1010, 1020, 1030 내지 1040가 순서대로 조합되고, 시간 순서에 따라 동일 시간대별로 비트스트림 조각 1050, 1060, 1070 내지 1080가 순서대로 조합될 수 있다.
분할된 비트스트림 조각은 일 예로 픽처에 해당하는 비트스트림일 수 있고, 또는 하나의 화면을 구성하는 슬라이스에 해당하는 비트스트림일 수도 있다. 각각의 비트스트림 조각은, 하나의 시점 및 하나의 계층로 식별되는 시점별 계층별 비트스트림일 수 있다.
도 10은 일 실시예에 따른 다시점 스케일러블 비디오 인코딩에 의해 생성된 비트스트림의 구성을 도시한다.
N개의 비트스트림(1110, 1120, 1130, 1140)은 시간적으로 임의 접근이 가능한 X개의 서브-액세스 유닛(Sub-Access Unit; Sub-AU)으로 구성되어 있다. 일 실시예에 따른 비트스트림 출력부(330)는, 비트스트림(1110, 1120, 1130, 1140)을 서브-액세스 유닛들로 분해하여 동일한 시간대의 서브-액세스 유닛별로 조합하여 하나의 액세스 유닛(1152, 1154, 1156)을 구성하고, 구성된 액세스 유닛들(1152, 1154, 1156)을 다시 시간적으로 순차적으로 조합하여 다시점 스케일러블 비디오 비트스트림(1150)을 구성한다.
각각의 비트스트림을 구성하는 서브-액세스 유닛의 일 예는 단일 시점의 하나의 픽처 또는 슬라이스로 구성될 수 있다. 또한 서브-액세스 유닛의 다른 일 예는, 하나의 픽처에 대한 공간적 또는 화질적 스케일러빌리티 계층들로 구성될 수 있으며, 또 다른 일 예로 여러 개의 시점 중 하나의 시점의 픽처 또는 슬라이스로 구성될 수 있다.
도 11은 일 실시예에 따른 시점별 계층별 비트스트림들을 도시한다.
일실시예에 있어서, 부호화부(320)는 서로 다른 시점을 가진 3개의 시점 비디오 영상을 시점 0, 시점 2, 시점 1의 순서로 코딩하고, 각각의 시점은 2개의 공간적 스케일러빌리티 계층(DId 0, DId 1)으로 구성되며, 각각의 공간적 스케일러빌리티 계층은 다시 2개의 화질적 스케일러빌리티 계층(QId 0, QId 1)으로 구성된 3개의 비트스트림을 시점 0 비트스트림(1200), 시점 2 비트스트림(1260), 시점 1 비트스트림(1230)의 순서로 출력한다. 출력부(330)가 비트스트림들(1200, 1260, 1230)을 입력받았을 때 다시점 스케일러블 비디오 비트스트림을 구성하는 방법이 이하 도 12를 참조하여 보다 상세히 설명된다.
도 11의 하나의 블록은 날 유닛(NAL Unit)을 나타내며, 하나의 날 유닛은 하나의 화면을 나타내는 픽처 또는 슬라이스로 구성되며, 하나의 온전한 화면 또는 하위 계층의 화질을 향상시키기 위한 잔여 신호 또는 공간적 해상도를 높이기 위한 잔여 신호들이 포함되어 있을 수 있다. 각각의 시점 비디오 영상의 비트스트림은 시점 별로 구분하기 위해 VId 0, VId 1, VId 2로 표기되며, 가로 방향은 시간 순서를 나타내며 T0, T1, T2......로 표기된다. 세로 방향은 동일한 시간의 공간적, 화질적 계층을 나타내며, 공간적 기본 계층은 DId 0, 공간적 향상 계층은 DId 1로 표기되고, 화질적 기본 계층은 QId 0, 화질적 향상 계층은 QId 1로 표기된다.
각각의 비트스트림은 임의의 시간으로 접근이 가능한 서브-액세스 유닛으로 구성이 되어 있는데, 서브-액세스 유닛은 동일한 시간의 공간적 계층 및 화질적 계층을 포함한 날 유닛으로 구성된다. 일 예로 시간 T0의 DId 0 및 QId 0의 날 유닛(1216), T0의 DId 0 및 QId 1의 날 유닛(1211), T0의 DId 1 및 QId 0의 날 유닛(1206), T0의 DId 1 및 QId 1의 날 유닛(1201)이 시간 T0에 대한 서브-액세스 유닛이 되며, 시간 T1의 DId 0 및 QId 0(1217), T1의 DId 0 및 QId 1(1212), T1의 DId 1 및 QId 0(1207), T1의 DId 1 및 QId 1(1202)의 날 유닛이 시간 T1에 대한 서브-액세스 유닛이 된다.
도 12는 일실시예에 따른 다시점 스케일러블 비디오 비트스트림의 상세한 구성을 도시한다.
일 실시예에 있어서, 출력부(330)는, 각각의 시점의 비트스트림에서 획득한 서브-액세스 유닛을 동일한 시간 T의 다른 시점의 서브-액세스 유닛과 조합하여, 다시점 스케일러블 비디오 비트스트림의 액세스 유닛으로 구성한다.
일 예로 시간 T0의 액세스 유닛(1310)은 VId0의 T0의 서브-액세스 유닛들(1216, 1211, 1206, 1201), VId1의 T0의 서브-액세스 유닛들(1246, 1241, 1236, 1231), VId 2의 T0의 서브-액세스 유닛들(1276, 1271, 1266, 1261)으로 구성 될 수 있다. 서브-액세스 유닛들을 액세스 유닛으로 조합하는 순서의 일 예는, 시점 번호 순서인 VId 0의 T0의 서브-액세스 유닛들(1216, 1211, 1206, 1201), VId 1의 T0의 서브-액세스 유닛들(1246, 1241, 1236, 1231), VId 2의 T0의 서브-액세스 유닛들(1276, 1271, 1266, 1261)의 순서로 구성될 수 있다. 또 다른 일 예로, 비트스트림이 코딩된 순서인 VId 0의 T0의 서브-액세스 유닛들(1216, 1211, 1206, 1201), VId 2의 T0의 서브-액세스 유닛들(1276, 1271, 1266, 1261), VId 1의 T0의 서브-액세스 유닛들(1246, 1241, 1236, 1231)의 순서로 구성할 수 있다.
시간 T1의 액세스 유닛(1320)은 VId0의 T1의 서브-액세스 유닛들(1217, 1212, 1207, 1202), VId1의 T1의 서브-액세스 유닛들(1247, 1242, 1237, 1232), VId2의 T1의 서브-액세스 유닛들(1277, 1272, 1267, 1262)로 구성될 수 있다.
시간 T2의 액세스 유닛(1330)은 VId0의 T2의 서브-액세스 유닛들(1218, 1213, 1208, 1203), VId1의 T2의 서브-액세스 유닛들(1248, 1243, 1238, 1233), VId2의 T2의 서브-액세스 유닛들(1278, 1273, 1268, 1263)으로 구성될 수 있다.
시간 T3의 액세스 유닛(1340)은 VId0의 T3의 서브-액세스 유닛들(1219, 1214, 1209, 1204), VId1의 T3의 서브-액세스 유닛들(1249, 1244, 1239, 1234), VId2의 T3의 서브-액세스 유닛들(1279, 1274, 1269, 1264)으로 구성될 수 있다.
시간 TX의 액세스 유닛(1350)은 VId0의 TX의 서브-액세스 유닛들(1220, 1215, 1210, 1205), VId1의 TX의 서브-액세스 유닛들(1250, 1245, 1240, 1235), VId2의 TX의 서브-액세스 유닛들(1280, 1275, 1270, 1265)으로 구성될 수 있다.
각각의 시점별 계층별 비트스트림이 한 종류 이상의 계층별 비트스트림으로 구성되는 경우, 각각의 시간대별 액세스 유닛은 각각의 계층별 비트스트림을 포함할 수 있다.
일실시예에 있어서, 출력부(330)는, 구성된 액세스 유닛들(1320, 1330, 1340, 1350)을 시간 순서대로 배치하여 다시점 스케일러블 비디오 비트스트림(1330)을 구성한다.
다시점 스케일러블 비디오 비트스트림 중, 시점 비디오 영상별 서브-액세스 유닛을 구분하고 액세스 유닛 내에서 서브-액세스 유닛들을 순서대로 배치하기 위해 필요한 정보를 비트스트림 내에서 표기할 수 있다. 표기하는 방법의 구현의 일 예로서 날 유닛 헤더(NAL Unit Header)에 표 1과 같은 신택스를 추가하여 구현할 수 있다.
nal_unit_header_smvc( ){
.....
dependency_id
quality_id
temporal_id
비트스트림 구별_id
.....
}
일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300)는, 날 유닛 헤더에 각각의 비트스트림 내에서 서브-액세스 유닛을 식별하기 위해서 공간적 스케일러빌리티 정보를 나타내는 신택스 'dependency_id', 화질적 스케일러빌리티 정보를 나타내는 신택스 'quality_id', 시간적 스케일러빌리티 정보를 나타내는 신택스 'temporal_id' 를 추가할 수 있다.
또한 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300)는, 날 유닛 헤더에, 액세스 유닛 내에서 시점 비디오 영상들 간의 조합 순서를 구분하기 위해서 각각의 날 유닛이 어떠한 시점 비디오 영상의 비트스트림의 날 유닛인지 표기하기 위한 '비트스트림 구별_id'가 추가될 수 있다. '비트스트림 구별_id'의 예로는, 여러 시점의 비디오 영상들 중에서 현재 시점의 식별 정보를 나타내는 'view_id'를 들 수 있다.
이하 도 13 내지 17을 참조하여, 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)의 디코딩 방법에 대해 보다 상세히 설명된다.
도 13은 일 실시예에 따른 다시점 비디오 디코딩을 위한 구현된 디코더의 구조를 도시한다.
디코더(1400)는 인코더에서 생성한 다시점 스케일러블 비디오 비트스트림은 혹은 그 비트스트림으로부터 일정한 기능을 위해 추출된 비트스트림을 입력받는다. 디코더(1400)는 비트스트림에서 제공하고자 하는 수준(다양한 시점, 다양한 화질, 다양한 공간적 해상도, 다양한 시간적 해상도)의 영상에 대한 데이터를 추출하여 디코딩을 수행하고, M(N ≥ M ≥ 1)개의 시점별로 디코딩된 영상을 출력할 수 있다. 디코더(1400)는 일 실시예에 따른 다시점 비디오 디코딩 장치(400)의 복호화부 (430)를 구현할 수 있다.
도 14는 일 실시예에 따른 다시점 스케일러블 비디오 디코딩을 위한 구현된 디코더의 구조를 도시한다.
디코더(1500)는 도 4의 복호화부(430)를 구현하는 일 실시예로서, 디코더(1500)에 다시점 스케일러블 비디오 비트스트림 혹은 그 비트스트림에서 다양한 응용을 위해 선택 또는 추출된 비트스트림이 입력된다. 입력된 비트스트림은 역다중화기(DEMUX, 1510)를 통해 M개의 시점별 영상에 해당하는 데이터로 분리된다. 각각의 분리된 데이터는 각각 대응하는 제1 내지 제M 부디코더(1520, 1530, 1540, 1550) 중 하나로 입력된다. 부디코더들(1520, 1530, 1540, 1550)은 각각의 데이터에 대한 디코딩을 수행하여 시점별로 디코딩된 비디오 영상 1 내지 M 을 출력한다.
부디코더들(1520, 1530, 1540, 1550)은 단일 시점을 지원하는 비트스트림에 대한 디코딩이 가능하며, 공간적 스케일러빌리티 기능, 시간적 스케일러빌리티 기능, 화질적 스케일러빌리티 기능 등의 다양한 스케일러빌리티 기능을 지원하는 비트스트림에 대해 디코딩할 수 있다. 또한, 부디코더들(1520, 1530, 1540, 1550)은, 다른 부디코더를 통해 디코딩된 하나 또는 그 이상의 다른 시점의 영상 정보를 참조하는 예측 디코딩에 따라 비트스트림에 대한 다시점 비디오 디코딩을 수행할 수 있다. 부디코더들(1520, 1530, 1540, 1550)은, 전술한 다양한 기능이 다양한 방법으로 조합된 형태의 비트스트림에 대한 디코딩을 수행할 수 있는 디코더이다.
예를 들어 부디코더들(1520, 1530, 1540, 1550)은, H.264 방식에 따라 코딩된 단일 시점을 지원하는 비트스트림에 대한 디코딩을 수행할 수 있다. 또한 부디코더들(1520, 1530, 1540, 1550)은, SVC 방식에 따라 공간적 스케일러빌리티 기능, 시간적 스케일러빌리티 기능, 화질적 스케일러빌리티 기능을 지원하는 비트스트림에 대한 디코딩을 수행할 수 있다. 부디코더들(1520, 1530, 1540, 1550)은, MVC 방식에 따라 다른 서브-디코더를 통해 디코딩된 다른 시점의 영상 정보를 참조하여 비트스트림에 대한 디코딩을 수행할 수 있다. 또한, 부디코더들(1520, 1530, 1540, 1550)은, H.264 방식, SVC 방식, MVC 방식의 기능을 다양한 방법으로 조합한 형태의 비트스트림에 대한 디코딩을 수행할 수 있도록 디코더를 구성할 수 있다.
부디코더들(1520, 1530, 1540, 1550)은, 물리적 또는 논리적으로 하나만 존재하여 각각의 시점별 영상이 디코딩되는 순서에 따라 순차적으로 각각의 비트스트림의 형태에 따라 디코딩을 수행할 수도 있다. 또한 부디코더들(1520, 1530, 1540, 1550)은, 입력된 비트스트림에 대응하여 출력할 시점별 영상의 수에 따라 물리적 또는 논리적으로 별개로 존재할 수 있다. 이 경우, 부디코더들(1520, 1530, 1540, 1550)의 디코딩 동작을 병렬로 수행할 수도 있다.
도 15는 다른 실시예에 따른 다시점 스케일러블 비디오 디코딩을 위한 구현된 디코더의 구조를 도시한다.
디코더(1600)는 디코딩 수행부(430)를 구현하는 다른 실시예로서, 디코더(1500)에 비트스트림 선택 모듈(1610)이 추가된 구조와 상응한다. 비트스트림 선택 모듈(1610)에서는 입력받은 비트스트림 중에 현재 단말의 디코딩 능력, 예를 들어 화면 해상도, 프레임율, 컴퓨팅 성능, 전력 소비량, 시점의 수 등에 따라서, 또는 단말에서 요청에 따라서 비트스트림에서 필요한 부분만을 선택할 수 있다.
일례로 방송망(Broadcasting Network)으로부터 전송받은 비트스트림이 1920ㅧ1080의 공간적 해상도까지 지원하는 다시점 스케일러블 비디오 비트스트림이지만, 현재 디스플레이 단말이 1280ㅧ720의 해상도를 지원할 경우, 비트스트림 선택 모듈(1610)은 전송받은 비트스트림으로부터 1280ㅧ720의 해상도에 해당하는 비트스트림만을 선택해서, 나머지 디코딩 동작들을 수행할 수 있다.
도 16은 일 실시예에 따라, 각 부디코더에서 각 픽처 또는 슬라이스 단위로 디코딩을 수행하는 방법의 흐름도를 도시한다.
일 실시예에 따른 복호화부(430)가 복수 개의 시점별 서브-디코더들을 포함하는 경우, 각각의 부디코더들은 흐름도(1700)에 따라 각각의 픽처, 슬라이스 등의 처리 단위로 현재 시점의 영상에 대해 디코딩을 수행할 수 있다. 설명의 편의를 위해 픽처 단위로 현재 시점의 영상에 대해 디코딩을 수행되는 것으로 기술되나, 일 실시예에 따른 다시점 스케일러블 비디오 코딩의 영상 처리 단위는 픽처에 한정되지 않고, 픽처, 슬라이스, 프레임, 필드, 블록 등의 기술 분야에서 사용되는 다양한 처리 단위를 포괄할 수 있다.
단계 1710에서, 현재 디코딩하려고 하는 픽처에 대해 하위 계층이 존재하는지 판단된다. 하위 계층이 존재한다면, 디코딩 동작이 단계 1720으로 진행하고, 만약 존재하지 않는다면 단계 1750으로 진행한다.
단계 1720에서, 현재 디코딩하려고 하는 픽처가 다른 부디코더에 의해 디코딩된 다른 시점의 비디오 영상들 간의 시점 방향 예측을 수행하는지 판단된다. 시점 방향 예측이 수행된다면 디코딩 동작이 단계 1730으로 진행하고, 만약 수행되지 않는다면 단계 1740으로 진행한다.
단계 1730에서, 현재 픽처에 대해 단일 시점 및 다시점 스케일러블 비디오 디코딩이 수행된다. 즉, 현재 픽처에 대해, 하위 계층의 비디오 영상 정보 및/또는 다른 부디코더의 디코딩을 통하여 얻어지는 다른 시점의 비디오 영상 정보를 예측에 참조하는 디코딩이 수행되거나, 현재 부디코더에 의해 이미 디코딩된 현재 계층 및 현재 시점에 대한 비디오 영상 정보를 예측 데이터로 참조하여 디코딩이 수행될 수 있다. 예를 들어 단일 시점 및 다시점 스케일러블 비디오 디코딩은, SVC 방식와 MVC 방식의 기능이 결합된 형태의 MSVC(Multi-view Scalable Video Coding) 방식으로 구현될 수 있다.
단계 1740에서, 현재 픽처에 대해 단일 시점 스케일러블 비디오 디코딩이 수행된다. 즉, 현재 픽처에 대해, 하위 계층의 비디오 영상 정보를 예측 데이터로 참조하여 디코딩이 수행되거나, 현재 부디코더에 의해 이미 디코딩된 현재 계층 및 현재 시점의 비디오 영상 정보를 예측 데이터로 참조하여 디코딩이 수행될 수 있다. 예를 들어, 단일 시점 스케일러블 비디오 디코딩은 SVC 방식으로 구현될 수 있다.
단계 1750에서, 현재 디코딩하려고 하는 픽처가 다른 부디코더에 의해 디코딩된 다른 시점의 영상과의 시점 방향 예측을 수행하는지 판단된다. 시점 방향 예측이 수행한다면 디코딩 동작이 단계 1760으로 진행하고, 수행하지 않는다면 단계 1770으로 진행한다.
단계 1760에서, 현재 픽처에 대해 단일 시점 및 다시점 비디오 디코딩이 수행된다. 즉, 현재 픽처에 대해, 다른 부디코더에 의해 디코딩된 다른 시점 영상의 정보를 예측 데이터로 참조하여 디코딩이 수행되거나, 현재 부디코더에 의해 디코딩된 현재 시점 비디오 영상의 정보를 예측 데이터로 참조하여 디코딩이 수행될 수 있다. 예를 들어, 단일 시점 및 다시점 비디오 디코딩은 MVC 방식으로 구현될 수 있다.
단계 1770에서, 현재 픽처에 대해 단일 시점 비디오 디코딩이 수행된다. 즉, 현재 픽처에 대해, 현재 부디코더에 의해 디코딩된 현재 시점 영상의 정보를 예측 데이터로 참조하여 디코딩이 수행될 수 있다. 예를 들어 단일 시점 비디오 디코딩은 H.264 방식으로 구현될 수 있다.
도 17은 일 실시예에 따른, 단일 시점 및 시점 간 스케일러블 비디오 디코딩에 필요한 정보들을 도시한다.
일 실시예에 따른 단일 시점 및 시점 간 스케일러블 비디오 디코딩 방식에 따른 디코더(1800)는, 먼저 픽처, 슬라이스 등의 처리 단위의 비트스트림을 입력받는다. 디코더(1800)는, 비트스트림에 해당하는 비디오 영상의 현재 계층 및 현재 시점에 대비하여, 하위 계층의 정보와 다른 시점의 영상 정보, 현재 시점의 영상 정보를 예측 데이터로 이용하여 디코딩을 수행하고, 디코딩된 픽처, 슬라이스 등의 영상 데이터를 출력할 수 있다.
일 실시예에 따른 하위 계층의 정보는 텍스쳐(Texture) 정보, 움직임 벡터, 참조 픽쳐 번호, 잔여 데이터(residual data) 정보 등 다양한 하위 계층에 대한 부호화 정보를 포함할 수 있다.
일 실시예에 따른 다른 시점의 영상 정보는, 다른 시점에 대한 디코더에 의해 디코딩된 다른 시점의 비디오 영상에 대한 부호화 정보며, 다른 시점 비디오 영상의 디코딩된 비디오 영상 자체 또는 그 일부분이 될 수 있다. 또한 다른 시점의 영상 정보는, 다른 시점 영상의 움직임 벡터 또는 참조 픽쳐 번호 등의 움직임 정보가 될 수도 있으며, 이외 다양한 다른 영상에 대한 부호화 정보 등을 포함할 수 있다.
일 실시예에 따른 현재 시점의 영상 정보는, 현재 시점에 대한 현재 디코더에서 디코딩된 현재 시점의 비디오 영상에 대한 부호화 정보이며, 현재 디코더에서 이미 디코딩된 영상 자체 또는 그 일부분이 될 수 있다. 또한 현재 시점의 영상 정보는, 이미 디코딩된 현재 시점 영상의 움직임 벡터, 참조 픽쳐 번호 등의 움직임 정보, 현재 영상 내의 이미 디코딩된 영역 또는 픽셀의 정보 등 다양한 현재 시점의 비디오 영상에 대한 부호화 정보를 포함할 수 있다.
일 실시예에 따른 다시점 스케일러블 비디오 인코딩에 의해 다시점 영상들의 부호화 정보를 통합하며 공간적 스케일러블 계층, 시간적 스케일러블 계층 및 화질적 스케일러블 계층을 지원하는 비트스트림을 생성할 수 있다. 일 실시예에 따른 다시점 스케일러블 비디오 디코딩에 의해, 공간적 스케일러블 계층, 시간적 스케일러블 계층 및 화질적 스케일러블 계층을 비트스트림으로부터, 원하는 공간적 계층, 시간적 계층 및 화질적 계층의 비디오 영상에 대응하는 비트스트림을 선택적으로 추출하여 디코딩할 수 있다.
이하 도 18 내지 24를 참고하여, 일 실시예에 따른 부호화부(320) 및 일 실시예에 따른 복호화부(430)의 계층별 예측 구조에 대해 상술된다.
도 18은 일 실시예에 따른 계층별 예측 구조에 따라, 현재 계층의 예측 구조를 설정하는 일 방법의 흐름도(1900)를 도시한다.
일 실시예에 있어서, 부호화부(320)는, 계층별로 현재 계층의 시간 방향 및/또는 시점 방향의 예측 구조를 설정한 후 설정한 예측 구조에 따라 현재 계층을 코딩하는 동작을, 계층마다 반복할 수 있다. 복호화부(430)도 상술한 실시예에 따른 부호화부(320)와 마찬가지의 원리로, 계층별로 현재 계층의 시간 방향 및/또는 시점 방향의 예측 구조를 설정한 후 설정한 예측 구조에 따라 현재 계층을 디코딩하는 동작을 수행할 수 있다.
단계 1910에서, 현재 계층의 예측 구조가 설정된다.
단계 1920에서, 단계 1910에서 설정된 현재 계층의 예측 구조에 따라 현재 계층의 코딩이 수행된다.
단계 1910 및 단계 1920를 계층 수만큼 반복한다. 여기서 계층은 모든 종류의 계층이 될 수도 있으며, 특정한 종류의 계층이 될 수도 있다.
도 19는 일 실시예에 따른 계층별 예측 구조에 따라, 현재 계층의 예측 구조를 설정하는 다른 방법의 흐름도(2000)를 도시한다.
일 실시예에 있어서, 부호화부(320)는, 코딩을 수행하기 전에 모든 계층에 대해 각각의 시간 방향 및/또는 시점 방향의 예측 구조를 설정한 후, 각각의 계층에 대해 순차적으로 앞서 설정된 예측 구조에 따라 코딩할 수 있다. 복호화부(430)도 상술한 실시예에 따른 부호화부(320)와 마찬가지의 원리로, 모든 계층에 대한 시간 방향 및/또는 시점 방향의 예측 구조를 설정한 후, 각각의 계층에 대해 순차적으로 앞서 설정된 예측 구조에 따라 디코딩할 수 있다.
단계 2010에서, 모든 계층에 대해 각각의 계층별 예측 구조가 설정된다.
단계 2020에서, 단계 2010에서 설정된 예측 구조에 따라 현재 계층의 코딩이 수행된다. 계층별로 순차적으로 단계 2010에서 설정된 예측 구조에 따라 코딩이 수행되는 동작이 계층 수만큼 반복된다. 여기서 계층은 모든 종류의 계층이 될 수도 있으며, 특정한 종류의 계층이 될 수도 있다.
일 실시예에 따른 계층별 예측 구조에 따라, 공간적 계층, 시간적 계층, 화질적 계층 등 다양한 계층의 스케일러블 계층별로 적응적으로 설정된 시간 방향 또는 시점 방향의 예측 구조에 따라 예측 코딩을 수행함으로써, 코딩의 랜덤 액세스 성능을 향상시킬 수 있다.
각각의 계층의 예측 구조를 설정하기 위해 다양한 방식이 이용될 수 있다. 일 실시예에 따른 부호화부(320)는, 각각의 계층의 예측 구조를 설정하기 위해, 사용자 커맨드를 입력받아 현재 계층의 시간 방향 및/또는 시점 방향의 예측 구조를 설정할 수 있다. 또한 일 실시예에 따른 부호화부(320)는 각각의 계층의 예측 구조를 설정하기 위해, 미리 정해 놓은 계층별 예측 구조에 따를 수도 있다. 예를 들어, 두 개의 공간적 계층에 대한 공간적 스케일러블 비디오 코딩을 수행할 경우, 공간적 기본 계층(spatial base layer)에서는 시간 방향의 예측 구조 및 시점 방향의 예측 구조가 모두 채택되고, 공간적 향상 계층(spatial enhancement layer)에서는 시간 방향의 예측 구조만이 채택될 수 있다.
일 실시예에 따른 복호화부(430)는, 인코더로부터 전송된 정보에 기초하여 현재 계층의 예측 구조를 설정할 수 있다. 또한 일 실시예에 따른 복호화부(430)는, 계층별 예측 구조를 인코더와 디코더에서 함께 미리 정해 놓은 예측 구조로 설정할 수도 있다.
도 20은 다른 실시예에 따른 계층별 예측 구조에 따라, 하위 계층의 예측 구조를 선택적으로 사용하여 현재 계층의 예측 구조를 코딩하는 일 방법의 흐름도(2100)를 도시한다.
다른 실시예에 따른 각각의 계층별 예측 구조를 따라, 일 실시예에 따른 부호화부(320) 및 일 실시예에 따른 복호화부(430)는, 현재 계층의 예측 구조를 코딩하기 위해 하위 계층의 예측 구조를 선택적으로 사용할 수 있다.
단계 2110에서, 현재 계층의 예측 구조의 코딩을 위해 한 계층 아래의 하위 계층의 예측 구조를 사용할지 여부가 판단된다. 하위 계층의 예측 구조가 사용된다면 단계 2120로 진행하고, 만약 사용되지 않는다면 단계 2130으로 진행한다.
단계 2120에서 현재 계층의 예측 구조가 하위 계층의 예측 구조와 동일하게 설정되고, 단계 2130에서 현재 계층의 예측 구조가 별도로 설정된다.
도 20을 참조하여 전술된 하위 계층의 예측 구조를 선택적으로 참조한 현재 계층의 예측 구조 설정 방법에 따르면, 현재 계층의 예측 구조에서 바로 하위 계층의 예측 구조를 사용할지에 대한 정보를 코딩함으로써 바로 하위 계층의 예측 구조를 참조할지 여부가 판단될 수 있다. 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300)는 현재 계층의 예측 구조 코딩을 위해 하위 계층의 예측 구조를 사용할지에 대한 정보를 플래그(flag)로 코딩할 수 있다.
일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)는 수신된 비트스트림으로부터 플래그 정보를 추출하여, 플래그 정보가 1인 경우에는 해당 비트스트림의 현재 계층의 예측 구조를 하위 계층의 예측 구조와 동일하게 설정하며, 0인 경우에는 현재 계층의 예측 구조를 별개로 설정할 수 있다.
계층마다 예측 구조의 정보를 코딩한다고 가정하였을 때, 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300) 및 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)는, 표 2와 같은 신택스를 사용할 수 있다.
layer_prediction_structure( ){
use_lower_layer_pred_struct_flag
if( use_lower_layer_pred_struct_flag = = 0 ) {
(현재 계층의 예측 정보를 설정)...
}
}
계층별 예측 구조의 정보를 코딩하는 신택스 'layer_prediction_structure' 는, 현재 계층의 예측 구조의 코딩을 위해 하위 계층의 예측 구조를 사용할지 여부에 대한 플래그 정보인 'use_lower_layer_pred_struct_flag'를 포함할 수 있다.
현재 계층의 예측 구조가 바로 하위 계층의 예측 구조를 사용한다면 'use_lower_layer_pred_struct_flag'가 1로 설정되어 현재 계층의 예측 구조가 하위 계층의 정보와 동일하게 설정될 수 있다.
현재 계층의 예측 구조를 예측하기 위해 하위 계층의 예측 구조를 참조하지 않는다면 'use_lower_layer_pred_struct_flag'가 0으로 설정되어 현재 계층의 예측 정보가 별개로 설정된다.
예를 들어, 현재 계층의 예측 구조는 시점 방향의 예측 구조와 시간 방향의 예측 구조 모두가 될 수도 있으며, 다른 일례로 시점 방향만의 예측 구조, 또 다른 일례로 시간 방향만의 예측 구조일 수 있다.
도 21은 다른 실시예에 따른 계층별 예측 구조에 따라, 하위 계층의 예측 구조를 선택적으로 사용하여 현재 계층의 예측 구조를 코딩하는 다른 방법의 흐름도(2200)를 도시한다. 편의상, 부호화부(320)의 동작을 위주로 설명하는 것이며, 그에 대응되는 복호화부(430)의 동작도 마찬가지 원리로 설명된다.
일 실시예에 따른 부호화부(320)는 현재 계층의 예측 구조를 설정하기 위해 하위 계층의 예측 구조를 선택적으로 사용할 수 있도록 하는 방법의 또 다른 일례로, 현재 계층을 기준으로 N 번째 하위 계층의 예측 구조가 현재 계층의 예측 구조와 동일한 예측 구조인 경우, 현재 계층의 예측 구조를 N번째 하위 계층의 예측 구조를 사용하여 코딩할 수 있다.
단계 2210에서, 현재 계층의 예측 구조의 코딩에서 하위 계층들 중에 특정 계층의 예측 구조를 사용할 것인지 여부가 판단된다. 특정 계층의 예측 구조가 사용된다면 단계 2220으로 진행하고, 만약 사용되지 않는다면 단계 2230으로 진행한다.
단계 2220에서, 현재 계층의 예측 구조가 특정 N 번째 하위 계층의 예측 구조와 동일하게 설정된다. 단계 2230에서, 현재 계층의 예측 구조는 별도로 설정된다.
흐름도(2200)의 방법에 따르면, 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)는 현재 계층의 예측 구조의 코딩에서 하위 계층의 예측 구조를 사용할지 여부에 대한 정보를 디코딩함으로써 N번째 하위 계층의 예측 구조를 사용할지 여부를 판단할 수 있다. 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300)는 현재 계층의 예측 구조로서 N번째 하위 계층의 예측 구조를 사용할지여부에 대한 정보를 플래그로 코딩할 수 있다. 플래그 정보가 1인 경우에는 N 번째 하위 계층의 예측 구조와 동일하게 현재 계층의 예측 구조가 코딩되며, 0인 경우에는 하위 계층의 예측 구조와 동일하게 현재 계층의 예측 구조가 코딩되지 않고, 현재 계층의 예측 구조가 별개로 설정된다.
그리고 하위 계층의 예측 구조와 동일하게 현재 계층의 예측 구조가 코딩될 경우에는 예측의 대상이 되는 하위 계층을 나타내는 정보가 코딩될 수 있다. 예를 들어 예측의 대상이 되는 하위 계층을 나타내는 정보로서, 현재 계층과 하위 계층의 차이값을 코딩한 값이 코딩될 수 있다.
계층마다 예측 구조의 정보를 코딩한다고 가정하였을 때, 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300) 및 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)는, 표 3과 같은 신택스를 사용할 수 있다.
layer_prediction_structure( ){
use_lower_layer_pred_struct_flag
if( use_lower_layer_pred_struct_flag = = 0 ) {
(현재 계층의 예측정보를 설정)...
}
else {
delta_lower_layer_minus1
}
}
계층별 예측 구조의 정보를 코딩하는 신택스 'layer_prediction_structure'는 현재 계층의 예측 구조의 코딩에서 하위 계층의 예측 구조를 사용할지에 대한 플래그 정보인 'use_lower_layer_pred_struct_flag'를 포함할 수 있다. 만일 현재 계층의 예측 구조의 코딩이 하위 계층의 예측 구조를 사용한다면, 'use_lower_layer_pred_struct_flag'는 1로 설정되고 현재 계층의 예측 구조가 하위 계층의 정보와 동일하게 설정될 수 있다. 만일 현재 계층의 예측 구조가 하위 계층의 예측 구조를 참조하지 않는다면 'use_lower_layer_pred_struct_flag'는 0으로 설정되고 현재 계층의 예측 정보가 별도로 설정된다.
또한, 'use_lower_layer_pred_struct_flag'가 1인 경우에는 예측의 대상이 되는 하위 계층과 현재 계층의 차이값에서 -1을 뺀 값을 나타내는 'delta_lower_layer_mius1'가 코딩될 수 있다. 예를 들어, 바로 하위 계층의 예측 구조를 사용하여 현재 계층의 예측 구조를 코딩하는 경우에는 'delta_lower_layer_minus1' 값은 0이 된다.
일 실시예에 따른 계층별 예측 구조에 따라, 하위 계층의 예측 구조를 사용하여 현재 계층의 예측 구조의 정보를 코딩하는 경우, 현재 계층의 예측 구조와 하위 계층의 예측 구조가 부합하지 않는 경우가 발생할 수 있다.
일례로, 현재 픽처에서 각각의 현재 계층의 블록의 예측 코딩을 수행할 경우에 하위 계층의 블록의 예측 코딩 결과가 현재 계층의 픽쳐의 예측 구조와 맞지 않는다면, 현재 계층의 블록의 예측 코딩을 위해 하위 계층의 정보가 사용되지 않을 수 있다. 예를 들어, 만약 현재 계층의 픽처의 예측 구조가 시간 방향의 예측만을 허용하는데 하위 계층의 블록의 예측 코딩 결과가 시점 방향의 예측을 수행하였다면 상위 계층의 블록에서 하위 계층의 정보가 사용되지 않을 수 있다.
다른 예로, 현재 픽처에서 각각의 현재 계층의 블록의 예측 코딩을 수행할 경우에 하위 계층의 블록의 예측 코딩 결과가 현재 계층의 픽쳐의 예측 구조와 맞지 않는다면, 하위 계층의 정보 중에 현재 계층의 픽처의 예측 구조에 맞는 부분만을 이용하여 현재 계층이 예측될 수 있다. 예를 들어, 만약 상위 계층의 픽쳐의 예측 구조가 시간 방향의 예측만을 허용하는데 하위 계층의 블록의 예측 코딩 결과가 시간 방향과 시점 방향의 예측을 모두 수행하였다면, 현재 계층의 블록에서는 하위 계층의 정보 중에 시간 방향의 예측 정보만이 사용될 수 있다.
또 다른 예로, 현재 픽처에서 각각의 현재 계층의 블록의 예측 코딩을 수행할 경우에 하위 계층의 블록의 예측 코딩 결과가 현재 계층의 픽쳐의 예측 구조와 맞지 않는다면, 하위 계층의 정보 중에 블록의 타입 또는 블록의 분할 정보만이 참조되어 현재 계층의 예측 코딩에 사용될 수 있다. 예를 들어, 만약 상위 계층의 픽쳐의 예측 구조가 시간 방향의 예측만을 허용하는데 하위 계층의 블록의 예측 코딩 결과가 시점 방향의 예측을 수행하였다면, 현재 계층에서는 하위 계층의 블록의 블록의 타입 또는 블록의 분할 정보만이 참조되어 사용될 수 있다.
도 22은 일 실시예에 따라 4개의 시점 및 2개의 공간적 계층을 가지는 다시점 스케일러블 비디오 코딩에서 공간적 현재 계층 및 하위 계층의 예측 구조의 일례를 도시한다.
계층별 예측 구조의 또 다른 예로, 2개의 공간적 계층을 지원하는 다시점 스케일러블 비디오 코딩에서, 시점 방향 예측 구조를 계층별로 적응적으로 구현할 수 있다. 기본 계층 및 향상 계층은 각각 2개의 공간적 계층 중 상위 계층 및 하위 계층에 해당한다. 시간 방향의 GOP의 크기는 8이며, 4개의 시점(S0, S1, S2, S3)별로 시점별 픽처들이 인코딩된다.
계층별 예측 구조를 사용하지 않는 다시점 스케일러블 비디오 코딩에 따라, 공간적 기본 계층의 예측 구조(2300) 및 공간적 향상 계층(2350)의 예측 구조는 동일하다. 공간적 향상 계층에서는 하위 계층을 모두 디코딩하여 텍스처 정보를 예측하는 것이 아니라, 하위 계층의 예측 구조에 따른 움직임 정보와 해당 움직임 정보를 사용하여 예측된 잔여 데이터 정보를 주로 예측하여 코딩이 수행되므로 공간적 향상 계층에서는 기본적으로 공간적 기본 계층의 예측 구조를 그대로 차용하는 것이 일반적이다.
다만, 모든 공간적 계층들(2300, 2350)이 동일한 예측 구조에 따라 코딩된다면, 다시점 비디오 코딩과 같이 시점 방향 예측 코딩으로 인한 랜덤 액세스 성능이 감소한다.
도 23은 일 실시예에 따라 4개의 시점 및 2개의 공간적 계층을 가지는 다시점 스케일러블 비디오 코딩에서 공간적 현재 계층 및 하위 계층의 예측 구조의 다른 예를 도시한다.
계층별 예측 구조에 따르는 다시점 스케일러블 비디오 코딩에 따라, 공간적 기본 계층의 예측 구조(2400)와 독립적으로 공간적 향상 계층(2450)의 예측 구조가 설정될 수 있다. 공간적 기본 계층의 예측 구조(2400)는 전술한 공간적 기본 계층의 예측 구조(2300)와 동일한 반면, 공간적 향상 계층(2450)의 예측 구조는, 비앵커 픽처들에 대해서는 시점 방향의 예측을 수행하지 않는 예측 구조가 채택되었다. 비앵커 픽쳐에서 시점 방향 예측을 수행하지 않기 때문에 공간적 향상 계층의 랜덤 액세스 성능 측면에서 향상이 있을 것으로 예상될 수 있다.
도 24는 일 실시예에 따라 4개의 시점 및 2개의 공간적 계층을 가지는 다시점 스케일러블 비디오 코딩에서 공간적 현재 계층 및 하위 계층의 예측 구조의 또 다른 실시예를 도시한다.
계층별 예측 구조에 따라, 공간적 향상 계층(2550)의 예측 구조도 공간적 기본 계층의 예측 구조(2500)와 독립적으로 설정될 수 있다. 공간적 기본 계층의 예측 구조(2500)는 전술한 공간적 기본 계층의 예측 구조(2300)와 동일한 반면, 공간적 향상 계층(2550)의 예측 구조는, 앵커 픽처들 및 비앵커 픽처들을 불문하고 모든 시점 방향의 예측을 수행하지 않는 예측 구조가 채택되었다. 공간적 향상 계층에서 시점 방향 예측을 수행하지 않기 때문에, 랜덤 액세스 성능 측면에서는 가장 성능이 좋다고 할 수 있다.
사용자가 항상 모든 시점의 영상을 필요로 하는 것이 아니고 임의의 원하는 시점 또는 시점들의 영상을 필요로 하는 경우가 있으므로, 실제 비디오 전송 환경에서 랜덤 액세스 기능이 유용하다. 예를 들어, 하나의 시점을 지원하는 단말의 사용자는 임의의 원하는 시점을 선택할 필요가 있으며, 스테레오를 지원하는 단말의 사용자는 임의의 두 시점을 선택할 필요가 있다.
수학식 1은, 시점 랜덤 액세스의 복잡도를 나타낸다.
Figure pat00001
C는 현재 액세스하고자 하는 시점의 픽처의 수, M은 공간적 기본 계층을 포함하여 디코딩을 수행해야 하는 픽처의 수를 나타내며, h base w base 는 각각 공간적 기본 계층의 각 픽처의 높이와 넓이를 의미하고, h ehn w enh 는 각각 공간적 향상 계층의 각각의 픽처의 높이와 넓이를 나타한다. r base 는 공간적 기본 계층의 프레임율, r enh 는 공간적 향상 계층의 프레임율을 나타낸다. GOP_size는 시점별 시간 방향의 GOP의 크기를 나타내고, α는 현재 시점의 앵커 픽처의 연속적으로 참조하는 시점의 수를, β는 현재 시점의 비앵커 픽쳐의 연속적으로 참조하는 시점의 수를 나타낸다.
도 22, 23, 24의 공간적 향상 계층들의 계층별 예측 구조들(2350, 2450, 2550)에 대해 수학식 1을 적용하면, 모두 다른 변수는 동일하고 α β만이 다른 값을 갖는다. 따라서, 현재 시점의 앵커 픽처의 연속적으로 참조하는 시점의 수 α 및 현재 시점의 비앵커 픽쳐의 연속적으로 참조하는 시점의 수 β가 작을수록, 공간적 기본 계층을 포함하여 디코딩을 수행해야 하는 픽처의 수 M가 작고, 이에 따라 시점 랜덤 액세스의 복잡도가 감소함을 확인할 수 있다.
예를 들어, 도 22의 공간적 향상 계층의 예측 구조(2350)에서는, 공간적 향상 계층의 S1 시점의 픽처를 액세스하기 위해서는, 먼저 공간적 기본 계층 중 동일한 S1 시점의 픽처에 대해 움직임 보상을 제외한 디코딩을 수행해야 하고, 동일한 공간적 향상 계층에서는 S1 시점이 S0 시점과 S2 시점을 참조하기 때문에 S0, S1, S2 시점들의 모든 픽처들에 대해 디코딩을 수행해야 하는 복잡한 코딩 과정이 필요하다. 따라서, S1 시점에 대한 현재 시점의 앵커 픽처의 연속적으로 참조하는 시점의 수 α 및 현재 시점의 비앵커 픽쳐의 연속적으로 참조하는 시점의 수 β가 모두 2이다.
이에 비해, 도 23의 공간적 향상 계층의 예측 구조(2450)에서 S1 시점은 현재 시점의 앵커 픽처의 연속적으로 참조하는 시점의 수 α 및 현재 시점의 비앵커 픽쳐의 연속적으로 참조하는 시점의 수 β는 각각 2, 0이고, 도 24의 공간적 향상 계층의 예측 구조(2550)에서 S1 시점에 대한 현재 시점의 앵커 픽처의 연속적으로 참조하는 시점의 수 α 및 현재 시점의 비앵커 픽쳐의 연속적으로 참조하는 시점의 수 β가 모두 0이다.
따라서, 도 22의 공간적 향상 계층의 예측 구조(2350)의 경우 랜덤 액세스 복잡도가 가장 크고, 도 24의 공간적 향상 계층의 예측 구조(2550)의 경우 랜덤 액세스 복잡도가 가장 작다. 즉, 일 실시예에 따른 계층별 예측 구조가 시점 랜덤 액세스 성능 향상 면에서 효과가 있음을 확인할 수 있다.
도 25는 다른 실시예에 따른 다시점 스케일러블 비디오 인코더의 블록도를 도시한다.
다른 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(2600)는 다운샘플링부(2610), 인코딩부(2620), 화질적 스케일러블 비디오 코딩부(2630) 및 비트스트림 조합부(2640)를 포함한다. 다른 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(2600)와 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 장치(300)를 비교하면, 다운샘플링부(2610), 인코딩부(2620) 및 화질적 스케일러블 비디오 코딩부(2630)가 인코딩 수행부(320)에 대응하고, 비트스트림 조합부(2640)가 비트스트림 출력부(330)에 대응할 수 있다.
다시점 스케일러블 비디오 인코딩 장치(2600)는 하나의 독립된 장치로 존재하여 N개의 영상을 차례로 입력받을 수 있다. 또한, 여러 개의 다시점 스케일러블 비디오 인코딩 장치(2600)가 병렬로 존재하여 N개의 영상을 각각 입력받을 수도 있다.
입력된 시점 비디오 영상은 공간적 스케일러빌리티를 지원하기 위한 하위 계층을 만들기 위해서 다운샘플링부(2610)에 입력될 수 있다. 다운샘플링부(2610)는 입력되는 영상을 다운샘플링하여 공간적 하위 계층의 영상을 생성하기 위해서 사용될 수 있다. 만약 공간적 스케일러빌리티를 지원하지 않는다면, 입력된 시점 비디오 영상은 다운샘플링부(2610)를 거치지 않고 인코딩부(2620)로 입력될 수 있다. 인코딩부(2620)는 입력된 시점 비디오 영상과 다른 시점의 비디오 영상 정보, 하위 계층의 정보 그리고 계층 간 예층 정보를 입력받을 수 있다.
다른 시점 영상 정보는, 다른 시점 영상의 인코딩 후 재구성된 영상 또는 다른 시점 영상의 코딩된 정보일 수 있다. 다른 시점 영상 정보가 입력될 경우 인코딩부(2620)는 다른 시점 영상 정보를 이용하여 현재 시점의 영상에 대한 다시점 비디오 코딩을 수행할 수 있다. 또한 하위 계층 정보는 하위 계층의 재구성된 영상 또는 하위 계층의 움직임 벡터 또는 매크로블록 타입과 같은 부호화 정보일 수 있다. 하위 계층 정보가 입력된 경우에 인코딩부(2620)는 하위 계층의 정보를 이용하여 현재 계층의 영상에 대한 스케일러블 비디오 코딩을 수행할 수 있다.
그리고, 계층간 예측 정보가 입력된 경우 인코딩부(2620)는 '계층별 예측 구조'에 따른 인코딩을 수행할 수 있다.
인코딩부(2620)에 의해 인코딩된 정보는 다른 계층 또는 다른 시점의 영상을 인코딩하는데 이용될 수 있다. 만약 다시점 스케일러블 비디오 인코딩 장치(2600)가 독립된 하나의 인코딩 장치로 구성되어 있다면, 부호화 정보는 다시 인코딩부(2620)에 입력될 수 있다. 만약 다시점 스케일러블 비디오 인코딩 장치(2600)가 여러 개의 인코더들 중 하나라면, 다른 계층 또는 다른 시점의 영상을 위한 인코더로 입력될 수 있다.
인코딩부(2620)에서 인코딩을 수행한 후 화질적 스케일러빌리티를 지원하고자 하면 화질적 스케일러블 비디오 코딩부(2630)로 분기한다. 화질적 스케일러블 비디오 코딩부(2630)는 인코딩부(2620)에 의해 인코딩된 정보들과 인코딩 장치에 입력된 영상을 이용하여 화질적 스케일러블 비디오 코딩을 수행한다. 인코딩부(2620)에 의해 인코딩된 정보는, 복원된 영상, 코딩된 정보 등을 포함할 수 있다. 화질적 스케일러블 비디오 코딩부(2630)에 의해 인코딩된 정보는 인코딩부(2620)와 동일하게 다른 계층 또는 다른 시점 영상을 위한 부호화 정보를 출력할 수 있다.
인코딩부(2620) 또는 화질적 스케일러블 비디오 코딩부(2630)에 의해 인코딩된 결과 출력된 비트스트림은 비트스트림 조합부(2640)에 입력된다. 비트스트림 조합부(2640)는 인코딩부(2620)에 의해 인코딩된 비트스트림, 화질적 스케일러빌리티 인코딩부(2630)에 의해 인코딩된 비트스트림, 상위 또는 하위 계층의 비트스트림, 그리고 다른 시점 영상의 비트스트림을 입력받을 수 있다.
비트스트림 조합부(2640)는 입력받은 비트스트림들을 이용하여, 도 10 내지 13을 참조하여 전술한 비트스트림 구조에 따라 비트스트림을 구성하여, 하나의 실감형 다시점 스케일러블 비디오 비트스트림을 출력할 수 있다. 이 때 비트스트림 조합부(2640)에서는, 디코딩 단계에서 다시점 스케일러블 비디오 비트스트림으로부터 필요한 정보를 선택 또는 추출하기 위해 필요한 '비트스트림 요약 정보'를, 하나의 실감형 다시점 스케일러블 비디오 비트스트림에 추가로 조합할 수 있다.
도 26은 다른 실시예에 따른 다시점 스케일러블 비디오 디코더의 블록도를 도시한다.
다른 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(2700)는 비트스트림 선택부(2710), 비트스트림 분해부(2720) 및 디코딩부(2730)를 포함한다. 다른 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(2700)와 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 장치(400)를 비교하면, 비트스트림 분해부(2720)이 분할부(420)에 대응하고, 디코딩부(2730)가 복호화부(430)에 대응할 수 있다.
다시점 스케일러블 비디오 디코딩 장치(2700)에 입력된 비트스트림은 비트스트림 선택부(2710)에 입력될 수 있거나 비트스트림 분해부(2720)로 분기될 수 있다. 입력된 비트스트림은 다시점 스케일러블 비디오 비트스트림일 수 있다.
비트스트림 선택부(2710)는 비트스트림 선택 정보와 비트스트림을 입력받아 비트스트림 선택 정보를 이용하여 비트스트림의 일부를 선택하여 출력할수 있다. 비트스트림 선택부(2710)에서 선택된 비트스트림 또는 다시점 스케일러블 비디오 디코딩 장치(2700)에 입력된 비트스트림은 비트스트림 분해부(2720)로 입력되거나 또는 디코딩부(2730)로 분기한다.
비트스트림 분해부(2720)는 비트스트림과 비트스트림 요약 정보를 입력받고, 비트스트림 요약 정보를 이용하여 비트스트림을 분해하여, 실감형 다시점 스케일러블 비디오 비트스트림으로부터 필요한 정보를 선택 또는 추출하고, 추출된 정보는 디코딩부(2730)로 입력된다.
디코딩부(2730)는 '하나의 독립된 디코더'에서 분해되지 않은 비트스트림을 입력 받아 비트스트림을 분해하여 디코딩을 수행할 수 있다. 또한, 디코딩부(2730)는 '여러 개의 디코더'로 구성되어 비트스트림 분해부(2720)에 의해서 분해된 비트스트림을 '여러 개의 디코더'가 각각 입력받아 디코딩을 수행할 수 있다. 만약 '여러 개의 디코더'로 구성된 경우 비트스트림 분해부(2720)를 거친 각각의 비트스트림은 '여러 개의 디코더' 중 대응하는 디코더로 입력된다.
디코딩부(2730)는 비트스트림과 다른 시점 영상 정보, 하위 계층 정보, 계층 간 예측 정보를 입력으로 받을 수 있다. 디코딩부(2730)에 입력된 비트스트림에 따라서 다양한 디코딩 방법이 수행될 수 있다. 만약 H.264 방식이 수행되는 경우에 비트스트림 이외에 다른 시점 영상 정보, 하위 계층 정보, 계층 간 예측 정보는 사용되지 않을 수 있다. 또한 SVC 방식이 수행되는 경우에는 하위 계층 정보를 이용하여 디코딩이 수행될 수 있으며, MVC 방식이 수행되는 경우에는 다른 시점의 영상 정보를 이용하여 디코딩이 수행될 수 있다. 그리고 MSVC 방식이 수행되는 경우에는 다른 시점 영상 정보, 하위 계층 정보 그리고 계층 간 예측 정보를 이용하여 디코딩이 수행될 수 있다.
디코딩부(2730)에서 디코딩된 정보는 다른 계층 또는 다른 시점 영상을 디코딩하는데 사용하기 위해서, 현재 디코딩 정보로서 다른 디코더가 사용할 수 있도록 출력될 수 있다. 현재 디코딩 정보는, 현재 스케일러블 계층의 디코딩 정보, 디코딩된 영상 등을 포함할 수 있다.
만일 디코딩부(2730)가 독립적으로 구성된 경우에는 출력하는 디코딩 정보가 다시 현재 디코딩부(2730)에 입력될 수 있으며, 여러 개의 디코더들로 구성하는 경우에는 다른 디코더에 입력될 수 있다.
도 27은 일 실시예에 따른 다시점 스케일러블 비디오 인코딩 방법의 흐름도를 도시한다.
단계 2810에서, 복수 개의 시점에 대한 시점별 영상들 즉, 시점 비디오 영상들이 입력된다.
단계 2820에서, 복수 개의 시점별 영상들에 대해, 시점 간 정보 및 계층 간 정보를 이용한 다시점 스케일러블 비디오 코딩이 수행된다. 현재 시점의 영상에 대해 다시점 비디오 코딩 및 스케일러블 비디오 코딩이 조합되어 수행될 수 있다. 다시점 스케일러블 비디오 코딩에 따라, 현재 시점의 현재 계층의 영상, 하위 계층의 정보, 및 현재 계층 및 하위 계층 간의 계층 간 정보 중 적어도 하나를 이용하여, 현재 시점의 영상에 대해 인코딩이 수행될 수 있다. 다시점 스케일러블 비디오 코딩은, 계층별로 적응적으로 설정된 계층적 예측 구조에 따라 인코딩될 수 있다.
단계 2830에서, 시점 비디오 영상들 각각에 대한 스케일러블 비디오 코딩에 의해 생성된 시점별 계층별 비트스트림을, 시점 및 계층을 고려한 순서에 따라 조합하여 코딩 결과 비트스트림이 출력된다. 시간 순서에 따라 동일한 시간대의 시점별 계층별 비트스트림들끼리 나열한 시간대별 액세스 유닛들이 생성되며, 시간대별 액세스 유닛들이 시간 순서에 따라 나열된 한 단위로 통합된 비트스트림이 출력될 수 있다. 시간대별 액세스 유닛들은 계층별 서브-액세스 유닛들로 구성된다.
도 28은 일 실시예에 따른 다시점 스케일러블 비디오 디코딩 방법의 흐름도를 도시한다.
단계 2910에서, 다시점 스케일러블 비디오 코딩 방식에 의해 인코딩된 비트스트림이 수신된다.
단계 2920에서, 다시점 스케일러블 비디오 코딩에 따른 복수 개의 시점들 및 복수 개의 계층들에 기초하여, 비트스트림이 시점별 계층별 비트스트림들로 분할된다. 수신된 비트스트림 중, 계층 및 시점에 따라 디코딩이 필요한 비트스트림이 선택될 수 있다. 수신된 비트스트림은 시간 순서에 따라 나열된 시간대별 액세스 유닛들로 분할되고, 시간대별 액세스 유닛들이 시간 순서에 따라 동일한 시간대의 시점별 계층별 비트스트림들로 분할될 수 있다. 시간대별 액세스 유닛으로부터, 해당 시간대의 계층별 서브-액세스 유닛들이 분할될 수 있다.
단계 2930에서, 시점별 계층별 비트스트림들에 대해, 시점 간 정보 및 계층 간 정보를 이용하여 다시점 스케일러블 비디오 디코딩이 수행된다. 다시점 스케일러블 비디오 디코딩은, 현재 시점의 현재 계층의 영상, 하위 계층의 정보, 및 현재 계층 및 하위 계층 간의 계층 간 정보 중 적어도 하나를 이용하여 디코딩을 수행하여야 현재 시점의 현재 계층을 복원할 수 있다.
다시점 스케일러블 비디오 디코딩 방법은, 하위 계층의 존부에 따라 계층 간 스케일러블 비디오 디코딩의 수행 여부 및 시점 방향 예측 코딩 수행 여부에 따라 다시점 비디오 디코딩의 수행 여부를 판단하고, 판단 결과에 따라 현재 시점 영상에 대해 다시점 스케일러블 비디오 디코딩, 단일 시점 스케일러블 비디오 디코딩, 다시점 비디오 디코딩 및 단일 시점 비디오 디코딩 중 하나를 수행할 수 있다. 다시점 스케일러블 비디오 디코딩은, 계층별로 설정된 예측 구조에 따라 예측 디코딩을 수행할 수 있다.
본 발명의 일 실시예에 따른, 다시점 스케일러블 비디오 인코딩 방법 및 그 장치는, HD급 해상도의 다시점 영상 컨텐트를 한번의 인코딩을 수행하여 비트스트림을 생성할 수 있다. 기존 2차원 디스플레이, 스테레오스코픽 디스플레이, 다시점 영상 디스플레이 장치, 자유로운 시점 선택형 디스플레이 등을 포함하는 다양한 시점, QVGA, SD, HD, Full HD 등을 포함하는 다양한 화면 크기, VCD, DVD, HDTV 등을 포함하는 다양한 화질, 5Hz, 15Hz, 30Hz, 60Hz 등을 포함하는 다양한 시간적 해상도 등의 다양한 포맷의 컨텐트가 인코딩되어 비트스트림으로 전송될 수 있다.
또한, 본 발명의 일 실시예에 따른, 다시점 스케일러블 비디오 디코딩 방법 및 그 장치는, 수신된 비트스트림들로부터 원하는 포맷의 컨텐트에 해당하는 비트스트림을 선택하여 컨텐트를 추출하여 디스플레이 장치들로 전송할 수 있다. 이에 따라, 다양한 시점, 다양한 화면 크기, 다양한 화질, 다양한 시간적 해상도를 지원할 수 있는 디스플레이 장치들에게 각각의 환경에 맞는 컨텐트가 제공될 수 있다.
따라서 일 실시예에 따른 다시점 스케일러블 비디오 코딩에 의해, 실감형 비디오 컨텐트가 다양한 전송환경과 다양한 단말들에게 효율적으로 전달할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 패킷이 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이러한 본원 발명인 장치는 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.

Claims (39)

  1. (a) 복수의 시점별 비디오 영상들을 부호화하되, 상기 복수의 시점별 비디오 영상들 중 적어도 하나에 대해서는 다시점 비디오 인코딩을 적용하고, 상기 복수의 시점별 비디오 영상들 중 적어도 하나에 대해서는 스케일러블 비디오 인코딩을 적용하여, 시점별 계층별 비트스트림들을 생성하는 단계; 및
    (b) 상기 생성된 시점별 계층별 비트스트림들을, 시점 및 계층에 기초한 미리 설정된 순서에 따라 조합하여, 출력 비트스트림을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  2. 제1항에 있어서, 상기 (a) 단계는,
    상기 복수의 시점별 비디오 영상들 중 적어도 하나에 대해서는 다시점 비디오 인코딩 및 스케일러블 비디오 인코딩을 적용하는 단계를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 (a) 단계에 있어서 상기 다시점 비디오 코딩을 적용하는 것은, 타 시점의 비디오 영상 정보에 기초한 시점간 예측을 수행하는 것을 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 (a) 단계에 있어서 상기 스케일러블 비디오 코딩을 적용하는 것은, 하위 계층에 대한 비디오 인코딩으로 얻어지는 비디오 영상 정보 및 현재 계층의 비디오 영상을 기초로 현재 계층의 비디오 영상을 부호화하는 것을 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  5. 제1항에 있어서, 상기 (a) 단계는,
    계층별로 예측 구조를 설정하고, 상기 설정된 계층별 예측 구조에 따라 스케일러블 비디오 인코딩하는 단계를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  6. 제5항에 있어서, 상기 (a) 단계는,
    모든 계층에 대한 계층별 예측 구조를 설정하고, 상기 설정된 계층별 예측 구조에 따라 계층별로 인코딩하는 것을 특징으로 하는 비디오 인코딩 방법.
  7. 제5항에 있어서, 상기 (a) 단계는,
    상기 계층마다 반복적으로, 계층별 예측 구조를 설정하여 인코딩하는 것을 특징으로 하는 비디오 인코딩 방법.
  8. 제1항에 있어서, 상기 (a) 단계는,
    현재 시점 영상의 현재 계층의 예측 구조가, 상기 현재 시점 영상의 하위 계층의 예측 구조와 동일한지 여부를 판단하는 단계; 및
    상기 판단 결과에 따라 상기 하위 계층의 예측 구조를 사용할지 여부를 결정하여 상기 현재 계층의 예측 구조를 인코딩하는 단계를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  9. 제8항에 있어서,
    상기 하위 계층은, 상기 현재 계층의 한 계층 하위의 하위 계층 또는 상기 복수 개의 하위 계층들 중 선택된 소정 계층인 것을 특징으로 하는 비디오 인코딩 방법.
  10. 제5항에 있어서,
    공간적 향상 계층의 시점 방향 예측 구조는, 공간적 기본 계층의 시점 방향 예측 구조와 독립적으로 설정되는 것을 특징으로 하는 비디오 인코딩 방법.
  11. 제10항에 있어서, 상기 (a) 단계는,
    공간적 기본 계층에 대해서는, 모든 픽처에 대해 시점 방향 예측을 수행하고,
    공간적 향상 계층에 대해서는, 비앵커 픽처들 또는 모든 픽처들에 대해서는 시점 방향 예측을 수행하지 않는 것을 특징으로 하는 비디오 인코딩 방법.
  12. 제5항에 있어서, 상기 (a) 단계는,
    하위 계층의 예측 구조가 현재 계층의 예측 구조에 부합하지 않는 경우, 하위 계층의 예측 구조를 사용하지 않거나, 상기 하위 계층의 예측 구조 중 상기 현재 계층의 예측 구조와 부합하는 부분만 참조하여, 상기 현재 계층의 예측 구조를 예측하는 것을 특징으로 하는 비디오 인코딩 방법.
  13. 제1항에 있어서,
    상기 스케일러블 비디오 인코딩은, 상기 복수 개의 시점별 영상들에 대해, 공간적 스케일러블 비디오 인코딩, 시간적 스케일러블 비디오 인코딩 및 화질적 스케일러블 비디오 인코딩 중 적어도 하나를 수행하는 것을 특징으로 하는 비디오 인코딩 방법.
  14. 제13항에 있어서, 상기 (a) 단계는,
    상기 공간적 스케일러블 비디오 인코딩에 따라, 해상도에 따라 현재 계층의 영상 및 하위 계층의 영상이 생성되고, 상기 하위 계층의 영상을 참조하여 상기 현재 계층의 영상을 예측하는 단계를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  15. 제13항에 있어서,
    상기 시간적 스케일러블 비디오 인코딩에 따라, 프레임률에 따라 현재 계층의 영상 및 하위 계층의 영상이 생성되고, 상기 하위 계층의 영상을 참조하여 상기 현재 계층의 영상을 예측하는 단계를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  16. 제1항에 있어서, 상기 (b) 단계는,
    시간 순서에 따라 동일한 시간대의 시점별 계층별 비트스트림들끼리 나열한 시간대별 액세스 유닛(Access Unit)들을 생성하여, 상기 시간대별 액세스 유닛들을 시간 순서에 따라 나열한 다시점 스케일러블 비디오 비트스트림을 출력하는 단계를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  17. 제16항에 있어서, 상기 (b) 단계는,
    각각의 시점별 계층별 비트스트림이 화질적 계층 및 공간적 계층에 따른 비트스트림으로 구성되는 경우, 상기 각각의 시간대별 액세스 유닛은 화질적 계층 및 공간적 계층에 따른 각각의 계층별 비트스트림을 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  18. 제16항에 있어서,
    상기 다시점 스케일러블 비디오 비트스트림에 대한 신택스 정보로서, 상기 액세스 유닛의 시점별 계층별 비트스트림을 식별하기 위해, 공간적 스케일러빌리티 정보의 식별 정보, 시간적 스케일러빌리티 정보의 식별 정보, 화질적 스케일러빌리티 정보의 식별 정보 및 상기 시점별 계층별 비트스트림의 식별 정보를 설정하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  19. (a) 비트스트림을 수신하는 단계;
    (b) 상기 수신된 비트스트림으로부터 시점별 계층별 비트스트림들로 분할하는 단계; 및
    (c) 상기 시점별 계층별 비트스트림들에 대해, 시점 간 정보 및 계층 간 정보를 이용하여 다시점 스케일러블 비디오 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  20. 제 19 항에 있어서, 상기 (b) 단계는,
    상기 비디오 비트스트림 중, 계층 및 시점에 따라 디코딩이 필요한 비트스트림을 선택하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  21. 제19항에 있어서, 상기 (c) 단계는,
    현재 시점 영상에 대한 하위 계층의 영상 또는 하위 계층의 정보가 존부에 따라 계층 간 스케일러블 비디오 디코딩의 수행 여부를 판단하는 단계;
    시점 방향 예측 코딩 수행 여부에 따라 다시점 비디오 디코딩의 수행 여부를 판단하는 단계; 및
    상기 스케일러블 비디오 디코딩의 수행 여부 판단 결과 및 상기 다시점 비디오 디코딩의 수행 여부 판단 결과에 따라, 상기 현재 시점 영상에 대해 다시점 스케일러블 비디오 디코딩, 단일 시점 스케일러블 비디오 디코딩, 다시점 비디오 디코딩 및 단일 시점 비디오 디코딩 중 하나를 수행하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  22. 제19항에 있어서, 상기 (c) 단계는,
    계층별로 설정된 예측 구조에 따라 디코딩하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  23. 제22항에 있어서, 상기 (c) 단계는,
    모든 계층에 대한 계층별 예측 구조를 설정하고, 상기 설정된 계층별 예측 구조에 따라 계층별로 디코딩하는 것을 특징으로 하는 비디오 디코딩 방법.
  24. 제23항에 있어서, 상기 (c) 단계는,
    상기 계층마다 반복적으로, 계층별 예측 구조를 설정하여 디코딩하는 것을 특징으로 하는 비디오 디코딩 방법.
  25. 제22항에 있어서, 상기 (c) 단계는,
    현재 시점 영상의 현재 계층의 예측 구조가, 상기 현재 시점 영상의 하위 계층의 예측 구조와 동일한지 여부를 판단하는 단계; 및
    상기 판단 결과에 따라 상기 하위 계층의 예측 구조를 사용할지 여부를 결정하여 상기 현재 계층의 예측 구조를 디코딩하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  26. 제25항에 있어서,
    상기 하위 계층은, 상기 현재 계층의 한 계층 하위의 하위 계층 또는 상기 복수 개의 하위 계층들 중 선택된 소정 계층인 것을 특징으로 하는 비디오 디코딩 방법.
  27. 제25항에 있어서, 상기 (c) 단계는,
    하위 계층의 예측 구조가 현재 계층의 예측 구조에 부합하지 않는 경우, 하위 계층의 예측 구조를 사용하지 않거나, 상기 하위 계층의 예측 구조 중 상기 현재 계층의 예측 구조와 부합하는 부분만 참조하여, 상기 현재 계층의 예측 구조를 예측하는 것을 특징으로 하는 비디오 디코딩 방법.
  28. 제19항에 있어서, 상기 (c) 단계는,
    상기 복수 개의 시점들 중, 현재 시점 이외의 다른 시점의 영상 정보를 참조하여 상기 현재 시점의 영상에 대해 다시점 비디오 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  29. 제28항에 있어서, 상기 (c) 단계는,
    상기 현재 시점의 현재 계층의 영상, 상기 현재 시점의 하위 계층의 정보, 및 상기 현재 계층 및 상기 하위 계층 간의 계층 간 예측 정보 중 적어도 하나를 이용하여 상기 스케일러블 비디오 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  30. 제29항에 있어서,
    상기 스케일러블 비디오 디코딩은, 상기 복수 개의 시점별 계층별 비트스트림들에 대해, 공간적 스케일러블 비디오 디코딩, 시간적 스케일러블 비디오 디코딩 및 화질적 스케일러블 비디오 디코딩 중 적어도 하나를 수행하는 것을 특징으로 하는 비디오 디코딩 방법.
  31. 제22항에 있어서,
    공간적 향상 계층의 시점 방향 예측 구조는, 공간적 기본 계층의 시점 방향 예측 구조와 독립적으로 설정된 것을 특징으로 하는 비디오 디코딩 방법.
  32. 제31항에 있어서, 상기 (c) 단계는,
    공간적 기본 계층에 대해서는, 모든 픽처에 대해 시점 방향 예측을 수행하고,
    공간적 향상 계층에 대해서는, 비앵커 픽처들 또는 모든 픽처들에 대해서는 시점 방향 예측을 수행하지 않는 것을 특징으로 하는 비디오 디코딩 방법.
  33. 제 19 항에 있어서, 상기 (b) 단계는,
    상기 수신된 다시점 스케일러블 비디오 비트스트림을 시간 순서에 따라 나열된 시간대별 액세스 유닛들로 분할하고, 상기 시간대별 액세스 유닛들을 시간 순서에 따라 동일한 시간대의 시점별 계층별 비트스트림들로 분할하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  34. 제 33 항에 있어서, 상기 (b) 단계는,
    각각의 시간대별 액세스 유닛으로부터 화질적 계층 및 공간적 계층에 따른 각각의 계층별 비트스트림을 분할하는 것을 특징으로 하는 비디오 디코딩 방법.
  35. 제 33 항에 있어서, 상기 (b) 단계는,
    상기 다시점 스케일러블 비디오 비트스트림에 대한 신택스 정보 중, 공간적 스케일러빌리티 정보의 식별 정보, 시간적 스케일러빌리티 정보의 식별 정보, 화질적 스케일러빌리티 정보의 식별 정보 및 상기 시점별 계층별 비트스트림의 식별 정보를 이용하여, 상기 액세스 유닛의 시점별 계층별 비트스트림을 식별하여 분할하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  36. 복수 개의 시점별 영상들에 대해, 시점 간 정보 및 계층 간 정보를 이용한 다시점 스케일러블 비디오 인코딩을 수행하는 부호화부; 및
    상기 시점별 영상들에 대한 스케일러블 비디오 인코딩에 의해 생성된 시점별 계층별 비트스트림을, 상기 시점 및 계층을 고려한 순서에 따라 조합하여 다시점 스케일러블 비디오 비트스트림을 출력하는 출력부를 포함하는 것을 특징으로 하는 비디오 인코딩 장치.
  37. 다시점 스케일러블 비디오 비트스트림을 수신하는 수신부;
    상기 다시점 스케일러블 비디오 비트스트림의 복수 개의 시점들 및 복수 개의 계층들에 기초하여, 상기 다시점 스케일러블 비디오 비트스트림을 시점별 계층별 비트스트림들로 분할하는 분할부; 및
    상기 시점별 계층별 비트스트림들에 대해, 시점 간 정보 및 계층 간 정보를 이용하여 다시점 스케일러블 비디오 디코딩을 수행하는 복호화부를 포함하는 것을 특징으로 하는 비디오 디코딩 장치.
  38. 제1항 내지 제18항 중 어느 한 항에 기재된 방법을 구현하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체.
  39. 제19항 내지 제35항 중 어느 한 항에 기재된 방법을 구현하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체.
KR1020100019893A 2009-08-05 2010-03-05 비디오 인코딩/디코딩 방법 및 그 장치 KR101144752B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090071880 2009-08-05
KR20090071880 2009-08-05

Publications (2)

Publication Number Publication Date
KR20110014507A true KR20110014507A (ko) 2011-02-11
KR101144752B1 KR101144752B1 (ko) 2012-05-09

Family

ID=43773691

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100019893A KR101144752B1 (ko) 2009-08-05 2010-03-05 비디오 인코딩/디코딩 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR101144752B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013051896A1 (ko) * 2011-10-05 2013-04-11 한국전자통신연구원 비디오 부호화/복호화 방법 및 그 장치
KR101346349B1 (ko) * 2012-01-30 2013-12-31 광운대학교 산학협력단 스케일러블 다시점 영상 복호화 장치 및 방법
KR20180058649A (ko) * 2016-11-24 2018-06-01 한국전자통신연구원 스케일러블 비디오를 처리하기 위한 방법 및 장치
KR20190067122A (ko) * 2017-12-06 2019-06-14 한국전자통신연구원 다중시점영상의 디스플레이 장치 및 방법
CN113613009A (zh) * 2015-02-27 2021-11-05 索尼公司 发送装置、发送方法、接收装置和接收方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018097669A1 (ko) * 2016-11-24 2018-05-31 한국전자통신연구원 스케일러블 비디오를 처리하기 위한 방법 및 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100732961B1 (ko) * 2005-04-01 2007-06-27 경희대학교 산학협력단 다시점 영상의 스케일러블 부호화, 복호화 방법 및 장치
KR100783722B1 (ko) * 2005-12-20 2007-12-07 한국철도기술연구원 다양한 수신환경을 고려한 스테레오 비디오 부호화방법 및 장치
WO2008051041A1 (en) * 2006-10-25 2008-05-02 Electronics And Telecommunications Research Institute Multi-view video scalable coding and decoding
KR101396948B1 (ko) * 2007-03-05 2014-05-20 경희대학교 산학협력단 하이브리드 다시점 및 계층화 비디오 코딩 방법과 장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013051896A1 (ko) * 2011-10-05 2013-04-11 한국전자통신연구원 비디오 부호화/복호화 방법 및 그 장치
KR101346349B1 (ko) * 2012-01-30 2013-12-31 광운대학교 산학협력단 스케일러블 다시점 영상 복호화 장치 및 방법
CN113613009A (zh) * 2015-02-27 2021-11-05 索尼公司 发送装置、发送方法、接收装置和接收方法
US12058404B2 (en) 2015-02-27 2024-08-06 Sony Group Corporation Transmitting device, transmitting method, receiving device, and receiving method
KR20180058649A (ko) * 2016-11-24 2018-06-01 한국전자통신연구원 스케일러블 비디오를 처리하기 위한 방법 및 장치
KR20190067122A (ko) * 2017-12-06 2019-06-14 한국전자통신연구원 다중시점영상의 디스플레이 장치 및 방법

Also Published As

Publication number Publication date
KR101144752B1 (ko) 2012-05-09

Similar Documents

Publication Publication Date Title
US11044454B2 (en) Systems and methods for multi-layered frame compatible video delivery
Vetro et al. Overview of the stereo and multiview video coding extensions of the H. 264/MPEG-4 AVC standard
EP2538674A1 (en) Apparatus for universal coding for multi-view video
US20070041443A1 (en) Method and apparatus for encoding multiview video
KR101144752B1 (ko) 비디오 인코딩/디코딩 방법 및 그 장치
CN102577376A (zh) 用于多视点视频编码和解码的方法和设备
JP2009505604A (ja) 多視点動映像を符号化する方法及び装置
KR101595397B1 (ko) 서로 다른 다계층 비디오 코덱의 통합 부호화/복호화 방법 및 장치
KR101101320B1 (ko) 추출 방법과 그 장치, 및 다시점 스케일러블 비디오 비트스트림 생성 방법과 그 장치
KR20140035065A (ko) 다시점 비디오 인코딩 및 디코딩 방법 및 이를 이용한 인코딩 및 디코딩 장치

Legal Events

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

Payment date: 20150417

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170327

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190402

Year of fee payment: 8