KR102531386B1 - 영상 데이터 부호화/복호화 방법 및 장치 - Google Patents

영상 데이터 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR102531386B1
KR102531386B1 KR1020207014806A KR20207014806A KR102531386B1 KR 102531386 B1 KR102531386 B1 KR 102531386B1 KR 1020207014806 A KR1020207014806 A KR 1020207014806A KR 20207014806 A KR20207014806 A KR 20207014806A KR 102531386 B1 KR102531386 B1 KR 102531386B1
Authority
KR
South Korea
Prior art keywords
image
resizing
information
division
encoding
Prior art date
Application number
KR1020207014806A
Other languages
English (en)
Other versions
KR20200060545A (ko
Inventor
김기백
Original Assignee
주식회사 비원영상기술연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 비원영상기술연구소 filed Critical 주식회사 비원영상기술연구소
Priority to KR1020237015505A priority Critical patent/KR20230070062A/ko
Publication of KR20200060545A publication Critical patent/KR20200060545A/ko
Application granted granted Critical
Publication of KR102531386B1 publication Critical patent/KR102531386B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • 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/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

영상 데이터 부호화/복호화 방법 및 장치가 개시된다. 360도 영상의 복호화 방법은, 360도 영상이 부호화된 비트스트림을 수신하는 단계, 수신된 비트스트림에서 획득한 구문 정보를 참조하여, 예측 영상을 생성하는 단계, 상기 생성된 예측 영상을 상기 비트스트림을 역양자화 및 역변환하여 획득한 잔차 영상과 결합하여 복호화된 영상을 획득하는 단계 및 상기 복호화된 영상을 투영 포맷에 따른 360도 영상으로 재구성하는 단계를 포함한다. 여기서 상기 예측 영상을 생성하는 단계는, 상기 구문 정보에서, 복호화할 현재 블록에 대한 예측 모드 정밀도를 확인하는 단계, 확인한 예측 모드 정밀도와 상기 구문 정보에서 획득한 MPM (Most Probable Mode) 모드 정보가 상응하는지 판단하는 단계 및 상응하지 않는 경우, 상기 MPM 모드 정보를 상기 현재 블록에 대한 예측 모드 정밀도에 따라 재구성하는 단계를 포함한다.

Description

영상 데이터 부호화/복호화 방법 및 장치{IMAGE DATA ENCODING/DECODING METHOD AND APPARATUS}
본 발명은 영상 데이터 부호화 및 복호화 기술에 관한 것으로, 더욱 상세하게는, 실감형 미디어 서비스를 위한 360도 영상의 부호화 및 복호화를 처리하는 방법 및 장치에 관한 것이다.
인터넷과 휴대 단말의 보급과 정보 통신 기술의 발전에 따라 멀티미디어 데이터에 대한 이용이 급증하고 있다. 최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도 영상 및 고품질의 영상에 대한 수요가 다양한 분야에서 발생하고 있으며, 가상 현실, 증강 현실과 같은 실감형 미디어 서비스에 대한 수요는 급증하고 있다. 특히, 가상 현실, 증강 현실을 위한 360도 영상의 경우 복수의 카메라로 촬영된 멀티뷰 영상을 처리하기 때문에 그로 인해 발생하는 데이터량은 방대하게 증가하지만, 이를 처리하기 위한 영상 처리 시스템 성능이 미흡한 실정이다.
이와 같이, 종래 기술의 영상 부호화/복호화 방법 및 장치에서는 영상 처리, 특히 영상 부호화/ 복호화에 대한 성능 개선이 요구되는 상황이다.
상기와 같은 과제를 해결하기 위한 본 발명의 목적은, 부호화 및 복호화 초기 단계에서의 영상 설정 과정을 개선하는 방법을 제공하는데 있다. 더욱 상세하게는, 360도 영상 특성을 고려하는 영상 설정 과정을 개선하는 부호화 및 복호화 방법 및 장치를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은 360도 영상의 복호화 방법을 제공한다.
여기서 360도 영상의 복호화 방법은, 360도 영상이 부호화된 비트스트림을 수신하는 단계, 수신된 비트스트림에서 획득한 구문 정보를 참조하여, 예측 영상을 생성하는 단계, 상기 생성된 예측 영상을 상기 비트스트림을 역양자화 및 역변환하여 획득한 잔차 영상과 결합하여 복호화된 영상을 획득하는 단계 및 상기 복호화된 영상을 투영 포맷에 따른 360도 영상으로 재구성하는 단계를 포함할 수 있다.
여기서 구문 정보는, 상기 360도 영상에 대한 투영 포맷 정보를 포함할 수 있다.
여기서 상기 투영 포맷 정보는, 상기 360도 영상을 2차원 평면으로 투영시킨 ERP(Equi-Rectangular Projection) 포맷, 상기 360도 영상을 정육면체로 투영시킨 CMP(CubeMap Projection) 포맷, 상기 360도 영상을 8면체로 투영시킨 OHP(OctaHedron Projection) 포맷, 상기 360도 영상을 다면체로 투영시킨 ISP(IcoSahedral Projection) 포맷 중 적어도 하나를 지시하는 정보일 수 있다.
여기서 상기 재구성하는 단계는, 상기 구문 정보를 참조하여, 지역별 포장(regional packing)에 따른 배치 정보를 획득하는 단계 및 상기 배치 정보에 따라, 상기 복호화된 영상의 각 블록을 재배치하는 단계를 포함할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 비트스트림을 복원하여 획득한 참조 영상(reference picture)에 대하여 영상 확장을 수행하는 단계 및 영상 확장이 수행된 참조 영상을 참조하여, 예측 영상을 생성하는 단계를 포함할 수 있다.
여기서 상기 영상 확장을 수행하는 단계는, 상기 참조 영상의 분할 단위를 기초로 영상 확장하는 수행하는 단계를 포함할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위의 경계 화소를 이용하여, 상기 분할 단위마다 개별적으로 확장된 영역을 생성할 수 있다.
여기서 상기 확장된 영역은, 확장할 분할 단위와 공간적으로 인접한 분할 단위의 경계 화소 또는 확장할 분할 단위와 영상의 연속성이 있는 분할 단위의 경계 화소를 이용하여 생성될 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위 중에서 공간적으로 인접한 두 개 이상의 분할 단위가 결합된 영역의 경계 화소를 이용하여, 상기 결합된 영역에 대하여 확장된 영상을 생성할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위 중에서 공간적으로 인접한 분할 단위들의 인접 화소 정보를 모두 이용하여, 상기 인접한 분할 단위들 사이에 확장된 영역을 생성할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 공간적으로 인접한 분할 단위들 각각의 인접 화소들의 평균값을 이용하여 상기 확장된 영역을 생성할 수 있다.
여기서 예측 영상을 생성하는 단계는, 상기 비트스트림을 복원하여 획득한 참조 영상(reference picture)에 대하여 영상 확장을 수행하는 단계 및 영상 확장이 수행된 참조 영상을 참조하여, 화면 내 예측에 따른 예측 영상을 생성하는 단계를 포함할 수 있다.
여기서 상기 화면 내 예측에 따른 예측 영상을 생성하는 단계는, 상기 참조 영상에서, 복원할 현재 블록과 인접한 위치에 있는 참조 블록의 참조 가능성을 확인하는 단계, 참조 가능성에 따라 결정된 참조 화소를 참조하여 상기 현재 블록에 대한 화면 내 예측을 수행하여 예측 블록을 생성하는 단계를 포함할 수 있다.
여기서 상기 현재 블록과 인접한 위치는, 상기 현재 블록의 좌상, 상, 우상, 좌측 위치를 포함할 수 있다.
여기서 상기 참조 가능성을 확인하는 단계 이후에, 360도 영상의 데이터 연속성을 기초로, 상기 현재 블록과 인접하지 않은 위치에 속하고, 상기 현재 블록과 영상 데이터의 상관성이 높으며, 부/복호화가 완료된 제1 영역이 상기 참조 영상 내에 존재하는지 확인하는 단계를 포함할 수 있다.
여기서 상기 부/복호화가 완료된 영역이 상기 참조 영상 내에 존재하는지 확인하는 단계 이후에, 상기 제1 영역의 화소를 참조 화소로서 참조하여, 상기 현재 블록에 대한 화면 내 예측을 수행하는 단계를 포함할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 구문 정보에서, 복호화할 현재 블록에 대한 예측 모드 정밀도를 확인하는 단계, 확인한 예측 모드 정밀도와 상기 구문 정보에서 획득한 MPM (Most Probable Mode) 모드 정보가 상응하는지 판단하는 단계 및 상응하지 않는 경우, 상기 MPM 모드 정보를 상기 현재 블록에 대한 예측 모드 정밀도에 따라 재구성하는 단계를 포함할 수 있다.
여기서 상기 MPM 모드 정보는, 상기 현재 블록과 인접한 블록들 중 적어도 하나의 블록에 대한 화면 내 예측 모드를 지시할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 MPM 모드 정보를 재구성한 정보를 참조하여, 상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계를 더 포함할 수 있다.
여기서 상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계는, 상기 인접한 블록에 속한 참조 화소를 구성하는 단계 및 상기 참조 화소를 이용하여 화면 내 예측을 수행함으로써 상기 현재 블록에 대한 예측 블록을 생성하는 단계를 포함할 수 있다.
여기서 상기 참조 화소를 구성하는 단계는, 상기 현재 블록과 인접한 블록이 사용 불가능한 경우, 상기 현재 블록과 영상 상관성을 가진 다른 블록의 경계 화소를 이용하여, 사용 불가능한 블록의 참조 화소를 구성할 수 있다.
상술한 바와 같은 본 발명의 실시예에 따른 영상 부호화/복호화 방법 및 장치를 이용할 경우에는, 압축 성능을 향상시킬 수 있다. 특히, 360도 영상의 경우 압축 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치의 블록도이다.
도 3은 영상을 압축하기 위하여 영상 정보를 계층별로 나눈 예시도이다.
도 4는 본 발명의 일 실시예에 따른 영상 분할의 여러 예시를 나타낸 개념도이다.
도 5는 본 발명의 일 실시예에 따른 영상 분할 방법의 다른 예시도이다.
도 6은 일반적인 영상의 크기 조정 방법에 대한 예시도이다.
도 7은 본 발명의 일 실시예에 따른 영상 크기 조정에 대한 예시도이다.
도 8은 본 발명의 일 실시예에 따른 영상 크기 조정 방법에서, 확장되는 영역을 구성하는 방법에 대한 예시도이다.
도 9는 본 발명의 일 실시예에 따른 영상 크기 조정 방법에서, 삭제되는 영역 및 축소되어 생성되는 영역을 구성하는 방법에 대한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 영상 재구성에 대한 예시도이다.
도 11은 본 발명의 일 실시예에 따른 영상 설정 과정의 전과 후의 영상을 나타낸 예시도이다.
도 12는 본 발명의 일 실시예에 따른 영상 내 분할 단위 각각을 대상으로 한 크기 조정의 예시도이다.
도 13은 영상 내 분할 단위의 크기 조정 또는 설정 세트에 대한 예시도이다.
도 14는 영상 크기 조정 과정과 영상 내 분할 단위의 크기 조정 과정을 함께 표현한 예시도이다.
도 15는 3차원 영상을 나타내는 3차원 공간 및 2차원 평면 공간을 나타낸 예시도이다.
도 16a 내지 도 16d는 본 발명의 일 실시예에 따른 투영 포맷을 설명하기 위한 개념도이다.
도 17은 본 발명의 일 실시예에 따른 투영 포맷을 직사각형의 영상 내에 포함되는 것으로 구현한 개념도이다.
도 18은 본 발명의 일 실시예에 따른 투영 포맷을 직사각 형태의 형상으로 변환하는 방법으로서, 무의미한 영역을 배제하도록 표면을 재배치하는 방법에 대한 개념도이다.
도 19는 본 발명의 일 실시예에 따른 CMP 투영 포맷을 직사각 형태의 영상으로 지역별 포장 과정을 수행한 개념도이다.
도 20은 본 발명의 일 실시예에 따른 360도 영상 분할에 대한 개념도이다.
도 21은 본 발명의 실시예에 따른 360도 영상 분할과 영상 재구성의 예시도이다.
도 22는 CMP로 투영된 영상 또는 포장된 영상을 타일로 분할한 예시도이다.
도 23은 본 발명의 일 실시예에 따른 360도 영상의 크기 조정의 예를 설명하기 위한 개념도이다.
도 24는 본 발명의 일 실시예에 따른 투영 포맷(예를 들어, CMP, OHP, ISP)에서 표면 간의 연속성을 설명하기 위한 개념도이다.
도 25는 CMP 투영 포맷에서의 영상 재구성 과정 또는 지역별 포장 과정을 통해 획득된 영상인 도 21c의 표면의 연속성을 설명하기 위한 개념도이다.
도 26은 본 발명의 일 실시예에 따른 CMP 투영 포맷에서의 영상의 크기 조정을 설명하기 위한 예시도이다.
도 27은 본 발명의 일 실시예에 따른 CMP 투영 포맷으로 변환되고, 포장된 영상을 대상으로 한 크기 조정을 설명하기 위한 예시도이다.
도 28은 본 발명의 일 실시예에 따른 360도 영상의 크기 조정에서 데이터 처리 방법을 설명하기 위한 예시도이다.
도 29는 트리 기반의 블록 형태를 나타낸 예시도이다.
도 30은 타입 기반의 블록 형태를 나타낸 예시도이다.
도 31은 본 발명의 블록 분할부에서 획득할 수 있는 다양한 블록의 형태를 나타낸 예시도이다.
도 32는 본 발명의 일 실시예에 따른 트리 기반의 분할을 설명하기 위한 예시도이다.
도 33은 본 발명의 일 실시예에 따른 트리 기반의 분할을 설명하기 위한 예시도이다.
도 34는 화면내 예측에 사용되는 참조 화소 구성을 설명하기 위한 예시도이다.
도 35는 화면내 예측에 사용되는 참조 화소 범위를 설명하기 위한 예시도이다.
도 36은 HEVC의 화면내 예측 모드를 나타낸 예시도이다.
도 37a 내지 도 37d는 화면내 예측 모드 후보군의 다양한 경우를 설명하기 위한 예시도이다.
도 38은 본 발명의 일 실시예에 따른 예측 모드 정밀도를 설명하기 위한 예시도이다.
도 39는 본 발명의 일 실시예에 따른 예측 모드의 정밀도 변경에 대한 예시도이다.
도 40은 본 발명의 일 실시예에 따른 영상 부호화 장치의 화면내 예측 구성을 나타낸 블록 구성도이다.
도 41은 본 발명의 일 실시예에 따른 영상 복호화 장치의 화면내 예측 구성을 나타낸 블록 구성도이다.
도 42는 본 발명의 일 실시예에 따른 360도 영상의 화면내 예측에 대한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 것을 의미한다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
영상 부호화 장치 및 복호화 장치는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV, 가상 현실 디바이스(Virtual Reality. VR), 증강 현실 디바이스(Augmented Reality. AR), 혼합 현실 디바이스(Mixed Reality. MR), 머리 착용 디바이스(Head Mounted Display. HMD), 스마트 안경(Smart Glasses) 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하거나 부호화 또는 복호화를 위해 화면내 또는 화면간 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(Memory), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(Processor) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 부호화 장치에서 복호화 장치로 전달될 수도 있다.
전술한 영상 부호화 장치와 영상 복호화 장치는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 영상 부호화/복호화 장치로 만들어질 수 있다. 그 경우, 영상 부호화 장치의 일부 구성은 영상 복호화 장치의 일부 구성과 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다.
따라서 이하의 기술요소들과 이들의 작동 원리 등에 대한 상세 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다.
그리고 영상 복호화 장치는 영상 부호화 장치에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치를 중심으로 설명하기로 한다.
컴퓨팅 장치는 영상 부호화 방법 및/또는 영상 복호화 방법을 구현하는 프로그램이나 소프트웨어 모듈을 저장하는 메모리와 메모리에 연결되어 프로그램을 수행하는 프로세서를 포함할 수 있다. 그리고 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.
통상적으로 영상은 일련의 정지 영상(Still Image)으로 구성될 수 있으며, 이 정지 영상들은 GOP(Group of Pictures) 단위로 구분될 수 있고, 각 정지 영상을 픽쳐(Picture)라고 지칭할 수 있다. 이때, 픽쳐는 프로그레시브(Progressive) 신호, 인터레이스(Interlace) 신호에서의 프레임(Frame), 필드(Field) 중 하나를 나타낼 수 있고, 부호화/복호화가 프레임 단위로 수행될 경우 영상은 '프레임', 필드 단위로 수행될 경우 '필드'로 나타낼 수 있다. 본 발명에서는 프로그레시브 신호를 가정하고 설명하지만, 인터레이스 신호에도 적용 가능할 수 있다. 상위 개념으로는 GOP, 시퀀스(Sequence)등의 단위가 존재할 수 있으며, 또한, 각 픽쳐는 슬라이스, 타일, 블록 등과 같은 소정의 영역으로 분할될 수 있다. 또한, 하나의 GOP에는 I 픽쳐, P 픽쳐, B 픽쳐 등의 단위가 포함될 수 있다. I 픽쳐는 참조 픽쳐를 사용하지 않고 자체적으로 부호화/복호화되는 픽쳐를 의미할 수 있으며, P 픽쳐와 B 픽쳐는 참조 픽쳐를 사용하여 움직임 추정(Motion Estimation) 및 움직임 보상(Motion Compensation) 등의 과정을 수행하여 부호화/복호화 하는 픽쳐를 의미할 수 있다. 일반적으로 P 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐로써 이용할 수 있으며, B 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐를 이용할 수 있으나, 이는 부호화/복호화의 설정에 의해 위의 정의 또한 변경될 수 있다.
여기서 부호화/복호화하는데 참조되는 픽쳐를 참조 픽쳐(Reference Picture)라고 하며, 참조되는 블록 또는 화소를 참조 블록(Reference Block), 참조 화소(Reference Pixel)라고 한다. 또한, 참조되는 데이터(Reference Data)는 공간 영역(Spatial Domain)의 화소값 뿐만 아니라 주파수 영역(Frequency Domain)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다. 예를 들어, 예측부에서 화면내 예측 관련 정보 또는 움직임 관련 정보, 변환부/역변환부에서 변환 관련 정보, 양자화부/역양자화부에서 양자화 관련 정보, 부호화부/복호화부에서는 부호화/복호화 관련 정보(문맥 정보), 인루프 필터부에서는 필터 관련 정보 등이 해당될 수 있다.
영상을 이루는 최소 단위는 화소(Pixel)일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도(Bit Depth)라고 한다. 일반적으로 비트 심도는 8비트일 수 있으며 부호화 설정에 따라 그 이상의 비트 심도를 지원할 수 있다. 비트 심도는 컬러 공간(Color Space)에 따라 적어도 하나의 비트 심도가 지원될 수 있다. 또한, 영상의 컬러 포맷(Color Format)에 따라 적어도 하나의 컬러 공간으로 구성될 수 있다. 컬러 포맷에 따라 일정 크기를 갖는 1개 이상의 픽쳐 또는 다른 크기를 갖는 1개 이상의 픽쳐로 구성될 수 있다. 예를 들어, YCbCr 4:2:0인 경우 1개의 휘도 성분(본 예에서, Y)과 2개의 색차 성분(본 예에서, Cb/Cr)으로 구성될 수 있으며, 이때 색차 성분과 휘도 성분의 구성 비는 가로, 세로 1:2를 가질 수 있다. 다른 예로, 4:4:4인 경우 가로, 세로 동일한 구성 비를 가질 수 있다. 상기 예처럼 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다.
본 발명에서는 일부 컬러 포맷(본 예에서, YCbCr)의 일부 컬러 공간(본 예에서, Y)을 기준으로 설명할 것이며, 컬러 포맷에 따른 다른 컬러 공간(본 예에서, Cb, Cr)에도 동일하거나 비슷한 적용(특정 컬러 공간에 의존적인 설정)을 할 수 있다. 그러나 각 컬러 공간에 부분적인 차이(특정 컬러 공간에 독립적인 설정)를 두는 것 또한 가능할 수 있다. 즉, 각 컬러 공간에 의존적인 설정은 각 성분의 구성 비(예를 들어, 4:2:0, 4:2:2, 4:4:4 등에 따라 결정)에 비례하거나 의존적인 설정을 갖는 것으로 의미할 수 있고, 각 컬러 공간에 독립적인 설정은 각 성분의 구성 비에 관계없거나 독립적으로 해당 컬러 공간만의 설정을 갖는 것으로 의미할 수 있다. 본 발명에서는 부/복호화기에 따라 일부 구성에 대해서는 독립적인 설정을 갖거나 의존적인 설정을 가질 수 있다.
영상 부호화 과정에서 필요한 설정 정보 또는 구문 요소(Syntax Element)는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위 수준에서 정해질 수 있으며 이는 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set), Slice Header, Tile Header, Block Header 등과 같은 단위로 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서는 동일 수준의 단위에서 파싱(Parsing)하여 부호화기에서 전송된 설정 정보를 복원하여 영상 복호화 과정에 사용할 수 있다. 또한, SEI(Supplement Enhancement Information) 또는 메타 데이터(Metadata) 등의 형태로 관련 정보를 비트스트림으로 전송하고 파싱하여 사용할 수 있다. 각 파라미터 세트는 고유의 아이디값을 갖고 있으며, 하위 파라미터 세트에서는 참조할 상위 파라미터 세트의 아이디값을 가질 수 있다. 예를 들어, 하위 파라미터 세트에서 하나 이상의 상위 파라미터 세트 중 일치하는 아이디값을 갖는 상위 파라미터 세트의 정보를 참조할 수 있다. 위에서 언급된 다양한 단위의 예 중 어떤 하나의 단위가 하나 이상의 다른 단위를 포함하는 경우에 해당하는 단위는 상위 단위, 포함되는 단위는 하위 단위라 칭할 수 있다.
상기 단위에서 발생하는 설정 정보의 경우 해당 단위마다 독립적인 설정에 대한 내용을 포함하거나 이전, 이후 또는 상위 단위 등에 의존적인 설정에 대한 내용을 포함할 수 있다. 여기서 의존적인 설정이란 이전, 이후, 상위 단위의 설정을 따른다는 플래그 정보(예를 들어, 1 비트 플래그로 1이면 따름. 0이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다. 본 발명에서의 설정 정보는 독립적인 설정에 대한 예를 중심으로 설명을 할 것이나, 현재 단위의 이전, 이후의 단위 또는 상위 단위의 설정 정보에 의존적인 관계에 대한 내용으로의 추가 또는 대체되는 예 또한 포함될 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치의 블록도이다. 도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치의 블록도이다.
도 1을 참조하면, 영상 부호화 장치는 예측부, 감산부, 변환부, 양자화부, 역양자화부, 역변환부, 가산부, 인루프 필터부, 메모리 및/또는 부호화부를 포함하여 구성될 수 있으며, 위의 구성 중 일부는 반드시 포함되지 않을 수 있으며, 구현에 따라 일부 또는 전부가 선택적으로 포함될 수 있으며, 도시되지 않은 추가적인 일부 구성이 포함될 수 있다.
도 2를 참조하면, 영상 복호화 장치는 복호화부, 예측부, 역양자화부, 역변환부, 가산부, 인루프 필터부 및/또는 메모리를 포함하여 구성될 수 있으며, 위의 구성 중 일부는 반드시 포함되지 않을 수 있으며, 구현에 따라 일부 또는 전부가 선택적으로 포함될 수 있으며, 도시되지 않은 추가적인 일부 구성이 포함될 수 있다.
영상 부호화 장치와 영상 복호화 장치는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 영상 부호화/복호화 장치로 만들어질 수 있다. 그 경우, 영상 부호화 장치의 일부 구성은 영상 복호화 장치의 일부 구성과 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다. 따라서 이하의 기술요소들과 이들의 작동 원리 등에 상세한 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다. 영상 복호화 장치는 영상 부호화 장치에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치를 중심으로 설명하기로 한다. 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.
예측부는 소프트웨어 모듈인 예측 모듈(Prediction Module)을 이용하여 구현될 수 있고, 부호화할 블록에 대하여 화면내 예측(Intra Prediction) 방식이나 화면간 예측(Inter Prediction) 방식으로 예측 블록을 생성할 수 있다. 예측부는 영상에서 현재 부호화하고자 하는 현재 블록을 예측하여 예측 블록을 생성한다. 즉, 예측부는 영상에서 부호화하고자 하는 현재 블록의 각 화소의 화소값(Pixel Value)을 화면내 예측 또는 화면간 예측에 따라 예측하여 생성된 각 화소의 예측 화소값(Predicted Pixel Value)을 갖는 예측 블록을 생성한다. 또한, 예측부는 예측 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 예측 모드에 대한 정보를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기로 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 예측 모드에 대한 정보를 복원한 후 이를 화면내 예측 또는 화면간 예측에 사용할 수 있다.
감산부는 현재 블록에서 예측 블록을 감산하여 잔차 블록(Residual Block)을 생성한다. 즉, 감산부는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호(Residual Signal)인 잔차 블록을 생성한다.
변환부는 공간 영역에 속하는 신호를 주파수 영역에 속하는 신호로 변환할 수 있으며, 이때 변환 과정을 거쳐 획득되는 신호를 변환 계수(Transformed Coefficient)라고 한다. 예를 들어, 감산부로부터 전달받은 잔차 신호를 갖는 잔차 블록을 변환하여 변환 계수를 갖는 변환 블록을 획득할 수 있는데, 입력 받은 신호는 부호화 설정에 따라 결정되며 이는 잔차 신호에 한정되지 않는다.
변환부는 잔차 블록을 하다마드 변환(Hadamard Transform), 이산 사인 변환(DST Based-Transform: Discrete Sine Transform), 이산 코사인 변환(DCT Based-Transform: Discrete Cosine Transform) 등과 같은 변환 기법을 사용하여 변환할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 변환 기법이 사용될 수 있다.
예를 들어, 상기 변환 중 적어도 하나의 변환 기법이 지원될 수 있으며, 각 변환 기법에서 적어도 하나의 세부 변환 기법이 지원될 수 있다. 이때, 적어도 하나의 세부 변환 기법은 각 변환 기법에서 기저 벡터의 일부가 달리 구성되는 변환 기법일 수 있다. 예를 들어, 변환 기법으로 DST 기반의 변환과 DCT 기반의 변환이 지원될 수 있으며, DST의 경우 DST-I, DST-II, DST-III, DST-V, DST-VI, DST-VII, DST-VIII 등의 세부 변환 기법이 지원될 수 있고, DCT의 경우 DCT-I, DCT-II, DCT-III, DCT-V, DCT-VI, DCT-VII, DCT-VIII 등의 세부 변환 기법이 지원될 수 있다.
상기 변환 중 하나의 변환(예를 들어, 하나의 변환 기법 && 하나의 세부 변환 기법)이 기본 변환 기법으로 설정될 수 있으며, 이에 추가적인 변환 기법(예를 들어, 복수의 변환 기법 || 복수의 세부 변환 기법)을 지원할 수 있다. 추가적인 변환 기법 지원 여부는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 결정되어 상기 단위로 관련 정보가 생성될 수 있고, 추가적인 변환 기법 지원이 지원될 경우에 변환 기법 선택 정보는 블록 등의 단위로 결정되어 관련 정보가 생성될 수 있다.
변환은 수평/수직 방향으로 수행될 수 있다. 예를 들어, 변환에서의 기저 벡터를 이용하여 수평 방향으로 1차원 변환을 수행하고 수직 방향으로 1차원 변환을 수행하여 총 2차원 변환을 수행함으로써 공간 영역의 화소값을 주파수 영역으로 변환할 수 있다.
또한, 수평/수직 방향으로 변환이 적응적으로 수행될 수 있다. 상세하게는, 적어도 하나의 부호화 설정에 따라 적응적인 수행 여부가 결정될 수 있다. 예를 들어, 화면내 예측의 경우에서 예측 모드가 수평 모드일 경우에는 수평 방향으로는 DCT-I가, 수직 방향으로는 DST-I가 적용될 수 있고, 수직 모드일 경우에는 수평 방향으로는 DST-VI가, 수직 방향으로는 DCT-VI가 적용될 수 있고, Diagonal down left일 경우에는 수평 방향으로는 DCT-II, 수직 방향으로는 DCT-V가 적용될 수 있고, Diagonal down right일 경우에는 수평 방향으로는 DST-I, 수직 방향으로는 DST-VI가 적용될 수 있다.
변환 블록의 크기 및 형태의 후보별 부호화 비용에 따라 각 변환 블록의 크기 및 형태가 결정되고, 결정된 각 변환 블록의 영상 데이터 및 결정된 각 변환 블록의 크기 및 형태 등의 정보를 부호화할 수 있다.
상기 변환 형태 중 정사각 형태의 변환이 기본 변환 형태로 설정될 수 있으며, 이에 대한 추가적인 변환 형태(예를 들어, 직사각 형태)를 지원할 수 있다. 추가적인 변환 형태 지원 여부는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 결정되며 상기 단위로 관련 정보가 생성될 수 있고, 변환 형태 선택 정보는 블록 등의 단위로 결정되어 관련 정보가 생성될 수 있다.
또한, 변환 블록 형태의 지원은 부호화 정보에 따라 결정될 수 있다. 이때, 부호화 정보는 슬라이스 타입, 부호화 모드, 블록의 크기 및 형태, 블록 분할 방식 등이 해당될 수 있다. 즉, 적어도 하나의 부호화 정보에 따라 하나의 변환 형태가 지원될 수 있으며, 적어도 하나의 부호화 정보에 따라 복수의 변환 형태가 지원될 수 있다. 전자의 경우 묵시적(Implicit)인 상황일 수 있으며, 후자의 경우 명시적(Explicit)인 상황일 수 있다. 명시적인 경우는 복수의 후보군 중 최적의 후보군을 가리키는 적응적인 선택 정보를 생성하여 이를 비트스트림에 수록할 수 있다. 본 예를 포함하여 본 발명에서는 명시적으로 부호화 정보를 생성하는 경우에는 해당 정보를 다양한 단위로 비트스트림에 수록하고, 복호화기에서 다양한 단위로 관련 정보를 파싱하여 복호화 정보로 복원하는 것으로 이해될 수 있다. 또한, 묵시적으로 부/복호화 정보를 처리하는 경우에는 부호화기와 복호화기에서 동일한 과정, 규칙 등으로 처리되는 것으로 이해될 수 있다.
일 예로, 슬라이스 타입에 따라 직사각 형태의 변환 지원이 결정될 수 있다. I 슬라이스일 경우에 지원되는 변환 형태는 정사각 형태의 변환일 수 있으며, P/B 슬라이스일 경우 정사각 형태 또는 직사각 형태의 변환일 수 있다.
일 예로, 부호화 모드에 따라 직사각 형태의 변환 지원이 결정될 수 있다. Intra일 경우에 지원되는 변환 형태는 정사각 형태의 변환일 수 있으며, Inter일 경우에 지원되는 변환 형태는 정사각 형태와 또는 직사각 형태의 변환일 수 있다.
일 예로, 블록의 크기 및 형태에 따라 직사각 형태의 변환 지원이 결정될 수 있다. 일정 크기 이상의 블록에서 지원되는 변환 형태는 정사각 형태의 변환일 수 있으며, 일정 크기 미만의 블록에서 지원되는 변환 형태는 정사각 형태 또는 직사각 형태의 변환일 수 있다.
일 예로, 블록 분할 방식에 따라 직사각 형태의 변환 지원이 결정될 수 있다. 변환이 수행되는 블록이 쿼드 트리(Quad Tree) 분할 방식을 통해 획득된 블록일 경우 지원되는 변환의 형태는 정사각 형태의 변환일 수 있고, 바이너리 트리(Binary Tree) 분할 방식을 통해 획득된 블록일 경우 지원되는 변환의 형태는 정사각 형태 또는 직사각 형태의 변환일 수 있다.
상기 예는 하나의 부호화 정보에 따른 변환 형태 지원에 대한 예이며, 복수의 정보가 조합되어 추가적인 변환 형태 지원 설정에 관여할 수도 있다. 상기 예는 다양한 부호화 설정에 따라 추가적인 변환 형태 지원에 대한 일 예일 뿐 위에 한정되지 않으며 다양한 변형의 예가 가능할 수 있다.
부호화 설정 또는 영상의 특성에 따라 변환 과정은 생략할 수 있다. 예를 들어, 부호화 설정(본 예에서, 무손실 압축 환경이라 가정)에 따라 변환 과정(역과정도 포함)을 생략할 수 있다. 다른 예로, 영상의 특성에 따라 변환을 통한 압축 성능이 발휘되지 않는 경우에 변환 과정을 생략할 수 있다. 이때 생략하는 변환은 전체 단위일 수 있거나, 수평, 수직 단위 중 하나의 단위가 생략될 수 있으며, 이는 블록의 크기 및 형태 등에 따라 이와 같은 생략의 지원 여부가 결정될 수 있다.
예를 들어, 수평과 수직의 변환의 생략이 묶이는 설정에서는 변환 생략 플래그가 1일 경우에는 수평, 수직 방향으로 변환이 수행되지 않고, 0일 때는 수평, 수직 방향으로 변환이 수행될 수 있다. 수평과 수직의 변환의 생략이 독립적으로 동작하는 설정에서는 제 1 변환 생략 플래그가 1일 경우에는 수평 방향으로 변환이 수행되지 않고, 0일 경우에는 수평 방향으로 변환이 수행되며, 제 2 변환 생략 플래그 가 1일 경우에는 수직 방향으로 변환이 수행되지 않고, 0일 경우에는 수직 방향으로 변환이 수행된다.
블록의 크기가 범위 A에 해당되는 경우에는 변환 생략이 지원될 수 있고, 범위 B에 해당되는 경우에는 변환 생략이 지원될 수 없다. 예를 들어, 블록의 가로 길이가 M보다 크거나 블록의 세로 길이가 N보다 큰 경우에는 상기 변환 생략 플래그는 지원될 수 없고, 블록의 가로 길이가 m보다 작거나 블록의 세로 길이가 n보다 작은 경우에는 상기 변환 생략 플래그가 지원될 수 있다. M(m)과 N(n)은 같거나 다를 수 있다. 상기 변환 관련 설정은 시퀀스, 픽쳐, 슬라이스 등의 단위에서 결정될 수 있다.
추가적인 변환 기법이 지원될 경우, 변환 기법 설정은 적어도 하나의 부호화 정보에 따라 결정될 수 있다. 이때, 부호화 정보는 슬라이스 타입, 부호화 모드, 블록의 크기 및 형태, 예측 모드 등이 해당될 수 있다.
일 예로, 부호화 모드에 따라 변환 기법의 지원이 결정될 수 있다. Intra일 경우에 지원되는 변환 기법은 DCT-I, DCT-III, DCT-VI, DST-II, DST-III 일 수 있으며, Inter일 경우에 지원되는 변환 기법은 DCT-II, DCT-III, DST-III 일 수 있다.
일 예로, 슬라이스 타입에 따라 변환 기법의 지원이 결정될 수 있다. I 슬라이스일 경우에 지원되는 변환 기법은 DCT-I, DCT-II, DCT-III 일 수 있으며, P 슬라이스일 경우에 지원되는 변환 기법은 DCT-V, DST-V, DST-VI 일 수 있으며, B 슬라이스일 경우에 지원되는 변환 기법은 DCT-I, DCT-II, DST-III일 수 있다.
일 예로, 예측 모드에 따라 변환 기법의 지원이 결정될 수 있다. 예측 모드 A에서 지원되는 변환 기법은 DCT-I, DCT-II 일 수 있고, 예측 모드 B에서 지원되는 변환 기법은 DCT-I, DST-I 일 수 있고, 예측 모드 C에서 지원되는 변환 기법은 DCT-I 일 수 있다. 이때, 예측 모드 A, B는 방향성 모드(Directional Mode), 예측 모드 C는 비방향성 모드(Non-Directional Mode)일 수 있다.
일 예로, 블록의 크기 및 형태에 따라 변환 기법의 지원이 결정될 수 있다. 일정 크기 이상의 블록에서 지원되는 변환 기법은 DCT-II 일 수 있으며, 일정 크기 미만의 블록에서 지원되는 변환 기법은 DCT-II, DST-V 일 수 있으며, 일정 크기 이상과 일정 크기 미만의 블록에서 지원되는 변환 기법은 DCT-I, DCT-II, DST-I 일 수 있다. 또한, 정사각 형태에서 지원되는 변환 기법은 DCT-I, DCT-II 일 수 있고, 직사각 형태에서 지원되는 변환 기법은 DCT-I, DST-I 일 수 있다.
상기 예는 하나의 부호화 정보에 따른 변환 기법 지원에 대한 예이며, 복수의 정보가 조합되어 추가적인 변환 기법 지원 설정에 관여할 수도 있다. 상기 예의 경우에만 한정되지 않으며 다른 예로의 변형 또한 가능할 수 있다. 또한, 변환부는 변환 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 역변환 과정에 사용할 수 있다.
양자화부는 입력 받은 신호를 양자화할 수 있으며, 이때 양자화 과정을 거쳐 획득되는 신호를 양자화 계수(Quantized Coefficient)라고 한다. 예를 들어, 변환부로부터 전달받은 잔차 변환 계수를 갖는 잔차 블록을 양자화하여 양자화 계수를 갖는 양자화 블록을 획득할 수 있는데, 입력 받은 신호는 부호화 설정에 따라 결정되며 이는 잔차 변환 계수에 한정되지 않는다.
양자화부는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 등과 같은 양자화 기법을 사용하여 양자화할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 양자화 기법이 사용될 수 있다. 추가적인 양자화 기법 지원 여부는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 결정되어 상기 단위로 관련 정보가 생성될 수 있고, 추가적인 양자화 기법 지원이 지원될 경우에는 양자화 기법 선택 정보는 블록 등의 단위로 결정되어 관련 정보가 생성될 수 있다.
추가적인 양자화 기법이 지원될 경우, 양자화 기법 설정은 적어도 하나의 부호화 정보에 따라 결정될 수 있다. 이때, 부호화 정보는 슬라이스 타입, 부호화 모드, 블록의 크기 및 형태, 예측 모드 등이 해당될 수 있다.
예를 들어, 양자화부는 부호화 모드에 따라 양자화 가중치 매트릭스를 화면간 예측/화면내 예측에 따라 적용되는 가중치 매트릭스를 다르게 둘 수 있다. 또한, 화면내 예측 모드에 따라 적용되는 가중치 매트릭스를 다르게 둘 수 있다. 이때, 양자화 가중치 매트릭스는 M×N의 크기로 블록의 크기가 양자화 블록 크기와 같다고 가정할 때, 양자화 성분 일부가 달리 구성되는 양자화 매트릭스일 수 있다.
부호화 설정 또는 영상의 특성에 따라 양자화 과정은 생략할 수 있다. 예를 들어, 부호화 설정(본 예에서, 무손실 압축 환경이라 가정)에 따라 양자화 과정(역과정도 포함)을 생략할 수 있다. 다른 예로, 영상의 특성에 따라 양자화를 통한 압축 성능이 발휘되지 않는 경우에 양자화 과정을 생략할 수 있다. 이때, 생략하는 영역은 전체 영역일 수 있거나, 일부 영역이 생략될 수 있으며, 이는 블록의 크기 및 형태 등에 따라 이와 같은 생략의 지원 여부가 결정될 수 있다.
양자화 파라미터(Quantization Parameter, QP)에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위로 생성이 될 수 있다. 예를 들어, 최초로 QP 정보가 생성되는 상위 단위에서 기본 QP를 설정할 수 있고<1>, 하위 단위로 갈수록 상위 단위에서 설정된 QP와 동일하거나 다른 값으로 QP를 설정할 수 있다<2>. 이와 같은 과정을 거쳐 일부 단위에서 수행되는 양자화 과정에서 QP는 최종 결정될 수 있다<3>. 이때, 시퀀스, 픽쳐 등의 단위는 <1>에, 슬라이스, 타일, 블록 등의 단위는 <2>에, 블록 등의 단위는 <3>에 해당되는 예일 수 있다.
QP에 대한 정보는 각 단위에서의 QP를 기반으로 생성할 수 있다. 또는, 기 설정된 QP를 예측값으로 설정하여 각 단위에서의 QP와의 차분치 정보를 생성할 수 있다. 또는, 상위 단위에서 설정된 QP 또는 이전 동일 단위에서 설정된 QP 또는 이웃한 단위에서 설정된 QP 중 적어도 하나에 기반하여 획득되는 QP를 예측값으로 설정하여 현재 단위에서의 QP와의 차분치 정보를 생성할 수 있다. 또는, 상위 단위에서 설정된 QP와 적어도 하나의 부호화 정보에 기반하여 획득되는 QP를 예측값으로 설정하여 현재 단위에서의 QP와의 차분치 정보를 생성할 수 있다. 이때, 이전 동일 단위는 각 단위의 부호화 순서에 따라 정의될 수 있는 단위일 수 있고 이웃한 단위는 공간적으로 인접한 단위일 수 있으며, 부호화 정보는 해당 단위의 슬라이스 타입, 부호화 모드, 예측 모드, 위치 정보 등 일 수 있다.
일 예로, 현재 단위의 QP는 상위 단위의 QP를 예측값으로 설정하여 차분치 정보를 생성할 수 있다. 슬라이스에서 설정된 QP와 픽쳐에서 설정된 QP와의 차분치 정보를 생성하거나 타일에서 설정된 QP와 픽쳐에서 설정된 QP와의 차분치 정보를 생성할 수 있다. 또한, 블록에서 설정된 QP와 슬라이스 또는 타일에서 설정된 QP와의 차분치 정보를 생성할 수 있다. 또한, 서브 블록에서 설정된 QP와 블록에서 설정된 QP와의 차분치 정보를 생성할 수 있다.
일 예로, 현재 단위의 QP는 적어도 하나의 이웃한 단위의 QP에 기반하여 획득되는 QP 또는 적어도 하나의 이전 단위의 QP에 기반하여 획득되는 QP를 예측값으로 설정하여 차분치 정보를 생성할 수 있다. 현재 블록의 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 등의 이웃 블록의 QP에 기반하여 획득된 QP와의 차분치 정보를 생성할 수 있다. 또는, 현재 픽쳐 이전의 부호화된 픽쳐의 QP와의 차분치 정보를 생성할 수 있다.
일 예로, 현재 단위의 QP는 상위 단위의 QP와 적어도 하나의 부호화 정보에 기반하여 획득되는 QP를 예측값으로 설정하여 차분치 정보를 생성할 수 있다. 현재 블록의 QP와 슬라이스 타입(I/P/B)에 따라 보정되는 슬라이스의 QP와의 차분치 정보를 생성할 수 있다. 또는, 현재 블록의 QP와 부호화 모드(Intra/Inter)에 따라 보정되는 타일의 QP와의 차분치 정보를 생성할 수 있다. 또는, 현재 블록의 QP와 예측 모드(방향성/비방향성)에 따라 보정되는 픽쳐의 QP와의 차분치 정보를 생성할 수 있다. 또는, 현재 블록의 QP와 위치 정보(x/y)에 따라 보정되는 픽쳐의 QP와의 차분치 정보를 생성할 수 있다. 이때, 상기 보정의 의미는 예측에 사용되는 상위 단위의 QP에 오프셋 형태로 가산 또는 감산되는 것을 의미할 수 있다. 이때, 부호화 설정에 따라 적어도 하나의 오프셋 정보가 지원될 수 있으며, 기 설정된 과정에 따라 묵시적으로 처리되거나 명시적으로 관련 정보가 생성될 수 있다. 상기 예의 경우에만 한정되지 않으며 다른 예로의 변형 또한 가능할 수 있다.
상기 예는 QP 변동을 지시하는 신호가 제공되거나 활성화되는 경우에 가능한 예일 수 있다. 예를 들어, QP 변동을 지시하는 신호가 제공되지 않거나 비활성화되는 경우, 차분치 정보는 생성되지 않으며 상기 예측된 QP는 각 단위의 QP로 결정될 수 있다. 다른 예로, QP 변동을 지시하는 신호가 제공되거나 활성화되는 경우, 차분치 정보는 생성되며 그 값이 0일 때 역시 상기 예측된 QP는 각 단위의 QP로 결정될 수 있다.
양자화부는 양자화 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 이를 역양자화 과정에 사용할 수 있다.
상기 예에서는 변환부와 양자화부를 통해 잔차 블록을 변환하고 양자화하는 가정 하에 설명하였지만, 잔차 블록을 잔차 신호를 변환하여 변환 계수를 갖는 잔차 블록을 생성하고 양자화 과정을 수행하지 않을 수 있으며, 잔차 블록의 잔차 신호를 변환 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 변환과 양자화 과정 모두 수행하지 않을 수 있다. 이는 부호화기 설정에 따라 결정될 수 있다.
부호화부는 생성된 잔차 블록의 양자화 계수, 변환 계수, 또는 잔차 신호 등을 적어도 하나의 스캔 순서(예를 들어, 지그재그 스캔, 수직 스캔, 수평 스캔 등)에 따라 스캔하여 양자화 계수열, 변환 계수열, 또는 신호열을 생성하고 적어도 하나의 엔트로피 부호화(Entropy Coding) 기법을 이용하여 부호화할 수 있다. 이때, 상기 스캔 순서에 대한 정보는 부호화 설정(예를 들어, 부호화 모드, 예측 모드 등)에 따라 정해질 수 있으며, 묵시적으로 정하거나 명시적으로 관련 정보를 생성할 수 있다. 예를 들어, 화면내 예측 모드에 따라 복수의 스캔 순서 중 하나를 선택할 수 있다.
또한, 각 구성부로부터 전달되는 부호화 정보를 포함하는 부호화 데이터를 생성하여 비트스트림으로 출력할 수 있으며, 이는 멀티플렉서(MUX: Multiplexer)로 구현될 수 있다. 이때, 부호화 기법으로 지수 골룸(Exponential Golomb), 문맥 적응형 가변장 길이 부호화(CAVLC, Context Adaptive Variable Length Coding), 문맥 적응형 이진 산술 부호화(CABAC, Context Adaptive Binary Arithmetic Coding) 등과 같은 방법을 사용하여 부호화할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 부호화 기법이 사용될 수 있다.
상기 잔차 블록 데이터와 부/복호화 과정에 생성되는 정보 등의 구문 요소에 대한 엔트로피 부호화(본 예에서는 CABAC이라 가정)을 수행할 때, 엔트로피 부호화 장치는 이진화부(Binarizer), 문맥 모델러(Context Modeler), 이진 산술 부호화부(Binary Arithmetic Coder)를 포함할 수 있다. 이때, 이진 산술 부호화부는 레귤러 코딩부(Regular Coding Engine)와 바이패스 코딩부(Bypass Coding Engine)를 포함할 수 있다.
상기 엔트로피 부호화 장치로 입력되는 구문 요소는 이진값이 아닐 수 있기 때문에, 구문 요소들이 이진값이 아닌 경우 이진화부는 구문 요소들을 이진화하여 0 또는 1로 구성된 빈 스트링(Bin String)을 출력할 수 있다. 이때, 빈은 0 또는 1로 구성된 비트를 나타내는 것으로 이진 산술 부호화부를 통해 부호화될 수 있다. 이때, 0과 1의 발생확률에 기반하여 레귤러 코딩부 또는 바이패스 코딩부 중 하나가 선택될 수 있으며 이는 부/복호화 설정에 따라 결정될 수 있다. 구문 요소가 0과 1의 빈도가 동일한 데이터라면 바이패스 코딩부를 사용할 수 있고, 그렇지 않을 경우에는 레귤러 코딩부를 사용할 수 있다.
상기 구문 요소에 대한 이진화를 수행할 때 다양한 방법이 사용될 수 있다. 예를 들어, 고정 길이 이진화(Fixed Length Binarization), 단항 이진화(Unary Binarization), Rice 이진화(Truncated Rice Binarization), K-th Exp-Golomb 이진화 등이 사용될 수 있다. 또한, 구문 요소가 갖는 값의 범위에 따라 부호가 있는 이진화 또는 부호가 없는 이진화가 수행될 수 있다. 본 발명에서 발생하는 구문 요소에 대한 이진화 과정은 상기 예에서 언급된 이진화뿐만 아니라 그 외 추가적인 이진화 방법을 포함하여 수행될 수 있다.
역양자화부 및 역변환부는 상기 변환부 및 양자화부에서의 과정을 역으로 수행하여 구현될 수 있다. 예를 들어, 역양자화부는 양자화부에서 생성된 양자화된 변환 계수를 역양자화할 수 있고, 역변환부는 역양자화된 변환 계수를 역변환하여 복원된 잔차 블록을 생성할 수 있다.
가산부는 예측 블록과 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 블록은 메모리에 저장되어 참조 데이터(예측부 및 필터부 등)로서 사용될 수 있다.
인루프 필터부는 디블록킹 필터, 화소 적응적 오프셋(Sample Adaptive Offset, SAO), 적응적 루프 필터(Adaptive Loop Filter, ALF) 등의 적어도 하나의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 영상에서 블록 간의 경계에 발생한 블록 왜곡을 제거할 수 있다. ALF는 복원된 영상과 입력 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 상세하게는, 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 입력 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 또는, SAO를 통해 블록이 필터링된 후 복원된 영상과 입력 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 복원된 영상을 입력 영상과 비교한 값을 기초로 오프셋 차이를 복원하며, 밴드 오프셋(Band Offset, BO), 에지 오프셋(Edge Offset, EO) 등의 형태로 적용될 수 있다. 상세하게는, SAO는 디블록킹 필터가 적용된 복원 영상에 대하여, 적어도 하나의 화소 단위로 원본 영상과의 오프셋을 더해주며, BO, EO 등의 형태로 적용될 수 있다. 상세하게는, ALF를 통해 블록이 필터링된 후 복원된 영상에 대하여, 화소 단위로 원본 영상과의 오프셋을 더해주며, BO, EO 등의 형태로 적용될 수 있다.
필터링 관련 정보로 각 후처리 필터의 지원 여부에 대한 설정 정보가 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 생성될 수 있다. 또한, 각 후처리 필터의 수행 여부에 대한 설정 정보가 픽쳐, 슬라이스, 타일, 블록 등의 단위로 생성될 수 있다. 상기 필터의 수행이 적용되는 범위는 영상의 내부와 영상의 경계로 구분될 수 있으며 이를 고려한 설정 정보가 생성될 수 있다. 또한, 필터링 동작에 관련된 정보가 픽쳐, 슬라이스, 타일, 블록 등의 단위로 생성될 수 있다. 상기 정보는 묵시적이거나 명시적인 처리를 할 수 있으며, 상기 필터링은 컬러 성분에 따라 독립적인 필터링 과정 또는 의존적인 필터링 과정이 적용될 수 있으며, 이는 부호화 설정에 따라 결정될 수 있다. 인루프 필터부는 상기 필터링 관련 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 인루프 필터부에 적용할 수 있다.
메모리는 복원된 블록 또는 픽쳐를 저장할 수 있다. 메모리에 저장된 복원 블록 또는 픽쳐는 화면내 예측 또는 화면간 예측을 수행하는 예측부에 제공될 수 있다. 상세하게는, 부호화기에서 압축된 비트스트림의 큐(Queue) 형태의 저장 공간을 부호화된 픽쳐 버퍼(Coded Picture Buffer, CPB)로 두어 처리할 수 있으며, 복호화된 영상을 픽쳐 단위로 저장하는 공간을 복호화된 픽쳐 버퍼(Decoded Picture Buffer, DPB)로 두어 처리할 수 있다. CPB의 경우 복호화 단위들이 복호화 순서에 따라 저장되며 부호화기 내에서 복호화 동작을 에뮬레이션(Emulation)하며 에뮬레이션 과정에서 압축된 비트스트림을 저장할 수 있고, CPB로부터 출력된 비트스트림은 복호화 과정을 거쳐 복원되며 복원된 영상은 DPB로 저장되며 DPB에 저장된 픽쳐들은 이후 영상 부호화, 복호화 과정에서 참조될 수 있다.
복호화부는 상기 부호화부에서의 과정을 역으로 수행하여 구현될 수 있다. 예를 들어, 비트스트림으로부터 양자화 계수열, 변환 계수열, 또는 신호열을 수신하고 이를 복호화할 수 있고, 복호화 정보를 포함하는 복호화 데이터를 파싱하여 각 구성부로 전달할 수 있다.
다음은 본 발명의 일 실시예에 따른 영상 부/복호화 장치에 적용되는 영상 설정 과정에 대해 설명한다. 이는 부/복호화 수행하기 전 단계에 적용되는 예(영상 초기 설정)일 수 있으나, 일부의 과정은 그 외의 단계(예를 들어, 부/복호화 수행된 후 단계 또는 부/복호화 내부 단계 등)에서 적용될 수 있는 예일 수도 있다. 상기 영상 설정 과정은 멀티미디어 콘텐츠의 특성, 대역폭, 사용자 단말의 성능 및 접근성 등의 네트워크 및 사용자 환경을 고려하여 수행될 수 있다. 예를 들어, 부/복호화 설정에 따라 영상의 분할, 영상의 크기 조정, 영상의 재구성 등을 수행할 수 있다. 후술하는 영상 설정 과정은 직사각 형태의 영상을 중심으로 설명하지만, 이에 한정되지 않고 다각형 형태의 영상에도 적용 가능할 수 있다. 영상의 형태와 관계없이 동일한 영상 설정을 적용하거나 다른 영상 설정을 적용할 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 영상의 형태에 대한 정보(예를 들어, 직사각 형태 또는 비직사각 형태)를 확인한 후에 그에 따른 영상 설정에 대한 정보를 구성할 수 있다.
후술하는 예에서는 컬러 공간에 의존적인 설정을 두는 것을 가정하여 설명할 것이나 컬러 공간에 독립적인 설정을 두는 것 또한 가능하다. 또한, 후술하는 예에서 독립적인 설정의 경우 각 컬러 공간에서 독립적으로 부/복호화 설정을 두는 예를 포함할 수 있으며, 하나의 컬러 공간에 대해서 설명을 하더라도 다른 컬러 공간에 적용되는 예(예를 들어, 휘도 성분에서 M을 생성하면 색차 성분에서 N을 생성)를 포함하는 것을 가정하며 이를 유도할 수 있다. 또한, 의존적인 설정의 경우 컬러 포맷의 구성비(예를 들어, 4:4:4, 4:2:2, 4:2:0 등)에 따라 비례하는 설정을 두는 예(예를 들어, 4:2:0인 경우 휘도 성분에서 M이면 색차 성분에서 M/2)를 포함할 수 있으며, 특별한 설명이 없어도 각 컬러 공간에 적용되는 예를 포함하는 것을 가정하며 이를 유도할 수 있다. 이는 상기 예에만 한정되지 않으며 본 발명에 공통 적용되는 설명일 수 있다.
후술하는 예에서의 일부 구성은 공간 영역에서의 부호화, 주파수 영역에서의 부호화, 블록 기반의 부호화, 객체 기반의 부호화 등 다양한 부호화 기법에 적용될 수 있는 내용일 수 있다.
입력된 영상 그대로 부/복호화를 수행하는 것이 일반적일 수 있으나, 영상을 분할하여 부/복호화를 수행하는 경우도 발생할 수 있다. 예를 들어, 전송하는 과정에 패킷 손상 등으로 인한 피해를 막기 위한 목적으로 에러 강인성 등을 위해 분할을 수행할 수 있다. 또는, 영상의 특성, 종류 등에 따라 동일 영상 내에 다른 성질을 갖는 영역을 분류하고자 하는 목적으로 분할을 수행할 수 있다.
본 발명에서 영상 분할 과정은 분할 과정이 수행될 수 있고 그에 대한 역과정을 수행할 수 있다. 후술하는 예에서는 분할 과정을 중심으로 설명을 하지만, 분할 역과정에 대한 내용은 분할 과정에서 역으로 유도할 수 있다.
도 3은 영상을 압축하기 위하여 영상 정보를 계층별로 나눈 예시도이다.
3a는 영상의 시퀀스를 다수의 GOP로 구성한 예시도이다. 하나의 GOP에는 3b와 같이 I 픽쳐, P 픽쳐, B 픽쳐로 구성될 수 있다. 하나의 픽쳐는 3c와 같이 슬라이스, 타일 등으로 구성될 수 있다. 슬라이스, 타일 등은 3d와 같이 다수의 기본 부호화 단위로 구성되며, 기본 부호화 단위는 도 3e와 같이 적어도 하나의 하위 부호화 단위로 구성될 수 있다. 본 발명에서의 영상 설정 과정은 3b, 3c와 같이 픽쳐, 슬라이스, 타일 등의 단위에 적용되는 예를 기준으로 설명할 것이다.
도 4는 본 발명의 일 실시예에 따른 영상 분할의 여러 예시를 나타낸 개념도이다.
4a는 영상(예를 들어, 픽쳐)을 가로 방향과 세로 방향으로 일정한 길이 간격으로 분할한 개념도이다. 분할된 영역은 블록(Block)으로 지칭할 수 있으며, 각 블록은 픽쳐 분할부를 통해 획득되는 기본 부호화 단위(또는 최대 부호화 단위)일 수 있으며, 후술하는 분할 단위에서 적용되는 기본 단위일 수도 있다.
4b는 영상을 가로 방향과 세로 방향 중 적어도 한 방향으로 분할한 개념도이다. 분할된 영역(T0 ~ T3)은 타일(Tile)로 지칭할 수 있으며 각각의 영역은 다른 영역과 독립적이거나 의존적인 부/복호화를 수행할 수 있다.
4c는 영상을 연속하는 블록들의 묶음으로 분할한 개념도이다. 분할된 영역(S0, S1)은 슬라이스(Slice)로 지칭할 수 있으며, 각 영역은 다른 영역과 독립적이거나 의존적인 부/복호화를 수행하는 영역일 수 있다. 연속하는 블록들의 묶음은 스캔 순서에 따라 정의될 수 있으며, 일반적으로 래스터 스캔(Raster Scan) 순서를 따르나 이에 한정되지 않으며 부/복호화 설정에 따라 결정될 수 있다.
4d는 영상을 사용자 정의에 따른 임의의 설정으로 블록들의 묶음으로 분할한 개념도이다. 분할된 영역(A0 ~ A2)은 임의 분할 영역(Arbitrary Partition)으로 지칭할 수 있으며 각 영역은 다른 영역과 독립적이거나 의존적인 부/복호화를 수행하는 영역일 수 있다.
독립적인 부/복호화는 일부 단위(또는 영역)의 부/복호화를 수행할 때 다른 단위의 데이터를 참조할 수 없다는 것을 의미할 수 있다. 상세하게는, 일부 단위의 텍스쳐 부호화 및 엔트로피 부호화에서 이용되거나 생성되는 정보가 서로 참조되지 않고 독립적으로 부호화되며, 복호화기에서도 일부 단위의 텍스쳐 복호화 및 엔트로피 복호화를 위해 다른 단위의 파싱 정보 및 복원 정보는 서로 참조되지 않을 수 있다. 이때, 다른 단위(또는 영역)의 데이터를 참조할 수 있는지 여부는 공간적인 영역(예를 들어 하나의 영상 내에서의 영역 상호간)에서 제한적일 수 있으나 부/복호화 설정에 따라 시간적인 영역(예를 들어 연속된 영상 또는 프레임 상호간)에서도 제한적인 설정을 둘 수 있다. 예를 들어, 현재 영상의 일부 단위와 다른 영상의 일부 단위가 연속성이 존재하거나 동일한 부호화 환경을 갖는 조건일 경우에는 참조 가능할 수 있고, 그렇지 않을 경우에는 참조가 제한될 수 있다.
또한, 의존적인 부/복호화는 일부 단위의 부/복호화를 수행할 때 다른 단위의 데이터를 참조할 수 있다는 것을 의미할 수 있다. 상세하게는, 일부 단위의 텍스쳐 부호화 및 엔트로피 부호화에서 이용되거나 생성되는 정보가 서로 참조되어 의존적으로 부호화되며, 복호화기에서도 마찬가지로 일부 단위의 텍스쳐 복호화 및 엔트로피 복호화를 위해 다른 단위의 파싱 정보 및 복원 정보는 서로 참조될 수 있다. 즉, 일반적인 부/복호화와 동일하거나 비슷한 설정일 수 있다. 이 경우 영상의 특성, 종류 등(예를 들어, 360도 영상)에 따라 영역(본 예에서 투영 포맷에 따라 생성되는 표면<Face> 등)을 식별하고자 하는 목적으로 분할된 경우일 수 있다.
상기 예에서의 일부 단위(슬라이스, 타일 등)에 독립적인 부/복호화 설정(예를 들어, 독립적 슬라이스 세그먼트)를 둘 수 있고, 일부 단위에 의존적인 부/복호화 설정(예를 들어, 종속적 슬라이스 세그먼트)를 둘 수 있으며, 본 발명에서는 독립적인 부/복호화 설정을 중심으로 설명한다.
4a와 같이 픽쳐 분할부를 통해 획득되는 기본 부호화 단위는 컬러 공간에 따라 기본 부호화 블록으로 나뉠 수 있으며 영상의 특성 및 해상도 등에 따라 크기 및 형태가 결정될 수 있다. 지원되는 블록의 크기 또는 형태는 가로, 세로의 길이가 2의 지수승(2n)으로 표현되는 N × N 정사각 형태(2nx2n. 256x256, 128x128, 64x64, 32x32, 16x16, 8x8, 등. n은 3~8 사이의 정수)이거나, M × N 직사각 형태(2mx2n)일 수 있다. 예를 들어, 해상도에 따라 8k UHD급 영상의 경우 128x128, 1080p HD급 영상의 경우 64x64, WVGA급 영상의 경우 16x16 등 크기로 입력 영상을 분할할 수 있고, 영상 종류에 따라 360도 영상의 경우 256x256의 크기로 입력 영상을 분할할 수 있다. 기본 부호화 단위는 하위 부호화 단위로 분할되어 부/복호화될 수 있으며, 기본 부호화 단위에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 비트스트림에 수록되어 전송될 수 있으며, 이는 복호화기에서 파싱하여 관련 정보를 복원할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법 및 복호화 방법에서 다음과 같은 영상 분할 단계를 포함할 수 있다. 이때, 영상 분할 과정은 영상 분할 지시 단계, 영상 분할 타입 식별 단계, 영상 분할 수행 단계를 포함할 수 있다. 또한, 영상 부호화 장치 및 복호화 장치는 영상 분할 지시 단계, 영상 분할 타입 식별 단계, 영상 분할 수행 단계를 구현하는 영상 분할 지시부, 영상 분할 타입 식별부, 영상 분할 수행부를 포함하도록 구성될 수 있다. 부호화의 경우 관련된 구문 요소를 생성할 수 있고, 복호화의 경우 관련된 구문 요소를 파싱할 수 있다.
4a의 각 블록 분할 과정에서, 상기 영상 분할 지시부는 생략 가능할 수 있고, 영상 분할 타입 식별부는 블록의 크기 및 형태에 관한 정보를 확인하는 과정일 수 있으며, 식별된 분할 타입 정보를 통해 영상 분할부에서 기본 부호화 단위로 분할을 수행할 수 있다.
블록의 경우 항상 분할이 수행되는 단위일 수 있는 반면, 다른 분할 단위(타일, 슬라이스 등)는 부/복호화 설정에 따라 분할 여부가 결정될 수 있다. 픽쳐 분할부는 블록 단위의 분할을 수행한 후에 다른 단위의 분할을 수행하는 것을 기본 설정으로 둘 수 있다. 이때, 픽쳐의 크기에 기반하여 블록 분할이 수행될 수 있다.
또한, 다른 단위(타일, 슬라이스 등)로 분할된 후에 블록 단위로 분할할 수도 있다. 즉, 분할 단위의 크기에 기반하여 블록 분할이 수행될 수 있다. 이는 부/복호화 설정에 따라 명시적 또는 묵시적인 처리를 통해 정해질 수 있다. 후술하는 예에서는 전자의 경우를 가정하고 블록 외의 단위를 중심으로 설명한다.
영상 분할 지시 단계에서는 영상 분할 수행 여부를 결정할 수 있다. 예를 들어, 영상 분할을 지시하는 신호(예를 들어, tiles_enabled_flag)가 확인될 경우 분할을 수행할 수 있고, 영상 분할을 지시하는 신호가 확인되지 않을 경우 분할을 수행하지 않거나 또는 다른 부/복호화 정보를 확인하여 분할을 수행할 수 있다.
상세하게는, 영상 분할을 지시하는 신호(예를 들어, tiles_enabled_flag)가 확인되고 해당 신호가 활성화된 경우(예를 들어, tiles_enabled_flag = 1) 복수의 단위로 분할을 수행할 수 있고, 해당 신호가 비활성화된 경우(예를 들어, tiles_enabled_flag = 0) 분할을 수행하지 않을 수 있다. 또는, 영상 분할을 지시하는 신호가 확인되지 않을 경우 분할을 수행하지 않거나 또는 적어도 하나의 단위로 분할을 수행하는 것을 의미할 수 있으며, 복수의 단위로 분할을 수행하는지 여부는 다른 신호(예를 들어, first_slice_segment_in_pic_flag)를 통해 확인할 수 있다.
정리하면, 영상 분할을 지시하는 신호가 제공되는 경우에 해당 신호는 복수의 단위로 분할할 지 여부를 나타내기 위한 신호이며, 상기 신호에 따라 해당 영상의 분할 여부를 확인할 수 있다. 예를 들어, tiles_enabled_flag는 영상 분할 여부를 나타내는 신호일 때 tiles_enabled_flag가 1일 경우에는 복수의 타일로 분할되는 것을 의미할 수 있고, 0일 경우에는 분할되지 않는 것을 의미할 수 있다.
정리하면, 영상 분할을 지시하는 신호가 제공되지 않는 경우에 분할을 수행하지 않거나 또는 해당 영상의 분할 여부는 다른 신호에 의해 분할 여부를 확인할 수 있다. 예를 들어, first_slice_segment_in_pic_flag는 영상 분할 여부를 나타내는 신호가 아니라 영상 내 첫 번째 슬라이스 세그먼트인지 여부를 나타내는 신호지만, 이를 통해 둘 이상 단위로의 분할 여부(예를 들어, 상기 플래그가 0일 경우에는 복수의 슬라이스로 분할되었다는 것을 의미)를 확인할 수 있다.
상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다. 예를 들어, 타일에서 영상 분할을 지시하는 신호가 제공되지 않을 수 있으며, 슬라이스에서 영상 분할을 지시하는 신호가 제공될 수 있다. 또는, 영상의 종류, 특성 등에 기반하여 영상 분할을 지시하는 신호가 제공될 수 있다.
영상 분할 타입 식별 단계에서는 영상 분할 타입을 식별할 수 있다. 영상 분할 타입은 분할을 수행하는 방법, 분할 정보 등에 의해 정의될 수 있다.
4b에서, 타일은 가로 방향과 세로 방향으로 분할하여 획득되는 단위로 정의할 수 있다. 상세하게는, 영상을 가로지르는 적어도 하나의 가로 또는 세로 분할선에 의해 구획되는 사각형 공간 안에 인접한 블록의 묶음으로 정의할 수 있다.
타일에 대한 분할 정보는 가로열과 세로열의 경계 위치 정보, 가로열과 세로열의 타일 개수 정보, 타일의 크기 정보 등을 포함할 수 있다. 타일의 개수 정보는 타일의 가로열의 개수(예를 들어, num_tile_columns)와 세로열의 개수(예를 들어, num_tile_rows)를 포함할 수 있으며, 이를 통해 (가로열의 개수 × 세로열의 개수)의 타일로 분할할 수 있다. 타일의 크기 정보는 타일 개수 정보에 기반하여 획득될 수 있는데 타일의 가로 또는 세로의 크기가 균등하거나 비균등할 수 있으며, 이는 기 설정된 규칙 하에 묵시적으로 결정되거나 또는 명시적으로 관련 정보(예를 들어, uniform_spacing_flag)를 생성할 수 있다. 또한, 타일의 크기 정보는 타일의 각 가로열과 세로열의 크기 정보(예를 들어, column_width_tile[i], row_height_tile[i])를 포함할 수 있거나 또는 각 타일의 가로와 세로 크기 정보를 포함할 수 있다. 또한, 상기 크기 정보는 타일 크기의 균등 여부(예를 들어, uniform_spacing_flag가 0이라 비균등 분할을 의미할 때)에 따라 추가적으로 생성될 수 있는 정보일 수도 있다.
4c에서, 슬라이스는 연속하는 블록의 묶음 단위로 정의할 수 있다. 상세하게는, 기 설정된 스캔 순서(본 예에서 래스터 스캔) 기준으로 연속하는 블록의 묶음으로 정의할 수 있다.
슬라이스에 대한 분할 정보는 슬라이스의 개수 정보, 슬라이스의 위치 정보(예를 들어, slice_segment_address) 등을 포함할 수 있다. 이때, 슬라이스의 위치 정보는 기 설정된(예를 들어, 슬라이스 내의 스캔 순서 상 첫 번째 순서) 블록의 위치 정보일 수 있으며, 이때 위치 정보는 블록의 스캔 순서 정보일 수 있다.
4d에서, 임의의 분할 영역은 다양한 분할 설정이 가능하다.
4d에서 분할 단위는 공간적으로 인접한 블록의 묶음으로 정의될 수 있으며, 이에 대한 분할 정보는 분할 단위의 크기, 형태, 위치 정보 등을 포함할 수 있다. 이는 임의의 분할 영역에 대한 일부 예이며, 도 5와 같이 다양한 분할 형태가 가능할 수 있다.
도 5는 본 발명의 일 실시예에 따른 영상 분할 방법의 다른 예시도이다.
5a, 5b의 경우 가로 또는 세로 방향에 적어도 하나의 블록 간격으로 영상을 복수의 영역으로 분할할 수 있으며, 분할은 블록 위치 정보에 기반하여 수행될 수 있다. 5a는 가로 방향으로 각 블록의 세로열 정보에 기반하여 분할이 수행된 예(A0, A1)를 나타내며, 5b는 가로, 세로 방향으로 각 블록의 가로열과 세로열 정보에 기반하여 분할이 수행된 예(B0 ~ B3)를 나타낸다. 이에 대한 분할 정보는 분할 단위 개수, 블록 간격 정보, 분할 방향 등을 포함할 수 있으며, 이를 기 설정된 규칙에 따라 묵시적으로 포함하는 경우 일부 분할 정보는 생성되지 않을 수 있다.
5c, 5d의 경우 스캔 순서 기준으로 연속하는 블록의 묶음으로 영상을 분할할 수 있다. 기존의 슬라이스의 래스터 스캔 순서 외의 추가적인 스캔 순서가 영상 분할에 적용될 수 있다. 5c는 시작 블록을 중심으로 시계 방향 또는 시계 반대 방향으로 스캔(Box-Out)이 진행되는 예(C0, C1)를 나타내며, 5d는 시작 블록을 중심으로 수직 방향으로 스캔(Vertical)이 진행되는 예(D0, D1)를 나타낸다. 이에 대한 분할 정보는 분할 단위 개수 정보, 분할 단위의 위치 정보(예를 들어, 분할 단위 내의 스캔 순서 상 첫 번째 순서), 스캔 순서에 대한 정보 등을 포함할 수 있으며, 이를 기 설정된 규칙에 따라 묵시적으로 포함하는 경우 일부 분할 정보는 생성되지 않을 수 있다.
5e의 경우 가로 방향과 세로 방향의 분할선으로 영상을 분할할 수 있다. 기존의 타일은 가로 또는 세로 분할선에 의해 분할을 수행하고 그에 따라 사각형 공간의 분할 형태를 가질 수 있지만, 분할선에 의해 영상을 가로지르는 분할이 불가능할 수 있다. 예를 들어, 영상의 일부 분할선에 따라 영상을 가로지르는 분할의 예(예를 들어, E1, E3, E4의 우 경계와 E5의 좌 경계를 이루는 분할선)가 가능할 수 있고, 영상의 일부 분할선에 따라 영상을 가로지르는 분할의 예(예를 들어, E2와 E3의 하 경계와 E4의 상 경계를 이루는 분할선)가 불가능할 수 있다. 또한, 블록 단위 기반으로 분할(예를 들어, 블록 분할이 우선 수행된 후 분할)을 수행할 수 있거나 또는 상기 가로 또는 세로 분할선 등에 의해 분할을 수행(예를 들어, 블록 분할과 상관없이 상기 분할선에 의해 분할)할 수 있으며, 이에 따라 각 분할 단위는 블록의 정수배로 구성되지 않을 수도 있다. 이에 기존의 타일과 다른 분할 정보가 생성될 수 있으며, 이에 대한 분할 정보는 분할 단위의 개수 정보, 분할 단위의 위치 정보, 분할 단위의 크기 정보 등을 포함할 수 있다. 예를 들어, 분할 단위의 위치 정보는 기 설정된 위치(예를 들어, 영상의 좌측 상단)를 기준으로 위치 정보(예를 들어, 화소 단위 또는 블록 단위로 측정)가 생성될 수 있으며, 분할 단위의 크기 정보는 각 분할 단위의 가로와 세로 크기 정보(예를 들어, 화소 단위 또는 블록 단위로 측정)를 생성할 수 있다.
상기 예와 같이 사용자 정의에 따른 임의의 설정을 갖는 분할은 새로운 분할 방법을 적용하여 수행될 수 있거나 또는 기존의 분할의 일부 구성이 변경 적용되어 수행될 수 있다. 즉, 기존의 분할 방법을 대체하거나 또는 추가되는 분할 형태로 지원될 수도 있고, 기존의 분할 방법(슬라이스, 타일 등)에서 일부 설정이 변경 적용된 형태(예를 들어, 다른 스캔 순서를 따르거나, 사각형 형태의 다른 분할 방법과 그에 따른 다른 분할 정보 생성, 의존적인 부/복호화 특성 등)로 지원될 수도 있다. 또한, 추가적인 분할 단위를 구성하는 설정(예를 들어, 스캔 순서에 따라 분할하거나 일정 간격 차이에 따라 분할하는 것 외의 설정)이 지원될 수 있고, 추가적인 분할 단위 형태(예를 들어, 사각형 형태의 공간으로 분할하는 것 외 삼각형 등 다각형 형태)가 지원될 수도 있다. 또한, 영상의 종류, 특성 등에 기반하여 영상 분할 방법이 지원될 수도 있다. 예를 들어, 영상의 종류, 특성 등에 따라 일부 분할 방법(예를 들어, 360도 영상의 표면)이 지원될 수 있고, 이에 기반하여 분할 정보가 생성될 수 있다.
영상 분할 수행 단계에서는 식별된 분할 타입 정보에 기반하여 영상을 분할할 수 있다. 즉, 상기 식별된 분할 타입에 기반하여 복수의 분할 단위로 분할을 수행할 수 있으며, 획득된 분할 단위 기반으로 부/복호화를 수행할 수 있다.
이때, 분할 타입에 따라 분할 단위에 부/복호화 설정을 갖는지 여부를 결정할 수 있다. 즉, 각 분할 단위의 부/복호화 과정에 필요한 설정 정보는 상위 단위(예를 들어, 픽쳐)에서 할당받을 수 있거나 또는 분할 단위의 독립적인 부/복호화 설정을 가질 수 있다.
일반적으로 슬라이스의 경우 분할 단위의 독립적인 부/복호화 설정(예를 들어, 슬라이스 헤더)을 가질 수 있으며, 타일의 경우 분할 단위의 독립적인 부/복호화 설정을 가질 수 없고 픽쳐의 부/복호화 설정(예를 들어, PPS)에 의존적인 설정을 가질 수 있다. 이때, 타일에 관련되어 생성되는 정보는 분할 정보일 수 있으며, 이는 픽쳐의 부/복호화 설정에 포함될 수 있다. 본 발명에서는 위와 같은 경우에만 한정되지 않으며 다른 변형의 예가 가능할 수 있다.
타일에 대한 부/복호화 설정 정보를 비디오, 시퀀스, 픽쳐 등의 단위로 생성할 수 있으며, 상위 단위에서 적어도 하나의 부/복호화 설정 정보를 생성하여 이 중 하나를 참조할 수 있다. 또는, 타일 단위로 독립적인 부/복호화 설정 정보(예를 들어, 타일 헤더)를 생성할 수 있다. 이는 타일 단위로 적어도 하나의 부/복호화 설정을 두어 부/복호화를 수행한다는 점에서 상위 단위에서 결정된 하나의 부/복호화 설정을 따르는 것과 차이점이 존재한다. 즉, 모든 타일에서 하나의 부/복호화 설정을 따를 수 있거나 또는 적어도 하나의 타일에서 다른 타일과 다른 부/복호화 설정을 따라 부/복호화를 수행할 수 있다.
상기 예를 통해 타일에서의 다양한 부/복호화 설정을 중심으로 설명하였으나, 이에 한정되지 않고 그 외의 분할 타입에도 비슷하거나 동일한 설정을 둘 수 있다.
일 예로, 일부 분할 타입에는 상위 단위에서 분할 정보를 생성하고 상위 단위의 하나의 부/복호화 설정에 따라 부/복호화를 수행할 수 있다.
일 예로, 일부 분할 타입에는 상위 단위에서 분할 정보를 생성하고 상위 단위에서 각 분할 단위에 대한 독립적인 부/복호화 설정을 생성하고 그에 따라 부/복호화를 수행할 수 있다.
일 예로, 일부 분할 타입에는 상위 단위에서 분할 정보를 생성하고 상위 단위에서 복수의 부/복호화 설정 정보를 지원하며 각 분할 단위에서 참조하는 부/복호화 설정에 따라 부/복호화를 수행할 수 있다.
일 예로, 일부 분할 타입에는 상위 단위에서 분할 정보를 생성하고 해당 분할 단위에서 독립적인 부/복호화 설정을 생성하고 그에 따라 부/복호화를 수행할 수 있다.
일 예로, 일부 분할 타입에는 해당 분할 단위에서 분할 정보를 포함한 독립적인 부/복호화 설정을 생성하고 그에 따라 부/복호화를 수행할 수 있다.
부/복호화 설정 정보는 타일의 타입, 참조하는 픽쳐 리스트에 관한 정보, 양자화 파라미터 정보, 화면간 예측 설정 정보, 인루프 필터링 설정 정보, 인루프 필터링 컨트롤 정보, 스캔 순서, 부/복호화 수행 여부 등의 타일의 부/복호화에 필요한 정보를 포함할 수 있다. 부/복호화 설정 정보들은 명시적으로 관련 정보를 생성할 수 있거나 상위 단위에서 결정된 영상의 포맷, 특성 등에 따라 묵시적으로 부/복호화에 대한 설정이 결정될 수도 있다. 또한, 상기 설정으로 획득한 정보 기반으로 명시적으로 관련 정보를 생성할 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 분할을 수행하는 예를 나타낸다.
부호화 시작 전에 입력 영상에 대한 분할 과정을 수행할 수 있다. 분할 정보(예를 들어, 영상 분할 정보, 분할 단위 설정 정보 등)를 사용하여 분할을 수행한 후 분할 단위로 영상을 부호화할 수 있다. 부호화 완료 후 메모리에 저장할 수 있고, 영상 부호화 데이터를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 분할 과정을 수행할 수 있다. 분할 정보(예를 들어, 영상 분할 정보, 분할 단위 설정 정보 등)를 사용하여 분할을 수행한 후 분할 단위로 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후에 메모리에 저장할 수 있고, 복수의 분할 단위를 하나로 병합하여 영상을 출력할 수 있다.
상기 예를 통해 영상의 분할 과정에 대해 설명하였다. 또한, 본 발명에서는 복수의 분할 과정이 수행될 수 있다.
예를 들어, 영상에 분할을 수행할 수 있고, 영상의 분할 단위에 분할을 수행할 수 있으며, 상기 분할은 동일한 분할 과정(예를 들어, 슬라이스/슬라이스, 타일/타일 등)이거나 다른 분할 과정(예를 들어, 슬라이스/타일, 타일/슬라이스, 타일/표면, 표면/타일, 슬라이스/표면, 표면/슬라이스 등)일 수 있다. 이때, 선행하는 분할 결과에 기반하여 후행하는 분할 과정이 수행될 수 있으며, 후행하는 분할 과정에서 발생하는 분할 정보는 선행하는 분할 결과에 기반하여 발생할 수 있다.
또한, 복수의 분할 과정(A)을 수행할 수 있고, 상기 분할 과정은 다른 분할 과정(예를 들어, 슬라이스/표면, 타일/표면 등)일 수 있다. 이때, 선행하는 분할 결과에 기반하여 후행하는 분할 과정이 수행될 수 있거나 또는 선행하는 분할 결과와 무관하게 독립적으로 분할 과정이 수행될 수 있으며, 후행하는 분할 과정에서 발생하는 분할 정보는 선행하는 분할 결과에 기반하여 발생하거나 또는 독립적으로 발생할 수 있다.
영상의 복수 분할 과정은 부/복호화 설정에 따라 정해질 수 있으며 상기 예에 한정되지 않고 다양한 변형의 예 또한 가능할 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 즉, 하나의 단위에 수록될 수 있고, 복수의 단위에 중복되어 수록될 수 있다. 예를 들어, 일부 정보의 지원 여부에 대한 구문 요소 또는 활성화 여부에 대한 구문 요소 등이 일부 단위(예를 들어, 상위 단위)에서 생성될 수 있고, 일부 단위(예를 들어, 하위 단위)에서 상기 경우와 동일하거나 비슷한 정보가 생성될 수 있다. 즉, 상위 단위에서 관련 정보가 지원 및 설정된 경우에도 하위 단위에서의 개별적인 설정을 가질 수 있다. 이는 상기 예에만 한정되지 않으며 본 발명에서 공통 적용되는 설명일 수 있다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
한편, 입력된 영상 그대로 부/복호화를 수행하는 것이 일반적일 수 있으나, 영상 크기를 조정(확장 또는 축소. 해상도 조정)한 후 부/복호화를 수행하는 경우도 발생할 수 있다. 예를 들어, 공간적, 시간적, 화질적 확장성(Scalability)를 지원하기 위한 계층적 부호화 방식(Scalability Video Coding)에서 영상의 전체적인 확장, 축소와 같은 영상 크기 조정을 수행할 수 있다. 또는, 영상의 부분적인 확장, 축소와 같은 영상 크기 조정을 수행할 수도 있다. 영상 크기 조정은 다양한 예로 가능한데, 부호화 환경에 적응성을 위한 목적으로 수행될 수 있고, 부호화 통일성을 위한 목적으로 수행될 수 있고, 부호화 효율성을 위한 목적으로 수행될 수도 있으며, 화질 개선의 목적으로 수행될 수도 있고, 영상의 종류, 특성 등에 따라 수행될 수도 있다.
제1 예시로서, 영상의 특성, 종류 등에 따라 진행되는 과정(예를 들어, 계층적 부호화, 360도 영상 부호화 등)에서 크기 조정 과정이 수행될 수 있다.
제2 예시로서, 부/복호화 초기 단계에서 크기 조정 과정이 수행될 수 있다. 부/복호화를 수행하기 전에 크기 조정 과정이 수행될 수 있으며, 크기 조정되는 영상을 부/복호화할 수 있다.
제3 예시로서, 예측 단계(화면 내 예측 또는 화면 간 예측) 또는 예측 수행 전에 크기 조정 과정이 수행될 수 있다. 크기 조정 과정에서, 예측 단계에서의 영상 정보(예를 들어, 화면내 예측에 참조되는 화소 정보, 화면내 예측 모드 관련 정보, 화면간 예측에 사용되는 참조 영상 정보, 화면간 예측 모드 관련 정보 등)를 사용할 수 있다.
제4 예시로서, 필터링 단계 또는 필터링을 수행하는 전에 크기 조정 과정이 수행될 수 있다. 크기 조정 과정에서, 필터링 단계에서의 영상 정보(예를 들어, 디블록킹 필터에 적용되는 화소 정보, SAO에 적용되는 화소 정보, SAO 필터링 관련 정보, ALF에 적용되는 화소 정보, ALF 필터링 관련 정보 등)를 사용할 수 있다.
또한, 크기 조정 과정이 진행된 후 영상은 크기 조정 역과정을 거쳐 크기 조정 전 영상(영상의 크기 관점)으로 변경될 수 있거나 또는 변경되지 않을 수 있으며 이는 부/복호화 설정(예를 들어, 크기 조정이 수행되는 성격 등)에 따라 결정될 수 있다. 이때, 크기 조정 과정이 확장일 경우 크기 조정 역과정은 축소일 수 있고, 크기 조정 과정이 축소일 경우 크기 조정 역과정은 확장일 수 있다.
제1 내지 제4 예시에 따른 크기 조정 과정이 수행된 경우, 그 이후 단계에서 크기 조정 역과정을 수행하여 크기 조정 전 영상을 획득할 수 있다.
계층적 부호화 또는 제3 예시에 따른 크기 조정 과정이 수행된 경우(또는 화면 간 예측에서 참조 영상의 크기를 조정한 경우), 그 이후 단계에서 크기 조정 역과정을 수행하지 않을 수 있다.
본 발명의 일 실시예에서 영상 크기 조정 과정이 단독으로 수행되거나 그에 대한 역과정을 수행할 수 있으며, 후술하는 예에서는 크기 조정 과정을 중심으로 설명한다. 이때, 크기 조정 역과정은 크기 조정 과정의 반대 과정이므로, 중복 설명을 방지하기 위하여 크기 조정 역과정에 대한 설명은 생략될 수 있으나, 통상의 기술자가 문언적으로 기재된 것과 동일하게 인식할 수 있음이 명백하다.
도 6은 일반적인 영상의 크기 조정 방법에 대한 예시도이다.
6a를 참조하면, 초기 영상(또는 크기 조정 전 영상. P0. 굵은 실선)에서 일부 영역(P1)을 추가로 포함하여 확장된 영상(P0+P1)을 획득할 수 있다.
6b를 참조하면, 초기 영상(S0+S1)에서 일부 영역(S1)을 제외하여 축소된 영상(S0)을 획득할 수 있다.
6c를 참조하면, 초기 영상(T0+T2)에서 일부 영역(T1)를 추가로 포함하고 일부 영역(T2)를 제외하여 크기 조정된 영상(T0+T1)을 획득할 수 있다.
이하에서, 본 발명에서는 확장에 따른 크기 조정 과정, 축소에 따른 크기 조정 과정을 중심으로 설명할 것이나, 이에 한정되지 않고 6c와 같이 크기 확장과 축소가 혼합하여 적용되는 경우도 포함되는 것으로 이해되어야 한다.
도 7은 본 발명의 일 실시예에 따른 영상 크기 조정에 대한 예시도이다.
7a를 참조하면, 크기 조정 과정 중 영상의 확장 방법을 설명할 수 있고, 7b를 참조하면, 영상의 축소 방법을 설명할 수 있다.
7a에서 크기 조정 전 영상은 S0이고, 크기 조정 후 영상은 S1이며, 도 7b에서 크기 조정 전 영상은 T0이고, 크기 조정 후 영상은 T1이다.
7a와 같이 영상을 확장할 경우, 상, 하, 좌, 우 방향(ET, EL, EB, ER)으로 확장할 수 있고, 7b와 같이 영상을 축소할 경우, 상, 하, 좌, 우 방향(RT, RL, RB, RR)으로 축소할 수 있다.
영상 확장과 축소를 비교하면, 확장에서의 상, 하, 좌, 우 방향은 축소에서 각각 하, 상, 우, 좌 방향에 대응할 수 있으므로 이하에서는 영상 확장을 기준으로 설명하나, 영상 축소에 대한 설명이 포함되는 것으로 이해되어야 한다.
또한, 이하에서 상, 하, 좌, 우 방향으로의 영상 확장 또는 축소를 설명하지만, 좌상, 우상, 좌하, 우하 방향으로 크기 조정이 수행될 수 있는 것으로 이해되어야 한다.
이때, 우하 방향으로 확장을 수행할 경우 RC, BC 영역이 획득되는 반면 부/복호화 설정에 따라 BR 영역이 획득되는 경우가 가능하거나 가능하지 않을 수 있다. 즉, TL, TR, BL, BR 영역이 획득되는 경우가 가능하거나 가능하지 않을 수 있으나, 이하에서는 설명의 편의상 모서리 영역(TL, TR, BL, BR 영역)이 획득 가능한 것으로 설명한다.
본 발명의 일 실시예에 따른 영상의 크기 조정 과정은 적어도 하나의 방향으로 수행될 수 있다. 예를 들어, 모든 상, 하, 좌, 우 방향으로 수행될 수 있으며, 상, 하, 좌, 우 방향 중 둘 이상 선택된 방향(좌+우, 상+하, 상+좌, 상+우, 하+좌, 하+우, 상+좌+우, 하+좌+우, 상+하+좌, 상+하+우 등)으로 수행될 수 있고, 상, 하, 좌, 우 방향 중 하나의 방향만 수행될 수도 있다.
예를 들어, 영상의 중심을 기준으로 양 끝으로 대칭 확장 가능한 좌+우, 상+하, 좌상+우하, 좌하+우상 방향으로 크기 조정이 가능할 수 있고, 영상의 세로 대칭 확장 가능한 좌+우, 좌상+우상, 좌하+우하 방향으로 크기 조정이 가능할 수 있고, 영상의 가로 대칭 확장 가능한 상+하, 좌상+좌하, 우상+우하 방향으로 크기 조정이 가능할 수 있고 그 외의 크기 조정도 가능할 수 있다.
7a 및 7b에서, 크기 조정 전의 영상(S0, T0) 크기는 P_Width(폭) × P_Height(높이), 크기 조정 후의 영상 크기(S1, T1)는 P'_Width(폭) × P'_Height(높이)로 정의하였다. 여기서, 좌, 우, 상, 하 방향의 크기 조정값을 Var_L, Var_R, Var_T, Var_B(또는 총칭하여 Var_x로 지칭)로 정의하면, 크기 조정 후의 영상 크기는 (P_Width + Var_L + Var_R) × (P_Height + Var_T + Var_B)로 표현할 수 있다. 이때, 좌, 우, 상, 하 방향의 크기 조정값인 Var_L, Var_R, Var_T, Var_B는 영상 확장(도 7a)에서 Exp_L, Exp_R, Exp_T, Exp_B(본 예에서 Exp_x는 양수)일 수 있고, 영상 축소에서 -Rec_L, -Rec_R, -Rec_T, -Rec_B(Rec_L, Rec_R, Rec_T, Rec_B를 양수로 정의할 경우 영상 축소에 따라 음수로 표현)일 수 있다. 또한, 크기 조정 전 영상의 좌상, 우상, 좌하, 우하의 좌표는 (0,0), (P_Width-1,0), (0,P_Height-1), (P_Width-1,P_Height-1)이며, 크기 조정 후의 영상의 상기 좌표는 (0,0), (P'_Width-1,0), (0,P'_Height-1), (P'_Width-1,P'_Height-1)로 표현할 수 있다. 크기 조정으로 변경(또는 획득, 제거)되는 영역(본 예에서 TL ~ BR. i는 TL ~ BR을 구분하는 인덱스)의 크기는 M[i] × N[i]일 수 있으며, 이는 Var_X × Var_Y (본 예에서 X는 L 또는 R, Y는 T 또는 B라 가정)로 표현될 수 있다. M 과 N은 다양한 값을 가질 수 있으며, i와 무관하게 동일하거나 i에 따라 개별적인 설정을 가질 수 있다. 이에 대한 다양한 경우는 후술한다.
7a를 참조하면, S1은 S0에 여러 방향에 따른 확장을 통해 생성되는 TL ~ BR(좌상 ~ 우하)의 전체 또는 부분을 포함하여 구성할 수 있다. 7b를 참조하면, T1은 T0에 여러 방향에 따른 축소를 통해 제거되는 TL ~ BR의 전체 또는 부분을 제외하여 구성할 수 있다.
7a에서, 기존의 영상(S0)에 상, 하, 좌, 우 방향으로 확장을 수행할 경우 각 크기 조정 과정에 따라 획득되는 TC, BC, LC, RC 영역을 포함하여 영상을 구성할 수 있고, 추가적으로 TL, TR, BL, BR 영역을 포함할 수도 있다.
일 예로, 상(ET) 방향으로 확장을 수행하는 경우 기존의 영상(S0)에 TC 영역을 포함하여 영상을 구성할 수 있고, 적어도 하나의 다른 방향의 확장(EL 또는 ER)에 따라 TL 또는 TR 영역을 포함할 수 있다.
일 예로, 하(EB) 방향으로 확장을 수행하는 경우 기존의 영상(S0)에 BC 영역을 포함하여 영상을 구성할 수 있고, 적어도 하나의 다른 방향의 확장(EL 또는 ER)에 따라 BL 또는 BR 영역을 포함할 수 있다.
일 예로, 좌(EL) 방향으로 확장을 수행하는 경우 기존의 영상(S0)에 LC 영역을 포함하여 영상을 구성할 수 있고, 적어도 하나의 다른 방향의 확장(ET 또는 EB)에 따라 TL 또는 BL 영역을 포함할 수 있다.
일 예로, 우(ER) 방향으로 확장을 수행하는 경우 기존의 영상(S0)에 RC 영역을 포함하여 영상을 구성할 수 있고, 적어도 하나의 다른 방향의 확장(ET 또는 EB)에 따라 TR 또는 BR 영역을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 크기 조정되는 영역(본 예에서 확장이라 가정)의 참조 가능성을 공간적 또는 시간적으로 제한할 수 있는 설정(예를 들어, spa_ref_enabled_flag 또는 tem_ref_enabled_flag)을 둘 수 있다.
즉, 부/복호화 설정에 따라 공간적 또는 시간적으로 크기 조정되는 영역의 데이터를 참조하거나(예를 들어, spa_ref_enabled_flag = 1 또는 tem_ref_enabled_flag = 1) 참조를 제한(예를 들어, spa_ref_enabled_flag = 0 또는 tem_ref_enabled_flag = 0)할 수 있다.
크기 조정 전 영상(S0, T1) 및, 크기 조정시에 추가 또는 삭제되는 영역(TC, BC, LC, RC, TL, TR, BL, BR 영역)의 부/복호화는 다음과 같이 수행될 수 있다.
예를 들어, 크기 조정 전 영상과 추가 또는 삭제 되는 영역의 부/복호화에서, 크기 조정 전 영상의 데이터 및, 추가 또는 삭제되는 영역의 데이터 (부/복호화가 완료된 데이터. 화소값 또는 예측 관련 정보 등)를 공간적 또는 시간적으로 서로 참조할 수 있다.
또는, 크기 조정 전 영상 및, 추가 또는 삭제되는 영역의 데이터를 공간적으로 참조할 수 있는 반면, 크기 조정 전 영상의 데이터를 시간적으로 참조할 수 있고, 추가 또는 삭제되는 영역의 데이터를 시간적으로 참조할 수 없다.
즉, 추가 또는 삭제되는 영역의 참조 가능성을 제한하는 설정을 둘 수 있다. 추가 또는 삭제되는 영역의 참조 가능성에 대한 설정 정보는 명시적으로 생성하거나 묵시적으로 결정할 수 있다.
본 발명의 일 실시예에 따른 영상 크기 조정 과정은 영상 크기 조정 지시 단계, 영상 크기 조정 타입 식별 단계 및/또는 영상 크기 조정 수행 단계를 포함할 수 있다. 또한, 영상 부호화 장치 및 복호화 장치는 영상 크기 조정 지시 단계, 영상 크기 조정 타입 식별 단계, 영상 크기 조정 수행 단계를 구현하는 영상 크기 조정 지시부, 영상 크기 조정 타입 식별부, 영상 크기 조정 수행부를 포함할 수 있다. 부호화의 경우 관련된 구문 요소를 생성할 수 있고, 복호화의 경우 관련된 구문 요소를 파싱할 수 있다.
영상 크기 조정 지시 단계에서는 영상 크기 조정 수행 여부를 결정할 수 있다. 예를 들어, 영상 크기 조정을 지시하는 신호(예를 들어, img_resizing_enabled_flag)가 확인될 경우 크기 조정을 수행할 수 있고, 영상 크기 조정을 지시하는 신호가 확인되지 않을 경우 크기 조정을 수행하지 않거나 또는 다른 부/복호화 정보를 확인하여 크기 조정을 수행할 수 있다. 또한, 영상 크기 조정을 지시하는 신호가 제공되지 않더라도 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 크기 조정을 지시하는 신호가 묵시적으로 활성화될 수 있고 비활성화될 수도 있으며, 크기 조정을 수행할 경우 그에 따른 크기 조정 관련 정보를 생성할 수 있고 또는 크기 조정 관련 정보가 묵시적으로 결정될 수도 있다.
영상 크기 조정을 지시하는 신호가 제공되는 경우에 해당 신호는 영상의 크기 조정을 할지 여부를 나타내기 위한 신호이며, 상기 신호에 따라 해당 영상의 크기 조정 여부를 확인할 수 있다.
예를 들어, 영상 크기 조정을 지시하는 신호(예를 들어, img_resizing_enabled_flag)가 확인되고 해당 신호가 활성화된 경우(예를 들어, img_resizing_enabled_flag = 1) 영상 크기 조정을 수행할 수 있고, 해당 신호가 비활성화된 경우(예를 들어, img_resizing_enabled_flag = 0) 영상 크기 조정을 수행하지 않는 것을 의미할 수 있다.
또한, 영상 크기 조정을 지시하는 신호가 제공되지 않는 경우에 크기 조정을 수행하지 않거나 또는 해당 영상의 크기 조정 여부는 다른 신호에 의해 크기 조정 여부를 확인할 수 있다.
예를 들어, 입력 영상을 블록 단위로 분할을 수행할 경우 영상의 크기(예를 들어, 가로 또는 세로 길이)가 블록의 크기(예를 들어, 가로 또는 세로 길이)의 정수배인지 여부에 따라 크기 조정(본 예에서 확장의 경우. 정수배가 아닐 때 크기 조정 과정을 수행하는 가정)을 수행할 수 있다. 즉, 영상의 가로 길이가 블록의 가로 길이의 정수배가 아닌 경우 또는 영상의 세로 길이가 블록의 세로 길이의 정수배가 아닌 경우에 크기 조정을 수행할 수 있다. 이때, 크기 조정 정보(예를 들어, 크기 조정 방향, 크기 조정값 등)는 상기 부/복호화 정보(예를 들어, 영상의 크기, 블록의 크기 등)에 따라 결정될 수 있다. 또는, 영상의 특성, 종류(예를 들어, 360도 영상) 등에 따라 크기 조정을 수행할 수 있으며 크기 조정 정보는 명시적으로 생성하거나 기 설정된 값으로 할당할 수 있다. 상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
영상 크기 조정 타입 식별 단계에서는 영상 크기 조정 타입을 식별할 수 있다. 영상 크기 조정 타입은 크기 조정을 수행하는 방법, 크기 조정 정보 등에 의해 정의될 수 있다. 예를 들어, 스케일 팩터(Scale Factor)를 통한 크기 조정, 오프셋 팩터(Offset Factor)를 통한 크기 조정 등을 수행할 수 있다. 이에 한정되지 않고 상기 방식의 혼합 적용되는 경우 또한 가능할 수 있다. 설명의 편의를 위해 스케일 팩터와 오프셋 팩터를 통한 크기 조정을 중심으로 설명할 것이다.
스케일 팩터의 경우 영상의 크기에 기반하여 곱해지거나 나눠지는 방식으로 크기 조정을 수행할 수 있다. 크기 조정의 동작(예를 들어, 확장 또는 축소)에 대한 정보는 명시적으로 생성될 수 있으며, 해당 정보에 따라 확장 또는 축소 과정을 진행할 수 있다. 또한, 부/복호화 설정에 따라 기 설정된 동작(예를 들어, 확장 또는 축소 중 하나)으로 크기 조정 과정을 진행할 수 있으며, 이 경우에는 크기 조정 동작에 대한 정보는 생략될 수 있다. 예를 들어, 영상 크기 조정 지시 단계에서 영상 크기 조정이 활성화된 경우, 영상의 크기 조정은 기 설정된 동작으로 수행될 수 있다.
크기 조정 방향은 상, 하, 좌, 우 방향 중에서 선택된 적어도 하나 이상의 방향일 수 있다. 상기 크기 조정 방향에 따라 적어도 하나의 스케일 팩터가 필요할 수 있다. 즉, 각 방향에 하나의 스케일 팩터(본 예에서, 단방향)가 필요할 수 있고, 가로 또는 세로 방향에 따라 하나의 스케일 팩터(본 예에서, 양방향)가 필요할 수 있고, 영상의 전체 방향에 따라 하나의 스케일 팩터(본 예에서, 전방향)가 필요할 수 있다. 또한, 크기 조정 방향은 상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
스케일 팩터는 양의 값을 가질 수 있으며, 부/복호화 설정에 따라 범위 정보를 달리 둘 수 있다. 예를 들어, 크기 조정 동작과 스케일 팩터를 혼합하여 정보를 생성할 경우, 스케일 팩터는 곱해지는 값으로 사용될 수 있다. 0보다 크거나 1보다 작은 경우에는 축소 동작을 의미할 수 있으며, 1보다 큰 경우에는 확장 동작을 의미할 수 있고, 1일 경우에는 크기 조정을 수행하지 않는 것을 의미할 수 있다. 다른 예로, 크기 조정 동작과 별도로 스케일 팩터 정보를 생성할 경우, 확장 동작의 경우 스케일 팩터는 곱해지는 값으로 사용될 수 있고 축소 동작의 경우 스케일 팩터는 나눠지는 값으로 사용될 수 있다.
도 7의 7a 및 7b를 다시 참조하여, 스케일 팩터를 이용하여 크기 조정 전의 영상(S0, T0)에서 크기 조정 후의 영상(본 예에서 S1, T1)으로 변경하는 과정을 설명할 수 있다.
일 예로, 영상의 전체 방향에 따라 하나의 스케일 팩터(sc로 지칭)를 사용하고 크기 조정 방향은 하+우 방향인 경우, 크기 조정 방향은 ER, EB(또는 RR, RB)이며, 크기 조정값인 Var_L(Exp_L 또는 Rec_L) 및 Var_T(Exp_T 또는 Rec_T)는 0이고, Var_R(Exp_R 또는 Rec_R) 및 Var_B(Exp_B 또는 Rec_B)는 P_Width×(sc - 1), P_Height×(sc - 1)으로 표현할 수 있다. 따라서, 크기 조정 후의 영상은 (P_Width×sc) × (P_Height×sc)가 될 수 있다.
일 예로, 영상의 가로 또는 세로 방향에 따라 각각의 스케일 팩터(본 예에서 sc_w, sc_h)를 사용하고 크기 조정 방향은 좌+우, 상+하 방향(둘이 동작하면 상+하+좌+우)인 경우, 크기 조정 방향은 ET, EB, EL, ER 이고, 크기 조정값인 Var_T 및 Var_B는 P_Height×(sc_h - 1)/2 이며, Var_L 및 Var_R은 P_Width×(sc_w - 1)/2 일 수 있다. 따라서, 크기 조정 후의 영상은 (P_Width×sc_w) × (P_Height×sc_h)가 될 수 있다.
오프셋 팩터의 경우 영상의 크기에 기반하여 가산하거나 감산하는 방식으로 크기 조정을 수행할 수 있다. 또는, 영상의 부/복호화 정보에 기반하여 가산하거나 감산하는 방식으로 크기 조정을 수행할 수 있다. 또는, 독립적으로 가산하거나 감산하는 방식으로 크기 조정을 수행할 수 있다. 즉, 크기 조정 과정은 의존적 또는 독립적인 설정이 가능할 수 있다.
크기 조정 동작(예를 들어, 확장 또는 축소)에 대한 정보는 명시적으로 생성될 수 있으며, 해당 정보에 따라 확장 또는 축소 과정을 진행할 수 있다. 또한, 부/복호화 설정에 따라 기 설정된 동작(예를 들어, 확장 또는 축소 중 하나)으로 크기 조정 동작을 수행할 수 있으며, 이 경우 크기 조정 동작에 대한 정보는 생략될 수 있다. 예를 들어, 영상 크기 조정 지시 단계에서 영상 크기 조정이 활성화된 경우, 영상의 크기 조정은 기 설정된 동작으로 수행될 수 있다.
크기 조정 방향은 상, 하, 좌, 우 방향 중 적어도 하나의 방향일 수 있다. 상기 크기 조정 방향에 따라 적어도 하나의 오프셋 팩터가 필요할 수 있다. 즉, 각 방향에 하나의 오프셋 팩터(본 예에서, 단방향)가 필요할 수 있고, 가로 또는 세로 방향에 따라 하나의 오프셋 팩터(본 예에서, 대칭적 양방향)가 필요할 수 있고, 각 방향의 부분적인 조합에 따라 하나의 오프셋 팩터(본 예에서, 비대칭적 양방향)가 필요할 수 있고, 영상의 전체 방향에 따라 하나의 오프셋 팩터(본 예에서, 전방향)가 필요할 수 있다. 또한, 크기 조정 방향은 상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
오프셋 팩터는 양의 값을 가질 수 있거나 또는 양과 음의 값을 가질 수 있으며, 부/복호화 설정에 따라 범위 정보를 달리 둘 수 있다. 예를 들어, 크기 조정 동작과 오프셋 팩터를 혼합하여 정보를 생성할 경우(본 예에서 양과 음의 값을 가진다고 가정), 오프셋 팩터는 오프셋 팩터의 부호 정보에 따라 가산하거나 감산하는 값으로 사용될 수 있다. 오프셋 팩터가 0보다 큰 경우에는 확장 동작을 의미할 수 있고, 0보다 작은 경우에는 축소 동작을 의미할 수 있으며, 0일 경우에는 크기 조정을 수행하지 않는 것을 의미할 수 있다. 다른 예로, 크기 조정 동작과 별도로 오프셋 팩터 정보를 생성할 경우(본 예에서 양의 값을 가진다고 가정), 오프셋 팩터는 크기 조정 동작에 따라 가산하거나 감산하는 값으로 사용될 수 있다. 0보다 큰 경우에는 크기 조정 동작에 따라 확장 또는 축소 동작을 수행할 수 있고 0일 경우에는 크기 조정을 수행하지 않는 것을 의미할 수 있다.
다시 도 7의 7a 및 도 7b를 참조하면, 오프셋 팩터를 이용하여 크기 조정 전의 영상(S0, T0)에서 크기 조정 후의 영상(S1, T1)으로 변경하는 방법을 설명할 수 있다.
일 예로, 영상의 전체 방향에 따라 하나의 오프셋 팩터(os로 지칭)를 사용하고 크기 조정 방향은 상+하+좌+우 방향인 경우, 크기 조정 방향은 ET, EB, EL, ER(또는 RT, RB, RL, RR) 이고, 크기 조정값인 Var_T, Var_B, Var_L, Var_R은 os 일 수 있다. 크기 조정 후의 영상 크기는 (P_Width+os)×(P_Height+os)가 될 수 있다.
일 예로, 영상의 가로 또는 세로 방향에 따라 각각의 오프셋 팩터(os_w, os_h)를 사용하고 크기 조정 방향은 좌+우, 상+하 방향(둘이 동작하면 상+하+좌+우)인 경우, 크기 조정 방향은 ET, EB, EL, ER(또는 RT, RB, RL, RR) 이고, 크기 조정값인 Var_T, Var_B는 os_h 이며, Var_L, Var_R은 os_w 일 수 있다. 크기 조정 후 영상 크기는 {P_Width+(os_w×2)}×{P_Height+(os_h×2)}가 될 수 있다.
일 예로, 크기 조정 방향이 하, 우 방향(함께 동작하면 하+우)이고, 크기 조정 방향에 따라 각각의 오프셋 팩터(os_b, os_r)를 사용한 경우, 크기 조정 방향은 EB, ER(또는 RB, RR) 이고, 크기 조정값인 Var_B는 os_b 이며, Var_R은 os_r 일 수 있다. 크기 조정 후 영상 크기는 (P_Width + os_r) × (P_Height + os_b)가 될 수 있다.
일 예로, 영상의 각 방향에 따라 각각의 오프셋 팩터(os_t, os_b, os_l, os_r)를 사용하고 크기 조정 방향은 상, 하, 좌, 우 방향(모두 동작하면 상+하+좌+우)인 경우, 크기 조정 방향은 ET, EB, EL, ER(또는 RT, RB, RL, RR) 이고, 크기 조정값인 Var_T은 os_t, Var_B는 os_b, Var_L은 os_l, Var_R은 os_r 일 수 있다. 크기 조정 후 영상 크기는 (P_Width + os_l + os_r) × (P_Height + os_t + os_b)가 될 수 있다.
상기 예는 오프셋 팩터가 크기 조정 과정에 크기 조정값(Var_T, Var_B, Var_L, Var_R)으로 사용되는 경우를 나타낸다. 즉, 오프셋 팩터는 크기 조정값으로 그대로 사용되는 경우를 의미하며, 이는 독립적으로 수행되는 크기 조정의 일 예일 수 있다. 또는, 오프셋 팩터가 크기 조정값의 입력 변수로 사용될 수도 있다. 상세하게는, 오프셋 팩터를 입력 변수로 할당하고 부/복호화 설정에 따라 일련의 과정을 거쳐 크기 조정값을 획득할 수 있으며, 이는 기 설정된 정보(예를 들어, 영상의 크기, 부/복호화 정보 등)에 기반하여 수행되는 크기 조정의 일 예 또는 의존적으로 수행되는 크기 조정의 일 예일 수 있다.
예를 들어, 오프셋 팩터는 기 설정된 값(본 예에서 정수)의 배수(예를 들어, 1, 2, 4, 6, 8, 16 등) 또는 지수(예를 들어, 1, 2, 4, 8, 16, 32, 64, 128, 256 등과 같이 2의 지수승)일 수 있다. 또는, 부/복호화 설정에 기반하여 획득되는 값(예를 들면, 화면간 예측의 움직임 탐색 범위에 기반하여 설정되는 값)의 배수 또는 지수일 수 있다. 또는, 픽쳐 분할부로부터 획득되는 단위(본 예에서 A×B라고 가정)의 배수 또는 지수일 수 있다. 또는, 픽쳐 분할부로부터 획득되는 단위(본 예에서 타일과 같은 경우라 E×F라고 가정)의 배수일 수 있다.
또는, 픽쳐 분할부로부터 획득되는 단위의 가로, 세로보다 작거나 같은 범위의 값일 수 있다. 상기 예의 배수 또는 지수는 값이 1인 경우 또한 포함할 수 있으며, 상기 예에 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다. 예를 들어, 오프셋 팩터가 n일 경우, Var_x는 2 × n이거나 또는 2n일 수 있다.
또한, 컬러 성분에 따라 개별적인 오프셋 팩터를 지원할 수 있고, 일부 컬러 성분에 대한 오프셋 팩터를 지원하여 다른 컬러 성분에 대한 오프셋 팩터 정보를 유도할 수 있다. 예를 들어, 휘도 성분(본 예에서 휘도 성분과 색차 성분의 구성비가 2:1이라 가정)에 대한 오프셋 팩터(A)가 명시적으로 생성될 경우 색차 성분에 대한 오프셋 팩터(A/2)는 묵시적으로 획득될 수 있다. 또는, 색차 성분에 대한 오프셋 팩터(A)가 명시적으로 생성될 경우 휘도 성분에 대한 오프셋 팩터(2A)는 묵시적으로 획득될 수 있다.
크기 조정 방향과 크기 조정값에 대한 정보는 명시적으로 생성될 수 있으며, 해당 정보에 따라 크기 조정 과정을 수행할 수 있다. 또한, 부/복호화 설정에 따라 묵시적으로 정해질 수 있으며 이에 따라 크기 조정 과정을 수행할 수 있다. 적어도 하나의 기 설정된 방향 또는 조정값을 할당할 수 있으며, 이 경우 관련 정보는 생략될 수 있다. 이때, 부/복호화 설정은 영상의 특성, 종류, 부호화 정보 등에 기반하여 정해질 수 있다. 예를 들어, 적어도 하나의 크기 조정 동작에 따른 적어도 하나의 크기 조정 방향이 미리 결정될 수 있고, 적어도 하나의 크기 조정 동작에 따른 적어도 하나의 크기 조정값이 미리 결정될 수 있고, 적어도 하나의 크기 조정 방향에 따른 적어도 하나의 크기 조정값이 미리 결정될 수 있다. 또한, 크기 조정 역과정에서의 크기 조정 방향과 크기 조정값 등은 크기 조정 과정에서 적용되는 크기 조정 방향과 크기 조정값 등으로부터 유도할 수 있다. 이때, 묵시적으로 결정되는 크기 조정값은 전술한 예(다양하게 크기 조정값이 획득되는 예)의 하나일 수 있다.
또한, 상기 예에서 곱하거나 나눠지는 경우에 대한 설명을 하였지만, 부/복호화기의 구현에 따라 쉬프트 연산(Shift Operation)으로 구현될 수 있다. 곱하는 경우는 왼쪽 쉬프트 연산을, 나누는 경우는 오른쪽 쉬프트 연산을 통해 구현될 수 있다. 이는 상기 예에만 한정되지 않으며 본 발명에서 공통 적용되는 설명일 수 있다.
영상 크기 조정 수행 단계에서는 식별된 크기 조정 정보에 기반하여 영상 크기 조정을 수행할 수 있다. 즉, 크기 조정 타입, 크기 조정 동작, 크기 조정 방향, 크기 조정값 등의 정보에 기반하여 영상의 크기 조정을 수행할 수 있고, 획득된 크기 조정 후 영상을 기반으로 부/복호화를 수행할 수 있다.
또한, 영상 크기 조정 수행 단계에서는 적어도 하나의 데이터 처리 방법을 사용하여 크기 조정을 수행할 수 있다. 상세하게는, 크기 조정 타입과 크기 조정 동작에 따라 크기 조정되는 영역에 적어도 하나의 데이터 처리 방법을 사용하여 크기 조정을 수행할 수 있다. 예를 들어, 크기 조정 타입에 따라 크기 조정이 확장인 경우에 데이터를 어떻게 채울지를 결정할 수 있거나 또는 크기 조정 과정이 축소인 경우에 데이터를 어떻게 제거할 수 있는지를 결정할 수 있다.
정리하면, 영상 크기 조정 수행 단계에서 식별된 크기 조정 정보에 기반하여 영상 크기 조정을 수행할 수 있다. 또는, 영상 크기 조정 수행 단계에서 상기 크기 조정 정보와 데이터 처리 방법에 기반하여 영상 크기 조정을 수행할 수 있다. 상기 두 경우의 차이는 부/복호화를 수행하는 영상의 크기만 조정하는 것에 있거나, 영상의 크기와 크기 조정되는 영역의 데이터 처리까지 고려하는 것일 수 있다. 영상 크기 조정 수행 단계에서 데이터 처리 방법을 포함하여 수행할 지 여부는 크기 조정 과정의 적용 단계, 위치 등에 따라 결정될 수 있다. 후술하는 예에서는 데이터 처리 방법에 기반하여 크기 조정을 수행하는 예를 중심으로 설명할 것이나 이에 한정되지 않는다.
오프셋 팩터를 통한 크기 조정을 수행할 때, 확장 및 축소의 경우 다양한 방법을 사용하여 크기 조정을 진행할 수 있다. 확장의 경우 적어도 하나의 데이터 채우는 방법을 사용하여 크기 조정을 수행할 수 있고, 축소의 경우 적어도 하나의 데이터 제거하는 방법을 사용하여 크기 조정을 수행할 수 있다. 이때, 오프셋 팩터를 통한 크기 조정의 경우 크기 조정 영역(확장)에 새로운 데이터 또는 기존 영상의 데이터가 직접 또는 변형되어 채워질 수 있고, 크기 조정 영역(축소)에 단순 제거 또는 일련의 과정을 통한 제거 등이 적용되어 제거될 수 있다.
스케일 팩터를 통한 크기 조정을 수행할 때, 일부의 경우(예를 들어, 계층적 부호화 등)에 확장은 업샘플링을 적용하여 크기 조정을 수행할 수 있고, 축소는 다운샘플링을 적용하여 크기 조정을 수행할 수 있다. 예를 들어, 확장의 경우 적어도 하나의 업샘플링 필터를 사용할 수 있고, 축소의 경우 적어도 하나의 다운샘플링 필터를 사용할 수 있으며, 수평, 수직에 적용되는 필터가 같을 수 있고, 수평, 수직에 적용되는 필터가 다를 수 있다. 이때, 스케일 팩터를 통한 크기 조정의 경우 크기 조정 영역에 새로운 데이터가 생성되거나 제거되는 것이 아닌 기존 영상의 데이터를 보간 등의 방법을 사용하여 재배치하는 것일 수 있으며, 크기 조정 수행과 관련한 데이터 처리 방법은 상기 샘플링에 사용되는 필터로 구분될 수 있다. 또한, 일부의 경우(예를 들어, 오프셋 팩터와 비슷한 경우)에 확장은 적어도 하나의 데이터 채우는 방법을 사용하여 크기 조정을 수행할 수 있고, 축소는 적어도 하나의 데이터 제거하는 방법을 사용하여 크기 조정을 수행할 수 있다. 본 발명에서는 오프셋 팩터를 통한 크기 조정을 수행할 경우의 데이터 처리 방법을 중심으로 설명할 것이다.
일반적으로 크기 조정되는 영역에 기 설정된 하나의 데이터 처리 방법을 사용할 수 있으나 후술하는 예와 같이 크기 조정되는 영역에 적어도 하나의 데이터 처리 방법을 사용할 수도 있으며, 데이터 처리 방법에 대한 선택 정보를 생성할 수 있다. 전자의 경우 고정적인 데이터 처리 방법, 후자의 경우 적응적인 데이터 처리 방법을 통해 크기 조정을 수행하는 것을 의미할 수 있다.
또한, 크기 조정시 추가 또는 삭제되는 영역(도 7a 및 도 7b의 TL, TC, TR, …, BR) 전체에 공통되는 데이터 처리 방법을 적용하거나 크기 조정시 추가 또는 삭제되는 영역의 일부 단위(예를 들어, 도 7a 및 도 7b의 TL ~ BR 각각이나 그 일부의 조합)로 데이터 처리 방법을 적용할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 영상 크기 조정 방법에서, 확장되는 영역을 구성하는 방법에 대한 예시도이다.
8a를 참조하면, 영상은 설명의 편의상 TL, TC, TR, LC, C, RC, BL, BC, BR 영역으로 구분할 수 있으며, 각각 영상의 좌상, 상, 우상, 좌, 중앙, 우, 좌하, 하, 우하 위치에 대응될 수 있다. 이하에서, 하+우 방향으로 영상이 확장되는 경우에 대하여 설명하지만 다른 방향에도 동일하게 적용될 수 있는 것으로 이해되어야 한다.
영상의 확장에 따라 추가되는 영역은 다양한 방법으로 구성할 수 있는데, 예를 들면, 임의의 값으로 채우거나 영상의 일부 데이터를 참조하여 채울 수 있다.
8b를 참조하면, 임의의 화소값으로 확장되는 영역(A0, A2)을 채울 수 있다. 임의의 화소값은 다양한 방법을 사용하여 정할 수 있다.
일 예로, 임의의 화소값은 비트 심도로 표현될 수 있는 화소값 범위{예를 들어, 0부터 1 << (bit_depth) -1까지}에 속하는 하나의 화소일 수 있다. 예를 들어, 상기 화소값 범위의 최소값, 최대값, 중앙값{예를 들어, 1 << (bit_depth - 1) 등} 등일 수 있다(여기서, bit_depth는 비트 심도).
일 예로, 임의의 화소값은 영상에 속하는 화소들의 화소값 범위{예를 들어, minP부터 maxP까지. minP, maxP는 영상에 속하는 화소 중 최소값, 최대값. minP는 0보다 크거나 같고 maxP는 1 << (bit_depth) - 1보다 작거나 같음}에 속하는 하나의 화소일 수 있다. 예를 들어, 임의의 화소값은 상기 화소값 범위의 최소값, 최대값, 중앙값, (적어도 두 화소의) 평균, 가중치 합 등일 수 있다.
일 예로, 임의의 화소값은 영상에 속하는 일부 영역에 속하는 화소값 범위에서 결정된 값일 수 있다. 예를 들어, A0를 구성할 경우 일부 영역은 TR+RC+BR이 될 수 있다. 또한, 일부 영역은 TR, RC, BR의 3 × 9를 해당하는 영역으로 둘 수 있거나 1 × 9<가장 오른쪽 라인이라 가정>를 해당하는 영역으로 둘 수도 있으며 이는 부/복호화 설정에 따를 수 있다. 이때, 일부 영역은 픽쳐 분할부로부터 분할되는 단위일 수도 있다. 구체적으로, 임의의 화소값은 상기 화소값 범위의 최소값, 최대값, 중앙값, (적어도 두 화소의) 평균, 가중치 합 등일 수 있다.
8b를 다시 참조하면, 영상 확장에 따라 추가되는 영역 A1는 복수의 화소값을 사용하여 생성되는 패턴 정보(예를 들어, 복수의 화소를 사용하는 것을 패턴이라 가정. 꼭 일정 규칙을 따른 필요는 없음)를 사용하여 채울 수 있다. 이때, 패턴 정보는 부/복호화 설정에 따라 정의될 수 있거나 관련 정보를 생성할 수 있으며, 적어도 하나의 패턴 정보를 사용하여 확장되는 영역을 채울 수 있다.
8c를 참조하면, 영상 확장에 따라 추가되는 영역은 영상에 속하는 일부 영역의 화소를 참조하여 구성할 수 있다. 상세하게는, 추가되는 영역에 인접한 영역의 화소(이하, 참조 화소)를 복사 또는 패딩함으로써 추가되는 영역을 구성할 수 있다. 이때, 추가되는 영역과 인접한 영역의 화소는 부호화 전의 화소이거나, 부호화(또는 복호화) 후의 화소일 수 있다. 예를 들어, 부호화 전 단계에서 크기 조정을 수행할 때 참조 화소는 입력 영상의 화소를 의미할 수 있으며, 화면내 예측 참조 화소 생성 단계, 참조 영상 생성 단계, 필터링 단계 등에서 크기 조정을 수행할 때의 참조 화소는 복원된 영상의 화소를 의미할 수 있다. 본 예에서는 추가되는 영역에 최인접한 화소를 사용하는 경우를 가정하지만, 이에 한정하지 않는다.
영상의 가로 크기 조정과 관련된 좌 또는 우 방향으로 확장되는 영역(A0)은 확장되는 영역(A0)과 인접한 외곽 화소를 수평 방향으로 패딩(Z0)하여 구성할 수 있고, 영상의 세로 크기 조정과 관련된 상 또는 하 방향으로 확장되는 영역(A1)은 확장되는 영역(A1)과 인접한 외곽 화소를 수직 방향으로 패딩(Z1)하여 구성할 수 있다. 또한, 우하방향으로 확장되는 영역(A2)은 확장되는 영역(A2)과 인접한 외곽 화소를 대각선 방향으로 패딩(Z2)하여 구성할 수 있다.
8d를 참조하면, 영상에 속하는 일부 영역의 데이터(B0 ~ B2)를 참조하여 확장되는 영역(B'0 ~ B'2)을 구성할 수 있다. 8d에서는 8c와 달리, 확장되는 영역과 인접하지 않은 영역을 참조할 수 있는 점에서 구별될 수 있다.
예를 들어, 영상 내에 확장되는 영역과 상관성이 높은 영역이 존재한다면, 상관성이 높은 영역의 화소를 참조하여 확장되는 영역을 채울 수 있다. 이때, 상관성이 높은 영역의 위치 정보, 영역 크기 정보 등을 생성할 수 있다. 또는, 영상의 특성, 종류 등의 부/복호화 정보를 통해 상관성이 높은 영역이 존재하며, 상관성이 높은 영역의 위치 정보, 크기 정보 등을 묵시적으로 확인(예를 들어, 360도 영상 등의 경우)할 수 있다면, 해당 영역의 데이터를 확장되는 영역에 채울 수 있다. 이때, 해당 영역의 위치 정보, 영역 크기 정보 등을 생략할 수 있다.
일 예로, 영상의 가로 크기 조정과 관련된 좌 또는 우 방향으로 확장되는 영역(B'2)의 경우, 가로 크기 조정과 관련된 좌 또는 우 방향 중 상기 확장되는 영역의 반대쪽 영역(B2)의 화소를 참조하여 확장되는 영역을 채울 수 있다.
일 예로, 영상의 세로 크기 조정과 관련된 상 또는 하 방향으로 확장되는 영역(B'1)의 경우, 세로 크기 조정과 관련된 상 또는 우 방향 중 상기 확장되는 영역의 반대쪽 영역(B1)의 화소를 참조하여 확장되는 영역을 채울 수 있다.
일 예로, 영상의 일부 크기 조정(본 예에서 영상 중심을 기준으로 대각선 방향)으로 확장되는 영역(B'0)의 경우, 상기 확장되는 영역의 반대쪽 영역(B0, TL)의 화소를 참조하여 확장되는 영역을 채울 수 있다.
상기 예에서 영상의 양 끝 경계에 연속성이 존재하여 크기 조정 방향과 대칭 위치에 있는 영역의 데이터를 획득하는 경우에 대한 설명을 하였지만, 이에 한정되지 않으며 다른 영역(TL ~ BR)의 데이터로부터 획득되는 경우 또한 가능할 수 있다.
확장되는 영역에 영상의 일부 영역의 데이터를 채울 때 해당 영역의 데이터를 그대로 복사하여 채울 수 있거나 또는 해당 영역의 데이터를 영상의 특성, 종류 등에 기반한 변환 과정을 수행한 후 채울 수 있다. 이때, 그대로 복사하는 경우에는 해당 영역의 화소값을 그대로 사용한다는 것을 의미할 수 있고, 변환 과정을 거치는 경우에는 해당 영역의 화소값을 그대로 사용하지 않는다는 것을 의미할 수 있다. 즉, 변환 과정을 통해 해당 영역의 적어도 하나의 화소값의 변화가 발생하여 확장되는 영역에 채워지거나 또는 일부 화소의 획득 위치가 적어도 하나가 다를 수 있다. 즉, 확장되는 영역인 A×B를 채우기 위해 해당 영역의 A×B의 데이터가 사용되는 것이 아닌 C×D의 데이터가 사용될 수 있다. 다시 말해, 채워지는 화소에 적용되는 움직임 벡터가 적어도 하나가 다를 수 있다. 상기 예는 360도 영상에서 투영 포맷에 따라 복수의 표면으로 구성된 경우, 다른 표면의 데이터를 사용하여 확장하는 영역에 채울 때 발생하는 예일 수 있다. 영상의 크기 조정으로 확장되는 영역을 채우는 데이터 처리 방법은 상기 예에 한정되지 않고 이를 개량 및 변경하거나 추가적인 데이터 처리 방법이 사용될 수 있다.
부/복호화 설정에 따라 복수의 데이터 처리 방법에 대한 후보군이 지원될 수 있으며, 복수의 후보군 중 데이터 처리 방법 선택 정보를 생성하여 비트스트림에 수록할 수 있다. 예를 들어, 기 설정된 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법 등에서 하나의 데이터 처리 방법을 선택할 수 있으며, 이에 대한 선택 정보를 생성할 수 있다. 또한, 묵시적으로 데이터 처리 방법이 정해질 수 있다.
예를 들어, 영상의 크기 조정으로 확장되는 전체 영역(본 예에서, 도 7a의 TL ~ BR)에 적용되는 데이터 처리 방법은 기 설정된 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법, 그 외의 방법 중 하나일 수 있으며, 이에 대한 선택 정보가 생성될 수 있다. 또한, 전체 영역에 적용되는 기 설정된 하나의 데이터 처리 방법이 정해질 수 있다.
또는, 영상의 크기 조정으로 확장되는 영역(본 예에서, 도 7의 7a에서의 TL ~ BR 각각의 영역이나 또는 그 중에서 둘 이상의 영역)에 적용되는 데이터 처리 방법은 기 설정된 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법, 그 외의 방법 중 하나일 수 있으며, 이에 대한 선택 정보가 생성될 수 있다. 또한, 적어도 하나의 영역에 적용되는 기 설정된 하나의 데이터 처리 방법이 정해질 수 있다.
도 9는 본 발명의 일 실시예에 따른 영상 크기 조정 방법에서, 영상 크기 축소에 따라 삭제되는 영역 및 생성되는 영역을 구성하는 방법에 대한 예시도이다.
영상 축소 과정에서 삭제되는 영역은, 단순히 제거되는 것뿐만 아니라 일련의 활용 과정을 거친 후에 제거될 수 있다.
9a를 참조하면, 영상 축소 과정에서 일부 영역(A0, A1, A2)을 추가적인 활용 과정 없이 단순 제거할 수 있다. 이때, 영상(A)은 세분화하여 도 8a와 마찬가지로 TL~BR와 같이 지칭될 수 있다.
9b를 참조하면, 일부 영역(A0 ~ A2)을 제거하되, 영상(A)의 부호화/복호화시 참조 정보로서 활용할 수 있다. 예를 들어, 축소되어 생성된 영상(A)의 일부 영역의 복원 과정 또는 보정 과정에 삭제되는 일부 영역(A0~A2)이 활용될 수 있다. 상기 복원 또는 보정 과정에는 두 영역(삭제되는 영역과 생성된 영역)의 가중치 합, 평균 등이 사용될 수 있다. 또한, 상기 복원 또는 보정 과정은 두 영역이 상관성이 높은 경우에 적용될 수 있는 과정일 수 있다.
일 예로, 영상의 가로 크기 조정과 관련된 좌 또는 우 방향으로 축소됨에 따라 삭제되는 영역(B'2)은, 가로 크기 조정과 관련된 좌 또는 우 방향 중 축소되는 영역의 반대쪽 영역(B2, LC)의 화소를 복원 또는 보정하는 데에 사용한 후 해당 영역을 메모리에서 제거할 수 있다.
일 예로, 영상의 세로 크기 조정과 관련된 상 또는 하 방향으로 삭제되는 영역(B'1)은, 세로 크기 조정과 관련된 상 또는 하 방향 중 상기 축소되는 영역의 반대쪽 영역(B1, TR)의 부/복호화 과정(복원 또는 보정 과정)에 사용한 후 해당 영역을 메모리에서 제거할 수 있다.
일 예로, 영상의 일부 크기 조정(본 예에서 영상 중심을 기준으로 대각선 방향)으로 축소되는 영역(B'0)은, 상기 축소되는 영역의 반대쪽 영역(B0, TL)의 부/복호화 과정(복원 또는 보정 과정 등)에 사용한 후 해당 영역을 메모리에서 제거할 수 있다.
상기 예에서 영상의 양 끝 경계에 연속성이 존재하여 크기 조정 방향과 대칭 위치에 있는 영역의 데이터 복원 또는 보정에 사용하는 경우에 대한 설명을 하였지만, 이에 한정되지 않으며 대칭 위치 이외의 다른 영역(TL ~ BR)의 데이터 복원 또는 보정에 사용한 후에 메모리에서 제거할 수도 있다.
본 발명의 축소되는 영역을 제거하는 데이터 처리 방법은 상기 예에 한정되지 않고 이를 개량 및 변경하거나 추가적인 데이터 처리 방법이 사용될 수 있다.
부/복호화 설정에 따라 복수의 데이터 처리 방법에 대한 후보군이 지원될 수 있으며, 이에 대한 선택 정보를 생성하여 비트스트림에 수록할 수 있다. 예를 들어, 크기 조정되는 영역을 단순 제거하는 방법, 크기 조정되는 영역을 일련의 과정에 사용한 후 제거하는 방법 등에서 하나의 데이터 처리 방법을 선택할 수 있으며, 이에 대한 선택 정보를 생성할 수 있다. 또한, 묵시적으로 데이터 처리 방법이 정해질 수 있다.
예를 들어, 영상의 크기 조정으로 축소됨에 따라 삭제되는 전체 영역(본 예에서, 도 7의 7b에서의 TL ~ BR)에 적용되는 데이터 처리 방법은 단순 제거하는 방법, 일련의 과정에 사용한 후 제거하는 방법, 그 외의 방법 중 하나일 수 있으며, 이에 대한 선택 정보가 생성될 수 있다. 또한, 묵시적으로 데이터 처리 방법이 정해질 수 있다.
또는, 영상의 크기 조정으로 축소되는 개별 영역(본 예에서, 도 7b의 TL ~ BR 각각)에 적용되는 데이터 처리 방법은 단순 제거하는 방법, 일련의 과정에 사용한 후 제거하는 방법, 그 외의 방법 중 하나일 수 있으며, 이에 대한 선택 정보가 생성될 수 있다. 또한, 묵시적으로 데이터 처리 방법이 정해질 수 있다.
상기 예에서 크기 조정 동작(확장, 축소)에 따른 크기 조정 수행에 대한 경우를 설명하였으나, 일부 경우는 크기 조정 동작(본 예에서 확장)을 수행한 후 그에 대한 역과정인 크기 조정 동작(본 예에서 축소)을 수행하는 경우에 적용될 수 있는 예일 수 있다.
예를 들어, 확장되는 영역에 영상의 일부 데이터를 사용하여 채우는 방법이 선택되고, 그에 대한 역과정에서 축소되는 영역을 영상의 일부 데이터 복원 또는 보정 과정에 사용한 후 제거하는 방법이 선택되는 경우이다. 또는, 확장되는 영역에 외곽 화소의 복사를 사용하여 채우는 방법이 선택되고, 그에 대한 역과정에서 축소되는 영역을 단순 제거하는 방법이 선택된 경우이다. 즉, 영상 크기 조정 과정에서 선택되는 데이터 처리 방법에 기반하여 역과정에서의 데이터 처리 방법이 결정될 수 있다.
상기 예와 달리 영상 크기 조정 과정과 그에 대한 역과정의 데이터 처리 방법은 독립적인 관계를 가질 수도 있다. 즉, 영상 크기 조정 과정에서 선택되는 데이터 처리 방법과 무관하게 역과정에서의 데이터 처리 방법을 선택할 수 있다. 예를 들어, 확장되는 영역에 영상의 일부 데이터를 사용하여 채우는 방법이 선택되고, 그에 대한 역과정에서 축소되는 영역을 단순 제거하는 방법이 선택될 수 있다.
본 발명에서는 영상 크기 조정 과정에서의 데이터 처리 방법을 부/복호화 설정에 따라 묵시적으로 결정하고, 역과정에서의 데이터 처리 방법을 부/복호화 설정에 따라 묵시적으로 결정할 수 있다. 또는, 영상 크기 조정 과정에서의 데이터 처리 방법을 명시적으로 생성하고, 역과정에서의 데이터 처리 방법을 명시적으로 생성할 수 있다. 또는, 영상 크기 조정 과정에서의 데이터 처리 방법을 명시적으로 생성하고, 역과정에서의 데이터 처리 방법은 상기 데이터 처리 방법에 기반하여 묵시적으로 결정할 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 크기 조정을 수행하는 예를 나타낸다. 후술하는 예에서 크기 조정 과정은 확장, 크기 조정 역과정은 축소의 경우를 예로 들 것이다. 또한, “크기 조정 전 영상”과 “크기 조정 후 영상”의 차이는 영상의 크기를 의미할 수 있고, 크기 조정 관련 정보는 부/복호화 설정에 따라 일부 정보는 명시적으로 생성될 수 있거나 또는 일부 정보는 묵시적으로 정해질 수 있다. 또한, 크기 조정 관련 정보는 크기 조정 과정과 크기 조정 역과정에 대한 정보를 포함할 수 있다.
제1 예시로, 부호화 시작 전에 입력 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상을 부호화할 수 있다. 부호화 완료 후에 메모리에 저장할 수 있고, 영상 부호화 데이터(본 예에서 크기 조정 후 영상을 의미)를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값 등)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후에 메모리에 저장할 수 있고, 크기 조정 역과정(본 예에서 데이터 처리 방법 등을 사용. 이는 크기 조정 역과정에서 사용되는 것)을 수행하여 출력 영상을 크기 조정 전 영상으로 변경할 수 있다.
제2 예시로, 부호화 시작 전에 참조 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상(본 예에서 크기 조정 후 참조 영상)을 메모리에 저장할 수 있고, 이를 사용하여 영상을 부호화할 수 있다. 부호화 완료 후에 영상 부호화 데이터(본 예에서 상기 참조 영상을 사용하여 부호화한 것을 의미)를 비트스트림에 수록하여 전송할 수 있다. 또한, 상기 부호화된 영상은 참조 영상으로 메모리에 저장되는 경우 위의 과정과 같이 크기 조정 과정을 수행할 수 있다.
복호화 시작 전에 참조 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정 후 영상(본 예에서 크기 조정 후 참조 영상)을 메모리에 저장할 수 있고, 영상 복호화 데이터(본 예에서 부호화기에서 상기 참조 영상을 사용하여 부호화된 것과 동일)를 파싱하여 복호화할 수 있다. 복호화 완료 후에 출력 영상으로 생성할 수 있고, 상기 복호화된 영상이 참조 영상으로 포함되어 메모리에 저장되는 경우 위의 과정과 같이 크기 조정 과정을 수행할 수 있다.
제3 예시로, (상세하게는, 필터링 과정을 제외한 부호화 완료를 의미) 부호화 완료 후에 영상의 필터링(본 예에서 디블록킹 필터라 가정) 시작 전에 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상을 생성할 수 있고, 크기 조정 후 영상에 필터링을 적용할 수 있다. 필터링 완료 후에 크기 조정 역과정을 수행하여 크기 조정 전 영상으로 변경할 수 있다.
(상세하게는, 필터 과정을 제외한 복호화 완료를 의미)복호화 완료 후에 영상의 필터링 시작 전에 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상을 생성할 수 있고, 크기 조정 후 영상에 필터링을 적용할 수 있다. 필터링 완료 후에 크기 조정 역과정을 수행하여 크기 조정 전 영상으로 변경할 수 있다.
상기 예에서 일부 경우(제1 예시 및 제3 예시)는 크기 조정 과정과 크기 조정 역과정이 수행될 수 있고, 다른 일부 경우(제2 예시) 는 크기 조정 과정만 수행될 수 있다.
또한, 일부 경우(제2 예시 및 제3 예시)는 부호화기와 복호화기에서의 크기 조정 과정이 동일할 수 있고, 다른 일부 경우(제1 예시)는 부호화기와 복호화기에서의 크기 조정 과정이 동일하거나 동일하지 않을 수 있다. 이때, 부/복호화기에서의 크기 조정 과정의 차이는 크기 조정 수행 단계일 수 있다. 예를 들어, 일부 경우(본 예에서 부호화기)에는 영상의 크기 조정과 크기 조정되는 영역의 데이터 처리를 고려하는 크기 조정 수행 단계를 포함할 수 있고, 일부 경우(본 예에서 복호화기)에는 영상의 크기 조정을 고려하는 크기 조정 수행 단계를 포함할 수 있다. 이때, 전자의 데이터 처리는 후자의 크기 조정 역과정의 데이터 처리와 대응될 수 있다.
또한, 일부 경우(제3 예시)에서 크기 조정 과정은 해당 단계에서만 적용되는 과정일 수 있으며, 크기 조정 영역을 메모리에 저장하지 않을 수 있다. 예를 들어, 필터링 과정에서 사용하기 위한 목적으로 임시의 메모리에 저장하여 필터링을 수행하고 크기 조정 역과정을 통해 해당 영역을 제거할 수 있으며, 이 경우는 크기 조정으로 인한 영상의 크기 변화는 없다고 할 수 있다. 상기의 예에 한정되지 않으며 다른 예로의 변형 또한 가능할 수 있다.
상기 크기 조정 과정을 통해 영상의 크기는 변경될 수 있고 이에 따라 영상의 일부 화소의 좌표가 크기 조정 과정을 통해 변경될 수 있으며, 이는 픽쳐 분할부의 동작에 영향을 줄 수 있다. 본 발명에서는 상기 과정을 통해 크기 조정 전의 영상을 기반으로 블록 단위의 분할을 수행할 수 있거나 또는 크기 조정 후의 영상을 기반으로 블록 단위의 분할을 수행할 수 있다. 또한, 크기 조정 전의 영상을 기반으로 일부 단위(예를 들어, 타일, 슬라이스 등)의 분할을 수행할 수 있거나 또는 크기 조정 후의 영상을 기반으로 일부 단위의 분할을 수행할 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 본 발명에서는 크기 조정 후의 영상을 기반으로 픽쳐 분할부가 동작하는 경우(예를 들어, 크기 조정 과정 후 영상 분할 과정)를 중심으로 설명할 것이나 그 외의 변형 또한 가능하며 이는 후술하는 복수의 영상 설정에서 상기 예에 대한 경우를 설명할 것이다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
입력된 영상 그대로 부/복호화를 수행하는 것이 일반적일 수 있으나, 영상을 재구성하여 부/복호화를 수행하는 경우도 발생할 수 있다. 예를 들어, 영상의 부호화 효율성을 높이기 위한 목적으로 영상 재구성을 수행할 수 있고, 네트워크 및 사용자 환경을 고려하기 위한 목적으로 영상 재구성을 수행할 수 있고, 영상의 종류, 특성에 따라 영상 재구성을 수행할 수 있다.
본 발명에서 영상 재구성 과정은 재구성 과정이 단독으로 수행될 수 있거나 또는 그에 대한 역과정을 수행할 수 있다. 후술하는 예에서는 재구성 과정을 중심으로 설명을 하지만, 재구성 역과정에 대한 내용은 재구성 과정에서 역으로 유도할 수 있다.
도 10은 본 발명의 일 실시예에 따른 영상 재구성에 대한 예시도이다.
10a가 입력된 최초의 영상이라고 할 때, 10a 내지 10d는 영상에 0도를 포함한 회전(예를 들어, 360도를 k개의 구간으로 샘플링하여 생성된 후보군을 구성할 수 있음. k는 2, 4, 8 등의 값을 가질 수 있으며 본 예에서는 4를 가정하여 설명)을 적용한 예시도이며, 10e 내지 10h는 10a를 기준으로 또는 10b 내지 10d를 기준으로 반전(또는 대칭)을 적용한 예시도를 나타낸다.
영상의 재구성에 따라 영상의 시작 위치 또는 스캔 순서가 변경될 수 있거나 또는 재구성 여부와 상관없이 기 설정된 시작 위치 및 스캔 순서를 따를 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 후술하는 실시예에서는 영상의 재구성 여부와 관계없이 기 설정된 시작 위치(예를 들어, 영상의 좌상 위치)와 스캔 순서(예를 들어, 래스터 스캔)에 따르는 경우를 가정하여 설명한다.
본 발명의 일 실시예에 따른 영상 부호화 방법 및 복호화 방법에서는 다음과 같은 영상 재구성 단계를 포함할 수 있다. 이때, 영상 재구성 과정은 영상 재구성 지시 단계, 영상 재구성 타입 식별 단계, 영상 재구성 수행 단계를 포함할 수 있다. 또한, 영상 부호화 장치 및 복호화 장치는 영상 재구성 지시 단계, 영상 재구성 타입 식별 단계, 영상 재구성 수행 단계를 구현하는 영상 재구성 지시부, 영상 재구성 타입 식별부, 영상 재구성 수행부를 포함하도록 구성될 수 있다. 부호화의 경우 관련된 구문 요소를 생성할 수 있고, 복호화의 경우 관련된 구문 요소를 파싱할 수 있다.
영상 재구성 지시 단계에서는 영상 재구성 수행 여부를 결정할 수 있다. 예를 들어, 영상 재구성을 지시하는 신호(예를 들어, convert_enabled_flag)가 확인될 경우 재구성을 수행할 수 있고, 영상 재구성을 지시하는 신호가 확인되지 않을 경우 재구성을 수행하지 않거나 또는 다른 부/복호화 정보를 확인하여 재구성을 수행할 수 있다. 또한, 영상 재구성을 지시하는 신호가 제공되지 않더라도 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 재구성을 지시하는 신호가 묵시적으로 활성화될 수 있고 비활성화될 수 있으며, 재구성을 수행할 경우 그에 따른 재구성 관련 정보를 생성할 수 있고 또는 재구성 관련 정보가 묵시적으로 결정될 수 있다.
영상 재구성을 지시하는 신호가 제공되는 경우에 해당 신호는 영상의 재구성을 수행할지 여부를 나타내기 위한 신호이며, 상기 신호에 따라 해당 영상의 재구성 여부를 확인할 수 있다. 예를 들어, 영상 재구성을 지시하는 신호(예를 들어, convert_enabled_flag)가 확인되고 해당 신호가 활성화된 경우(예를 들어, convert_enabled_flag = 1) 재구성을 수행할 수 있고, 해당 신호가 비활성화된 경우(예를 들어, convert_enabled_flag = 0) 재구성을 수행하지 않을 수 있다.
또한, 영상 재구성을 지시하는 신호가 제공되지 않을 경우에 재구성을 수행하지 않거나 또는 해당 영상의 재구성 여부는 다른 신호에 의해 재구성 여부를 확인할 수 있다. 예를 들어, 영상의 특성, 종류 등(예를 들어, 360도 영상)에 따라 재구성을 수행할 수 있으며 재구성 정보는 명시적으로 생성하거나 기 설정된 값으로 할당할 수 있다. 상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
영상 재구성 타입 식별 단계에서는 영상 재구성 타입을 식별할 수 있다. 영상 재구성 타입은 재구성을 수행하는 방법, 재구성 모드 정보 등에 의해 정의될 수 있다. 재구성을 수행하는 방법(예를 들어, convert_type_flag)으로는 회전, 반전 등을 포함할 수 있으며, 재구성 모드 정보는 재구성을 수행하는 방법에서의 모드(예를 들어, convert_mode)를 포함할 수 있다. 이 경우, 재구성 관련 정보는 재구성을 수행하는 방법과 모드 정보로 구성될 수 있다. 즉, 적어도 하나의 구문 요소로 구성될 수 있다. 이때, 각 재구성을 수행하는 방법에 따른 모드 정보의 후보군의 개수는 동일하거나 다를 수 있다.
일 예로, 회전의 경우 10a ~ 10d와 같이 일정한 간격 차이(본 예에서 90도)를 갖는 후보를 포함할 수 있으며, 10a를 0도 회전으로 할 때, 10b 내지 10d는 각각 90도, 180도, 270도 회전을 적용한 예(본 예에서 시계 방향으로 각도를 측정)일 수 있다.
일 예로, 반전의 경우 10a, 10e, 10f와 같은 후보를 포함할 수 있으며, 10a를 반전없음으로 할때, 10e 및 10f는 각각 좌우 반전 및 상하 반전을 적용한 예일 수 있다.
상기 예는 일정 간격을 갖는 회전에 대한 설정과 일부 반전에 대한 설정의 경우를 설명하지만, 영상 재구성에 대한 일 예일 뿐 상기의 경우에 한정되지 않으며 다른 간격 차이, 다른 반전 동작 등과 같은 예를 포함할 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다.
또는, 재구성을 수행하는 방법과 그에 따른 모드 정보를 혼합하여 생성되는 통합 정보(예를 들어, convert_com_flag)를 포함할 수 있다. 이 경우, 재구성 관련 정보는 재구성을 수행하는 방법과 모드 정보가 혼합 구성된 정보로 구성될 수 있다.
예를 들어, 상기 통합 정보는 10a ~ 10f와 같은 후보를 포함할 수 있으며, 이는 10a를 기준으로 0도 회전, 90도 회전, 180도 회전, 270도 회전, 좌우 반전, 상하 반전을 적용한 예일 수 있다.
또는, 상기 통합 정보는 10a ~ 10h와 같은 후보를 포함할 수 있으며, 이는 10a를 기준으로 0도 회전, 90도 회전, 180도 회전, 270도 회전, 좌우 반전, 상하 반전, 90도 회전 후 좌우 반전(또는 좌우 반전 후 90도 회전), 90도 회전 후 상하 반전(또는 상하 반전 후 90도 회전)을 적용한 예일 수 있거나 또는 0도 회전, 90도 회전, 180도 회전, 270도 회전, 좌우 반전, 180도 회전 후 좌우 반전(좌우 반전 후 180도 회전), 90도 회전 후 좌우 반전(좌우 반전 후 90도 회전), 270도 회전 후 좌우 반전(좌우 반전 후 270도 회전)을 적용한 예일 수 있다.
상기 후보군은 회전이 적용된 모드, 반전이 적용된 모드에 회전과 반전이 혼합 적용된 모드를 포함하여 구성될 수 있다. 상기 혼합 구성된 모드는 재구성을 수행하는 방법에서의 모드 정보를 단순 포함하는 것일 수 있고, 각 방법에서의 모드 정보를 혼용하여 생성되는 모드를 포함할 수 있다. 이때, 일부 방법(예를 들어, 회전)의 적어도 하나의 모드와 일부 방법(예를 들어, 반전)의 적어도 하나의 모드를 혼용하여 생성되는 모드를 포함할 수 있으며, 상기 예는 일부 방법의 하나의 모드와 일부 방법의 복수의 모드가 혼용하여 생성되는 경우(본 예에서, 90도 회전 + 복수의 반전/좌우 반전 + 복수의 회전)를 포함한다. 상기 혼합 구성된 정보는 재구성이 적용되지 않는 경우{본 예에서 10a}를 후보군으로 포함하여 구성될 수 있으며, 재구성이 적용되지 않는 경우를 첫 번째 후보군(예를 들어, 0번을 인덱스로 할당)으로 포함할 수 있다.
또는, 기 설정된 재구성을 수행하는 방법에 따른 모드 정보를 포함할 수 있다. 이 경우, 재구성 관련 정보는 기 설정된 재구성을 수행하는 방법에 따른 모드 정보로 구성될 수 있다. 즉, 재구성을 수행하는 방법에 대한 정보는 생략할 수 있으며, 모드 정보에 관련된 하나의 구문 요소로 구성될 수 있다.
예를 들어, 회전에 관한 10a ~ 10d와 같은 후보를 포함하여 구성될 수 있다. 또는, 반전에 관한 10a, 10e, 10f와 같은 후보를 포함하여 구성될 수 있다.
영상의 재구성 과정 전과 후의 영상의 크기는 동일하거나 또는 적어도 하나의 길이가 다를 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 영상의 재구성 과정은 영상 내 화소의 재배치를 수행하는 과정(본 예에서 영상의 재구성 역과정에서는 화소 재배치 역과정을 수행. 이는 화소 재배치 과정에서 역으로 유도가능)일 수 있으며, 적어도 하나의 화소의 위치가 변경될 수 있다. 상기 화소의 재배치는 영상 재구성 타입 정보에 기반한 규칙에 따라 수행될 수 있다.
이때, 화소의 재배치 과정은 영상의 크기 및 형태(예를 들어, 정사각 또는 직사각)등에 영향을 받을 수 있다. 상세하게는, 재구성 과정 전의 영상의 가로, 세로 길이와 재구성 과정 후의 영상의 가로, 세로 길이가 화소의 재배치 과정에 변수로 작용할 수 있다.
예를 들어, 재구성 과정 전의 영상의 가로 길이와 재구성 과정 후의 영상 가로 길이와의 비율, 재구성 과정 전의 영상의 가로 길이와 재구성 과정 후의 영상의 세로 길이와의 비율, 재구성 과정 전의 영상의 세로 길이와 재구성 과정 후의 영상의 가로 길이와의 비율, 재구성 과정 전의 영상의 세로 길이와 재구성 과정 후의 영상의 세로 길이와의 비율 중 적어도 하나의 비율 정보(예를 들어, 전자/후자 또는 후자/전자 등)가 화소의 재배치 과정에 변수로 작용할 수 있다.
상기 예에서 재구성 과정 전과 후의 영상의 크기가 동일할 경우에는 영상의 가로 길이와 세로 길이와의 비율이 화소 재배치 과정에 변수로 작용할 수 있다. 또한, 영상의 형태가 정사각 일 경우에는 영상의 재구성 과정 전의 영상 길이와 재구성 과정 후의 영상 길이와의 비율이 화소 재배치 과정에 변수로 작용할 수 있다.
영상 재구성 수행 단계에서는 식별된 재구성 정보에 기반하여 영상 재구성을 수행할 수 있다. 즉, 재구성 타입, 재구성 모드 등의 정보에 기반하여 영상의 재구성을 수행할 수 있고, 획득된 재구성된 영상을 기반으로 부/복호화를 수행할 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 재구성을 수행하는 예를 나타낸다.
부호화 시작 전에 입력 영상에 대한 재구성 과정을 수행할 수 있다. 재구성 정보(예를 들어, 영상 재구성 타입, 재구성 모드 등)를 사용하여 재구성을 수행한 후 재구성된 영상을 부호화할 수 있다. 부호화 완료 후 메모리에 저장할 수 있고, 영상 부호화 데이터를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 재구성 과정을 수행할 수 있다. 재구성 정보(예를 들어, 영상 재구성 타입, 재구성 모드 등)를 사용하여 재구성을 수행한 후 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후에 메모리에 저장할 수 있고, 재구성 역과정을 수행하여 재구성 전 영상으로 변경한 후 영상을 출력할 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
Figure 112020052009608-pat00001
표 1은 영상 설정 중 분할에 관련된 구문 요소들에 대한 예를 나타낸다. 후술하는 예에서는 추가되는 구문 요소를 중심으로 설명할 것이다. 또한, 후술하는 예의 구문 요소는 어느 특정 단위에 한정되는 것은 아니며 시퀀스, 픽쳐, 슬라이스, 타일 등의 다양한 단위에서 지원되는 구문 요소일 수 있다. 또는, SEI, 메타 데이터 등에 포함되는 구문 요소일 수 있다. 또한, 후술하는 예에서 지원되는 구문 요소의 종류, 구문 요소의 순서, 조건 등은 본 예에서만 한정될 뿐 부/복호화 설정에 따라 변경되고 정해질 수 있다.
표 1에서, tile_header_enabled_flag는 타일에 부/복호화 설정 지원 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(tile_header_enabled_flag = 1)에는 타일 단위의 부/복호화 설정을 가질 수 있으며, 비활성화되는 경우(tile_header_enabled_flag = 0)에는 타일 단위의 부/복호화 설정을 가질 수 없고 상위 단위의 부/복호화 설정을 할당받을 수 있다.
tile_coded_flag는 타일의 부/복호화 여부를 나타내는 구문 요소를 의미하며, 활성화되는 경우(tile_coded_flag = 1)에는 해당 타일의 부/복호화를 수행할 수 있고, 비활성화되는 경우(tile_coded_flag = 0)에는 부/복호화를 수행할 수 없다. 여기서, 부호화를 수행하지 않는다는 것은 해당 타일에서의 부호화 데이터를 생성하지 않는다는 것(본 예에서 해당 영역은 기 설정된 규칙 등에 의해 처리하는 것이라 가정. 360도 영상의 일부 투영 포맷에서의 무의미한 영역에서 적용 가능)을 의미할 수 있다. 복호화를 수행하지 않는 것은 해당 타일에서의 복호화 데이터를 더 이상 파싱하지 않는다(본 예에서 해당 영역은 기 설정된 규칙 등에 의해 처리하는 것이라 가정)는 것을 의미한다. 또한, 복호화 데이터를 더 이상 파싱하지 않는다는 것은 해당 단위에 부호화 데이터가 존재하지 않아서 더 이상 파싱하지 않는다는 것을 의미할 수 있지만, 부호화 데이터가 존재하더라도 상기 플래그에 의해 더 이상 파싱하지 않는다는 것을 의미할 수도 있다. 타일의 부/복호화 수행 여부에 따라 타일 단위의 헤더 정보가 지원될 수 있다.
상기 예는 타일을 중심으로 설명하였지만 타일에 한정되는 예는 아니며, 본 발명에서의 다른 분할 단위에 변경 적용 가능한 예일 수 있다. 또한, 타일의 분할 설정의 일 예로 상기 경우에 한정되지 않으며 다른 예로의 변형 또한 가능할 수 있다.
Figure 112020052009608-pat00002
표 2는 영상 설정 중 재구성에 관련된 구문 요소들에 대한 예를 나타낸다.
표 2를 참조하면, convert_enabled_flag는 재구성 수행 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(convert_enabled_flag = 1)에는 재구성된 영상을 부/복호화하는 것을 의미하며 추가적인 재구성 관련 정보를 확인할 수 있다. 비활성화되는 경우(convert_enabled_flag = 0)에는 기존 영상을 부/복호화하는 것을 의미한다.
convert_type_flag는 재구성 수행하는 방법과 모드 정보에 관한 혼합 정보를 의미한다. 회전을 적용한 방법, 반전을 적용한 방법, 회전과 반전을 혼합 적용한 방법에 관한 복수의 후보군 중 하나로 결정될 수 있다.
Figure 112020052009608-pat00003
표 3은 영상 설정 중 크기 조정에 관련된 구문 요소들에 대한 예를 나타낸다.
표 3을 참조하면, pic_width_in_samples, pic_height_in_samples는 영상의 가로, 세로 길이에 관한 구문 요소를 의미하며, 상기 구문 요소로 영상의 크기를 확인할 수 있다.
img_resizing_enabled_flag는 영상 크기 조정 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(img_resizing_enabled_flag = 1)에는 크기 조정 후 영상을 부/복호화하는 것을 의미하며 추가적인 크기 조정 관련 정보를 확인할 수 있다. 비활성화되는 경우(img_resizing_enabled_flag = 0)에는 기존 영상을 부/복호화하는 것을 의미한다. 또한, 화면내 예측을 위한 크기 조정을 의미하는 구문 요소일 수 있다.
resizing_met_flag은 크기 조정 방법에 대한 구문 요소를 의미한다. 스케일 팩터를 통한 크기 조정을 수행하는 경우(resizing_met_flag = 0), 오프셋 팩터를 통한 크기 조정을 수행하는 경우(resizing_met_flag = 1), 그 외의 크기 조정 방법 등의 후보군 중 하나로 결정될 수 있다.
resizing_mov_flag는 크기 조정 동작에 대한 구문 요소를 의미한다. 예를 들어, 확장 또는 축소 중에 하나로 결정될 수 있다.
width_scale과 height_scale은 스케일 팩터를 통한 크기 조정에서 가로 크기 조정, 세로 크기 조정과 관련된 스케일 팩터를 의미한다.
top_height_offset과 bottom_height_offset은 오프셋 팩터를 통한 크기 조정 중 가로 크기 조정과 관련된 상 방향, 하 방향의 오프셋 팩터를 의미하고, left_width_offset과 right_width_offset은 오프셋 팩터를 통한 크기 조정 중 세로 크기 조정과 관련된 좌 방향, 우 방향의 오프셋 팩터를 의미한다.
상기 크기 조정 관련 정보와 영상 크기 정보를 통해 크기 조정 후 영상의 크기가 업데이트될 수 있다.
resizing_type_flag는 크기 조정되는 영역의 데이터 처리 방법에 대한 구문 요소를 의미한다. 크기 조정 방법, 크기 조정 동작에 따라 데이터 처리 방법에 대한 후보군의 개수는 같거나 다를 수 있다.
전술하는 영상 부/복호화 장치에 적용되는 영상 설정 과정은 개별적으로 수행될 수 있거나 또는 복수의 영상 설정 과정이 혼합되어 수행될 수 있다. 후술하는 예에서는 복수의 영상 설정 과정이 혼합되어 수행되는 경우에 대한 설명을 할 것이다.
도 11은 본 발명의 일 실시예에 따른 영상 설정 과정의 전과 후의 영상을 나타낸 예시도이다. 상세하게는, 11a는 분할된 영상에 영상 재구성을 수행하기 전의 예(예를 들어, 360도 영상 부호화에서 투영된 영상)이며, 11b는 분할된 영상에 영상 재구성을 수행한 후의 예(예를 들어, 360도 영상 부호화에서 포장된 영상)를 나타낸다. 즉, 11a는 영상 설정 과정을 수행하기 전, 11b는 영상 설정 과정을 수행한 후의 예시도로 이해할 수 있다.
본 예에서 영상 설정 과정은 영상 분할(본 예에서 타일이라 가정)과 영상 재구성에 대한 경우를 설명할 것이다.
후술하는 예에서 영상 분할이 수행된 후에 영상 재구성이 수행되는 경우에 대한 설명을 하지만, 부/복호화 설정에 따라 영상 재구성이 수행된 후에 영상 분할이 수행되는 경우도 가능하며 다른 경우로의 변형 또한 가능할 수 있다. 또한, 전술한 영상 재구성 과정(역과정 포함)은 본 실시예에서의 영상 내 분할 단위의 재구성 과정과 동일하거나 비슷한 적용이 가능할 수 있다.
영상의 재구성은 영상 내 모든 분할 단위에 수행될 수 있거나 수행되지 않을 수 있고, 일부 분할 단위에 수행될 수 있다. 따라서, 재구성 전의 분할 단위(예를 들어, P0 내지 P5 중 일부)는 재구성 후의 분할 단위(예를 들어, S0 내지 S5 중 일부)와 동일하거나 또는 동일하지 않을 수 있다. 후술하는 예를 통해 다양한 영상 재구성 수행에 관한 경우를 설명한다. 또한, 설명의 편의를 위해 영상의 단위는 픽쳐, 분할 영상의 단위는 타일, 분할 단위는 정사각 형태라 가정하여 설명한다.
일 예로, 영상의 재구성 수행 여부는 일부 단위(예를 들어, sps_convert_enabled_flag 또는 SEI나 메타 데이터 등)에서 정해질 수 있다. 또는, 영상의 재구성 수행 여부는 일부 단위(예를 들어, pps_convert_enabled_flag)에서 정해질 수 있고, 이는 해당 단위(본 예에서 픽쳐)에서 처음 발생하거나 또는 상위 단위에서 활성화(예를 들어, sps_convert_enabled_flag = 1)된 경우에 가능할 수 있다. 또는, 영상의 재구성 수행 여부는 일부 단위(예를 들어, tile_convert_flag[i]. i는 분할 단위 인덱스)에서 정해질 수 있고, 이는 해당 단위(본 예에서 타일)에서 처음 발생하거나 또는 상위 단위에서 활성화(예를 들어, pps_convert_enabled_flag = 1) 된 경우에 가능할 수 있다. 또한, 상기 일부 영상의 재구성 수행 여부는 부/복호화 설정에 따라 묵시적으로 정해질 수 있으며, 그에 따라 관련 정보는 생략될 수 있다.
일 예로, 영상의 재구성을 지시하는 신호(예를 들어, pps_convert_enabled_flag)에 따라 영상 내 분할 단위의 재구성 수행 여부가 정해질 수 있다. 상세하게는, 상기 신호에 따라 영상 내 모든 분할 단위의 재구성 수행 여부가 정해질 수 있다. 이때, 영상에 하나의 영상의 재구성을 지시하는 신호가 발생할 수 있다.
일 예로, 영상의 재구성을 지시하는 신호(예를 들어, tile_convert_flag[i])에 따라 영상 내 분할 단위의 재구성 수행 여부가 정해질 수 있다. 상세하게는, 상기 신호에 따라 영상 내 일부 분할 단위의 재구성 수행 여부가 정해질 수 있다. 이때, 적어도 하나의 영상의 재구성을 지시하는 신호(예를 들어, 분할 단위의 개수만큼 발생)가 발생할 수 있다.
일 예로, 영상의 재구성을 지시하는 신호(예를 들어, pps_convert_enabled_flag)에 따라 영상의 재구성 수행 여부가 정해질 수 있고, 영상의 재구성을 지시하는 신호(예를 들어, tile_convert_flag[i])에 따라 영상 내 분할 단위의 재구성 수행 여부가 정해질 수 있다. 상세하게는, 일부 신호가 활성화된 경우(예를 들어, pps_convert_enabled_flag = 1)에 추가로 일부 신호(예를 들어, tile_convert_flag[i])를 확인할 수 있으며, 상기 신호(본 예에서 tile_convert_flag[i])에 따라 영상 내 일부 분할 단위의 재구성 수행 여부가 정해질 수 있다. 이때, 복수의 영상의 재구성을 지시하는 신호가 발생할 수 있다.
영상의 재구성을 지시하는 신호가 활성화될 경우 영상 재구성 관련 정보가 발생할 수 있다. 후술하는 예에서 다양한 영상 재구성 관련 정보에 관한 경우를 설명한다.
일 예로, 영상에 적용되는 재구성 정보가 발생할 수 있다. 상세하게는, 하나의 재구성 정보가 영상 내 모든 분할 단위의 재구성 정보로 사용될 수 있다.
일 예로, 영상 내 분할 단위에 적용되는 재구성 정보가 발생할 수 있다. 상세하게는, 적어도 하나의 재구성 정보가 영상 내 일부 분할 단위의 재구성 정보로 사용될 수 있다. 즉, 하나의 재구성 정보가 하나의 분할 단위의 재구성 정보로 사용될 수 있거나 또는 하나의 재구성 정보가 복수의 분할 단위의 재구성 정보로 사용될 수 있다.
후술하는 예는 영상 재구성을 수행하는 예와의 조합을 통해 설명될 수 있다.
예를 들어, 영상의 재구성을 지시하는 신호(예를 들어, pps_convert_enabled_flag)가 활성화될 경우 영상 내 분할 단위에 공통 적용되는 재구성 정보가 발생할 수 있다. 또는, 영상의 재구성을 지시하는 신호(예를 들어, pps_convert_enabled_flag)가 활성화될 경우 영상 내 분할 단위에 개별 적용되는 재구성 정보가 발생할 수 있다. 또는, 영상의 재구성을 지시하는 신호(예를 들어, tile_convert_flag[i])가 활성화될 경우 영상 내 분할 단위에 개별 적용되는 재구성 정보가 발생할 수 있다. 또는, 영상의 재구성을 지시하는 신호(예를 들어, tile_convert_flag[i])가 활성화될 경우 영상 내 분할 단위에 공통 적용되는 재구성 정보가 발생할 수 있다.
상기 재구성 정보의 경우 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있다. 묵시적인 경우는 영상의 특성, 종류 등에 따라 기 설정된 값으로 재구성 정보를 할당할 수 있다.
11a의 P0 내지 P5는 11b의 S0 내지 S5에 대응될 수 있고 분할 단위에 재구성 과정이 수행될 수 있다. 예를 들어, P0에 재구성을 수행하지 않고 SO에 할당할 수 있고, P1에 90도 회전을 적용하여 S1에 할당할 수 있고, P2에 180도 회전을 적용하여 S2에 할당할 수 있고, P3에 좌우 반전을 적용하여 S3에 할당할 수 있고, P4에 90도 회전 후 좌우 반전을 적용하여 S4에 할당할 수 있고, P5에 180도 회전 후 좌우 반전을 적용하여 S5에 할당할 수 있다.
다만, 앞선 예시에 한정되지 않고 다양한 변형의 예 또한 가능할 수 있다. 상기 예와 같이 영상의 분할 단위에 재구성을 수행하지 않거나 또는 회전을 적용한 재구성, 반전을 적용한 재구성, 회전과 반전을 혼합 적용한 재구성 중 적어도 하나의 재구성 방법을 수행할 수 있다.
영상의 재구성이 분할 단위에 적용되는 경우 분할 단위 재배치와 같은 추가적인 재구성 과정이 수행될 수 있다. 즉, 본 발명의 영상 재구성 과정은 영상 내 화소의 재배치를 수행하는 것 외에 분할 단위의 영상 내 재배치를 포함하여 구성될 수 있으며, 표 4와 같은 일부 구문 요소(예를 들어, part_top, part_left, part_width, part_height 등)로 표현될 수 있다. 이는 영상 분할과 영상 재구성 과정이 혼합되어 이해될 수 있음을 의미한다. 위의 설명은 영상이 복수의 단위로 분할되는 경우에 가능한 예일 수 있다.
11a의 P0 내지 P5는 11b의 S0 내지 S5에 대응될 수 있고, 분할 단위에 재구성 과정이 수행될 수 있다. 예를 들어, P0에 재구성을 수행하지 않고 S0에 할당할 수 있고, P1에 재구성을 수행하지 않고 S2에 할당할 수 있고, P2에 90도 회전을 적용하여 S1에 할당할 수 있고, P3에 좌우 반전을 적용하여 S4에 할당할 수 있고, P4에 90도 회전 후 좌우 반전을 적용하여 S5에 할당할 수 있고, P5에 좌우 반전 후 180도 회전을 적용하여 S3에 할당할 수 있으며, 이에 한정되지 않고 다양한 변형의 예 또한 가능할 수 있다.
또한, 도 7의 P_Width와 P_Height는 도 11의 P_Width와 P_Height와 대응될 수 있고, 도 7의 P'_Width와 P'_Height는 도 11의 P'_Width와 P'_Height와 대응될 수 있다. 도 7에서 크기 조정 후의 영상 크기는 P'_Width × P'_Height로, (P_Width + Exp_L + Exp_R) × (P_Height + Exp_T + Exp_B)로 표현할 수 있고, 도 11에서 크기 조정 후 영상 크기는 P'_Width × P'_Height로, (P_Width + Var0_L + Var1_L + Var2_L + Var0_R + Var1_R + Var2_R) × (P_Height + Var0_T + Var1_T + Var0_B + Var1_B)이거나 또는 (Sub_P0_Width + Sub_P1_Width + Sub_P2_Width + Var0_L + Var1_L + Var2_L + Var0_R + Var1_R + Var2_R) × (Sub_P0_Height + Sub_P1_Height + Var0_T + Var1_T + Var0_B + Var1_B)로 표현할 수 있다.
상기 예와 같이 영상 재구성은 영상의 분할 단위 내의 화소의 재배치를 수행할 수 있고, 영상 내의 분할 단위의 재배치를 수행할 수 있고, 영상의 분할 단위 내의 화소 재배치뿐만 아니라 영상 내의 분할 단위 재배치를 수행할 수 있다. 이때, 분할 단위의 화소 재배치를 수행한 후 분할 단위의 영상 내 재배치를 수행할 수 있거나 또는 분할 단위의 영상 내 재배치를 수행한 후에 분할 단위의 화소 재배치를 수행할 수 있다.
영상 내 분할 단위의 재배치는 영상의 재구성을 지시하는 신호에 따라 수행 여부가 정해질 수 있다. 또는, 영상 내 분할 단위의 재배치에 대한 신호가 발생할 수 있다. 상세하게는, 영상의 재구성을 지시하는 신호가 활성화된 경우에 상기 신호가 발생할 수 있다. 또는, 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있다. 묵시적인 경우는 영상의 특성, 종류 등에 따라 정해질 수 있다.
또한, 영상 내 분할 단위의 재배치에 대한 정보는 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있으며, 영상의 특성, 종류 등에 따라 정해질 수 있다. 즉, 기 설정된 분할 단위의 배치 정보에 따라 각 분할 단위를 배치할 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 내 분할 단위의 재구성을 수행하는 예를 나타낸다.
부호화 시작 전에 입력 영상에 대해 분할 정보를 사용하여 분할 과정을 수행할 수 있다. 분할 단위에 재구성 정보를 사용하여 재구성 과정을 수행할 수 있으며, 분할 단위에 재구성된 영상을 부호화할 수 있다. 부호화 완료 후 메모리에 저장할 수 있고, 영상 부호화 데이터를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 분할 정보를 사용하여 분할 과정을 수행할 수 있다. 분할 단위에 재구성 정보를 사용하여 재구성 과정을 수행하고, 재구성이 수행된 분할 단위로 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후 메모리에 저장할 수 있고, 분할 단위의 재구성 역과정을 수행한 후 분할 단위를 하나로 병합하여 영상을 출력할 수 있다.
도 12는 본 발명의 일 실시예에 따른 영상 내 분할 단위 각각을 대상으로 한 크기 조정의 예시도이다. 도 12의 P0 내지 P5는 도 11의 P0 내지 P5에 대응되고, 도 12의 S0 내지 S5는 도 11의 S0 내지 S5에 대응된다.
후술하는 예에서 영상 분할을 수행한 후에 영상 크기 조정을 수행하는 경우를 중심으로 설명을 하지만, 부/복호화 설정에 따라 영상 크기 조정을 수행한 후에 영상 분할을 수행하는 경우도 가능하며 다른 경우로의 변형 또한 가능할 수 있다. 또한, 전술한 영상 크기 조정 과정(역과정 포함)은 본 실시예에서의 영상 내 분할 단위의 크기 조정 과정과 동일하거나 비슷한 적용이 가능할 수 있다.
예를 들어, 도 7의 TL ~ BR은 도 12의 분할 단위 SX(S0 ~ S5)의 TL ~ BR에 대응될 수 있고, 도 7의 S0와 S1은 도 12의 PX와 SX에 대응될 수 있고, 도 7의 P_Width와 P_Height는 도 12의 Sub_PX_Width와 Sub_PX_Height와 대응될 수 있고, 도 7의 P'_Width와 P'_Height는 도 12의 Sub_SX_Width와 Sub_SX_Height와 대응될 수 있고, 도 7의 Exp_L, Exp_R, Exp_T, Exp_B는 도 12의 VarX_L, VarX_R, VarX_T, VarX_B와 대응될 수 있으며, 그 밖의 요인들도 대응될 수 있다.
12a 내지 12f의 영상 내 분할 단위의 크기 조정 과정에서는 분할 단위의 개수에 비례하여 영상 크기 확대 또는 축소에 관한 설정이 존재할 수 있는 점에서 도 7의 7a 및 도 7b에서의 영상 크기 확대 또는 축소와 구별될 수 있다. 또한, 영상 내 분할 단위에 공통으로 적용되는 설정을 갖거나 또는 영상 내 분할 단위에 개별적으로 적용되는 설정을 갖는 차이점이 존재할 수 있다. 후술하는 예에서 다양한 경우의 크기 조정에 대한 경우를 설명할 것이며, 상기 사항을 고려하여 크기 조정 과정이 수행될 수 있다.
본 발명에서 영상의 크기 조정은 영상 내 모든 분할 단위에 수행될 수 있거나 수행되지 않을 수 있고, 일부 분할 단위에 수행될 수 있다. 후술하는 예를 통해 다양한 영상 크기 조정에 관한 경우를 설명한다. 또한, 설명의 편의를 위해 크기 조정 동작은 확장, 크기 조정을 수행하는 방법으로 오프셋 팩터, 크기 조정 방향은 상, 하, 좌, 우 방향, 크기 조정 방향은 크기 조정 정보에 의해 동작하는 설정, 영상의 단위는 픽쳐, 분할 영상의 단위는 타일이라 가정하여 설명한다.
일 예로, 영상의 크기 조정 수행 여부는 일부 단위(예를 들어, sps_img_resizing_enabled_flag. 또는, SEI나 메타 데이터 등)에서 정해질 수 있다. 또는, 영상의 크기 조정 수행 여부는 일부 단위(예를 들어, pps_img_resizing_enabled_flag)에서 정해질 수 있고, 이는 해당 단위(본 예에서 픽쳐)에서 처음 발생하거나 또는 상위 단위에서 활성화(예를 들어, sps_img_resizing_enabled_flag = 1)된 경우에 가능할 수 있다. 또는, 영상의 크기 조정 수행 여부는 일부 단위(예를 들어, tile_resizing_flag[i]. i는 분할 단위 인덱스)에서 정해질 수 있고, 이는 해당 단위(본 예에서 타일)에서 처음 발생하거나 또는 상위 단위에서 활성화된 경우에 가능할 수 있다. 또한, 상기 일부 영상의 크기 조정 여부는 부/복호화 설정에 따라 묵시적으로 정해질 수 있으며, 그에 따라 관련 정보는 생략될 수 있다.
일 예로, 영상의 크기 조정을 지시하는 신호(예를 들어, pps_img_resizing_enabled_flag)에 따라 영상 내 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 상세하게는, 상기 신호에 따라 영상 내 모든 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 이때, 하나의 영상의 크기 조정을 지시하는 신호가 발생할 수 있다.
일 예로, 영상의 크기 조정을 지시하는 신호(예를 들어, tile_resizing_flag[i])에 따라 영상 내 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 상세하게는, 상기 신호에 따라 영상 내 일부 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 이때, 적어도 하나의 영상의 크기 조정을 지시하는 신호(예를 들어, 분할 단위의 개수만큼 발생)가 발생할 수 있다.
일 예로, 영상의 크기 조정을 지시하는 신호(예를 들어, pps_img_resizing_enabled_flag)에 따라 영상의 크기 조정 수행 여부가 정해질 수 있고, 영상의 크기 조정을 지시하는 신호(예를 들어, tile_resizing_flag[i])에 따라 영상 내 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 상세하게는, 일부 신호가 활성화된 경우(예를 들어, pps_img_resizing_enabled_flag = 1)에 추가로 일부 신호(예를 들어, tile_resizing_flag[i])를 확인할 수 있으며, 상기 신호(본 예에서 tile_resizing_flag[i])에 따라 영상 내 일부 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 이때, 복수의 영상의 크기 조정을 지시하는 신호가 발생할 수 있다.
영상의 크기 조정을 지시하는 신호가 활성화될 경우 영상 크기 조정 관련 정보가 발생할 수 있다. 후술하는 예에서 다양한 영상 크기 조정 관련 정보에 관한 경우를 설명한다.
일 예로, 영상에 적용되는 크기 조정 정보가 발생할 수 있다. 상세하게는, 하나의 크기 조정 정보 또는 크기 조정 정보 세트가 영상 내 모든 분할 단위의 크기 조정 정보로 사용될 수 있다. 예를 들어, 영상 내 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 크기 조정 정보(또는, 분할 단위에서 지원되거나 허용되는 크기 조정 방향에 모두 적용되는 크기 조정값 등. 본 예에서 1개의 정보) 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 크기 조정 정보 세트(또는, 분할 단위에서 지원되거나 허용되는 크기 조정 방향의 개수만큼. 본 예에서 최대 4개의 정보)가 발생할 수 있다.
일 예로, 영상 내 분할 단위에 적용되는 크기 조정 정보가 발생할 수 있다. 상세하게는, 적어도 하나의 크기 조정 정보 또는 크기 조정 정보 세트가 영상 내 일부 분할 단위의 크기 조정 정보로 사용될 수 있다. 즉, 하나의 크기 조정 정보 또는 크기 조정 정보 세트가 하나의 분할 단위의 크기 조정 정보로 사용될 수 있거나 또는 복수의 분할 단위의 크기 조정 정보로 사용될 수 있다. 예를 들어, 영상 내 하나의 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 크기 조정 정보 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 크기 조정 정보 세트가 발생할 수 있다. 또는, 영상 내 복수의 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 크기 조정 정보 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 크기 조정 정보 세트가 발생할 수 있다. 크기 조정 세트의 구성은 적어도 하나의 크기 조정 방향에 대한 크기 조정값 정보를 의미한다.
정리하면, 영상 내 분할 단위에 공통 적용되는 크기 조정 정보가 발생할 수 있다. 또는, 영상 내 분할 단위에 개별 적용되는 크기 조정 정보가 발생할 수 있다. 후술하는 예는 영상 크기 조정을 수행하는 예와의 조합을 통해 설명될 수 있다.
예를 들어, 영상의 크기 조정을 지시하는 신호(예를 들어, pps_img_resizing_enabled_flag)가 활성화될 경우 영상 내 분할 단위에 공통 적용되는 크기 조정 정보가 발생할 수 있다. 또는, 영상의 크기 조정을 지시하는 신호(예를 들어, pps_img_resizing_enabled_flag)가 활성화될 경우 영상 내 분할 단위에 개별 적용되는 크기 조정 정보가 발생할 수 있다. 또는, 영상의 크기 조정을 지시하는 신호(예를 들어, tile_resizing_flag[i])가 활성화될 경우 영상 내 분할 단위에 개별 적용되는 크기 조정 정보가 발생할 수 있다. 또는, 영상의 크기 조정을 지시하는 신호(예를 들어, tile_resizing_flag[i])가 활성화될 경우 영상 내 분할 단위에 공통 적용되는 크기 조정 정보가 발생할 수 있다.
영상의 크기 조정 방향, 크기 조정 정보 등은 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있다. 묵시적인 경우는 영상의 특성, 종류 등에 따라 기 설정된 값으로 크기 조정 정보를 할당할 수 있다.
전술한 본 발명의 크기 조정 과정에서의 크기 조정 방향은 상, 하, 좌, 우 방향 중 적어도 하나의 방향이며, 크기 조정 방향과 크기 조정 정보는 명시적 또는 묵시적인 처리가 가능하다는 설명을 하였다. 즉, 일부 방향은 묵시적으로 크기 조정값(0 포함. 즉, 조정 없음)이 미리 결정되고 일부 방향은 명시적으로 크기 조정값(0 포함. 즉, 조정 없음)이 할당될 수 있다.
영상 내 분할 단위에서도 크기 조정 방향과 크기 조정 정보는 묵시적 또는 명시적인 처리가 가능한 설정을 둘 수 있으며, 이는 영상 내 분할 단위에 적용될 수 있다. 예를 들어, 영상 내 하나의 분할 단위에 적용되는 설정(본 예에서 분할 단위만큼 발생)이 발생할 수 있거나 또는 영상 내 복수의 분할 단위에 적용되는 설정이 발생할 수 있거나 또는 영상 내 모든 분할 단위에 적용되는 설정(본 예에서 하나의 설정이 발생)이 발생할 수 있으며, 영상에 적어도 하나의 설정이 발생할 수 있다(예를 들어, 하나의 설정부터 분할 단위 개수만큼의 설정이 발생가능). 상기 영상 내 분할 단위에 적용되는 설정 정보를 모아 하나의 설정 세트가 정의될 수 있다.
도 13은 영상 내 분할 단위의 크기 조정 또는 설정 세트에 대한 예시도이다.
상세하게는, 영상 내 분할 단위의 크기 조정 방향과 크기 조정 정보의 묵시적 또는 명시적인 처리의 다양한 예를 나타낸다. 후술하는 예에서 설명의 편의를 위해 묵시적인 처리는 일부 크기 조정 방향의 크기 조정값이 0인 경우라 가정하여 설명한다.
13a와 같이 분할 단위의 경계가 영상의 경계와 일치하는 경우(본 예에서 굵은 실선)에 크기 조정의 명시적인 처리를, 일치하지 않은 경우(얇은 실선)에는 묵시적인 처리를 할 수 있다. 예를 들어, P0는 상 방향 및 좌 방향(a2, a0), P1은 상 방향(a2), P2는 상 방향 및 우 방향(a2, a1), P3는 하 방향 및 좌 방향(a3, a0), P4는 하 방향(a3), P5는 하 방향 및 우 방향(a3, a1)으로 크기 조정이 가능할 수 있고, 그 외의 방향으로 크기 조정이 불가능할 수 있다.
13b와 같이 분할 단위의 일부 방향(본 예에서 상, 하)은 크기 조정의 명시적인 처리를 할 수 있고, 분할 단위의 일부 방향(본 예에서 좌, 우)은 분할 단위의 경계가 영상의 경계와 일치하는 경우에 명시적인 처리(본 예에서 굵은 실선)를, 일치하지 않는 경우(본 예에서 얇은 실선)에는 묵시적인 처리를 할 수 있다. 예를 들어, P0는 상, 하, 좌 방향(b2, b3, b0), P1은 상, 하 방향(b2, b3), P2는 상, 하, 우 방향(b2, b3, b1), P3는 상, 하, 좌 방향(b3, b4, b0), P4는 상, 하 방향(b3, b4), P5는 상, 하, 우 방향(b3, b4, b1)으로 크기 조정이 가능할 수 있고, 그 외의 방향은 크기 조정이 불가능할 수 있다.
13c와 같이 분할 단위의 일부 방향(본 예에서 좌, 우)은 크기 조정의 명시적인 처리를 할 수 있고, 분할 단위의 일부 방향(본 예에서 상, 하)은 분할 단위의 경계가 영상의 경계와 일치하는 경우(본 예에서 굵은 실선)에 명시적인 처리를, 일치하지 않는 경우(본 예에서 얇은 실선)에는 묵시적인 처리를 할 수 있다. 예를 들어, P0는 상, 좌, 우 방향(c4, c0, c1), P1은 상, 좌, 우 방향(c4, c1, c2), P2는 상, 좌, 우 방향(c4, c2, c3), P3는 하, 좌, 우 방향(c5, c0, c1), P4는 하, 좌, 우 방향(c5, c1, c2), P5는 하, 좌, 우 방향(c5, c2, c3)으로 크기 조정이 가능할 수 있고, 그 외의 방향은 크기 조정이 불가능할 수 있다.
상기 예와 같이 영상의 크기 조정 관련된 설정은 다양한 경우를 가질 수 있다. 복수의 설정 세트가 지원되어 명시적으로 설정 세트 선택 정보가 발생할 수 있거나 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 기 설정된 설정 세트가 묵시적으로 결정될 수 있다.
도 14는 영상 크기 조정 과정과 영상 내 분할 단위의 크기 조정 과정을 함께 표현한 예시도이다.
도 14를 참조하면, 영상 크기 조정 과정 및 역과정은 e와 f로 진행될 수 있으며, 영상 내 분할 단위의 크기 조정 과정 및 역과정은 d 및 g로 진행될 수 있다. 즉, 영상에 크기 조정 과정을 수행할 수 있고, 영상 내 분할 단위의 크기 조정을 수행할 수 있으며, 크기 조정 과정의 순서는 고정적이지 않을 수 있다. 이는 복수의 크기 조정 과정이 가능할 수 있다는 것을 의미한다.
정리하면, 영상의 크기 조정 과정은 영상의 크기 조정(또는 분할 전 영상의 크기 조정)과 영상 내 분할 단위의 크기 조정(또는 분할 후 영상의 크기 조정)으로 분류할 수 있으며, 영상의 크기 조정과 영상 내 분할 단위의 크기 조정을 둘 다 수행하지 않을 수 있고, 둘 중 하나를 수행할 수 있고, 둘 다 수행할 수 있으며, 이는 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 결정될 수 있다.
상기 예에서 복수 개의 크기 조정 과정을 수행하는 경우, 영상의 크기 조정은 영상의 상, 하, 좌, 우 방향 중 적어도 하나의 방향으로 크기 조정을 수행할 수 있고, 영상 내 분할 단위 중 적어도 하나의 분할 단위의 크기 조정을 수행할 수 있으며, 이때 크기 조정을 수행하는 분할 단위의 상, 하, 좌, 우 방향 중 적어도 하나의 방향으로 크기 조정을 수행할 수 있다.
도 14를 참조하면, 크기 조정 전 영상(A)의 크기는 P_Width × P_Height, 1차 크기 조정 후 영상(또는 2차 크기 조정 전 영상, B)의 크기는 P'_Width × P'_Height, 2차 크기 조정 후 영상(또는 최종 크기 조정 후 영상, C)의 크기는 P''_Width × P''_Height라고 정의할 수 있다. 크기 조정 전 영상(A)은 어떤 크기 조정도 수행되지 않는 영상을 의미하며, 1차 크기 조정 후 영상(B)은 일부 크기 조정이 수행된 영상을 의미하며, 2차 크기 조정 후 영상(C)은 모든 크기 조정이 수행된 영상을 의미한다. 예를 들어, 1차 크기 조정 후 영상(B)은 도 13a 내지 도 13c에서와 같이 영상 내 분할 단위의 크기 조정이 수행된 영상을 의미하며, 2차 크기 조정 후 영상(C)은 도 7a에서와 같이 1차 크기 조정된 영상(B) 전체에 대하여 크기 조정이 수행된 영상을 의미할 수 있고, 그 반대의 경우 또한 가능하다. 상기 예에 한정되지 않고 다양한 변형의 예가 가능할 수 있다.
1차 크기 조정 후 영상(B)의 크기에서 P'_Width는 P_Width와 가로로 크기 조정 가능한 좌 또는 우 방향의 적어도 하나의 크기 조정값을 통해 획득될 수 있고, P'_Height는 P_Height와 세로로 크기 조정 가능한 상 또는 하 방향의 적어도 하나의 크기 조정값을 통해 획득될 수 있다. 이때, 상기 크기 조정값은 분할 단위에서 발생하는 크기 조정값일 수 있다.
2차 크기 조정 후 영상(C)의 크기에서 P''_Width는 P'_Width와 가로로 크기 조정 가능한 좌 또는 우 방향의 적어도 하나의 크기 조정값을 통해 획득될 수 있고, P''_Height는 P'_Height와 세로로 크기 조정 가능한 상 또는 하 방향의 적어도 하나의 크기 조정값을 통해 획득될 수 있다. 이때, 상기 크기 조정값은 영상에서 발생하는 크기 조정값일 수 있다.
정리하면, 크기 조정 후 영상의 크기는 크기 조정 전 영상의 크기와 적어도 하나의 크기 조정값을 통해 획득될 수 있다.
영상의 크기 조정되는 영역에 데이터 처리 방법에 관한 정보가 발생할 수 있다. 후술하는 예를 통해 다양한 데이터 처리 방법에 관한 경우를 설명하며, 크기 조정 역과정에서 발생하는 데이터 처리 방법의 경우도 크기 조정 과정의 경우와 동일하거나 비슷한 적용이 가능하며, 크기 조정 과정과 크기 조정 역과정에서의 데이터 처리 방법이 후술하는 경우의 다양한 조합을 통해 설명될 수 있다.
일 예로, 영상에 적용되는 데이터 처리 방법이 발생할 수 있다. 상세하게는, 하나의 데이터 처리 방법 또는 데이터 처리 방법 세트가 영상 내 모든 분할 단위(본 예에서 모든 분할 단위가 크기 조정되는 경우라 가정)의 데이터 처리 방법으로 사용될 수 있다. 예를 들어, 영상 내 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 데이터 처리 방법(또는, 분할 단위에서 지원되거나 허용되는 크기 조정 방향에 모두 적용되는 데이터 처리 방법 등. 본 예에서 1개의 정보) 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 데이터 처리 방법 세트(또는, 분할 단위에서 지원되거나 허용되는 크기 조정 방향의 개수만큼. 본 예에서 최대 4개의 정보)가 발생할 수 있다.
일 예로, 영상 내 분할 단위에 적용되는 데이터 처리 방법이 발생할 수 있다. 상세하게는, 적어도 하나의 데이터 처리 방법 또는 데이터 처리 방법 세트가 영상 내 일부 분할 단위(본 예에서 크기 조정되는 분할 단위라 가정)의 데이터 처리 방법으로 사용될 수 있다. 즉, 하나의 데이터 처리 방법 또는 데이터 처리 방법 세트가 하나의 분할 단위의 데이터 처리 방법으로 사용될 수 있거나 또는 복수의 분할 단위의 데이터 처리 방법으로 사용될 수 있다. 예를 들어, 영상 내 하나의 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 데이터 처리 방법 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 데이터 처리 방법 세트가 발생할 수 있다. 또는, 영상 내 복수의 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 데이터 처리 방법 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 데이터 처리 방법 정보 세트가 발생할 수 있다. 데이터 처리 방법 세트의 구성은 적어도 하나의 크기 조정 방향에 대한 데이터 처리 방법을 의미한다.
정리하면, 영상 내 분할 단위에 공통 적용되는 데이터 처리 방법을 사용할 수 있다. 또는, 영상 내 분할 단위에 개별 적용되는 데이터 처리 방법을 사용할 수 있다. 상기 데이터 처리 방법은 기 설정된 방법을 사용할 수 있다. 기 설정된 데이터 처리 방법은 적어도 하나의 방법을 둘 수 있으며, 이는 묵시적인 경우에 해당하며 명시적으로 데이터 처리 방법에 대한 선택 정보가 발생할 수 있고, 이는 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 정해질 수 있다.
즉, 영상 내 분할 단위에 공통 적용되는 데이터 처리 방법을 사용할 수 있으며, 기 설정된 방법을 사용하거나 또는 복수의 데이터 처리 방법 중 하나를 선택할 수 있다. 또는, 영상 내 분할 단위에 개별 적용되는 데이터 처리 방법을 사용할 수 있으며, 분할 단위에 따라 기 설정된 방법을 사용하거나 또는 복수의 데이터 처리 방법 중 하나를 선택할 수 있다.
후술하는 예는 영상 내 분할 단위의 크기 조정(본 예에서 확장이라 가정)에 관한 일부 경우(본 예에서 영상의 일부 데이터를 사용하여 크기 조정 영역을 채움)를 설명한다.
일부 단위(예를 들어, 도 12a 내지 도 12f의 S0 내지 S5)의 일부 영역(TL ~ BR)은 일부 단위(도 12a 내지 도 12f의 P0 내지 P5)의 일부 영역(tl ~ br)의 데이터를 사용하여 크기 조정을 수행할 수 있다. 이때, 상기 일부 단위는 동일하거나(예를 들면 S0과 P0) 동일하지 않는 영역(예를 들면 S0 과 P1)일 수 있다. 즉, 크기 조정되는 영역(TL 내지 BR)은 해당 분할 단위의 일부 데이터(tl 내지 br)를 사용하여 채울 수 있고, 크기 조정되는 영역은 해당 분할 단위와 다른 분할 단위의 일부 데이터를 사용하여 채울 수 있다.
일 예로, 현재 분할 단위의 크기 조정되는 영역(TL ~ BR)은 현재 분할 단위의 tl ~ br 데이터를 사용하여 크기 조정을 수행할 수 있다. 예를 들어, S0의 TL은 P0의 tl 데이터를, S1의 RC는 P1의 tr + rc + br 데이터를, S2의 BL + BC는 P2의 bl + bc + br 데이터를, S3의 TL + LC + BL은 P3의 tl + lc + bl의 데이터를 사용하여 채울 수 있다.
일 예로, 현재 분할 단위의 크기 조정되는 영역(TL ~ BR)은 현재 분할 단위에 공간적으로 인접한 분할 단위의 tl ~ br 데이터를 사용하여 크기 조정을 수행할 수 있다. 예를 들어, S4의 TL + TC + TR은 상 방향의 P1의 bl + bc + br 데이터를, S2의 BL + BC는 하 방향의 P5의 tl + tc + tr 데이터를, S2의 LC + BL은 좌 방향의 P1의 tl + rc + bl 데이터를, S3의 RC는 우 방향의 P4의 tl + lc + bl 데이터를, S0의 BR은 좌하 방향의 P4의 tl 데이터를 사용하여 채울 수 있다.
일 예로, 현재 분할 단위의 크기 조정되는 영역(TL ~ BR)은 현재 분할 단위에 공간적으로 인접하지 않은 분할 단위의 tl ~ br 데이터를 사용하여 크기 조정을 수행할 수 있다. 예를 들어, 영상의 양 끝 경계(예를 들어, 좌우, 상하 등) 영역의 데이터를 획득할 수 있다. S3의 LC는 S5의 tr + rc + br 데이터를, S2의 RC는 S0의 tl + lc 데이터를, S4의 BC는 S1의 tc + tr 데이터를, S1의 TC는 S4의 bc 데이터를 사용하여 획득할 수 있다.
또는, 영상의 일부 영역 데이터(공간적으로 인접하지 않지만 크기 조정되는 영역과 상관성이 높다고 판단되는 영역)를 획득할 수 있다. S1의 BC는 S3의 tl + lc + bl 데이터를, S3의 RC는 S1의 tl + tc 데이터를, S5의 RC는 S0의 bc 데이터를 사용하여 획득할 수 있다.
또한, 영상 내 분할 단위의 크기 조정(본 예에서 축소라 가정)에 관한 일부 경우(본 예에서 영상의 일부 데이터를 사용하여 복원 또는 보정하여 제거)는 다음과 같다.
일부 단위(예를 들어, 도 12a 내지 도 12f의 S0 내지 S5)의 일부 영역(TL ~ BR)은 일부 단위(P0 내지 P5)의 일부 영역(tl ~ br)의 복원 또는 보정 과정에 사용될 수 있다. 이때, 상기 일부 단위는 동일하거나(예를 들면 S0과 P0) 동일하지 않는 영역(예를 들면 S0와 P2)일 수 있다. 즉, 크기 조정되는 영역은 해당 분할 단위의 일부 데이터 복원에 사용되고 제거될 수 있고, 크기 조정되는 영역은 해당 분할 단위와 다른 분할 단위의 일부 데이터 복원에 사용되고 제거될 수 있다. 상세한 예는 확장 과정으로부터 역으로 유도 가능하므로 생략한다.
상기 예는 크기 조정되는 영역에 상관성이 높은 데이터가 존재할 경우에 적용되는 예일 수 있으며, 크기 조정에 참조되는 위치에 대한 정보는 명시적으로 생성될 수 있거나 묵시적으로 기 설정된 규칙에 따라 획득될 수 있거나 이를 혼합하여 관련 정보를 확인할 수 있다. 이는 360도 영상의 부호화에서 연속성이 존재하는 다른 영역으로부터 데이터를 획득하는 경우에 적용되는 예일 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 내 분할 단위의 크기 조정을 수행하는 예를 나타낸다.
부호화 시작 전에 입력 영상에 대한 분할 과정을 수행할 수 있다. 분할 단위에 크기 조정 정보를 사용하여 크기 조정 과정을 수행할 수 있으며, 분할 단위의 크기 조정 후 영상을 부호화할 수 있다. 부호화 완료 후 메모리에 저장할 수 있고, 영상 부호화 데이터를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 분할 정보를 사용하여 분할 과정을 수행할 수 있다. 분할 단위에 크기 조정 정보를 사용하여 크기 조정 과정을 수행하고, 크기 조정이 수행된 분할 단위로 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후 메모리에 저장할 수 있고, 분할 단위의 크기 조정 역과정을 수행한 후 분할 단위를 하나로 병합하여 영상을 출력할 수 있다.
전술한 영상 크기 조정 과정에서의 다른 경우도 상기 예와 같이 변경 적용될 수 있으며, 이에 한정되지 않고 다른 예로의 변경 또한 가능할 수 있다.
상기 영상 설정 과정에서 영상 크기 조정과 영상 재구성의 조합이 가능할 수 있다. 영상 크기 조정이 수행된 후에 영상 재구성이 수행될 수 있거나 영상 재구성이 수행된 후에 영상 크기 조정이 수행될 수 있다. 또한, 영상 분할과 영상 재구성, 영상 크기 조정의 조합이 가능할 수 있다. 영상 분할이 수행된 후에 영상 크기 조정과 영상 재구성이 수행될 수 있으며, 영상 설정의 순서는 고정적이지 않고 변경 가능하며 이는 부/복호화 설정에 따라 정해질 수 있다. 본 예에서 영상 설정 과정은 영상 분할이 수행된 후에 영상 재구성이 수행되고 영상 크기 조정이 수행되는 경우에 대한 설명을 하지만, 부/복호화 설정에 따라 다른 순서도 가능하고 다른 경우로 변경 또한 가능할 수 있다.
예를 들어, 분할 -> 재구성, 재구성 -> 분할, 분할 -> 크기 조정, 크기 조정 -> 분할, 크기 조정 -> 재구성, 재구성 -> 크기 조정, 분할 -> 재구성 -> 크기 조정, 분할 -> 크기 조정 -> 재구성, 크기 조정 -> 분할 -> 재구성, 크기 조정 -> 재구성 -> 분할, 재구성 -> 분할 -> 크기 조정, 재구성 -> 크기 조정 -> 분할 등과 같은 순서로 진행될 수도 있으며, 추가적인 영상 설정과의 조합 또한 가능할 수 있다. 전술한 것과 같이 영상 설정 과정이 순차적으로 진행될 수도 있지만, 전부 또는 일부 설정 과정은 동시에 진행하는 것 또한 가능할 수 있다. 또한, 일부 영상 설정 과정은 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 복수의 과정이 수행될 수 있다. 다음은 영상 설정 과정의 다양한 조합의 경우 예를 나타낸다.
일 예로, 도 11a의 P0 ~ P5는 도 11b의 S0 ~ S5에 대응될 수 있고 분할 단위에 재구성 과정(본 예에서 화소의 재배치), 크기 조정 과정(본 예에서 분할 단위에 동일한 크기 조정)이 수행될 수 있다. 예를 들어, P0 내지 P5에 오프셋을 통한 크기 조정을 적용하여 S0 내지 S5에 할당할 수 있다. 또한, P0에 재구성을 수행하지 않고 S0에 할당할 수 있고, P1에 90도 회전을 적용하여 S1에 할당할 수 있고, P2에 180도 회전을 적용하여 S2에 할당할 수 있고, P3에 270도 회전을 적용하여 S3에 할당할 수 있고, P4에 좌우 반전을 적용하여 S4에 할당할 수 있고, P5에 상하 반전을 적용하여 S5에 할당할 수 있다.
일 예로, 도 11a의 P0 ~ P5는 도 11b의 S0 ~ S5에 같거나 상이한 위치끼리 대응될 수 있고 분할 단위에 재구성 과정(본 예에서 화소와 분할 단위의 재배치), 크기 조정 과정(본 예에서 분할 단위에 동일한 크기 조정)이 수행될 수 있다. 예를 들어, P0 내지 P5에 스케일을 통한 크기 조정을 적용하여 S0 내지 S5에 할당할 수 있다. 또한, P0에 재구성을 수행하지 않고 S0에 할당할 수 있고, P1에 재구성을 수행하지 않고 S2에 할당할 수 있고, P2에 90도 회전을 적용하여 S1에 할당할 수 있고, P3에 좌우 반전을 적용하여 S4에 할당할 수 있고, P4에 90도 회전 후 좌우 반전을 적용하여 S5에 할당할 수 있고, P5에 좌우 반전 후 180도 회전을 적용하여 S3에 할당할 수 있다.
일 예로, 도 11a의 P0 ~ P5는 도 5e의 E0 ~ E5에 대응될 수 있고 분할 단위에 재구성 과정(본 예에서 화소와 분할 단위의 재배치), 크기 조정 과정(본 예에서 분할 단위에 동일하지 않은 크기 조정)이 수행될 수 있다. 예를 들어, P0에 크기 조정과 재구성은 수행하지 않고 E0에 할당할 수 있고, P1에 스케일을 통한 크기 조정을 수행하고 재구성은 수행하지 않고 E1에 할당할 수 있고, P2에 크기 조정은 수행하지 않고 재구성은 수행하여 E2에 할당할 수 있고, P3에 오프셋을 통한 크기 조정을 수행하고 재구성은 수행하지 않고 E4에 할당할 수 있고, P4에 크기 조정은 수행하지 않고 재구성은 수행하여 E5에 할당할 수 있고, P5에 오프셋을 통한 크기 조정을 수행하고 재구성은 수행하여 E3에 할당할 수 있다.
상기 예와 같이 영상 설정 과정 전과 후의 분할 단위의 영상 내 절대적인 위치 또는 상대적인 위치가 유지될 수 있거나 변경될 수도 있으며, 이는 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 결정될 수 있다. 또한, 다양한 영상 설정 과정의 조합이 가능할 수 있으며, 상기 예에 한정되지 않고 다양한 예로의 변형 또한 가능할 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
Figure 112020052009608-pat00004
다음은 복수의 영상 설정에 관련된 구문 요소들에 대한 예를 나타낸다. 후술하는 예에서는 추가되는 구문 요소를 중심으로 설명할 것이다. 또한, 후술하는 예의 구문 요소는 어느 특정 단위에 한정되는 것은 아니며 시퀀스, 픽쳐, 슬라이스, 타일 등의 다양한 단위에서 지원되는 구문 요소일 수 있다. 또는, SEI, 메타 데이터 등에 포함되는 구문 요소일 수 있다.
표 4를 참조하면, parts_enabled_flag는 일부 단위의 분할 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(parts_enabled_flag = 1)에는 복수의 단위로 분할하여 부/복호화를 수행하는 것을 의미하며 추가적인 분할 정보를 확인할 수 있다. 비활성화되는 경우(parts_enabled_flag = 0)에는 기존 영상을 부/복호화하는 것을 의미한다. 본 예는 타일과 같은 직사각 형태의 분할 단위를 중심으로 설명할 것이며, 기존의 타일과 분할 정보에 대한 다른 설정을 가질 수 있다.
num_partitions은 분할 단위 개수에 대한 구문 요소를 의미하며, 1을 더한 값은 분할 단위의 개수를 의미한다.
part_top[i]와 part_left[i]는 분할 단위의 위치 정보에 대한 구문 요소를 의미하며, 분할 단위의 가로, 세로 시작 위치(예를 들어, 분할 단위의 좌측 상단 위치)를 의미한다. part_width[i]와 part_height[i]는 분할 단위의 크기 정보에 대한 구문 요소를 의미하며, 분할 단위의 가로, 세로 길이를 의미한다. 이때, 시작 위치와 크기 정보는 화소 단위 또는 블록 단위로 설정될 수 있다. 또한, 상기 구문 요소는 영상 재구성 과정에서 발생 가능한 구문 요소일 수 있거나 또는 영상 분할 과정과 영상 재구성 과정이 혼합 구성되는 경우에 발생 가능한 구문 요소일 수 있다.
part_header_enabled_flag는 분할 단위에 부/복호화 설정 지원 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(part_header_enabled_flag = 1)에는 분할 단위의 부/복호화 설정을 가질 수 있으며, 비활성화되는 경우(part_header_enabled_flag = 0)에는 부/복호화 설정을 가질 수 없고 상위 단위의 부/복호화 설정을 할당받을 수 있다.
상기 예는 후술하는 영상 설정 중 분할 단위에서 크기 조정과 재구성에 관련된 구문 요소들에 대한 일 예로 이에 한정되지 않으며, 본 발명의 다른 분할 단위 및 설정 등의 변경 적용이 가능할 수 있다. 본 예는 분할이 수행된 후 크기 조정과 재구성을 수행한다는 가정 하에 설명되지만 이에 한정되지 않으며, 다른 영상 설정 순서 등에 따라 변경 적용 가능할 수 있다. 또한, 후술하는 예에서 지원되는 구문 요소의 종류, 구문 요소의 순서, 조건 등은 본 예에서만 한정될 뿐 부/복호화 설정에 따라 변경되고 정해질 수 있다.
Figure 112020052009608-pat00005
표 5는 영상 설정 중 분할 단위에서 재구성에 관련된 구문 요소들에 대한 예를 나타낸다.
표 5를 참조하면, part_convert_flag[i]는 분할 단위의 재구성 여부에 대한 구문 요소를 의미한다. 상기 구문 요소는 분할 단위마다 발생할 수 있으며, 활성화되는 경우(part_convert_flag[i] = 1)에는 재구성된 분할 단위를 부/복호화하는 것을 의미하며 추가적인 재구성 관련 정보를 확인할 수 있다. 비활성화되는 경우(part_convert_flag[i] = 0)에는 기존의 분할 단위를 부/복호화하는 것을 의미한다. convert_type_flag[i]는 분할 단위의 재구성에 관한 모드 정보를 의미하며, 화소의 재배치에 관한 정보일 수 있다.
또한, 분할 단위 재배치와 같은 추가적인 재구성에 대한 구문 요소가 발생할 수 있다. 본 예에서는 전술한 영상 분할에 관한 구문 요소인 part_top과 part_left를 통해 분할 단위의 재배치를 수행할 수도 있고, 또는 분할 단위 재배치에 관련된 구문 요소(예를 들어, 인덱스 정보 등)가 발생할 수도 있다.
Figure 112020052009608-pat00006
표 6은 영상 설정 중 분할 단위에서 크기 조정에 관련된 구문 요소들에 대한 예를 나타낸다.
표 6을 참조하면, part_resizing_flag[i]는 분할 단위의 영상 크기 조정 여부에 대한 구문 요소를 의미한다. 상기 구문 요소는 분할 단위마다 발생할 수 있으며, 활성화되는 경우(part_resizing_flag[i] = 1)에는 크기 조정 후 분할 단위를 부/복호화하는 것을 의미하며 추가적인 크기 관련 정보를 확인할 수 있다. 비활성화되는 경우(part_resiznig_flag[i] = 0)에는 기존의 분할 단위를 부/복호화하는 것을 의미한다.
width_scale[i]과 height_scale[i]은 분할 단위에서 스케일 팩터를 통한 크기 조정에서 가로 크기 조정, 세로 크기 조정과 관련된 스케일 팩터를 의미한다.
top_height_offset[i]와 bottom_height_offset[i]는 분할 단위에서 오프셋 팩터를 통한 크기 조정과 관련된 상 방향, 하 방향의 오프셋 팩터를 의미하고, left_width_offset[i]와 right_width_offset[i]는 분할 단위에서 오프셋 팩터를 통한 크기 조정과 관련된 좌 방향, 우 방향의 오프셋 팩터를 의미한다.
resizing_type_flag[i][j]는 분할 단위에서 크기 조정되는 영역의 데이터 처리 방법에 대한 구문 요소를 의미한다. 상기 구문 요소는 크기 조정되는 방향에 개별적인 데이터 처리 방법을 의미한다. 예를 들어, 상, 하, 좌, 우 방향으로 크기 조정되는 영역의 개별적인 데이터 처리 방법에 대한 구문 요소가 발생할 수 있다. 이는 크기 조정 정보(예를 들어, 일부 방향으로 크기 조정되는 경우에만 발생가능)에 기반하여 생성될 수도 있다.
전술하는 영상 설정의 과정은 영상의 특성, 종류 등에 따라 적용되는 과정일 수 있다. 후술하는 예에서는 특별한 언급이 없더라도 전술한 영상 설정 과정을 동일하게 적용할 수 있거나 변경된 적용이 가능할 수 있다. 후술하는 예에서는 전술한 예에서 추가적이거나 변경 적용되는 경우를 중심으로 설명을 할 것이다.
예를 들어, 360도 카메라를 통해 생성되는 영상{360도 영상(360-degree Video) 또는 전방위 영상(Omnidirectional Video)}의 경우 일반 카메라를 통해 획득되는 영상과 다른 특성을 가지며, 일반적인 영상의 압축과는 다른 부호화 환경을 갖는다.
일반적인 영상과 달리 360도 영상은 불연속적인 특성을 갖는 경계 부분은 존재하지 않고 모든 영역의 데이터는 연속성을 가질 수 있다. 또한, HMD와 같은 장치에서는 렌즈를 통해 눈 앞에서 영상이 재생되어 고화질의 영상을 요구할 수 있고, 양안식(Stereoscopic) 카메라를 통해 영상이 획득되는 경우 처리되는 영상 데이터는 증가할 수 있다. 상기 예를 포함하여 효율적인 부호화 환경을 제공하기 위한 목적으로 360도 영상을 고려한 다양한 영상 설정 과정이 수행될 수 있다.
상기 360도 카메라는 복수의 카메라 또는 복수의 렌즈와 센서를 갖는 카메라일 수 있으며, 상기 카메라 또는 렌즈는 카메라에서 캡쳐하는 임의의 중앙점을 중심으로 주위의 모든 방향을 다룰 수 있다.
360도 영상은 다양한 방법을 사용하여 부호화를 수행할 수 있다. 예를 들어, 3차원 공간에서의 다양한 영상 처리 알고리즘을 사용하여 부호화를 수행할 수 있고, 2차원 공간으로 변환하여 다양한 영상 처리 알고리즘을 사용하여 부호화를 수행할 수도 있다. 본 발명에서는 360도 영상을 2차원 공간으로 변환하여 부/복호화를 수행하는 방법을 중심으로 설명할 것이다.
본 발명의 일 실시예에 따른 360도 영상 부호화 장치는 도 1에 따른 구성 중 전부 또는 일부를 포함하여 구성될 수 있으며, 입력 영상에 대하여 전처리 (Stitching, Projection, Region-wise Packing)를 수행하는 전처리부를 추가로 포함할 수 있다. 한편, 본 발명의 일 실시예에 따른 360도 영상 복호화 장치는 도 2에 따른 구성의 전부 또는 일부를 포함할 수 있고, 복호화되어 출력 영상으로 재생되기 이전에 후처리(Rendering)를 수행하는 후처리부를 더 포함할 수 있다.
다시 설명하면, 부호화기에서 입력 영상에 대한 전처리 과정(Pre-processing)을 거친 후에 부호화를 수행하여 이에 대한 비트스트림을 전송할 수 있고, 복호화기에서 전송된 비트스트림을 파싱하여 복호화를 수행하고 후처리 과정(Post-processing)을 거친 후에 출력 영상을 생성할 수 있다. 이때, 비트스트림에는 전처리 과정에서 발생하는 정보와 부호화 과정에서 발생하는 정보가 수록되어 전송될 수 있고, 복호화기에서 이를 파싱하여 복호화 과정과 후처리 과정에서 사용할 수 있다.
다음은 360도 영상 부호화기의 동작 방법에 대하여 더 상세히 설명하고, 360도 영상 복호화기의 동작 방법은 360도 영상 부호화기의 반대 동작이므로 통상의 기술자가 용이하게 도출할 수 있어 자세한 설명은 생략한다.
입력 영상은 구(Sphere) 단위의 3차원 투영 구조(Projection Structure)에 스티칭(Stitching) 및 투영(Projection) 과정이 수행될 수 있고, 상기 과정을 통해 3차원 투영 구조 상의 영상 데이터는 2차원 영상으로 투영될 수 있다.
투영된 영상(Projected Image)은 부호화 설정에 따라 360도 콘텐츠의 전부 또는 일부를 포함하여 구성될 수 있다. 이때, 투영된 영상의 중앙에 배치될 영역(또는 화소)의 위치 정보를 묵시적으로 기 설정된 값으로 생성하거나 또는 명시적으로 위치 정보를 생성할 수 있다. 또한, 360도 콘텐츠 중 일부 영역을 포함하여 투영된 영상을 구성할 경우, 포함되는 영역의 범위, 위치 정보를 생성할 수 있다. 또한, 투영 영상에서 관심 영역(Region of Interest. ROI)에 대한 범위 정보(예를 들어, 가로, 세로 길이), 위치 정보(예를 들어, 영상의 좌측 상단을 기준으로 측정)를 생성할 수 있다. 이때, 360도 콘텐츠 중 높은 중요도를 갖는 일부 영역을 관심 영역으로 설정할 수 있다. 360도 영상은 상, 하, 좌, 우 방향의 모든 콘텐츠를 볼 수 있지만, 사용자의 시선은 영상의 일부분에 한정될 수 있으며, 이를 고려하여 관심 영역으로 설정할 수 있다. 효율적인 부호화를 위해 관심 영역에는 좋은 품질, 해상도를 갖게 설정할 수 있고, 그 외 영역은 관심 영역보다는 낮은 품질, 해상도를 갖게 설정할 수 있다.
360도 영상 전송 방식 중 단일 스트림 전송 방식(Single Stream)은 사용자에 대한 개별 단일 비트스트림으로 전체 영상 또는 뷰포트(Viewport) 영상을 전송할 수 있다. 다중 스트림 전송 방식(Multi Stream)은 영상의 품질이 다른 여러 개의 전체 영상을 다중 비트스트림으로 전송함으로써 사용자 환경, 통신 상황에 따라 영상 품질을 선택할 수 있다. 타일 스트림(Tiled Stream) 전송 방식은 개별적으로 부호화된 타일 단위의 부분 영상을 다중 비트스트림으로 전송함으로써 사용자 환경, 통신 상황에 따라 타일을 선택할 수 있다. 따라서, 360도 영상 부호화기는 둘 이상의 품질을 갖는 비트스트림을 생성하여 전송하고, 360도 영상 복호화기는 사용자의 시선에 따라 관심 영역을 설정하고 관심 영역에 따라 선택적으로 복호화할 수 있다. 즉, 머리 추적(Head Tracking) 또는 안구 추적(Eye Tracking) 시스템을 통해 사용자의 시선이 머무는 곳을 관심 영역으로 설정하고, 필요한 부분만 렌더링(Rendering)을 진행할 수 있다.
투영된 영상은 지역별 포장(Region-wise Packing) 과정을 수행하여 포장된 영상(Packed Image)으로 변환될 수 있다. 지역별 포장 과정은 투영된 영상을 복수의 지역으로 분할하는 단계를 포함할 수 있고, 이때 분할된 각 지역은 지역별 포장 설정에 따라 포장된 영상에 배치(또는 재배치)될 수 있다. 지역별 포장은 360도 영상을 2차원 영상(또는 투영된 영상)으로 변환할 때 공간적인 연속성을 높이기 위한 목적으로 수행될 수 있고, 지역별 포장을 통해 영상의 크기를 줄일 수 있다. 또한, 렌더링시 발생하는 화질 열화를 줄일 수 있고, 뷰포트 기반의 투영이 가능하게 하며, 다른 타입의 투영 포맷을 제공하기 위한 목적으로 수행될 수 있다. 지역별 포장은 부호화 설정에 따라 수행되거나 또는 수행되지 않을 수 있으며, 수행 여부를 지시하는 신호(예를 들어, regionwise_packing_flag, 후술하는 예에서 지역별 포장 관련 정보는 regionwise_packing_flag가 활성화되는 경우에만 발생 가능)에 기반하여 결정될 수 있다.
지역별 포장이 수행될 경우에는 투영된 영상의 일부 영역이 포장된 영상의 일부 영역으로 할당(또는 배치)되는 설정 정보(또는 매핑 정보) 등을 표시(또는 생성) 할 수 있다. 지역별 포장이 수행되지 않는 경우에는 투영된 영상과 포장된 영상은 동일한 영상일 수 있다.
앞에서는 스티칭, 투영, 지역별 포장 과정을 개별적인 과정으로 정의하였으나, 상기 과정 중 일부(예를 들어, 스티칭+투영, 투영+지역별 포장) 또는 전부(예를 들어, 스티칭+투영+지역별 포장)가 하나의 과정으로 정의될 수 있다.
상기 스티칭, 투영, 지역별 포장 과정 등의 설정에 따라 동일한 입력 영상에 대하여 적어도 하나의 포장된 영상을 생성할 수 있다. 또한, 지역별 포장 과정의 설정에 따라 동일한 투영된 영상에 대한 적어도 하나의 부호화 데이터를 생성할 수 있다.
타일링(Tiling) 과정을 수행하여 포장된 영상을 분할할 수 있다. 이때, 타일링은 영상을 복수의 영역으로 분할, 전송하는 과정으로 상기 360도 영상 전송 방식의 일 예일 수 있다. 타일링은 전술한 것과 같이 사용자 환경 등을 고려하여 부분적인 복호화(Partial Decoding)을 위한 목적으로 수행할 수 있고, 360도 영상의 방대한 데이터의 효율적인 처리를 위한 목적으로 수행할 수 있다. 예를 들어, 영상이 하나의 단위로 구성될 경우 관심 영역에 대한 복호화를 위해 영상 모두를 복호화할 수 있지만, 영상이 복수의 단위 영역으로 구성될 경우 관심 영역만을 복호화하는 것이 효율적일 수 있다. 이때, 상기 분할은 기존의 부호화 방식에 따른 분할 단위인 타일로 분할되거나, 본 발명에서 설명하는 각종 분할 단위들(사각형 형태의 분할, 블록 등)로 분할될 수 있다. 또한, 상기 분할 단위는 독립적인 부/복호화를 수행하는 단위일 수 있다. 타일링은 투영된 영상 또는 포장된 영상에 기반하여 수행되거나 독립적으로 수행될 수 있다. 즉, 투영된 영상의 표면 경계, 포장된 영상의 표면 경계, 포장 설정 등에 기반하여 분할할 수 있고, 각 분할 단위마다 독립적으로 분할할 수 있다. 이는 타일링 과정에서 분할 정보 생성에 영향을 줄 수 있다.
다음으로, 투영된 영상 또는 포장된 영상을 부호화할 수 있다. 부호화 데이터와 전처리 과정에서 발생하는 정보를 포함하여 비트스트림에 수록하고 이를 360도 영상 복호화기에 전송할 수 있다. 전처리 과정에서 발생하는 정보는 SEI나 메타 데이터 형식으로 비트스트림에 수록될 수도 있다. 이때, 비트스트림에는 부호화 과정의 일부 설정 또는 전처리 과정의 일부 설정을 달리하는 적어도 하나의 부호화 데이터와 적어도 하나의 전처리 정보를 포함하여 비트스트림에 수록할 수 있다. 이는 복호화기에서 사용자 환경에 따라 복수의 부호화 데이터(부호화 데이터+전처리 정보)를 혼합하여 복호화 영상을 구성하기 위한 목적일 수 있다. 상세하게는, 복수의 부호화 데이터를 선택적으로 조합하여 복호화 영상을 구성할 수 있다. 또한, 양안식 시스템에서의 적용을 위해 두 개로 분리하여 상기 과정이 수행될 수 있고, 추가적인 깊이 영상에 대해 상기 과정이 수행될 수 있다.
도 15는 3차원 영상을 나타내는 3차원 공간 및 2차원 평면 공간을 나타낸 예시도이다.
일반적으로 360도 3차원 가상 공간을 위해서는 3DoF(Degree of Freedom)가 필요하며, X(Pitch), Y(Yaw), Z(Roll) 축을 중심으로 3개의 회전을 지원할 수 있다. DoF는 공간에서의 자유도를 의미하며 3DoF는 15a와 같이 X, Y, Z 축을 중심으로한 회전을 포함하는 자유도를 의미하며, 6DoF는 3DoF에 X, Y, Z 축에 따른 이동 움직임을 추가로 허용하는 자유도를 의미한다. 본 발명의 영상 부호화 장치 및 복호화 장치는 3DoF에 대한 경우를 중심으로 설명하며, 3DoF 이상(3DoF +)을 지원하는 경우 본 발명에서 도시되지 않은 추가적인 과정 또는 장치 등과 결합되거나 변경 적용될 수 있다.
15a를 참조하면, Yaw는 -π(-180도)에서 π(180도)까지의 범위를, Pitch는 -π/2 rad (또는 -90도)에서 π/2 rad (또는 90도)까지의 범위를, Roll은 -π/2 rad (또는 -90도)에서 π/2 rad (또는 90도)까지의 범위를 가질 수 있다. 이때,
Figure 112020052009608-pat00007
, θ는 지구의 지도 표현에서의 경도(Longitude)와 위도(Latitude)로 가정하면, 3차원 공간의 (x, y, z)는 2차원 공간의 (
Figure 112020052009608-pat00008
, θ)로부터 변환될 수 있다. 예를 들면, x = cos(θ) cos(
Figure 112020052009608-pat00009
), y = sin(θ), z = -cos(θ) sin(
Figure 112020052009608-pat00010
) 의 변환식에 따라 3차원 공간의 좌표가 2차원 공간 좌표로부터 유도될 수 있다.
또한, (
Figure 112020052009608-pat00011
, θ)는 (x, y, z)로 변환될 수 있다. 예를 들면,
Figure 112020052009608-pat00012
= tan-1(-Z/X), θ = sin-1(Y/(X2+Y2+Z2)1/2) 의 변환식에 따라 3차원 공간 좌표에서 2차원 공간 좌표를 유도할 수 있다.
3차원 공간의 화소가 2차원 공간으로 정확하게 변환되는 경우(예를 들어, 2차원 공간의 정수 단위 화소)에는 3차원 공간의 화소가 2차원 공간의 화소에 매핑될 수 있다. 3차원 공간의 화소가 2차원 공간으로 정확하게 변환되지 않는 경우(예를 들어, 2차원 공간의 소수 단위 화소)에는 보간(Interpolation)을 수행하여 획득된 화소로 2차원 화소를 매핑할 수 있다. 이때, 사용되는 보간은 Nearest neighbor 보간법, Bi-linear 보간법, B-spline 보간법, Bi-cubic 보간법 등이 사용될 수 있다. 이때, 복수의 보간 후보 중 하나를 선택하여 관련 정보가 명시적으로 생성될 수 있거나 또는 기 설정된 규칙에 따라 묵시적으로 보간 방법이 정해질 수 있다. 예를 들어, 3차원 모델, 투영 포맷, 컬러 포맷, 슬라이스/타일 타입 등에 따라 기 설정된 보간 필터를 사용할 수 있다. 또한, 명시적으로 보간 정보를 생성할 경우 필터 정보(예를 들어, 필터 계수 등)에 대한 정보도 포함될 수 있다.
15b는 3차원 공간에서 2차원 공간(2차원 평면 좌표계)으로 변환된 예를 나타낸다. (
Figure 112020052009608-pat00013
,θ)는 영상의 크기(가로 길이, 세로 길이)에 기반하여 샘플링(i,j)될 수 있으며, i는 0부터 P_Width - 1, j는 0부터 P_Height - 1의 범위를 가질 수 있다.
(
Figure 112020052009608-pat00014
,θ) 는 투영된 영상의 중심으로 360도 영상의 배치를 위한 중앙점{또는 기준점, 도 15의 C로 표기된 지점, 좌표로는 (
Figure 112020052009608-pat00015
,θ)=(0,0)}일 수 있다. 중앙점에 대한 설정은 3차원 공간에서 지정할 수 있으며, 중앙점에 대한 위치 정보는 명시적으로 생성하거나 묵시적으로 기 설정된 값으로 정할 수 있다. 예를 들어, Yaw에서의 중앙 위치 정보, Pitch에서의 중앙 위치 정보, Roll에서의 중앙 위치 정보 등을 생성할 수 있다. 상기 정보에 대한 값이 따로 명시되지 않는 경우에는 각 값을 0으로 가정할 수 있다.
상기 예에서는 360도 영상의 전체를 3차원 공간에서 2차원 공간으로 변환시키는 예를 설명하였지만, 360도 영상의 일부 영역을 대상으로 할 수 있으며, 일부 영역에 대한 위치 정보(예를 들어, 영역에 속하는 일부 위치. 본 예에서 중앙점에 대한 위치 정보), 범위 정보 등을 명시적으로 생성하거나 묵시적으로 기 설정된 위치, 범위 정보를 따를 수 있다. 예를 들어, Yaw에서의 중앙 위치 정보, Pitch에서의 중앙 위치 정보, Roll에서의 중앙 위치 정보, Yaw에서의 범위 정보, Pitch에서의 범위 정보, Roll에서의 범위 정보 등을 생성할 수 있으며, 일부 영역의 경우 적어도 하나의 영역일 수 있고 이에 따라 복수 영역의 위치 정보, 범위 정보 등이 처리될 수 있다. 상기 정보에 대한 값이 따로 명시되지 않은 경우에는 360도 영상 전체로 가정할 수 있다.
15a에서의 H0 내지 H6과 W0 내지 W5는 각각 15b에서의 일부 위도와 경도를 나타내고 있으며, 15b의 좌표로는 (C, j), (i, C)로 표현할 수 있다(C는 경도 또는 위도 성분). 일반적인 영상과 달리 360도 영상의 경우 2차원 공간으로 전환되는 경우 왜곡이 발생하거나 영상 내 콘텐츠의 휘어짐 등이 발생할 수 있다. 이는 영상의 영역에 따라 달리 발생할 수 있으며, 상기 영상의 위치 또는 상기 위치에 따라 구획되는 영역에 부/복호화 설정을 달리 둘 수 있다. 본 발명에서의 부/복호화 정보에 기반하여 부/복호화 설정을 적응적으로 두는 경우에서 상기 위치 정보(예를 들어, x, y 성분 또는 x와 y로 정의되는 범위 등)가 부/복호화 정보의 일 예로 포함될 수 있다.
상기 3차원과 2차원 공간에서의 설명은 본 발명에서 실시예의 설명을 돕기 위해 정의된 내용이며, 이에 한정되지 않고 세부 내용의 변형 또는 다른 경우의 적용이 가능하다.
전술한 것과 같이 360도 카메라로 획득된 영상은 2차원 공간으로 변환될 수 있다. 이때, 3차원 모델을 사용하여 360도 영상을 매핑시킬 수 있으며, 구, 정육면체(Cube), 원기둥(Cylinder), 피라미드(Pyramid), 다면체(Polyhedron) 등의 다양한 3차원 모델이 사용될 수 있다. 상기 모델에 기반하여 매핑된 360도 영상을 2차원 공간으로 변환할 때 상기 모델에 기반한 투영 포맷(Projection Format)에 따른 투영 과정을 수행할 수 있다.
도 16a 내지 도 16d는 본 발명의 일 실시예에 따른 투영 포맷을 설명하기 위한 개념도이다.
도 16a는 360도 영상을 2차원 평면으로 투영시킨 ERP(Equi-Rectangular Projection) 포맷을 나타낸다. 도 16b는 360도 영상을 정육면체로 투영시킨 CMP(CubeMap Projection) 포맷을 나타낸다. 도 16c는 360도 영상을 8면체로 투영시킨 OHP(OctaHedron Projection) 포맷을 나타낸다. 도 16d는 360도 영상을 다면체로 투영시킨 ISP(IcoSahedral Projection) 포맷을 나타낸다. 다만, 이에 한정되지 않고 다양한 투영 포맷이 사용될 수 있다. 도 16a 내지 도 16d의 왼쪽은 3차원 모델을, 오른쪽은 투영 과정을 통해 2차원 공간으로 변환된 예를 나타낸다. 투영 포맷에 따라 다양한 크기, 형태를 갖고, 각 형태는 면 또는 표면(Face)들로 구성될 수 있으며, 표면은 원, 삼각형, 사각형 등으로 표현될 수 있다.
본 발명에서 투영 포맷은 3차원 모델, 표면의 설정(예를 들어, 표면의 개수, 표면의 형태, 표면의 형태 구성 등), 투영 과정의 설정 등에 의해 정의될 수 있다. 상기 정의 중 적어도 하나의 요소가 다를 경우 다른 투영 포맷으로 볼 수 있다. 예를 들어, ERP의 경우 구 모델(3차원 모델), 하나의 표면(표면의 갯수), 사각형 표면(표면의 모양)으로 구성되어 있지만 투영 과정에서의 설정 중 일부(예를 들어, 3차원 공간에서 2차원 공간으로 변환할 때 사용되는 수식 등. 즉, 나머지 투영 설정은 동일하며 투영 과정에서 투영 영상의 적어도 하나의 화소의 차이를 만드는 요소)가 다를 경우 ERP1, EPR2와 같은 다른 포맷으로 분류될 수 있다. 다른 예로, CMP의 경우 정육면체 모델, 6개의 표면, 사각형 표면으로 구성되어 있지만 투영 과정에서의 설정 중 일부(예를 들어, 3차원 공간에서 2차원으로 변환할 때 샘플링 방법 등)가 다를 경우 CMP1, CMP2와 같은 다른 포맷으로 분류될 수 있다.
기 설정된 하나의 투영 포맷이 아닌 복수의 투영 포맷을 사용하는 경우에는 명시적으로 투영 포맷 식별 정보(또는 투영 포맷 정보)를 생성할 수 있다. 투영 포맷 식별 정보는 다양한 방법을 통해 구성될 수 있다.
일 예로, 복수의 투영 포맷에 인덱스 정보(예를 들어, proj_format_flag)를 할당하여 투영 포맷을 식별할 수 있다. 예를 들어, ERP에는 0번, CMP에는 1번, OHP에는 2번, ISP에는 3번, ERP1에는 4번, CMP1에는 5번, OHP1에는 6번, ISP1에는 7번, CMP compact에는 8번, OHP compact에는 9번, ISP compact에는 10번, 그 외의 포맷에는 11번 이상을 할당할 수 있다.
일 예로, 투영 포맷을 구성하는 적어도 하나의 요소 정보로 투영 포맷을 식별할 수 있다. 이때, 투영 포맷을 구성하는 요소 정보로는 3차원 모델 정보(예를 들어, 3d_model_flag. 0번은 구, 1번은 정육면체, 2번은 원기둥, 3번은 피라미드, 4번은 다면체1, 5번은 다면체2 등), 표면의 개수 정보(예를 들어, num_face_flag. 1부터 시작하여 1씩 증가하는 방식 또는 투영 포맷에서 발생하는 표면의 개수를 인덱스 정보로 할당하여 0번은 1개, 1번은 3개, 2번은 6개, 3번은 8개, 4번은 20개 등), 표면의 형태 정보(예를 들어, shape_face_flag. 0번은 사각형, 1번은 원, 2번은 삼각형, 3번은 사각형+원, 4번은 사각형+삼각형 등), 투영 과정 설정 정보(예를 들어, 3d_2d_convert_idx 등) 등이 포함될 수 있다.
일 예로, 투영 포맷 인덱스 정보와 투영 포맷을 구성하는 요소 정보로 투영 포맷을 식별할 수 있다. 예를 들어, 투영 포맷 인덱스 정보는 ERP에는 0번, CMP에는 1번, OHP에는 2번, ISP에는 3번, 그 외의 포맷에는 4번 이상을 할당할 수 있으며, 투영 포맷을 구성하는 요소 정보(본 예에서 투영 과정 설정 정보)와 함께 투영 포맷(예를 들어, ERP, ERP1, CMP, CMP1, OHP, OHP1, ISP, ISP1 등)을 식별할 수 있다. 또는, 투영 포맷을 구성하는 요소 정보(본 예에서 지역별 포장 여부)와 함께 투영 포맷(예를 들어, ERP, CMP, CMP compact, OHP, OHP compact, ISP, ISP compact 등)을 식별할 수 있다.
정리하면, 투영 포맷은 투영 포맷 인덱스 정보로 식별할 수 있고, 적어도 하나의 투영 포맷 요소 정보로 식별할 수 있고, 투영 포맷 인덱스 정보와 적어도 하나의 투영 포맷 요소 정보로 식별할 수 있다. 이는 부/복호화 설정에 따라 정의될 수 있으며, 본 발명에서는 투영 포맷 인덱스로 식별되는 경우를 가정하여 설명할 것이다. 또한, 본 예에서는 동일한 크기와 형태를 갖는 표면들로 표현되는 투영 포맷에 대한 경우를 중심으로 설명하지만, 각 표면의 크기와 형태가 동일하지 않는 구성 또한 가능할 수 있다. 또한, 각 표면의 구성은 도 16a 내지 도 16d와 동일하거나 다를 수 있으며, 각 표면의 숫자는 각 표면을 식별하는 기호로 사용되었으며 특정 순서로 한정되지 않는다. 설명의 편의를 위해 후술하는 예에서 투영 영상 기준으로 ERP는 하나의 표면 + 사각형, CMP는 6개의 표면 + 사각형, OHP는 8개의 표면 + 삼각형, ISP는 20개의 표면 + 삼각형인 투영 포맷이고 표면이 동일한 크기 및 형태를 갖는 경우를 가정하여 설명을 할 것이나 다른 설정에도 동일하거나 비슷한 적용이 가능할 수 있다.
도 16a 내지 도 16d와 같이 투영 포맷은 하나의 표면(예를 들어, ERP) 또는 복수의 표면(예를 들어, CMP, OHP, ISP 등)으로 구분될 수 있다. 또한, 각 표면이 사각형과 삼각형 등의 형태로 구분될 수 있다. 상기 구분은 투영 포맷에 따른 부/복호화 설정을 달리 두는 경우에 적용될 수 있는 본 발명에서의 영상의 종류, 특성 등의 일 예일 수 있다. 예를 들어, 영상의 종류는 360도 영상, 영상의 특성은 상기 구분(예를 들어, 각 투영 포맷, 하나의 표면 또는 복수의 표면인 투영 포맷, 표면이 사각형 또는 아닌 투영 포맷 등) 중 하나일 수 있다.
2차원 평면 좌표계{예를 들어, (i,j)}는 2차원 투영 영상의 각 표면에 정의 될 수 있으며, 좌표계의 특성은 투영 포맷, 각 표면의 위치 등에 따라 다를 수 있다. ERP와 같은 경우 하나의 2차원 평면 좌표계, 그 외의 투영 포맷은 표면의 개수에 따라 복수의 2차원 평면 좌표계를 가질 수 있다. 이때, 좌표계는 (k,i,j)로 표현될 수 있는데, k는 각 표면의 인덱스 정보일 수 있다.
도 17은 본 발명의 일 실시예에 따른 투영 포맷을 직사각형의 영상 내에 포함되는 것으로 구현한 개념도이다.
즉, 17a 내지 17c는 도 16b 내지 도 16d의 투영 포맷을 직사각 형태의 영상으로 구현한 것으로 이해될 수 있다.
17a 내지 17c를 참조하면, 360도 영상의 부/복호화를 위해 각 영상 포맷을 직사각 형태로 구성할 수 있다. ERP의 경우 하나의 좌표계로 그대로 사용할 수 있으나, 다른 투영 포맷의 경우 각 표면의 좌표계를 하나의 좌표계로 통합할 수 있으며, 이에 대한 상세한 설명은 생략한다.
17a 내지 17c를 참조하면, 직사각 형태의 영상을 구성하는 과정에서, 공백 또는 배경 등과 같이 무의미한 데이터로 채워지는 영역이 발생하는 것을 확인할 수 있다. 즉, 실제 데이터를 포함하는 영역(본 예에서 표면. Active Area)과 직사각 형태의 영상을 구성하기 위해 채워진 무의미한 영역(본 예에서 임의의 화소값으로 채워진다 가정. Inactive Area)으로 구성될 수 있다. 이는 실제 영상 데이터의 부/복호화뿐만 아니라 상기 무의미한 영역으로 인한 영상의 크기 증가로 부호화 데이터량 증가로 성능이 저하될 수 있다.
따라서, 무의미한 영역을 배제하고 실제 데이터를 포함하는 영역으로 영상을 구성하기 위한 과정이 추가로 수행될 수 있다.
도 18은 본 발명의 일 실시예에 따른 투영 포맷을 직사각 형태의 형상으로 변환하는 방법으로서, 무의미한 영역을 배제하도록 표면을 재배치하는 방법에 대한 개념도이다.
18a 내지 18c를 참조하면, 17a 내지 17c를 재배치한 일 예시를 확인할 수 있고, 이러한 과정을 지역별 포장 과정(CMP compact, OHP compact, ISP compact 등)으로 정의할 수 있다. 이때, 표면 자체의 재배치뿐만 아니라 표면이 분할되어 재배치(OHP compact, ISP compact 등)될 수도 있다. 이는 무의미한 영역을 제거하는 것뿐만 아니라 표면의 효율적인 배치를 통해 부호화 성능을 향상시키기 위한 목적으로 수행될 수 있다. 예를 들어, 표면 간에 영상이 연속성이 있는 배치(예를 들어, 18a에서 B2-B3-B1, B5-B0-B4 등)를 할 경우 부호화시의 예측 정확도가 향상됨으로써 부호화 성능이 향상될 수 있다. 여기서, 투영 포맷에 따른 지역별 포장은 본 발명에서의 일 예일 뿐 이에 한정되지 않는다.
도 19는 본 발명의 일 실시예에 따른 CMP 투영 포맷을 직사각 형태의 영상으로 지역별 포장 과정을 수행한 개념도이다.
19a 내지 19c를 참조하면, CMP 투영 포맷을 6×1, 3×2, 2×3, 1×6과 같이 배치할 수 있다. 또한, 일부 표면에 크기 조정이 수행되면, 19d 내지 19e와 같이 배치할 수 있다. 19a 내지 19e에서는 CMP를 예로 들었으나, CMP에 한정되지 않고 다른 투영 포맷으로의 적용이 가능할 수 있다. 상기 지역별 포장을 통해 획득되는 영상의 표면 배치는 투영 포맷에 따른 기 설정된 규칙에 따르거나 또는 명시적으로 배치에 관한 정보를 생성할 수 있다.
본 발명의 일 실시예에 따른 360도 영상 부/복호화 장치는 도 1 및 2에 따른 영상 부/복호화 장치의 전부 또는 일부를 포함하여 구성할 수 있으며, 특히 투영 포맷을 변환 및 역변환하는 포맷 변환부 및 포맷 역변환부가 각각 영상 부호화 장치와 영상 복호화 장치에 더 포함될 수 있다. 즉, 도 1의 영상 부호화 장치에서 입력 영상에 대해 포맷 변환부를 거쳐 부호화될 수 있고, 도 2의 영상 복호화 장치에서 비트스트림의 복호화된 후에 포맷 역변환부를 거쳐 출력 영상이 생성될 수 있다. 이하에서는 상기 과정에 대한 부호화기(본 예에서 '입력 영상' ~ '부호화')를 중심으로 설명할 것이며, 복호화기에서의 과정은 부호화기에서 역으로 유도할 수 있다. 또한, 전술한 내용과 중복되는 설명은 생략한다.
이하에서 입력 영상은 전술한 360도 부호화 장치에서 전처리 과정을 수행하여 획득된 2차원 투영 영상 또는 포장 영상과 동일한 영상으로 전제하고 설명한다. 즉, 입력 영상은 일부 투영 포맷에 따른 투영 과정 또는 지역별 포장 과정을 수행하여 획득된 영상일 수 있다. 입력 영상에 기 적용된 투영 포맷은 다양한 투영 포맷 중 하나일 수 있으며, 공통 포맷으로 간주될 수 있고, 제 1 포맷으로 지칭할 수 있다.
포맷 변환부는 제 1 포맷 외의 다른 투영 포맷으로의 변환을 수행할 수 있다. 이때, 변환을 수행하고자 하는 포맷을 제 2 포맷이라 지칭할 수 있다. 예를 들어, ERP를 제 1 포맷으로 설정하고 제 2 포맷(예를 들어, ERP2, CMP, OHP, ISP 등)으로 변환을 수행할 수 있다. 이때, ERP2는 동일한 3차원 모델, 표면의 구성 등의 조건을 갖지만 일부 설정이 다른 EPR 포맷일 수 있다. 또는, 투영 포맷의 설정이 같은 동일한 포맷(예를 들어, ERP = ERP2)일 수 있으며 영상의 크기 또는 해상도가 다른 경우일 수 있다. 또는, 후술하는 영상 설정 과정 중 일부가 적용되는 경우일 수 있다. 설명의 편의를 위해 위와 같은 예를 들었지만, 제 1 포맷, 제 2 포맷은 다양한 투영 포맷 중에 하나일 수 있으며, 상기 예에 한정되지 않고 다른 경우로의 변경 또한 가능하다.
포맷 간의 변환 과정에서 투영 포맷 간의 다른 좌표계 특성으로 인해 변환 후 영상의 화소(정수 화소)는 변환 전 영상에서의 정수 단위 화소 뿐만 아니라 소수 단위 화소로부터 획득되는 경우가 발생하기 때문에 보간을 수행할 수 있다. 이때, 사용되는 보간 필터는 전술한 것과 동일하거나 비슷한 필터를 사용할 수 있다. 보간 필터는 복수의 보간 필터 후보 중 하나를 선택하여 관련 정보가 명시적으로 생성될 수 있거나 또는 기 설정된 규칙에 따라 묵시적으로 정해질 수 있다. 예를 들어, 투영 포맷, 컬러 포맷, 슬라이스/타일 타입 등에 따라 기 설정된 보간 필터를 사용할 수 있다. 또한, 명시적으로 보간 필터를 보낼 경우 필터 정보(예를 들어, 필터 계수 등)에 대한 정보도 포함될 수 있다.
포맷 변환부에서 투영 포맷은 지역별 포장 등이 포함되어 정의될 수도 있다. 즉, 포맷 변환 과정에 투영, 지역별 포장 과정이 수행될 수 있다. 또는, 포맷 변환부 후, 부호화를 수행하기 전에 지역별 포장 등의 과정이 수행될 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
다음은 본 발명의 일 실시예에 따른 360도 영상 부/복호화 장치에 적용되는 영상 설정 과정에 대해 설명한다. 본 발명에서의 영상 설정 과정은 일반적인 부/복호화 과정뿐만 아니라 360도 영상 부/복호화 장치에서의 전처리 과정, 후처리 과정, 포맷 변환 과정, 포맷 역변환 과정 등에 적용될 수 있다. 후술하는 영상 설정 과정은 360도 영상 부호화 장치를 중심으로 설명할 것이며, 전술한 영상 설정에서의 내용을 포함하여 설명될 수 있다. 전술한 영상 설정 과정에서의 중복되는 설명은 생략한다. 또한, 후술하는 예는 영상 설정 과정을 중심으로 설명할 것이며, 영상 설정 역과정은 영상 설정 과정에서 역으로 유도될 수 있으며, 일부 경우는 전술한 본 발명의 다양한 실시예를 통해 확인할 수 있다.
본 발명에서의 영상 설정 과정은 360도 영상의 투영 단계에서 수행될 수 있고, 지역별 포장 단계에서 수행될 수 있고, 포맷 변환 단계에서 수행될 수 있으며, 그 외의 단계에서 수행될 수 있다.
도 20은 본 발명의 일 실시예에 따른 360도 영상 분할에 대한 개념도이다. 도 20에서는 ERP로 투영된 영상의 경우를 가정하여 설명한다.
20a는 ERP로 투영된 영상을 나타내며, 다양한 방법을 사용하여 분할을 수행할 수 있다. 본 예에서는 슬라이스, 타일을 중심으로 설명하며, W0 ~ W2와 H0, H1은 슬라이스 또는 타일의 분할 경계선이라 가정하고 래스터 스캔 순서를 따른다고 가정한다. 후술하는 예는 슬라이스와 타일을 중심으로 설명하지만, 이에 한정되지 않고 다른 분할 방법이 적용될 수 있다.
예를 들어, 슬라이스 단위로 분할을 수행할 수 있으며, H0, H1의 분할 경계를 가질 수 있다. 또는, 타일 단위로 분할을 수행할 수 있으며, W0 ~ W2와 H0, H1의 분할 경계를 가질 수 있다.
20b는 ERP로 투영된 영상을 타일로 분할한 예{도 20a와 동일한 타일 분할 경계(W0 ~ W2, H0, H1이 모두 활성화)를 갖는다 가정}를 나타낸다. P 영역은 전체 영상, V 영역은 사용자 시선이 머무는 영역 또는 뷰포트라고 가정할 때, 뷰포트에 해당하는 영상을 제공하기 위해서는 다양한 방법이 존재할 수 있다. 예를 들어, 전체 영상(예를 들어, 타일 a ~ l)의 복호화를 수행하여 뷰포트에 해당하는 영역을 획득할 수 있다. 이때, 전체 영상을 복호화할 수 있으며, 분할되어 있는 경우 타일 a ~ l(본 예에서 A + B 영역)을 복호화할 수 있다. 또는, 뷰포트에 속하는 영역의 복호화를 수행하여 뷰포트에 해당하는 영역을 획득할 수 있다. 이때, 분할되어 있는 경우 타일 f, g, j, k(본 예에서 B 영역)를 복호화하여 복원된 영상에서 뷰포트에 해당하는 영역을 획득할 수 있다. 전자의 경우 전체 복호화(또는 Viewport Independent Coding), 후자의 경우 부분 복호화(또는 Viewport Dependent Coding)라 지칭할 수 있다. 후자의 경우는 데이터량이 많은 360도 영상에서 발생 가능한 예일 수 있으며, 유연하게 분할 영역을 획득할 수 있다는 측면에서 슬라이스 단위의 분할보다 타일 단위의 분할 방법이 자주 사용될 수 있다. 부분 복호화의 경우 뷰포트가 어디에서 발생할 지 알 수 없기 때문에 분할 단위의 참조 가능성이 공간적 또는 시간적으로 제한(본 예에서 묵시적으로 처리)될 수 있으며, 이를 고려하는 부/복호화가 수행될 수 있다. 후술하는 예는 전체 복호화의 경우를 중심으로 설명을 하되 부분 복호화의 경우를 대비하기 위한 목적으로 타일(또는 본 발명의 사각 형태의 분할 방법)을 중심으로 360도 영상 분할에 대한 설명을 하지만, 후술하는 예의 내용은 다른 분할 단위에 동일하거나 또는 변경 적용될 수 있다.
도 21은 본 발명의 실시예에 따른 360도 영상 분할과 영상 재구성의 예시도이다. 도 21에서는 CMP로 투영된 영상의 경우를 가정하여 설명한다.
21a는 CMP로 투영된 영상을 나타내며, 다양한 방법을 사용하여 분할을 수행할 수 있다. W0 ~ W2와 H0, H1은 표면, 슬라이스, 타일의 분할 경계선이라 가정하고 래스터 스캔 순서를 따른다고 가정한다.
예를 들어, 슬라이스 단위로 분할을 수행할 수 있으며, H0, H1의 분할 경계를 가질 수 있다. 또는, 타일 단위로 분할을 수행할 수 있으며, W0 ~ W2와 H0, H1의 분할 경계를 가질 수 있다. 또는, 표면 단위로 분할을 수행할 수 있으며, W0 ~ W2와 H0, H1의 분할 경계를 가질 수 있다. 본 예에서 표면은 분할 단위의 일부라고 가정하여 설명한다.
이때, 표면은 영상의 특성, 종류(본 예에서 360도 영상, 투영 포맷) 등에 따라 동일 영상 내 다른 성질(예를 들어, 각 표면의 평면 좌표계 등)을 갖는 영역을 분류 또는 구분하고자 하는 목적으로 수행된 분할 단위(본 예에서 의존적인 부/복호화)일 수 있고, 슬라이스, 타일은 사용자 정의에 따라 영상을 분할하고자 하는 목적으로 수행된 분할 단위(본 예에서 독립적인 부/복호화)일 수 있다. 또한, 표면은 투영 포맷에 따른 투영 과정에서 기 설정된 정의(또는 투영 포맷 정보로부터 유도)에 의해 분할된 단위일 수 있고, 슬라이스, 타일은 사용자 정의에 따라 명시적으로 분할 정보를 생성하고 분할된 단위일 수 있다. 또한, 표면은 투영 포맷에 따라 사각형을 포함한 다각형 형태로 분할 형태를 가질 수 있고, 슬라이스는 사각형 또는 다각형으로 정의할 수 없는 임의의 분할 형태를 가질 수 있고, 타일은 사각형의 분할 형태를 가질 수 있다. 상기 분할 단위의 설정은 본 예의 설명을 위해 한정되어 정의된 내용일 수 있다.
상기 예에서 표면은 영역 구분을 위한 목적으로 분류된 분할 단위라 설명하였지만, 부/복호화 설정에 따라 적어도 하나의 표면 단위로 독립적인 부/복호화를 수행하는 단위일 수 있거나 또는 타일, 슬라이스 등과 결합하여 독립적인 부/복호화를 수행하는 설정을 가질 수 있다. 이때, 타일, 슬라이스 등과의 결합에서 타일, 슬라이스의 명시적인 정보가 생성되는 경우가 발생할 수 있거나 또는 표면 정보에 기반하여 타일, 슬라이스가 결합되는 묵시적인 경우가 발생할 수 있다. 또는, 표면 정보에 기반하여 타일, 슬라이스의 명시적인 정보가 생성되는 경우가 발생할 수 있다.
제1 예시로서, 하나의 영상 분할 과정(본 예에서 표면)이 수행되고, 영상 분할은 묵시적으로 분할 정보(투영 포맷 정보로부터 분할 정보를 획득)를 생략할 수 있다. 본 예는 의존적인 부/복호화 설정에 대한 예로, 표면 단위 간의 참조 가능성은 제한되지 않는 경우에 해당되는 예일 수 있다.
제2 예시로서, 하나의 영상 분할 과정(본 예에서 표면)이 수행되고, 영상 분할은 명시적으로 분할 정보를 생성할 수 있다. 본 예는 의존적인 부/복호화 설정에 대한 예로, 표면 단위 간의 참조 가능성은 제한되지 않는 경우에 해당되는 예일 수 있다.
제3 예시로서, 복수의 영상 분할 과정(본 예에서 표면, 타일)이 수행되고, 일부 영상 분할(본 예에서 표면)은 분할 정보를 묵시적으로 생략하거나 명시적으로 생성할 수 있고, 일부 영상 분할(본 예에서 타일)은 명시적으로 분할 정보를 생성할 수 있다. 본 예는 일부 영상 분할 과정(본 예에서 표면)이 일부 영상 분할 과정(본 예에서 타일)에 선행한다.
제4 예시로서, 복수의 영상 분할 과정이 수행되고, 일부 영상 분할(본 예에서 표면)은 분할 정보를 묵시적으로 생략하거나 명시적으로 생성할 수 있고, 일부 영상 분할(본 예에서 타일)은 일부 영상 분할(본 예에서 표면)에 기반하여 명시적으로 분할 정보를 생성할 수 있다. 본 예는 일부 영상 분할 과정(본 예에서 표면)이 일부 영상 분할 과정(본 예에서 타일)에 선행한다. 본 예는 일부 경우{제 2 예시의 경우라 가정}에 분할 정보가 명시적으로 생성되는 것은 동일하나 분할 정보 구성의 차이가 존재할 수 있다.
제5 예시로서, 복수의 영상 분할 과정이 수행되고, 일부 영상 분할(본 예에서 표면)은 묵시적으로 분할 정보를 생략할 수 있고, 일부 영상 분할(본 예에서 타일)은 일부 영상 분할(본 예에서 표면)에 기반하여 묵시적으로 분할 정보를 생략할 수 있다. 예를 들어, 개별 표면 단위가 타일 단위로 설정이 가능하거나 또는 복수의 표면 단위(본 예에서 이웃 표면이 연속적인 표면일 경우에는 묶이고 그렇지 않은 경우에는 묶이지 않음. 18a에서 B2-B3-B1과 B4-B0-B5)가 타일 단위로 설정이 가능할 수 있다. 기 설정된 규칙에 따라 표면 단위의 타일 단위로의 설정이 가능하다. 본 예는 독립적인 부/복호화 설정에 대한 예로, 표면 단위 간의 참조 가능성은 제한되는 경우에 해당되는 예일 수 있다. 즉, 일부 경우{제1 예시의 경우라 가정}에 분할 정보가 묵시적인 처리되는 것은 동일하나 부/복호화 설정의 차이가 존재할 수 있다.
상기 예는 투영 단계, 지역별 포장 단계, 부/복호화 초기 단계 등에서 분할 과정이 수행될 수 있는 경우에 대한 설명일 수 있으며, 이 외의 부/복호화기 내에서 발생하는 영상 분할 과정일 수 있다.
21a에서 데이터를 포함한 영역(A)에 데이터를 포함하지 않은 영역(B)을 포함하여 직사각 형태의 영상을 구성할 수 있다. 이때, A와 B 영역의 위치, 크기, 형태, 개수 등은 투영 포맷 등에 의해 확인할 수 있는 정보이거나 또는 투영된 영상에 대한 정보를 명시적으로 생성할 경우에 확인할 수 있는 정보이며, 전술한 영상 분할 정보, 영상 재구성 정보 등으로 관련 정보로 나타낼 수 있다. 예를 들어, 표 4, 표 5와 같이 투영된 영상의 일부 영역에 대한 정보(예를 들어, part_top, part_left, part_width, part_height, part_convert_flag 등)를 나타낼 수 있으며, 본 예에 한정되지 않고 다른 경우(예를 들어, 다른 투영 포맷, 다른 투영 설정 등)에 적용 가능한 예일 수 있다.
B 영역을 A 영역과 함께 하나의 영상으로 구성하여 부/복호화를 수행할 수 있다. 또는, 영역별 특성을 고려하여 분할을 수행하여 다른 부/복호화 설정을 둘 수 있다. 예를 들어, 부/복호화 수행 여부에 대한 정보(예를 들어, 분할 단위가 타일이라 가정할 경우 tile_coded_flag)를 통해 B 영역에 대한 부/복호화를 수행하지 않을 수 있다. 이때, 해당 영역은 기 설정된 규칙에 따라 일정 데이터(본 예에서 임의의 화소값)로 복원될 수 있다. 또는, 전술한 영상 분할 과정에서의 부/복호화 설정을 B 영역은 A 영역과 다르게 둘 수 있다. 또는, 지역별 포장 과정을 수행하여 해당 영역을 제거할 수 있다.
21b는 CMP로 포장된 영상을 타일, 슬라이스, 표면으로 분할한 예를 나타낸다. 이때, 포장된 영상은 표면의 재배치 과정 또는 지역별 포장 과정이 수행된 영상이며, 본 발명의 영상 분할, 영상 재구성을 수행하여 획득된 영상일 수 있다.
21b에서 데이터를 포함한 영역을 포함하여 직사각 형태를 구성할 수 있다. 이 때, 각 영역의 위치, 크기, 형태, 개수 등은 기 설정된 설정에 의해 확인할 수 있는 정보이거나 또는 포장된 영상에 대한 정보를 명시적으로 생성할 경우에 확인할 수 있는 정보이며, 전술한 영상 분할 정보, 영상 재구성 정보 등으로 관련 정보를 나타낼 수 있다. 예를 들어, 표 4, 표 5와 같이 포장된 영상의 일부 영역에 대한 정보(예를 들어, part_top, part_left, part_width, part_height, part_convert_flag 등)를 나타낼 수 있다.
포장된 영상은 다양한 분할 방법을 사용하여 분할을 수행할 수 있다. 예를 들어, 슬라이스 단위로 분할을 수행할 수 있으며, H0의 분할 경계를 가질 수 있다. 또는, 타일 단위로 분할을 수행할 수 있으며, W0, W1과 H0의 분할 경계를 가질 수 있다. 또는, 표면 단위로 분할을 수행할 수 있으며, W0, W1과 H0의 분할 경계를 가질 수 있다.
본 발명의 영상 분할, 영상 재구성 과정은 투영된 영상에 수행될 수 있다. 이때, 재구성 과정은 표면 내의 화소뿐만 아니라 영상 내 표면을 재배치할 수 있다. 이는 영상이 복수의 표면으로 분할 또는 구성되는 경우에 가능한 예일 수 있다. 후술하는 예는 표면 단위에 기반하여 타일로 분할되는 경우를 중심으로 설명한다.
21a의 SX,Y(S0,0 ~ S3,2)는 21b의 S'U,V(S'0,0 ~ S'2,1. 본 예에서 X, Y는 U, V와 같거나 다를 수 있음)와 대응될 수 있고, 표면 단위에 재구성 과정이 수행될 수 있다. 예를 들어, S2,1, S3,1, S0,1, S1,2, S1,1, S1,0은 S'0,0, S'1,0, S'2,0, S'0,1, S'1,1, S'2,1에 할당(또는 표면 재배치)될 수 있다. 또한, S2,1, S3,1, S0,1은 재구성(또는 화소 재배치)을 수행하지 않고, S1,2, S1,1, S1,0은 90도 회전을 적용하여 재구성을 수행할 수 있으며, 이를 도 21c와 같이 나타낼 수 있다. 21c에서 옆으로 표시된 기호(S1,0, S1,1, S1,2)는 영상의 연속성을 유지하기 위해 기호에 맞게 옆으로 눕힌 영상일 수 있다.
표면의 재구성은 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있다. 묵시적인 경우는 영상의 종류(본 예에서 360도 영상), 특성(본 예에서 투영 포맷 등)을 고려하여 기 설정된 규칙에 따라 수행될 수 있다.
예를 들어, 21c에서 S'0,0와 S'1,0, S'1,0과 S'2,0, S'0,1과 S'1,1, S'1,1과 S'2,1은 표면 경계를 기준으로 양 표면 간의 영상 연속성(또는 상관성)이 존재하며, 21c는 상단 3개의 표면과 하단 3개의 표면 간에는 연속성이 존재하게 구성된 예일 수 있다. 3차원 공간에서 2차원 공간으로의 투영 과정을 통해 복수의 표면으로 나뉘고 이를 지역별 포장을 거치는 과정에서 효율적인 표면들의 재구성을 위해 표면 간의 영상 연속성을 높이기 위한 목적으로 재구성이 수행될 수 있다. 이와 같은 표면들의 재구성은 기 설정되어 처리될 수 있다.
또는, 명시적인 처리를 통해 재구성 과정을 수행하고 이에 대한 재구성 정보를 생성할 수 있다.
예를 들어, 지역별 포장 과정을 통해 M×N 구성(예를 들어, CMP compact의 경우 6×1, 3×2, 2×3, 1×6 등. 본 예에서 3×2 구성이라 가정)에 대한 정보(예를 들어, 묵시적인 획득되는 정보 또는 명시적으로 생성되는 정보 중 하나)를 확인할 경우, M×N 구성에 맞춰 표면 재구성을 수행한 후 그에 대한 정보를 생성할 수 있다. 예를 들어, 표면의 영상 내 재배치의 경우 각 표면에 인덱스 정보(또는 영상 내 위치 정보)를, 표면 내 화소 재배치의 경우 재구성에 대한 모드 정보를 할당할 수 있다.
인덱스 정보는 도 18의 18a 내지 18c와 같이 기 정의될 수 있으며, 21a 내지 21c에서 SX,Y 또는 S'U,V는 각 표면을 가로, 세로를 나타낸 위치 정보(예를 들어, S[i][j]) 또는 하나의 위치 정보(예를 들어, 위치 정보는 영상의 좌상단 표면부터 래스터 스캔 순서로 할당된다는 가정. S[i])로 표현할 수 있고 이에 각 표면의 인덱스를 할당할 수 있다.
예를 들어, 가로, 세로를 나타낸 위치 정보로 인덱스를 할당할 때, 도 21c의 경우 S'0,0은 2번 표면, S'1,0은 3번 표면, S'2,0은 1번 표면, S'0,1은 5번 표면, S'1,1은 0번 표면, S'2,1은 4번 표면 인덱스를 할당할 수 있다. 또는, 하나의 위치 정보로 인덱스를 할당할 때, S[0]은 2번 표면, S[1]은 3번 표면, S[2]는 1번 표면, S[3]은 5번 표면, S[4]는 0번 표면, S[5]는 4번 표면 인덱스를 할당할 수 있다. 설명의 편의를 위해 후술하는 예에서 S'0,0 ~ S'2,1은 a 내지 f라 지칭한다. 또는, 영상의 좌상단을 기준으로 화소 또는 블록 단위의 가로, 세로를 나타낸 위치 정보로 표현할 수도 있다.
영상의 재구성 과정(또는 지역별 포장 과정)을 통해 획득된 포장된 영상의 경우 재구성 설정에 따라 표면의 스캔 순서가 영상에서 동일하거나 동일하지 않을 수 있다. 예를 들어, 21a에 하나의 스캔 순서(예를 들어, 래스터 스캔)가 적용될 경우, a, b, c의 스캔 순서는 동일할 수 있고 d, e, f의 스캔 순서는 동일하지 않을 수 있다. 예를 들어, 21a나 a, b, c의 경우 스캔 순서는 (0,0) -> (1,0) -> (0,1) -> (1,1)의 순서를 따를 때, d, e, f의 경우 스캔 순서는 (1,0) -> (1,1) -> (0,0) -> (0,1)의 순서를 따를 수 있다. 이는 영상의 재구성 설정에 따라 정해질 수 있으며, 다른 투영 포맷에도 이와 같은 설정을 가질 수 있다.
21b에서 영상 분할 과정은 개별 표면 단위를 타일로 설정할 수 있다. 예를 들어, 표면 a ~ f는 각각 타일 단위로 설정될 수 있다. 또는, 복수의 표면 단위를 타일로 설정할 수 있다. 예를 들어, 표면 a ~ c는 하나의 타일, d ~ f는 하나의 타일로 설정될 수 있다. 상기 구성은 표면 특성(예를 들어, 표면 간의 연속성 등)에 기반하여 정해질 수 있으며, 상기 예와 다른 표면의 타일 설정이 가능할 수 있다.
다음은 복수의 영상 분할 과정에 따른 분할 정보에 대한 예를 나타낸다. 본 예에서는 표면에 대한 분할 정보는 생략되고 표면 외의 단위는 타일, 그리고 분할 정보는 다양하게 처리되는 경우를 가정하여 설명한다.
제1 예시로서, 영상 분할 정보는 표면 정보에 기반하여 획득되어 묵시적으로 생략할 수 있다. 예를 들어, 개별 표면이 타일로 설정되거나 복수의 표면이 타일로 설정될 수 있다. 이때, 적어도 하나의 표면이 타일로 설정되는 경우는 표면 정보(예를 들어, 연속성 또는 상관성 등)에 기반하여 기 설정된 규칙에 따라 정해질 수 있다.
제2 예시로서, 영상 분할 정보는 표면 정보와 무관하게 명시적으로 생성할 수 있다. 예를 들어, 타일의 가로열 개수(본 예에서 num_tile_columns)와 세로열 개수(본 예에서 num_tile_rows)로 분할 정보를 생성할 경우, 전술한 영상 분할 과정에서의 방법으로 분할 정보를 생성할 수 있다. 예를 들어, 타일의 가로열 개수와 세로열 개수가 가질 수 있는 범위는 0부터 영상의 가로 길이/블록의 가로 길이(본 예에서 픽쳐 분할부로부터 획득되는 단위)까지, 0부터 영상의 세로 길이/블록의 세로 길이까지 일 수 있다. 또한, 추가적인 분할 정보(예를 들어, uniform_spacing_flag 등)이 생성될 수 있다. 이때, 상기 분할 설정에 따라 표면의 경계와 분할 단위의 경계가 일치하거나 일치하지 않는 경우가 발생할 수도 있다.
제3 예시로서, 영상 분할 정보는 표면 정보에 기반하여 명시적으로 생성할 수 있다. 예를 들어, 타일의 가로열 개수와 세로열 개수로 분할 정보를 생성할 경우, 표면 정보(본 예에서는 가로열 개수가 갖는 범위는 0 ~ 2, 세로열 개수가 갖는 범위는 0, 1. 영상 내 표면의 구성이 3x2 이므로)에 기반하여 분할 정보를 생성할 수 있다. 예를 들어, 타일의 가로열 개수와 세로열 개수가 가질 수 있는 범위는 0부터 2까지, 0부터 1까지 일 수 있다. 또한, 추가적인 분할 정보(예를 들어, uniform_spacing_flag 등)이 생성되지 않을 수 있다. 이때, 표면의 경계와 분할 단위의 경계가 일치할 수 있다.
일부 경우{제2 예시와 제3 예시의 경우라 가정}에 분할 정보의 구문 요소가 다르게 정의되거나 또는 동일한 구문 요소를 사용하더라도 구문 요소 설정(예를 들어, 이진화 설정 등. 구문 요소가 갖는 후보군의 범위가 한정되고 적은 범위의 경우 다른 이진화를 사용할 수 있음 등)을 다르게 둘 수 있다. 상기 예는 분할 정보의 다양한 구성 중 일 부분에 대해 설명을 하였지만 이에 한정되는 것은 아니며, 표면 정보에 기반하여 분할 정보가 생성되는 것인지 여부에 따라 다른 설정이 가능한 예로 이해될 수 있다.
도 22는 CMP로 투영된 영상 또는 포장된 영상을 타일로 분할한 예시도이다.
이때, 도 21의 21a와 동일한 타일 분할 경계(W0 ~ W2, H0, H1이 모두 활성화)를 갖는다고 가정하며, 도 21의 21b와 동일한 타일 분할 경계(W0, W1, H0가 모두 활성화)를 갖는다 가정한다. P 영역은 전체 영상, V 영역은 뷰포트로 가정할 때, 전체 복호화 또는 부분 복호화를 수행할 수 있다. 본 예는 부분 복호화를 중심으로 설명한다. 22a에서 CMP(좌측)의 경우 타일 e, f, g를, CMP compact(우측)의 경우 타일 a, c, e를 복호화하여 뷰포트에 해당하는 영역을 획득할 수 있다. 22b에서 CMP의 경우 타일 b, f, i를, CMP compact의 경우 타일 d, e, f를 복호화하여 뷰포트에 해당하는 영역을 획득할 수 있다.
상기 예에서는 표면 단위(또는 표면 경계)에 기반하여 슬라이스, 타일 등의 분할을 수행하는 경우를 설명하였지만, 도 20의 20a와 같이 표면 내부(예를 들어, ERP는 영상이 하나의 표면으로 구성. 다른 투영 포맷은 복수의 표면으로 구성)에서 분할을 수행하는 경우 또는 표면 경계를 포함하여 분할을 수행하는 경우도 가능할 수 있다.
도 23은 본 발명의 일 실시예에 따른 360도 영상의 크기 조정의 예를 설명하기 위한 개념도이다. 이때, ERP로 투영된 영상의 경우를 가정하여 설명한다. 또한, 후술하는 예에서는 확장의 경우를 중심으로 설명한다.
투영된 영상은 영상 크기 조정 타입에 따라 스케일 팩터를 통한 크기 조정, 오프셋 팩터를 통한 크기 조정을 수행할 수 있으며, 크기 조정 전 영상은 P_Width × P_Height이고 크기 조정 후 영상은 P'_Width × P'_Height일 수 있다.
스케일 팩터의 경우 영상의 가로 길이와 세로 길이에 스케일 팩터(본 예에서 가로 a, 세로 b)를 통한 크기 조정 후 영상의 가로 길이(P_Width × a)와 세로 길이(P_Height × b)를 획득할 수 있다. 오프셋 팩터의 경우 영상의 가로 길이와 세로 길이에 오프셋 팩터(본 예에서 가로 L, R, 세로 T, B)를 통한 크기 조정 후 영상의 가로 길이(P_Width + L + R)와 세로 길이(P_Height + T + B)를 획득할 수 있다. 기 설정된 방법을 사용하여 크기 조정을 수행할 수 있거나 또는 복수의 방법 중 하나를 선택하여 크기 조정을 수행할 수 있다.
후술하는 예에서의 데이터 처리 방법은 오프셋 팩터의 경우를 중심을 설명한다. 오프셋 팩터의 경우 데이터 처리 방법으로는 기 설정된 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법 등이 존재할 수 있다.
360도 영상의 경우 영상의 경계에 연속성이 존재하는 특성을 고려하여 크기 조정을 수행할 수 있다. ERP의 경우 3차원 공간에서는 외곽 경계가 존재하지 않지만 투영 과정을 통해 2차원 공간으로 변환할 경우 외곽 경계 영역이 존재할 수 있다. 이는 경계 영역의 데이터는 경계 바깥으로 연속성이 있는 데이터가 존재하지만 공간 특성상 경계를 가질 수 있다. 이러한 특성을 고려하여 크기 조정을 수행할 수 있다. 이때, 연속성은 투영 포맷 등에 따라 확인할 수 있다. 예를 들어, ERP의 경우 양 끝 경계가 서로 연속석인 특성을 갖는 영상일 수 있다. 본 예에서는 영상의 좌, 우 경계가 연속적인 경우와 상, 하 경계가 연속적인 경우를 가정하여 설명하며 데이터 처리 방법은 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법을 중심으로 설명한다.
영상의 좌측으로 크기 조정을 수행할 경우 크기 조정되는 영역(본 예에서 LC 또는 TL + LC + BL)은 영상의 좌측과 연속성이 존재하는 영상의 우측 영역(본 예에서 tr + rc + br)의 데이터를 사용하여 채울 수 있다. 영상의 우측으로 크기 조정을 수행하는 경우 크기 조정되는 영역(본 예에서 RC 또는 TR + RC + BR)은 우측과 연속성이 존재하는 영상의 좌측 영역(본 예에서 tl + lc + bl)의 데이터를 사용하여 채울 수 있다. 영상의 상측으로 크기 조정을 수행하는 경우 크기 조정되는 영역(본 예에서 TC 또는 TL + TC + TR)은 상측과 연속성이 존재하는 영상의 하측 영역(본 예에서 bl + bc + br)의 데이터를 사용하여 채울 수 있다. 영상의 하측으로 크기 조정을 수행하는 경우 크기 조정되는 영역(본 예에서 BC 또는 BL + BC + BR)의 데이터를 사용하여 채울 수 있다.
크기 조정되는 영역의 크기 또는 길이가 m일 경우, 크기 조정되는 영역은 크기 조정 전 영상의 좌표 기준(본 예에서 x는 0 ~ P_Width - 1)으로 (-m,y) ~ (-1,y)의 범위(좌측으로 크기 조정) 또는 (P_Width, y) ~ (P_Width + m - 1,y)의 범위(우측으로 크기 조정)를 가질 수 있다. 크기 조정되는 영역의 데이터를 획득하기 위한 영역의 위치(x')는 x' = (x + P_Width) % P_Width에 따른 수식으로 도출될 수 있다. 이때, x는 크기 조정 전 영상 좌표 기준으로 크기 조정되는 영역의 좌표를 의미하고, x'는 크기 조정 전 영상 좌표 기준으로 크기 조정되는 영역에 참조되는 영역의 좌표를 의미한다. 예를 들어, 좌측으로 크기 조정을 수행하며 m이 4이고 영상의 가로 길이가 16일 경우, (-4,y)는 (12,y)에서, (-3,y)는 (13,y)에서, (-2,y)는 (14,y)에서, (-1,y)는 (15,y)에서 해당 데이터를 획득할 수 있다. 또는, 우측으로 크기 조정을 수행하며 m이 4이고 영상의 가로 길이가 16일 경우, (16,y)는 (0,y)에서, (17,y)는 (1,y)에서, (18,y)는 (2,y)에서, (19,y)는 (3,y)에서 해당 데이터를 획득할 수 있다.
크기 조정되는 영역의 크기 또는 길이가 n일 경우, 크기 조정되는 영역은 크기 조정 전 영상의 좌표 기준(본 예에서 y는 0 ~ P_Height - 1)으로 (x,-n) ~ (x,-1)의 범위(상측으로 크기 조정) 또는 (x,P_Height) ~ (x,P_Height + n - 1)의 범위(하측으로 크기 조정)를 가질 수 있다. 크기 조정되는 영역의 데이터를 획득하기 위한 영역의 위치(y')는 y' = (y + P_Height) % P_Height과 같은 수식으로 도출될 수 있다. 이때, y는 크기 조정 전 영상 좌표 기준으로 크기 조정되는 영역의 좌표를 의미하고, y'는 크기 조정 전 영상 좌표 기준으로 크기 조정되는 영역에 참조되는 영역의 좌표를 의미한다. 예를 들어, 상측으로 크기 조정을 수행하며 n이 4이고 영상의 세로 길이가 16일 경우 (x,-4)는 (x,12)에서, (x,-3)은 (x,13)에서, (x,-2)는 (x,14)에서, (x,-1)은 (x,15)에서 해당 데이터를 획득할 수 있다. 또는, 하측으로 크기 조정을 수행하며 n이 4이고 영상의 세로 길이가 16일 경우, (x,16)은 (x,0)에서, (x,17)은 (x,1)에서, (x,18)은 (x,2)에서, (x,19)는 (x,3)에서 해당 데이터를 획득할 수 있다.
크기 조정 영역의 데이터를 채운 후에 크기 조정 후 영상 좌표 기준(본 예에서 x는 0 ~ P'_Width - 1, y는 0 ~ P'_Height - 1)으로 조정될 수 있다. 상기 예는 위도, 경도의 좌표계에 적용될 수 있는 예일 수 있다.
다음과 같은 다양한 크기 조정의 조합을 가질 수 있다.
일 예로, 영상의 좌측으로 m만큼 크기 조정이 될 수 있다. 또는, 영상의 우측으로 n만큼 크기 조정이 될 수 있다. 또는, 영상의 상측으로 o만큼 크기 조정이 될 수 있다. 또는, 영상의 하측으로 p만큼 크기 조정이 될 수 있다.
일 예로, 영상의 좌측으로 m만큼, 우측으로 n만큼 크기 조정이 될 수 있다. 또는, 영상의 상측으로 o만큼, 하측으로 p만큼 크기 조정이 될 수 있다.
일 예로, 영상의 좌측으로 m만큼, 우측으로 n만큼, 상측으로 o만큼 크기 조정이 될 수 있다. 또는, 영상의 좌측으로 m만큼, 우측으로 n만큼, 하측으로 p만큼 크기 조정이 될 수 있다. 또는, 영상의 좌측으로 m만큼, 상측으로 o만큼, 하측으로 p만큼 크기 조정이 될 수 있다. 또는, 영상의 우측으로 n만큼, 상측으로 o만큼, 하측으로 p만큼 크기 조정이 될 수 있다.
일 예로, 영상의 좌측으로 m만큼, 우측으로 n만큼, 상측으로 o만큼, 하측으로 p만큼 크기 조정이 될 수 있다.
상기 예와 같이 적어도 하나의 크기 조정이 수행될 수 있고, 부/복호화 설정에 따라 묵시적으로 영상의 크기 조정이 수행될 수 있거나 또는 명시적으로 크기 조정 정보를 생성하고 그에 기반하여 영상의 크기 조정이 수행될 수 있다. 즉, 상기 예의 m, n, o, p는 기 설정된 값으로 정해질 수 있거나 명시적으로 크기 조정 정보로 생성될 수 있거나 일부는 기 설정된 값을 정해지고 일부는 명시적으로 생성될 수 있다.
상기 예는 영상의 일부 영역으로부터 데이터를 획득하는 경우를 중심으로 설명하였지만, 그 외의 방법 또한 적용 가능하다. 상기 데이터는 부호화 전의 화소일 수 있거나 또는 부호화 후의 화소일 수 있으며, 크기 조정이 수행되는 영상 또는 단계의 특성에 따라 결정될 수 있다. 예를 들어, 전처리 과정, 부호화 전 단계에서 크기 조정을 수행할 때 상기 데이터는 투영 영상, 포장 영상 등의 입력 화소를 의미하고, 후처리 과정, 화면내 예측 참조 화소 생성 단계, 참조 영상 생성 단계, 필터 단계 등에서 크기 조정을 수행할 때 상기 데이터는 복원 화소를 의미할 수 있다. 또한, 각 크기 조정되는 영역에 개별적으로 데이터 처리 방법을 사용하여 크기 조정을 수행할 수 있다.
도 24는 본 발명의 일 실시예에 따른 투영 포맷(예를 들어, CMP, OHP, ISP)에서 표면 간의 연속성을 설명하기 위한 개념도이다.
상세하게는, 복수의 표면으로 구성된 영상에 대한 예일 수 있다. 연속성은 3차원 공간에서의 인접한 영역에서 발생하는 특성일 수 있으며, 도 24a 내지 도 24c는 투영 과정을 통해 2차원 공간으로 변환되었을 때 공간적으로 인접하며 연속성이 존재하는 경우(A), 공간적으로 인접하며 연속성이 존재하지 않는 경우(B), 공간적으로 인접하지 않으며 연속성이 존재하는 경우(C), 공간적으로 인접하지 않으며 연속성이 존재하지 않는 경우(D)로 구분할 수 있다. 일반적인 영상은 공간적으로 인접하며 연속성이 존재하는 경우(A), 공간적으로 인접하지 않으며 연속성이 존재하지 않는 경우(D)로 구분되는 것과 차이점이 존재한다. 이때, 연속성이 존재하는 경우는 상기 일부 예(A 또는 C)가 해당된다.
즉, 24a 내지 24c를 참조하면, 공간적으로 인접하며 연속성이 존재하는 경우(본 예에서 24a를 기준으로 설명)가 b0 내지 b4와 같이 나타날 수 있으며, 공간적으로 인접하지 않으며 연속성이 존재하는 경우가 B0 내지 B6과 같이 나타날 수 있다. 즉, 3차원 공간에서 인접한 영역에 대한 경우를 의미하며, b0 내지 b4와 B0 내지 B6가 연속성을 갖는 특성을 활용하여 부호화 과정에 사용함으로써 부호화 성능을 향상시킬 수 있다.
도 25는 CMP 투영 포맷에서의 영상 재구성 과정 또는 지역별 포장 과정을 통해 획득된 영상인 도 21c의 표면의 연속성을 설명하기 위한 개념도이다.
여기서, 도 21의 21c는 360도 영상을 큐브 형태로 펼친 21a를 재배치한 것이므로, 이때에도 도 21의 21a에서 갖는 표면의 연속성이 유지된다. 즉, 25a에서와 같이 표면 S2,1은 좌우로 S1,1 및 S3,1 과 서로 연속되며, 상하로는 90도 회전한 S1,0 및 -90도 회전한 S1,2 표면과 서로 연속될 수 있다.
같은 방법으로, 표면 S3,1, 표면 S0,1, 표면 S1,2, 표면 S1,1, 표면 S1,0에 대한 연속성을 25b 내지 25f에서 확인할 수 있다.
표면 간의 연속성은 투영 포맷 설정 등에 따라 정의될 수 있으며, 상기 예에 한정되지 않고 다른 변형의 예가 가능할 수 있다. 후술하는 예는 도 24, 도 25와 같은 연속성이 존재한다는 가정 하에 설명한다.
도 26은 본 발명의 일 실시예에 따른 CMP 투영 포맷에서의 영상의 크기 조정을 설명하기 위한 예시도이다.
26a는 영상의 크기 조정을 수행하는 예를, 26b는 표면 단위(또는 분할 단위)로 크기 조정을 수행하는 예를, 26c는 영상과 표면 단위로 크기 조정(또는 복수의 크기 조정)을 수행하는 예를 나타낸다.
투영된 영상은 영상 크기 조정 타입에 따라 스케일 팩터를 통한 크기 조정, 오프셋 팩터를 통한 크기 조정을 수행할 수 있으며, 크기 조정 전 영상은 P_Width × P_Height이고 크기 조정 후 영상은 P'_Width × P'_Height이며, 표면의 크기는 F_Width × F_Height일 수 있다. 표면에 따라 크기가 같거나 다를 수 있고, 표면의 가로와 세로 길이는 같거나 다를 수 있으나 본 예에서는 설명의 편의를 위해 영상 내 모든 표면의 크기는 동일하며 정사각 형태를 갖는다는 가정 하에 설명한다. 또한, 크기 조정값(본 예에서 WX, HY)는 동일하다는 가정 하에 설명한다. 후술하는 예에서의 데이터 처리 방법은 오프셋 팩터의 경우를 중심으로 설명하며, 데이터 처리 방법은 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법을 중심으로 설명한다. 상기 설정은 도 27에도 동일하게 적용될 수 있다.
26a 내지 26c의 경우 표면의 경계(본 예에서 도 24의 24a에 따른 연속성을 가진다고 가정)는 다른 표면의 경계와 연속성을 가질 수 있다. 이때, 2차원 평면에서 공간적으로 인접하며 영상의 연속성이 존재하는 경우(제1 예시)와 2차원 평면에서 공간적으로 인접하지 않으며 영상의 연속성이 존재하는 경우(제2 예시)로 구분될 수 있다.
예를 들어, 도 24의 24a의 연속성을 전제로 하면, S1,1의 상측, 좌측, 우측, 하측 영역은 S1,0, S0,1, S2,1, S1,2의 하측, 우측, 좌측, 상측 영역과 공간적으로 인접함과 동시에 영상도 연속적(제1 예시인 경우)일 수 있다.
또는, S1,0의 좌측과 우측 영역은 S0,1과 S2,1의 상측 영역과 공간적으로 인접하지는 않으나, 서로의 영상이 연속적(제2 예시인 경우)일 수 있다. 또한, S0,1의 좌측 영역과 S3,1의 우측 영역이 공간적으로 인접하지는 않으나, 서로의 영상이 연속적(제2 예시인 경우)일 수 있다. 또한, S1,2의 좌측 영역과 우측 영역이 S0,1와 S2,1의 하측 영역과 서로 연속적(제2 예시인 경우)일 수 있다. 이는 본 예에서 한정적인 예일 수 있으며, 투영 포맷 정의 및 설정에 따라 위와 다른 구성일 수 있다. 설명의 편의를 위해 도 26a의 S0,0 ~ S3,2는 a ~ l라 지칭한다.
26a는 영상의 외부 경계 방향으로 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예일 수 있다. 데이터가 존재하지 않는 A 영역으로부터 크기 조정되는 영역(본 예에서 a0 ~ a2, c0, d0 ~ d2, i0 ~ i2, k0, l0 ~ l2)은 기 설정된 임의의 값 또는 외곽 화소 패딩을 통해 채울 수 있고, 실제 데이터를 포함하는 B 영역으로부터 크기 조정되는 영역(본 예에서 b0, e0, h0, j0)은 영상의 연속성이 존재하는 영역(또는 표면)의 데이터를 사용하여 채울 수 있다. 예를 들어, b0는 표면 h의 상측, e0는 표면 h의 우측, h0는 표면 e의 좌측, j0는 표면 h의 하측의 데이터를 사용하여 채울 수 있다.
상세하게는, b0는 표면 h에 180도 회전을 적용하여 획득된 표면의 하측의 데이터를, j0는 표면 h에 180도 회전을 적용하여 획득된 표면의 상측 데이터를 사용하여 채우는 예일 수 있으나 본 예(또는 후술하는 예 포함)에서는 참조되는 표면의 위치만을 나타낼 것이며, 크기 조정되는 영역에 획득되는 데이터는 도 24, 도 25와 같이 표면 간의 연속성을 고려한 조정 과정(예를 들어, 회전 등)을 거친 후에 획득될 수 있다.
26b는 영상의 내부 경계 방향으로 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예일 수 있다. 본 예에서는 표면에 따라 수행되는 크기 조정 동작이 다를 수 있다. A 영역은 축소 과정을, B 영역은 확장 과정을 수행할 수 있다. 예를 들어, 표면 a의 경우 우측으로 w0만큼 크기 조정(본 예에서 축소)이 수행될 수 있고, 표면 b의 경우 좌측으로 w0만큼 크기 조정(본 예에서 확장)이 수행될 수 있다. 또는, 표면 a의 경우 하측으로 h0만큼 크기 조정(본 예에서 축소)이 수행될 수 있고, 표면 e의 경우 상측으로 h0만큼 크기 조정(본 예에서 확장)이 수행될 수 있다. 본 예에서 표면 a, b, c, d로 영상의 가로 길이 변화를 볼 때, 표면 a에서 w0만큼 축소되고, 표면 b에서 w0와 w1만큼 확장되고, 표면 c에서 w1만큼 축소되기 때문에 크기 조정 전 영상의 가로 길이와 크기 조정 후 영상의 가로 길이는 동일하다. 표면 a, e, i로 영상의 세로 길이 변화를 볼 때, 표면 a에서 h0만큼 축소되고, 표면 e에서 h0와 h1만큼 확장되고, 표면 i에서 h1만큼 축소되기 때문에 크기 조정 전 영상의 세로 길이와 크기 조정 후 영상의 세로 길이는 동일하다.
크기 조정되는 영역(본 예에서 b0, e0, be, b1, bg, g0, h0, e1, ej, j0, gi, g1, j1, h1)은, 데이터가 존재하지 않는 A 영역으로부터 축소되는 점을 고려하여, 단순 제거될 수도 있고, 실제 데이터를 포함하는 B 영역으로부터 확장되는 점을 고려하여 연속성이 존재하는 영역의 데이터로 새롭게 채울 수 있다.
예를 들어, b0는 표면 e의 상측, e0는 표면 b의 좌측, be는 표면 b의 좌측 또는 표면 e의 상측 또는 표면 b의 좌측과 표면 e의 상측의 가중치 합, b1은 표면 g의 상측, bg는 표면 b의 좌측 또는 표면 g의 상측 또는 표면 b의 우측과 표면 g의 상측의 가중치 합, g0는 표면 b의 우측, h0는 표면 b의 상측, e1은 표면 j의 좌측, ej는 표면 e의 하측 또는 표면 j의 좌측 또는 표면 e의 하측과 표면 j의 좌측의 가중치 합, j0는 표면 e의 하측, gj는 표면 g의 하측 또는 표면 j의 좌측 또는 표면 g의 하측과 표면 j의 우측의 가중치 합, g1은 표면 j의 우측, j1은 표면 g의 하측, h1은 표면 j의 하측의 데이터를 사용하여 채울 수 있다.
상기 예에서 크기 조정되는 영역에 영상의 일부 영역의 데이터를 사용하여 채울 때 해당 영역의 데이터를 복사하여 채울 수 있거나 해당 영역의 데이터를 영상의 특성, 종류 등에 기반하여 변환 과정을 거친 후에 획득되는 데이터를 채울 수 있다. 예를 들어, 360도 영상이 2차원 공간으로 투영 포맷에 따라 변환할 때, 각 표면의 좌표계(예를 들어, 2차원 평면 좌표계)가 정의될 수 있다. 설명의 편의를 위해 3차원 공간의 (x,y,z)에서 각 표면에 (x,y,C) 또는 (x,C,z) 또는 (C,y,z)로 변환되었다고 가정하자. 상기 예는 일부 표면의 크기 조정되는 영역에 해당 표면과 다른 표면의 데이터를 획득하는 경우를 나타낸다. 즉, 현재 표면을 중심으로 크기 조정을 하는데 다른 좌표계 특성을 갖는 다른 표면의 데이터를 그대로 복사하여 채울 경우 크기 조정 경계를 기준으로 연속성이 왜곡될 가능성이 존재한다. 이를 위해 현재 표면의 좌표계 특성에 맞춰 획득되는 다른 표면의 데이터를 변환하여 크기 조정되는 영역에 채울 수도 있다. 변환하는 경우 또한 데이터 처리 방법의 일 예일뿐 이에 한정되지 않는다.
크기 조정되는 영역에 영상의 일부 영역의 데이터를 복사하여 채울 때, 크기 조정하는 영역(e)과 크기 조정되는 영역(e0)의 경계 영역에 왜곡된 연속성(또는, 급진적으로 변화하는 연속성)을 포함할 수 있다. 예를 들어, 경계를 기준으로 연속적인 특징이 바뀌는 경우가 발생할 수 있으며, 에지가 직선 형태를 갖던 것이 경계를 기준으로 꺽인 형태가 되는 것과 같다.
크기 조정되는 영역에 영상의 일부 영역의 데이터를 변환하여 채울 때, 크기 조정하는 영역과 크기 조정되는 영역의 경계 영역에 점진적으로 변화하는 연속성을 포함할 수 있다.
상기 예는 크기 조정 과정(본 예에서 확장)에서 영상의 일부 영역의 데이터를 영상의 특성, 종류 등에 기반하여 변환 과정을 수행하여 획득된 데이터를 크기 조정되는 영역에 채우는 본 발명의 데이터 처리 방법의 일 예일 수 있다.
26c는 26a와 26b에 따른 영상 크기 조정 과정을 결합하여 영상의 경계(내부 경계 및 외부 경계) 방향으로 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예일 수 있다. 본 예의 크기 조정 과정은 26a와 26b로부터 유도될 수 있으므로 상세한 설명은 생략한다.
26a는 영상의 크기 조정 과정, 26b는 영상 내 분할 단위의 크기 조정 과정의 일 예일 수 있다. 26c는 영상의 크기 조정 과정과 영상 내 분할 단위의 크기 조정이 수행되는 복수의 크기 조정 과정의 일 예일 수 있다.
예를 들어, 투영 과정을 통해 획득한 영상(본 예에서 제 1 포맷)에 크기 조정(본 예에서 C 영역)을 수행할 수 있고, 포맷 변환 과정을 통해 획득한 영상(본 예에서 제 2 포맷)에 크기 조정(본 예에서 D 영역)을 수행할 수 있다. 본 예에서는 ERP로 투영된 영상에 크기 조정(본 예에서 영상 전체)을 수행하고, 이를 포맷 변환부를 통해 CMP로 투영된 영상을 획득한 후에 크기 조정(본 예에서 표면 단위)을 수행한 예일 수 있다. 상기 예는 복수의 크기 조정을 수행하는 일 예이며, 이에 한정되지 않고 다른 경우로의 변형 또한 가능할 수 있다.
도 27은 본 발명의 일 실시예에 따른 CMP 투영 포맷으로 변환되고, 포장된 영상을 대상으로 한 크기 조정을 설명하기 위한 예시도이다. 도 27에서도 도 25에 따른 표면간 연속성을 전제로 설명하므로, 표면의 경계는 다른 표면의 경계와 연속성을 가질 수 있다.
본 예에서 W0 내지 W5와 H0 내지 H3의 오프셋 팩터(본 예에서 오프셋 팩터가 크기 조정값으로 그대로 사용되는 경우라 가정)는 다양한 값을 가질 수 있다. 예를 들어, 기 설정된 값, 화면간 예측의 움직임 탐색 범위, 픽쳐 분할부로부터 획득되는 단위 등으로부터 유도될 수 있으며, 그 밖의 경우 또한 가능하다. 이때, 상기 픽쳐 분할부로부터 획득되는 단위는 표면을 포함할 수 있다. 즉, F_Width, F_Height에 기반하여 크기 조정값이 정해질 수 있다.
27a는 하나의 표면 각각에 대하여 크기 조정(본 예에서 각 표면의 상, 하, 좌, 우 방향)을 수행하여 확장되는 각각의 영역에 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예시이다. 예를 들면, 표면 a에 대하여 그 외곽인 a0 내지 a6에 연속적인 데이터를 채울 수 있으며, 표면 b의 외곽인 b0 내지 b6에 연속적인 데이터를 채울 수 있다.
27b는 복수의 표면에 대하여 크기 조정(본 예에서 복수의 표면의 상, 하, 좌, 우 방향)을 수행하여 확장되는 영역에 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예시이다. 예를 들면, 표면 a, b 및 c를 기준으로 그 외곽에 대하여, a0~a4, b0~b1, c0~c4로 확장할 수 있다.
27c는 영상 전체에 대한 크기 조정(본 예에서 전체 영상의 상, 하, 좌, 우 방향)을 수행하여 확장되는 영역에 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예일 수 있다. 예를 들면, 표면 a 내지 f로 이루어진 영상 전체의 외곽에 대하여 a0 내지 a2, b0, c0~c2, d0~d2, e0, f0~f2 로 확장할 수 있다.
즉, 하나의 표면 단위로 크기 조정을 수행할 수 있고, 연속성이 존재하는 복수의 표면 단위로 크기 조정을 수행할 수 있고, 전체 표면 단위로 크기 조정을 수행할 수 있다.
상기 예의 크기 조정되는 영역(본 예에서 a0 ~ f7)은 도 24a와 같이 연속성이 존재하는 영역(또는 표면)의 데이터를 사용하여 채울 수 있다. 즉, 표면 a ~ f의 상측, 하측, 좌측, 우측의 데이터를 사용하여 크기 조정되는 영역에 채울 수 있다.
도 28은 본 발명의 일 실시예에 따른 360도 영상의 크기 조정에서 데이터 처리 방법을 설명하기 위한 예시도이다.
도 28을 참조하면, 크기 조정되는 영역으로 B영역(a0 ~ a2, ad0, b0, c0 ~ c2, cf1, d0 ~ d2, e0, f0 ~ f2)은 a 내지 f에 속하는 화소 데이터 중에서, 연속성이 존재하는 영역의 데이터로 채울 수 있다. 또한, 또 다른 크기 조정되는 영역인 C 영역(ad1, be, cf0)은 크기 조정을 수행하는 영역의 데이터와 공간적으로 인접하지만 연속성이 존재하지 않는 영역의 데이터를 혼합하여 채울 수 있다. 또는, C 영역은, a 내지 f 중 선택된 두 영역(예를 들면, a와 d, b와 e, c와 f) 사이에 크기 조정을 수행하므로, 상기 두 영역의 데이터를 혼합하여 채울 수 있다. 예를 들어, 표면 b와 표면 e는 공간적으로 인접하지만 연속성이 존재하지 않는 관계를 가질 수 있을 수 있다. 표면 b와 표면 e 사이의 크기 조정되는 영역(be)에 표면 b의 데이터와 표면 e의 데이터를 사용하여 크기 조정을 수행할 수 있다. 예를 들어, be 영역에 표면 b의 데이터와 표면 e의 데이터를 평균하여 획득된 값으로 채우거나, 거리에 따른 가중치 합을 통해 획득된 값으로 채울 수 있다. 이때, 표면 b와 표면 e에서 크기 조정되는 영역에 채울 데이터를 위해 사용되는 화소는 각 표면의 경계 화소일 수 있으나, 표면의 내부 화소일 수도 있다.
정리하면, 영상의 분할 단위 사이에 크기 조정되는 영역은 양쪽 단위의 데이터를 혼합 사용하여 생성된 데이터로 채울 수 있다.
상기 데이터 처리 방법은 일부 상황(본 예에서 복수의 영역에서 크기 조정을 수행하는 경우)에서 지원되는 방법일 수 있다.
도 27a, 27b는 분할 단위 사이에 서로 크기 조정이 수행되는 영역을 각각의 분할 단위마다 개별적으로 구성(도 27a를 예로 들면, a와 d에 대하여 각각 a6와 d1이 구성됨)하였으나, 도 28에서는 분할 단위 사이에 서로 크기 조정이 수행되는 영역은 인접한 분할 단위들에 대하여 하나씩(a와 d에 대하여 ad1 하나) 구성할 수 있다. 물론 도 27a 내지 27c에서도 데이터 처리 방법의 후보군으로 상기 방법을 포함할 수 있고, 도 28에서도 상기 예와 다른 데이터 처리 방법을 사용하여 크기 조정을 수행할 수 있다.
본 발명의 영상의 크기 조정 과정에서 크기 조정되는 영역에 묵시적으로 기 설정된 데이터 처리 방법을 사용할 수 있거나 또는 복수의 데이터 처리 방법 중 하나를 사용하며 명시적으로 관련 정보를 생성할 수 있다. 기 설정된 데이터 처리 방법은 임의의 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법, 영상의 복수의 영역으로부터 유도된 데이터를 채우는 방법 등의 데이터 처리 방법 중 하나일 수 있다. 예를 들어, 크기 조정되는 영역이 영상 내부(예를 들어, 포장된 영상)에 위치하며 양 쪽의 영역(예를 들어, 표면)이 공간적으로 인접하지만 연속성이 존재하지 않는 경우에 복수의 영역으로부터 유도된 데이터를 채우는 데이터 처리 방법이 적용되어 크기 조정되는 영역을 채울 수 있다. 또한, 상기 복수의 데이터 처리 방법 중 하나를 선택하여 크기 조정을 수행할 수 있으며 이에 대한 선택 정보는 명시적으로 생성될 수 있다. 이는 360도 영상뿐만 아니라 일반적인 영상에도 적용될 수 있는 예일 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다. 360도 영상에서의 분할, 재구성, 크기 조정 과정을 ERP, CMP와 같은 일부 투영 포맷을 중심으로 설명하였으나, 이에 한정되지 않고 다른 투영 포맷에도 상기 내용과 동일하거나 변경되어 적용될 수 있다.
전술하는 360도 영상 부/복호화 장치에 적용되는 영상 설정 과정은 부/복호화 과정뿐 만 아니라 전처리 과정, 후처리 과정, 포맷 변환 과정, 포맷 역변환 과정 등에 적용될 수 있다는 설명을 하였다.
정리하면, 투영 과정은 영상 설정 과정이 포함되어 구성될 수 있다. 상세하게는, 적어도 하나의 영상 설정 과정이 포함되어 투영 과정이 수행될 수 있다. 투영된 영상에 기반하여 영역(또는 표면) 단위로 분할을 수행할 수 있다. 투영 포맷에 따라 하나의 영역 또는 복수의 영역으로 분할을 수행할 수 있다. 상기 분할에 따른 분할 정보가 생성될 수 있다. 또한, 투영된 영상의 크기 조정을 수행할 수 있거나 또는 투영된 영역의 크기 조정을 수행할 수 있다. 이때, 적어도 하나의 영역으로 크기 조정을 수행할 수 있다. 상기 크기 조정에 따른 크기 조정 정보가 생성될 수 있다. 또한, 투영된 영상의 재구성(또는 표면 배치)을 수행할 수 있거나 또는 투영된 영역의 재구성을 수행할 수 있다. 이때, 적어도 하나의 영역으로 재구성을 수행할 수 있다. 상기 재구성에 따른 재구성 정보가 생성될 수 있다.
정리하면, 지역별 포장 과정은 영상 설정 과정이 포함되어 구성될 수 있다. 상세하게는, 적어도 하나의 영상 설정 과정이 포함되어 지역별 포장 과정이 수행될 수 있다. 포장된 영상에 기반하여 영역(또는 표면) 단위로 분할 과정을 수행할 수 있다. 지역별 포장 설정에 따라 하나의 영역 또는 복수의 영역으로 분할을 수행할 수 있다. 상기 분할에 따른 분할 정보가 생성될 수 있다. 또한, 포장된 영상의 크기 조정을 수행할 수 있거나 또는 포장된 영역의 크기 조정을 수행할 수 있다. 이때, 적어도 하나의 영역으로 크기 조정을 수행할 수 있다. 상기 크기 조정에 따른 크기 조정 정보가 생성될 수 있다. 또한, 포장된 영상의 재구성을 수행할 수 있거나 또는 포장된 영역의 재구성을 수행할 수 있다. 이때, 적어도 하나의 영역으로 재구성을 수행할 수 있다. 상기 재구성에 따른 재구성 정보가 생성될 수 있다.
상기 투영 과정은 영상 설정 과정의 전부 또는 일부가 수행될 수 있으며, 영상 설정 정보를 포함할 수 있다. 이는 투영된 영상의 설정 정보일 수 있다. 상세하게는, 투영된 영상 내 영역들의 설정 정보일 수 있다.
상기 지역별 포장 과정은 영상 설정 과정의 전부 또는 일부가 수행될 수 있으며, 영상 설정 정보를 포함할 수 있다. 이는 포장된 영상의 설정 정보일 수 있다. 상세하게는, 포장된 영상 내 영역들의 설정 정보일 수 있다. 또는, 투영된 영상과 포장된 영상의 매핑 정보(예를 들어, 도 11과 관련된 설명 참조. P0 내지 P1는 투영된 영상, S0 내지 S5는 포장된 영상으로 가정하여 이해될 수 있음)일 수 있다. 상세하게는, 투영된 영상 내 일부 영역과 포장된 영상 내 일부 영역의 매핑 정보일 수 있다. 즉, 투영된 영상 내 일부 영역에서 포장된 영상 내 일부 영역으로 할당되는 설정 정보일 수 있다.
상기 정보는 본 발명의 영상 설정 과정에서 전술한 다양한 실시예를 통해 획득되는 정보로 나타낼 수 있다. 예를 들어, 표 1 내지 표 6에서 적어도 하나의 구문 요소를 사용하여 관련 정보를 나타낼 경우, 투영된 영상의 설정 정보는 pic_width_in_samples, pic_height_in_samples, part_top[i], part_left[i], part_width[i], part_height[i] 등을 포함할 수 있고, 포장된 영상의 설정 정보는 pic_width_in_samples, pic_height_in_samples, part_top[i], part_left[i], part_width[i], part_height[i], convert_type_flag[i], part_resizing_flag[i], top_height_offset[i], bottom_height_offset[i], left_width_offset[i], right_width_offset[i], resizing_type_flag[i] 등을 포함할 수 있다. 상기 예는 표면에 대한 정보(예를 들어, 투영된 영상의 설정 정보 중 part_top[i], part_left[i], part_width[i], part_height[i])를 명시적으로 생성하는 일 예일 수 있다.
영상 설정 과정의 일부는 기 설정된 동작으로 투영 포맷에 따른 투영 과정 또는 지역별 포장 과정에 포함될 수 있다.
예를 들어, ERP의 경우 좌, 우 방향으로 각각 m, n만큼 확장된 영역에 영상의 크기 조정 방향의 반대 방향(본 예에서 우, 좌 방향)의 영역의 데이터를 복사하여 채우는 방법을 사용하여 크기 조정을 수행하는 과정이 묵시적으로 포함될 수 있다. 또는, CMP의 경우 상, 하, 좌, 우 방향으로 각각 m, n, o, p만큼 확장된 영역에 크기 조정을 수행하는 영역과 연속성이 존재하는 영역의 데이터를 변환하여 채우는 방법을 사용하여 크기 조정을 수행하는 과정이 묵시적으로 포함될 수 있다.
상기 예의 투영 포맷은 기존의 투영 포맷을 대체하는 예일 수 있거나 또는 기존 투영 포맷에 추가적인 투영 포맷(예를 들어, ERP1, CMP1)의 예일 수 있으며, 상기 예에 한정되지 않고 본 발명의 다양한 영상 설정 과정의 예들이 대체 조합될 수 있으며, 다른 포맷의 경우도 이와 비슷한 적용이 가능할 수 있다.
한편, 도 1 및 도 2의 영상 부호화 장치 및 영상 복호화 장치에 도시하지 않았지만 블록 분할부가 더 포함될 수 있다. 픽쳐 분할부로부터 기본 부호화 단위에 대한 정보를 획득할 수 있으며, 기본 부호화 단위는 영상 부/복호화 과정에서 예측, 변환, 양자화 등에 대한 기본(또는 시작) 단위를 의미할 수 있다. 이때, 부호화 단위는 컬러 포맷(본 예에서 YCbCr)에 따라 하나의 휘도 부호화 블록과 두 개의 색차 부호화 블록으로 구성될 수 있으며, 컬러 포맷에 따라 각 블록의 크기가 정해질 수 있다. 후술하는 예에서는 블록(본 예에서 휘도 성분)을 기준으로 설명할 것이다. 이때, 블록은 각 단위가 결정된 후에 획득될 수 있는 단위임을 전제하고, 다른 종류의 블록에 비슷한 설정이 적용 가능함을 가정하여 설명한다.
블록 분할부는 영상 부호화 장치 및 복호화 장치의 각 구성부에 관계되어 설정될 수 있으며, 이 과정을 통해 블록의 크기와 형태가 정해질 수 있다. 이때, 설정되는 블록은 구성부에 따라 달리 정의될 수 있으며, 예측부의 경우 예측 블록, 변환부의 경우 변환 블록, 양자화부의 경우 양자화 블록 등이 이에 해당할 수 있다. 이에 한정되지 않고 다른 구성부에 따른 블록 단위가 추가로 정의될 수 있다. 블록의 크기 및 형태는 블록이 갖는 가로, 세로 길이에 의해 정의될 수 있다.
블록 분할부에서 블록은 M × N으로 표현될 수 있으며, 각 블록의 최대값과 최소값이 범위 내에서 획득될 수 있다. 예를 들어, 블록의 형태는 정사각을 지원하며 블록의 최대값을 256×256, 최소값을 8×8로 정할 경우, 2m×2m 크기의 블록(본 예에서 m은 3부터 8까지의 정수. 예를 들어, 8×8, 16×16, 32×32, 64×64, 128×128, 256×256) 또는 2m × 2m 크기의 블록(본 예에서 m은 4부터 128까지의 정수) 또는 m × m 크기의 블록(본 예에서 m은 8부터 256까지의 정수)을 획득할 수 있다. 또는, 블록의 형태는 정사각과 직사각을 지원하며 상기 예와 동일한 범위를 가질 경우, 2m × 2n 크기의 블록(본 예에서 m과 n은 3부터 8까지의 정수. 가로와 세로 비율이 최대 2:1인 경우를 가정하여 예를 들면, 8×8, 8×16, 16×8, 16×16, 16×32, 32×16, 32×32, 32×64, 64×32, 64×64, 64×128, 128×64, 128×128, 128×256, 256×128, 256×256. 부/복호화 설정에 따라 가로와 세로의 비율에 대한 제한이 없거나 비율의 최대값이 존재할 수 있음)을 획득할 수 있다. 또는, 2m × 2n 크기의 블록(본 예에서 m과 n은 4부터 128까지의 정수)을 획득할 수 있다. 또는, m × n 크기의 블록(본 예에서 m과 n은 8부터 256까지의 정수)을 획득할 수 있다.
부/복호화 설정(예를 들어, 블록의 종류, 분할 방식, 분할 설정 등)에 따라 획득 가능한 블록이 정해질 수 있다. 예를 들어, 부호화 블록은 2m × 2n 크기의 블록, 예측 블록은 2m × 2n 또는 m × n 크기의 블록, 변환 블록은 2m × 2n 크기의 블록을 획득할 수 있다. 상기 설정에 기반하여 블록 크기, 범위 등의 정보(예를 들어, 지수, 배수 관련 정보 등)가 생성될 수 있다.
블록의 종류에 따라 상기 범위(본 예에서 최대값과 최소값으로 정해짐)가 정해질 수 있다. 또한, 일부 블록은 블록의 범위 정보가 명시적으로 생성될 수 있고, 일부 블록은 블록의 범위 정보가 묵시적으로 정해질 수 있다. 예를 들어, 부호화, 변환 블록은 명시적으로 관련 정보가 생성될 수 있고, 예측 블록은 묵시적으로 관련 정보가 처리될 수 있다.
명시적인 경우에는 적어도 하나의 범위 정보가 생성될 수 있다. 예를 들어, 부호화 블록의 경우 범위에 대한 정보는 최대값과 최소값에 대한 정보를 생성할 수 있다. 또는, 최대값과 기 설정된 최소값(예를 들어, 8)의 차이(예를 들어, 상기 설정에 기반하여 생성. 최대값과 최소값의 지수의 차이값 정보 등)에 기반하여 생성될 수 있다. 또한, 직사각 형태의 블록의 가로, 세로 길이를 위한 복수의 범위에 대한 정보가 생성될 수 있다.
묵시적인 경우에는 부/복호화 설정(예를 들어, 블록의 종류, 분할 방식, 분할 설정 등)에 기반하여 범위 정보가 획득될 수 있다. 예를 들어, 예측 블록의 경우 상위 단위인 부호화 블록(본 예에서 부호화 블록의 최대 크기 M × N. 최소 크기 m × n)에서 예측 블록의 분할 설정(본 예에서 쿼드 트리 분할 + 분할 깊이 0)으로 획득 가능한 후보군(본 예에서 M × N과 m/2 × n/2)으로 최대값과 최소값 정보를 획득할 수 있다.
블록 분할부의 초기(또는 시작) 블록의 크기 및 형태는 상위 단위로부터 정해질 수 있다. 부호화 블록의 경우 픽쳐 분할부로부터 획득된 기본 부호화 블록이 초기 블록일 수 있고, 예측 블록의 경우 부호화 블록이 초기 블록일 수 있고, 변환 블록의 경우 부호화 블록 또는 예측 블록이 초기 블록일 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 부호화 모드가 Intra일 경우에는 예측 블록은 변환 블록의 상위 단위일 수 있고, Inter일 경우에는 예측 블록은 변환 블록에 독립적인 단위일 수 있다. 초기 블록은 분할의 시작 단위로 작은 크기의 블록으로 분할할 수 있다. 각 블록의 분할에 따른 최적의 크기 및 형태가 정해지면 그 블록은 하위 단위의 초기 블록으로 정해질 수 있다. 예를 들어, 전자의 경우는 부호화 블록, 후자의 경우(하위 단위)는 예측 블록 또는 변환 블록일 수 있다. 상기 예와 같이 하위 단위의 초기 블록이 정해지면 상위 단위와 같이 최적의 크기 및 형태의 블록을 찾기 위한 분할 과정이 수행될 수 있다.
정리하면, 블록 분할부는 기본 부호화 단위(또는 최대 부호화 단위)를 적어도 하나의 부호화 단위(또는 하위 부호화 단위)로 분할을 수행할 수 있다. 또한, 부호화 단위는 적어도 하나의 예측 단위로 분할을 수행할 수 있고, 적어도 하나의 변환 단위로 분할을 수행할 수 있다. 부호화 단위는 적어도 하나의 부호화 블록으로 분할을 수행할 수 있고, 부호화 블록은 적어도 하나의 예측 블록으로 분할을 수행할 수 있고, 적어도 하나의 변환 블록으로 분할을 수행할 수 있다. 예측 단위는 적어도 하나의 예측 블록으로 분할을 수행할 수 있고, 변환 단위는 적어도 하나의 변환 블록으로 분할을 수행할 수 있다.
상기 예와 같이 모드 결정 과정을 통해 최적의 크기 및 형태의 블록을 찾을 경우, 이에 대한 모드 정보(예를 들어, 분할 정보 등)가 생성될 수 있다. 모드 정보는 블록이 속하는 구성부에서 발생하는 정보(예를 들어, 예측 관련 정보, 변환 관련 정보 등)과 함께 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서 동일 수준의 단위에서 파싱하여 영상 복호화 과정에서 사용할 수 있다.
후술하는 예는 분할 방식에 대한 설명을 할 것이며 초기 블록이 정사각 형태인 것을 가정하여 설명하지만, 직사각 형태인 경우 동일하거나 비슷한 적용이 가능할 수 있다.
블록 분할부는 다양한 분할 방식을 지원할 수 있다. 예를 들어, 트리 기반의 분할 또는 타입 기반의 분할을 지원할 수 있고, 그 외의 방법이 적용될 수 있다. 트리 기반의 분할의 경우 분할 플래그로 분할 정보를 생성할 수 있고, 타입 기반의 분할의 경우 기 설정된 후보군에 포함된 블록 형태에 대한 인덱스 정보로 분할 정보를 생성할 수 있다.
도 29는 트리 기반의 블록 형태를 나타낸 예시도이다.
29a는 분할이 수행되지 않은 하나의 2N × 2N, 29b는 일부 분할 플래그(본 예에서 바이너리 트리의 가로 분할)를 통해 두 개의 2N × N, 29c는 일부 분할 플래그(본 예에서 바이너리 트리의 세로 분할)를 통해 두 개의 N × 2N, 29d는 일부 분할 플래그(본 예에서 쿼드 트리의 4분할 또는 바이너리 트리의 가로와 세로 분할)를 통해 4개의 N × N 이 획득되는 예를 나타낸다. 분할에 사용되는 트리 종류에 따라 획득되는 블록의 형태가 정해질 수 있다. 예를 들어, 쿼드 트리 분할을 수행할 경우 획득 가능한 후보 블록은 29a, 29d일 수 있다. 바이너리 트리 분할을 수행할 경우 획득 가능한 후보 블록은 29a, 29b, 29c, 29d일 수 있다. 쿼드 트리의 경우 하나의 분할 플래그를 지원하며, 해당 플래그가 '0'인 경우 29a, '1'인 경우 29d를 획득할 수 있다. 바이너리 트리의 경우 복수의 분할 플래그를 지원하며, 그 중 하나는 분할 여부를 나타내는 플래그일 수 있고, 그 중 하나는 가로/세로 분할 여부를 나타내는 플래그일 수 있고, 그 중 하나는 가로/세로 분할의 중복 허용 여부를 나타내는 플래그일 수 있다. 중복이 허용되는 경우에 획득 가능한 후보 블록은 29a, 29b, 29c, 29d일 수 있고, 중복이 허용되지 않는 경우에 획득 가능한 후보 블록은 29a, 29b, 29c일 수 있다. 쿼드 트리의 경우 기본적인 트리 기반의 분할 방식일 수 있으며, 이에 추가적으로 트리 분할 방식(본 예에서 바이너리 트리)가 트리 기반의 분할 방식에 포함될 수 있다. 추가적인 트리 분할을 허용하는 플래그가 묵시적으로 또는 명시적으로 활성화되는 경우 복수의 트리 분할을 수행할 수 있다. 트리 기반의 분할은 재귀적인 분할(Recursive Partition)이 가능한 방식일 수 있다. 즉, 분할된 블록이 다시 초기 블록으로 설정되어 트리 기반의 분할이 수행될 수 있으며, 이는 분할 범위, 분할 허용 깊이 등의 분할 설정에 따라 정해질 수 있다. 이는 계층적 분할 방식의 일 예일 수 있다.
도 30은 타입 기반의 블록 형태를 나타낸 예시도이다.
도 30을 참조하면, 타입에 따라 분할 후 블록은 1 분할(본 예에서 30a), 2 분할(본 예에서 30b, 30c, 30d, 30e, 30f, 30g), 4 분할된 형태(본 예에서 30h)를 가질 수 있다. 다양한 구성을 통해 후보군을 구성할 수 있다. 예를 들어, 도 31의 a, b, c, n 또는 a, b ~ g, n 또는 a, n, q 등으로 후보군을 구성할 수 있으며, 이에 한정되지 않고 후술하는 예를 포함하여 다양한 변형의 예가 가능할 수 있다. 대칭 분할(Symmetric Partition)을 허용하는 플래그가 활성화될 경우에 지원되는 블록은 도 30a, 30b, 30c, 30h일 수 있고, 비대칭 분할(Asymmetric Partition)을 허용하는 플래그가 활성화될 경우에 지원되는 블록은 도 30a ~ 30h 모두일 수 있다. 전자의 경우 관련 정보(본 예에서 대칭 분할을 허용하는 플래그)가 묵시적으로 활성화될 수 있고, 후자의 경우 명시적으로 관련 정보(본 예에서 비대칭 분할을 허용하는 플래그)가 생성될 수 있다. 타입 기반의 분할은 한 번의 분할을 지원하는 방식일 수 있다. 트리 기반의 분할과 비교하면 타입 기반의 분할을 통해 획득된 블록은 더 이상의 추가 분할은 불가능할 수 있다. 이는 분할 허용 깊이가 0인 예(예를 들어, 단일 계층 분할)일 수 있다.
도 31은 본 발명의 블록 분할부에서 획득할 수 있는 다양한 블록의 형태를 나타낸 예시도이다.
도 31을 참조하면, 분할 설정, 분할 방식에 따라 31a 내지 31s의 블록을 획득할 수 있으며, 도시되지 않은 추가적인 블록 형태 또한 가능할 수 있다.
일 예로, 트리 기반의 분할에 비대칭 분할을 허용할 수 있다. 예를 들어, 바이너리 트리의 경우 도 31b, 31c와 같은 블록(본 예에서 복수의 블록으로 분할된 경우)이 가능할 수 있거나 또는 도 31b ~ 31g와 같은 블록(본 예에서 복수의 블록으로 분할된 경우)이 가능할 수 있다. 비대칭 분할을 허용하는 플래그가 부/복호화 설정에 따라 명시적 또는 묵시적으로 비활성화될 경우 획득 가능한 후보 블록은 31b 또는 31c(본 예는 가로와 세로의 중복 분할을 허용하지 않는 가정)일 수 있고, 비대칭 분할을 허용하는 플래그가 활성화될 경우 획득 가능한 후보 블록은 31b, 31d, 31e(본 예에서 가로 분할)일 수 있거나 31c, 31f, 31g(본 예에서 세로 분할)일 수 있다. 본 예는 가로 또는 세로 분할 플래그에 의해 분할 방향이 결정되고 비대칭 허용 플래그에 따라 블록 형태가 결정되는 경우에 해당할 수 있으며, 이에 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
일 예로, 트리 기반의 분할에 추가적인 트리 분할을 허용할 수 있다. 예를 들어, 트리플 트리, 쿼드 타입 트리, 옥타 트리 등의 분할이 가능할 수 있으며, 이를 통해 n개의 분할 블록(본 예에서 3, 4, 8. n은 정수)을 획득할 수 있다. 트리플 트리의 경우 지원되는 블록(본 예에서 복수의 블록으로 분할된 경우)은 31h ~ 31m일 수 있고, 쿼드 타입 트리의 경우 지원되는 블록은 31n ~ 31p일 수 있고, 옥타 트리의 경우 지원되는 블록은 31q일 수 있다. 상기 트리 기반의 분할의 지원 여부는 부/복호화 설정에 따라 묵시적으로 정해지거나 또는 명시적으로 관련 정보가 생성될 수 있다. 또한, 부/복호화 설정에 따라 단독으로 사용되거나 또는 바이너리 트리, 쿼드 트리 분할이 혼합 사용될 수 있다. 예를 들어, 바이너리 트리의 경우 도 31b, 31c와 같은 블록이 가능할 수 있고, 바이너리 트리와 트리플 트리가 혼합 사용되는 경우(본 예는 바이너리 트리의 사용 범위와 트리플 트리의 사용 범위가 일부 중복되는 경우라 가정) 31b, 31c, 31i, 31l와 같은 블록이 가능할 수 있다. 기존 트리 외의 추가 분할을 허용하는 플래그가 부/복호화 설정에 따라 명시적 또는 묵시적으로 비활성화될 경우 획득 가능한 후보 블록은 31b 또는 31c일 수 있고, 활성화될 경우 획득 가능한 후보 블록은 31b, 31i 또는 31b, 31h, 31i, 31j(본 예에서 가로 분할)일 수 있거나 31c, 31l 또는 31c, 31k, 31l, 31m(본 예에서 세로 분할)일 수 있다. 본 예는 가로 또는 세로 분할 플래그에 의해 분할 방향이 결정되고 추가 분할을 허용하는 플래그에 따라 블록 형태가 결정되는 경우에 해당할 수 있으며, 이에 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
일 예로, 타입 기반의 블록에 비사각 분할(Non-Rectangular Partition)을 허용할 수 있다. 예를 들어, 31r, 31s와 같은 형태의 분할이 가능할 수 있다. 전술한 타입 기반의 블록 후보군과 결합할 경우 31a, 31b, 31c, 31h, 31r, 31s 또는 31a ~ 31h, 31r, 31s의 블록이 지원되는 블록일 수 있다. 또한, 31h ~ 31m와 같은 n개의 분할(예를 들어, n은 정수. 본 예는 1, 2, 4를 제외한 3)을 지원하는 블록이 후보군에 포함될 수 있다.
부/복호화 설정에 따라 분할 방식이 정해질 수 있다.
일 예로, 블록의 종류에 따라 분할 방식이 정해질 수 있다. 예를 들어, 부호화 블록과 변환 블록은 트리 기반의 분할을, 예측 블록은 타입 기반의 분할 방식을 사용할 수 있다. 또는, 두 방식의 조합된 형태의 분할 방식을 사용할 수 있다. 예를 들어, 예측 블록은 트리 기반의 분할과 타입 기반의 분할을 혼합하는 분할 방식을 사용할 수 있으며, 블록의 적어도 하나의 범위에 따라 적용되는 분할 방식이 다를 수 있다.
일 예로, 블록의 크기에 따라 분할 방식이 정해질 수 있다. 예를 들어, 블록의 최대값과 최소값 사이에서 일부 범위(예를 들어, a×b ~ c×d. 후자가 더 큰 크기인 경우)에는 트리 기반의 분할을, 일부 범위(예를 들어, e×f ~ g×h)에는 타입 기반의 분할이 가능할 수 있다. 이 경우, 분할 방식에 따른 범위 정보가 명시적으로 생성될 수 있거나 묵시적으로 정해질 수 있다.
일 예로, 블록(또는 분할 전 블록)의 형태에 따라 분할 방식이 정해질 수 있다. 예를 들어, 블록의 형태가 정사각일 경우 트리 기반의 분할과 타입 기반의 분할이 가능할 수 있다. 또는, 블록의 형태가 직사각일 경우에 트리 기반의 분할이 가능할 수 있다.
부/복호화 설정에 따라 분할 설정이 정해질 수 있다.
일 예로, 블록의 종류에 따라 분할 설정이 정해질 수 있다. 예를 들어, 트리 기반의 분할에서 부호화 블록과 예측 블록은 쿼드 트리, 변환 블록은 바이너리 트리 분할을 사용할 수 있다. 또는, 부호화 블록의 경우 분할 허용 깊이는 m, 예측 블록의 경우 분할 허용 깊이는 n, 변환 블록의 경우 분할 허용 깊이는 o로 설정할 수 있으며, m과 n과 o는 동일하거나 동일하지 않을 수 있다.
일 예로, 블록의 크기에 따라 분할 설정이 정해질 수 있다. 예를 들어, 블록의 일부 범위(예를 들어, a×b ~ c×d)에는 쿼드 트리 분할을, 일부 범위(예를 들어, e×f ~ g×h. 본 예에서 c×d는 g×h보다 크다고 가정)에는 바이너리 트리 분할이 가능할 수 있다. 이때, 상기 범위로 블록의 최대값과 최소값 사이의 모든 범위를 포함할 수 있고, 상기 범위는 서로 중첩되지 않은 설정을 갖거나 중첩되는 설정을 가질 수 있다. 예를 들어, 일부 범위의 최소값은 일부 범위의 최대값과 동일하거나 또는 일부 범위의 최소값은 일부 범위의 최대값보다 작을 수 있다. 중첩되는 범위를 가질 경우 더 높은 최대값을 갖는 분할 방식이 우선 순위를 가질 수 있다. 즉, 우선 순위를 갖는 분할 방식에서 분할 결과에 따라 후순위를 갖는 분할 방식의 수행 여부가 정해질 수 있다. 이 경우, 트리 종류에 따른 범위 정보가 명시적으로 생성될 수 있거나 묵시적으로 정해질 수 있다.
다른 예로, 블록의 일부 범위(상기 예와 동일)에는 일부 후보군을 갖는 타입 기반의 분할을, 일부 범위(상기 예와 동일)에는 일부 후보군(본 예에서 전자의 후보군과 적어도 하나의 구성이 다름)을 갖는 타입 기반의 분할이 가능할 수 있다. 이때, 상기 범위로 블록의 최대값과 최소값 사이의 모든 범위를 포함할 수 있고, 상기 범위는 서로 중첩되지 않는 설정을 가질 수 있다.
일 예로, 블록의 형태에 따라 분할 설정이 정해질 수 있다. 예를 들어, 블록의 형태가 정사각일 경우 쿼드 트리 분할이 가능할 수 있다. 또는, 블록의 형태가 직사각일 경우에 바이너리 트리 분할이 가능할 수 있다.
일 예로, 부/복호화 정보(예를 들어, 슬라이스 타입, 컬러 성분, 부호화 모드 등)에 따라 분할 설정이 정해질 수 있다. 예를 들어, 슬라이스 타입이 I일 경우 쿼드 트리(또는 바이너리 트리) 분할은 일부 범위(예를 들어, a×b ~ c×d), P일 경우 일부 범위(예를 들어, e×f ~ g×h), B일 경우 일부 범위(예를 들어, i×j ~ k×l)에서 가능할 수 있다. 또한, 슬라이스 타입이 I일 경우 쿼드 트리(또는 바이너리 트리) 분할의 분할 허용 깊이 m, P일 경우 분할 허용 깊이 n, B일 경우 분할 허용 깊이 o으로 설정할 수 있으며, m과 n과 o는 동일하거나 동일하지 않을 수 있다. 일부 슬라이스 타입의 경우 다른 슬라이스(예를 들어, P와 B 슬라이스)와 동일한 설정을 가질 수 있다.
다른 예로, 컬러 성분이 휘도 성분일 경우 쿼드 트리(또는 바이너리 트리) 분할 허용 깊이를 m, 색차 성분일 경우 n으로 설정할 수 있으며, m과 n은 동일하거나 동일하지 않을 수 있다. 또한, 컬러 성분이 휘도 성분일 경우 쿼드 트리(또는 바이너리 트리) 분할의 범위(예를 들어, a×b ~ c×d)와 색차 성분일 경우 쿼드 트리(또는 바이너리 트리) 분할의 범위(예를 들어, e×f ~ g×h)는 동일하거나 동일하지 않을 수 있다.
다른 예로, 부호화 모드가 Intra일 경우 쿼드 트리(또는 바이너리 트리) 분할 허용 깊이가 m, Inter일 경우 n(본 예에서 n은 m보다 크다고 가정)일 수 있으며, m과 n은 동일하거나 동일하지 않을 수 있다. 또한, 부호화 모드가 Intra일 경우 쿼드 트리(또는 바이너리 트리) 분할의 범위와 부호화 모드가 Inter일 경우 쿼드 트리(또는 바이너리 트리) 분할의 범위는 동일하거나 동일하지 않을 수 있다.
상기 예의 경우 부/복호화 정보에 따른 적응적인 분할 후보군 구성 지원 여부에 대한 정보가 명시적으로 생성될 수 있거나 묵시적으로 정해질 수 있다.
상기 예를 통해 부/복호화 설정에 따라 분할 방식과 분할 설정이 정해지는 경우를 설명하였다. 상기 예는 각 요소에 따른 일부 경우를 나타내며, 다른 경우로의 변형 또한 가능할 수 있다. 또한, 복수의 요소에 의한 조합에 따라 분할 방식과 분할 설정이 정해질 수도 있다. 예를 들어, 블록의 종류, 크기, 형태, 부/복호화 정보 등에 의해 분할 방식과 분할 설정이 정해질 수 있다.
또한, 상기 예에서 분할 방식, 설정 등에 관여하는 요소들은 묵시적으로 정해지거나 또는 명시적으로 정보를 생성하여 상기 예와 같은 적응적인 경우의 허용 여부를 정할 수 있다.
상기 분할 설정 중 분할 깊이는 초기 블록을 기준으로 공간적으로 분할한 횟수(본 예에서 초기 블록의 분할 깊이는 0)를 의미하며, 분할 깊이가 증가할수록 더 작은 블록으로 분할될 수 있다. 이는 분할 방식에 따라 깊이 관련 설정을 달리할 수 있다. 예를 들어, 트리 기반의 분할을 수행하는 방식 중 쿼드 트리의 분할 깊이와 바이너리 트리의 분할 깊이는 공통되는 하나의 깊이를 사용할 수 있고, 트리의 종류에 따른 개별적인 깊이를 사용할 수 있다.
상기 예에서 트리의 종류에 따라 개별적인 분할 깊이를 사용하는 경우 트리의 분할 시작 위치(본 예에서 분할을 수행하기 전 블록)에서 분할 깊이 0으로 설정할 수 있다. 각 트리의 분할 범위(본 예에서 최대값)에 기반하지 않고 분할이 시작되는 위치를 중심으로 분할 깊이가 계산될 수 있다.
도 32는 본 발명의 일 실시예에 따른 트리 기반의 분할을 설명하기 위한 예시도이다.
32a는 쿼드 트리와 바이너리 트리 분할 예를 나타낸다. 상세하게는, 32a의 좌상 블록은 쿼드 트리 분할, 우상 블록과 좌하 블록은 쿼드 트리와 바이너리 트리 분할, 우하 블록은 바이너리 트리 분할 예를 나타낸다. 그림에서 실선(본 예에서 Quad1)은 쿼드 트리로 분할된 경계선을, 점선(본 예에서 Binary1)은 바이너리 트리로 분할된 경계선을, 굵은 실선(본 예에서 Binary2)은 바이너리 트리로 분할된 경계선을 의미한다. 점선과 굵은 실선의 차이는 분할 방법의 차이에 있다.
일 예로, (좌상 블록은 쿼드 트리 분할 허용 깊이가 3. 현재 블록이 N × N인 경우 가로 또는 세로 중 하나가 (N >> 3)에 도달할 때까지 분할을 수행하되 분할 정보는 (N >> 2)까지의 분할 정보를 생성. 이는 후술하는 예에 공통 적용. 쿼드 트리의 최대값과 최소값은 N × N, (N >> 3) × (N >> 3)이라 가정) 좌상 블록은 쿼드 트리 분할이 수행되는 경우 가로, 세로 길이의 1/2씩의 길이를 갖는 4개의 블록으로 분할될 수 있다. 분할 플래그의 경우 분할이 활성화된 경우 '1', 분할이 비활성화된 경우 '0'의 값을 가질 수 있다. 상기 설정에 따라 좌상 블록의 분할 플래그는 32b의 좌상 블록과 같이 발생할 수 있다.
일 예로, (우상 블록은 쿼드 트리 분할 허용 깊이가 0. 바이너리 트리 분할 허용 깊이가 4. 쿼드 트리 분할의 최대값과 최소값은 N × N, (N >> 2) × (N >> 2). 바이너리 트리의 최대값과 최소값은 (N >> 1) × (N >> 1), (N >> 3) × (N >> 3) 라 가정) 우상 블록은 초기 블록에서 쿼드 트리 분할을 수행하는 경우 가로, 세로 길이의 1/2씩의 길이를 갖는 4개의 블록으로 분할될 수 있다. 분할된 블록의 크기는 (N >> 1) × (N >> 1)이며, 이는 본 예의 설정에 따라 바이너리 트리 분할(본 예에서 쿼드 트리 분할의 최소값보다 크나 분할 허용 깊이가 제한되는 경우)이 가능할 수 있다. 즉, 본 예는 쿼드 트리 분할과 바이너리 트리 분할의 중첩 사용이 불가능한 예일 수 있다. 본 예의 바이너리 트리의 분할 정보는 복수의 분할 플래그로 구성될 수 있다. 일부 플래그는 가로 분할 플래그(본 예에서 x/y의 x에 해당), 일부 플래그는 세로 분할 플래그(본 예에서 x/y에서 y에 해당)일 수 있으며, 분할 플래그의 구성은 쿼드 트리 분할과 비슷한 설정(예를 들어, 활성화 여부)을 가질 수 있다. 본 예에서는 상기 두 플래그는 중복해서 활성화될 수 있다. 그림에서 '-'로 플래그 정보가 생성된 경우 '-'는 트리 분할에 따른 최대값, 최소값, 분할 허용 깊이 등의 조건에 따라 추가적으로 분할이 불가능한 경우에 발생할 수 있는 플래그의 묵시적인 처리에 해당할 수 있다. 상기 설정에 따라 우상 블록의 분할 플래그는 32b의 우상 블록과 같이 발생할 수 있다.
일 예로, (좌하 블록은 쿼드 트리 분할 허용 깊이가 3. 바이너리 트리 분할 허용 깊이가 2. 쿼드 트리 분할의 최대값과 최소값은 N × N, (N >> 3) × (N >> 3). 바이너리 트리 분할의 최대값과 최소값은 (N >> 2) × (N >> 2), (N >> 4) × (N >> 4). 중첩되는 범위에서 분할 우선 순위는 쿼드 트리 분할에 주어진다 가정) 좌하 블록은 초기 블록에서 쿼드 트리 분할을 수행하는 경우 가로, 세로 길이의 1/2씩의 길이를 갖는 4개의 블록으로 분할될 수 있다. 분할된 블록의 크기는 (N >> 1) × (N >> 1)이며, 이는 본 예의 설정에 따라 쿼드 트리 분할과 바이너리 트리 분할이 가능할 수 있다. 즉, 본 예는 쿼드 트리 분할과 바이너리 트리 분할의 중첩 사용이 가능한 예일 수 있다. 이 경우 우선 순위가 주어지는 쿼드 트리 분할 결과에 따라 바이너리 트리 분할의 수행 여부가 결정될 수 있다. 쿼드 트리 분할이 수행되는 경우 바이너리 트리 분할은 수행되지 않고, 쿼드 트리 분할이 수행되지 않는 경우 바이너리 트리 분할이 수행될 수 있다. 쿼드 트리 분할이 수행되지 않는 경우 상기 설정에 따라 분할이 가능한 조건이더라도 더 이상의 쿼드 트리 분할은 불가능할 수 있다. 본 예의 바이너리 트리의 분할 정보는 복수의 분할 플래그로 구성될 수 있다. 일부 플래그는 분할 플래그(본 예에서 x/y에서 x에 해당), 일부 플래그는 분할 방향 플래그(본 예에서 x/y에서 y에 해당. x에 따라 y 정보 생성 여부가 결정될 수 있음)일 수 있으며, 분할 플래그는 쿼드 트리 분할과 비슷한 설정을 가질 수 있다. 본 예에서는 가로 분할과 세로 분할이 중복되어 활성화될 수 없다. 그림에서 '-'로 플래그 정보가 생성된 경우 '-'은 상기 예와 비슷한 설정을 가질 수 있다. 상기 설정에 따라 좌하 블록의 분할 플래그는 32b의 좌하 블록과 같이 발생할 수 있다.
일 예로, (우하 블록은 바이너리 트리 분할 허용 깊이가 5. 바이너리 트리 분할의 최대값과 최소값은 N × N, (N >> 2) × (N >> 3)이라 가정) 우하 블록은 초기 블록에서 바이너리 트리 분할을 수행하는 경우 가로 또는 세로 길이의 1/2의 길이를 갖는 2개의 블록으로 분할될 수 있다. 본 예의 분할 플래그 설정은 좌하 블록과 동일할 수 있다. 그림에서 '-'로 플래그 정보가 생성된 경우 '-'은 상기 예와 비슷한 설정을 가질 수 있다. 본 예는 바이너리 트리의 가로, 세로의 최소값이 다르게 설정되는 경우를 나타낸다. 상기 설정에 따라 우하 블록의 분할 플래그는 32b의 우하 블록과 같이 발생할 수 있다.
상기 예와 같이 블록 정보(예를 들어, 블록의 종류, 크기, 형태, 위치, 슬라이스 타입, 컬러 성분 등)를 확인한 후 그에 따른 분할 방식과 분할 설정을 정할 수 있으며, 그에 따른 분할 과정을 수행할 수 있다.
도 33은 본 발명의 일 실시예에 따른 트리 기반의 분할을 설명하기 위한 예시도이다.
33a와 33b의 블록을 참조하면, 굵은 실선(L0)은 최대 부호화 블록을, 굵은 실선과 다른 선(L1~L5)으로 구획된 블록은 분할된 부호화 블록을 의미하며, 블록 내부의 숫자는 분할된 서브 블록의 위치(본 예에서 Raster Scan 순서를 따름)를 의미하며 '-’의 개수는 해당 블록이 갖는 분할 깊이를 의미하고, 블록 간의 경계선의 숫자는 분할된 횟수를 의미할 수 있다. 예를 들어, 4분할된 경우(본 예에서 쿼드 트리) UL(0)-UR(1)-DL(2)-DR(3)의 순서로, 2분할된 경우(본 예에서 바이너리 트리) L 또는 U(0) - R 또는 D(1)의 순서를 가질 수 있으며, 이는 각 분할 깊이에서 정의될 수 있다. 후술하는 예는 획득 가능한 부호화 블록이 제한적인 경우를 나타낸다.
일 예로, 33a의 최대 부호화 블록이 64×64이고, 최소 부호화 블록은 16×16이며 쿼드 트리 분할을 사용한다고 가정한다. 이 경우, 2-0, 2-1, 2-2 블록(본 예에서 16×16 크기)이 최소 부호화 블록 크기와 같기 때문에, 2-3-0, 2-3-1, 2-3-2. 2-3-3 블록(본 예에서 8×8크기)과 같은 더 작은 블록으로 분할되지 않을 수 있다. 이 경우 2-0, 2-1, 2-2, 2-3 블록에서는 획득 가능한 블록은 16×16 블록, 즉 하나의 후보군을 갖기 때문에 블록 분할 정보가 생성되지 않는다.
일 예로 33b의 최대 부호화 블록이 64×64이고, 최소 부호화 블록은 가로 또는 세로 길이로 8, 허용 가능한 분할 깊이는 3이라고 가정한다. 이 경우, 1-0-1-1(본 예에서 16×16 크기. 분할 깊이는 3) 블록이 최소 부호화 블록 조건을 만족하기 때문에 더 작은 블록으로 분할될 수 있다. 그러나 허용 가능한 분할 깊이와 같기 때문에 더 높은 분할 깊이의 블록(본 예에서 1-0-1-0-0, 1-0-1-0-1 블록)으로 분할되지 않을 수 있다. 이 경우 1-0-1-0, 1-0-1-1 블록에서는 획득 가능한 블록은 16×8 블록, 즉 하나의 후보군을 갖기 때문에 블록 분할 정보가 생성되지 않는다.
상기 예와 같이 부/복호화 설정에 따라 쿼드 트리 분할을 지원하거나 바이너리 트리 분할을 지원할 수 있다. 또는, 쿼드 트리 분할과 바이너리 트리 분할을 혼합하여 지원할 수도 있다. 예를 들어, 블록 크기, 분할 깊이 등에 따라 상기 방식 중 하나 또는 그들을 혼합하여 지원할 수 있다. 블록이 제 1 블록 범위에 속할 경우에는 쿼드 트리, 제 2 블록 범위에 속할 경우에는 바이너리 트리 분할을 지원할 수 있다. 복수의 분할 방식이 지원될 경우 각 방식에 따른 최대 부호화 블록 크기, 최소 부호화 블록 크기, 허용 가능한 분할 깊이 등의 적어도 하나의 설정을 가질 수 있다. 상기 범위는 서로의 범위가 중첩되어 설정될 수도 있고, 그렇지 않을 수도 있다. 또는, 어느 하나의 범위가 다른 범위를 포함하는 설정 또한 가능할 수 있다. 이에 대한 설정은 슬라이스 타입, 부호화 모드, 컬러 성분 등의 개별적이거나 혼합적인 요소에 따라 정해질 수 있다.
일 예로, 슬라이스 타입에 따라 분할 설정이 정해질 수 있다. I 슬라이스일 경우에 지원되는 분할 설정은 쿼드 트리의 경우 128×128 ~ 32×32 범위에서의 분할을, 바이너리 트리의 경우 32×32 ~ 8×8 범위에서의 분할을 지원할 수 있다. P/B 슬라이스일 경우에 지원되는 블록 분할 설정은 쿼드 트리의 경우 128×128 ~ 32×32 범위에서의 분할을, 바이너리 트리의 경우 64×64 ~ 8×8 범위에서의 분할을 지원할 수 있다.
일 예로, 부호화 모드에 따라 분할 설정이 정해질 수 있다. 부호화 모드가 Intra일 경우에 지원되는 분할 설정은 바이너리 트리의 경우 64×64 ~ 8×8 범위에서의 분할과 허용 가능한 분할 깊이를 2를 지원할 수 있다. Inter일 경우에 지원되는 분할 설정은 바이너리 트리의 경우 32×32 ~ 8×8 범위에서의 분할과 허용 가능한 분할 깊이를 3을 지원할 수 있다.
일 예로, 컬러 성분에 따라 분할 설정이 정해질 수 있다. 휘도 성분일 경우에 쿼드 트리의 경우 256×256 ~ 64×64 범위에서의 분할을, 바이너리 트리의 경우 64×64 ~ 16×16 범위에서의 분할을 지원할 수 있다. 색차 성분일 경우에 쿼드 트리의 경우 휘도 성분과 동일한 설정(본 예에서 색차 포맷에 따라 각 블록의 길이가 비례하는 설정)을, 바이너리 트리의 경우 64×64 ~ 4×4 범위(본 예에서 이에 동일한 휘도 성분에서의 범위는 128×128 ~ 8×8. 4:2:0에서의 가정)에서의 분할을 지원할 수 있다.
상기 예는 블록의 종류에 따라 분할 설정을 달리 두는 경우를 설명하였다. 또한, 일부 블록의 경우 다른 블록과 결합되어 하나의 분할 과정을 수행할 수 있다. 예를 들어, 부호화 블록과 변환 블록이 하나의 단위로 결합할 경우 최적의 블록의 크기 및 형태를 획득하기 위한 분할 과정이 수행되며, 이는 부호화 블록의 최적의 크기 및 형태뿐만 아니라 변환 블록의 최적의 크기 및 형태일 수 있다. 또는, 부호화 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 예측 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 부호화 블록과 예측 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 그 외의 블록들의 결합이 가능할 수 있다.
본 발명에서 각 블록에 개별적인 분할 설정을 두는 경우를 중심으로 설명하였지만, 복수의 단위가 하나로 결합되어 하나의 분할 설정을 갖는 경우 또한 가능할 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다.
본 발명에서 예측부는 화면내 예측과 화면간 예측으로 분류될 수 있으며, 화면내 예측과 화면간 예측은 다음과 같이 정의할 수 있다.
화면내 예측은 현재 영상(예를 들어, 픽쳐, 슬라이스, 타일 등)의 부/복호화가 완료된 영역으로부터 예측값을 생성하는 기술일 수 있고, 화면간 예측은 현재 영상 이전에 적어도 하나의 부/복호화가 완료된 영상(예를 들어, 픽쳐, 슬라이스, 타일 등)으로부터 예측값을 생성하는 기술일 수 있다.
또는, 화면내 예측은 현재 영상의 부/복호화가 완료된 영역으로부터 예측값을 생성하는 기술일 수 있으나 일부 예측 방법{예를 들어, 참조 영상으로부터 예측값을 생성하는 방법. 블록 매칭(Block Matching), 템플릿 매칭(Template Matching) 등}은 제외하는 예측일 수 있고, 화면간 예측은 적어도 하나의 부/복호화가 완료된 영상으로부터 예측값을 생성하는 기술일 수 있으며, 상기 부/복호화가 완료된 영상은 현재 영상을 포함하여 구성될 수 있다.
부/복호화 설정에 따라 상기 정의 중 하나를 따를 수 있으며, 후술하는 예에서는 첫 번째 정의를 따르는 것을 가정하여 설명한다. 또한, 예측값은 공간 영역에서 예측을 통해 획득되는 값이라는 가정 하에 설명하지만 이에 한정되지 않는다.
다음은 본 발명에서 예측부의 화면내 예측에 대한 설명을 할 것이다.
본 발명의 일 실시예에 따른 영상 부호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 참조 화소 구성 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 포함할 수 있다. 또한, 영상 부호화 장치는 참조 화소 구성 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 구현하는 참조 화소 구성부, 예측 블록 생성부, 예측 모드 부호화부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
도 34는 화면내 예측에 사용되는 참조 화소 구성을 설명하기 위한 예시도이다. 예측이 수행되는 현재 블록의 크기 및 형태(M × N)는 블록 분할부로부터 획득될 수 있으며, 화면내 예측을 위해 4×4 내지 128×128 범위에서 지원되는 가정 하에 설명한다. 화면내 예측은 예측 블록 단위로 수행되는 것이 일반적일 수 있으나 블록 분할부의 설정에 따라 부호화 블록, 변환 블록 등의 단위로 수행될 수 있다. 블록 정보를 확인한 후 참조 화소 구성부에서는 현재 블록의 예측에 사용되는 참조 화소를 구성할 수 있다. 이때, 참조 화소는 임시 메모리(예를 들어, 배열<Array>. 1차, 2차 배열 등)를 통해 관리될 수 있으며, 블록의 화면내 예측 과정마다 생성 및 제거되고, 임시 메모리의 크기는 참조 화소의 구성에 따라 결정될 수 있다.
본 예에서는 현재 블록을 중심으로 좌, 상, 좌상, 우상, 좌하 블록이 현재 블록의 예측에 사용되는 경우를 가정하여 설명하지만, 이에 한정되지 않고 다른 구성의 블록 후보군이 현재 블록의 예측에 사용될 수도 있다. 예를 들어, 상기 참조 화소를 위한 이웃 블록의 후보군은 래스터 또는 Z 스캔을 따르는 경우의 일 예일 수 있으며, 스캔 순서에 따라 상기 후보군 중 일부를 제거할 수 있거나 또는 다른 블록 후보군(예를 들어, 우, 하, 우하 블록 등이 추가 구성)을 포함하여 구성될 수 있다. 또는, 다른 컬러 공간(예를 들어, 현재 블록이 Cr에 속할 경우 다른 컬러 공간은 Y 또는 Cb가 해당)에서 현재 블록과 대응되는 블록(예를 들어, 각 컬러 공간에서 동일 좌표 또는 컬러 성분 구성 비율에 따라 대응되는 좌표를 갖는 경우)이 현재 블록의 예측에 사용될 수 있다. 또한, 설명의 편의를 위해 상기 기 설정된 위치(좌, 상, 좌상, 우상, 좌하)에 하나의 블록으로 구성된 예를 가정하여 설명하지만, 해당 위치에는 적어도 하나의 블록이 존재할 수 있다. 즉, 상기 기 설정된 위치에는 해당 블록의 블록 분할에 따른 복수의 블록이 존재할 수 있다.
도 34와 같이 현재 블록의 예측에 사용되는 참조 화소는 좌, 상, 좌상, 우상, 좌하 블록의 인접한 화소(도 34의 Ref_L, Ref_T, Ref_TL, Ref_TR, Ref_BL)로 구성할 수 있다. 이때, 참조 화소는 현재 블록과 가장 인접한 이웃 블록의 화소들(도 34 a)로 구성하는 것이 일반적이나 그 외의 화소들(도 34 b와 그 외의 바깥 라인의 화소들)로 구성하는 것도 가능할 수 있다. 본 예에서는 가장 인접한 이웃 블록의 화소들로 참조 화소가 구성되는 경우를 중심으로 설명한다.
도 34와 같이 현재 블록의 화소는 p(0,0)에서 p(M-1,N-1)의 범위에 위치할 수 있고, 상측으로 p(0,-1) ~ p(2M-1,-1) (Ref_T + Ref_TR), 좌측으로 p(-1,0) ~ p(-1,2N-1) (Ref_L + Ref_BL), 좌상측으로 p(-1,-1) (Ref_TL)의 범위에 위치할 수 있으며, 이는 참조 화소의 존재가 가능한 최대 범위를 의미할 수 있다.
상세하게는, 블록의 크기, 형태, 예측 모드의 구성 등에 따라 참조 화소의 범위가 결정될 수 있다. 예를 들어, 방향성 모드가 y축을 기준으로 -π/2 rad (또는 -135도)에서 +π/4 rad (또는 45도)사이의 범위에서 지원될 경우, 현재 블록의 우측 하단의 화소{p(M-1,N-1)}를 기준으로 참조 화소의 범위를 확인할 수 있다.
정리하면, 우측 하단의 화소를 예측하기 위해 상측(Ref_T, Ref_TR)과 좌측 블록(Ref_L, Ref_BL)에서 사용되는 화소를 통해 참조 화소 범위를 확인할 수 있다. 본 예에서 참조 화소는 p(0,-1) ~ p(M+N-1,-1), p(-1,0) ~ p(-1,N+M-1), p(-1,-1)의 범위 내에 존재할 수 있다.
도 35는 화면내 예측에 사용되는 참조 화소 범위를 설명하기 위한 예시도이다. 상세하게는, 블록의 크기, 형태, 예측 모드의 구성(본 예에서 예측 모드의 각도 정보) 등에 따라 결정되는 참조 화소 범위를 나타낸다. 도 35에서 화살표가 가리키는 위치는 예측에 사용되는 화소를 의미한다.
도 35를 참조하면, A, A', B, B', C 화소는 8×2, 2×8, 8×4, 4×8, 8×8 블록의 우측 하단의 화소를 의미하며, 해당 화소의 예측을 위해 상측과 좌측 블록에서 사용되는 화소(AT, AL, BT, BL, CT, CL)를 통해 각 블록의 참조 화소 범위를 확인할 수 있다.
예를 들어, A와 A'화소(직사각 블록)의 경우 p(0,-1) ~ p(9,-1), p(-1,0) ~ p(-1,9), p(-1,-1)의 범위에, B와 B'화소(직사각 블록)의 경우 p(0,-1) ~ p(11,-1), p(-1,0) ~ p(-1,11), p(-1,-1)의 범위에, C 화소(정사각 블록)의 경우 p(0,-1) ~ p(15,-1), p(-1,0) ~ p(-1,15), p(-1,-1)의 범위에 참조 화소가 위치할 수 있다.
도 36은 HEVC의 화면내 예측 모드를 나타낸 예시도이다.
도 36을 참조하면, 35개의 예측 모드를 나타내고 있으며, 33개의 방향성 모드와 2개의 비방향성 모드(DC, Planar)로 분류할 수 있다. 이때, 방향성 모드는 기울기(예를 들어, dy/dx) 또는 각도 정보로 식별할 수 있다. 상기 예는 휘도 성분 또는 색차 성분에 대한 예측 모드 후보군을 의미할 수 있다. 또는, 색차 성분은 일부 예측 모드(예를 들어, DC, Planar, 수직, 수평, 대각선 모드 등)가 지원될 수 있다. 또한, 휘도 성분의 예측 모드가 결정되면 해당 모드를 색차 성분의 예측 모드로 포함하거나 해당 모드로부터 유도되는 모드를 예측 모드로 포함할 수 있다.
또한, 컬러 공간 간의 상관성을 이용하여 부/복호화가 완료된 다른 컬러 공간의 복원 블록을 현재 블록의 예측에 사용할 수 있고, 이를 지원하는 예측 모드를 포함할 수 있다. 예를 들어, 색차 성분의 경우 현재 블록과 대응되는 휘도 성분의 복원된 블록을 현재 블록의 예측 블록으로 생성할 수 있다. 또는, 일부 색차 성분(Cr)의 현재 블록과 대응되는 일부 색차 성분(Cb)의 복원된 블록을 예측 블록으로 생성할 수 있다. 이때, 다른 컬러 공간의 복원된 블록을 그대로 예측 블록으로 생성할 수 있다. 또는, 컬러 공간 간의 상관성을 고려하여 복원된 블록을 예측 블록으로 생성할 수 있다.
컬러 공간 간의 상관성 정보는 명시적으로 관련 정보가 생성될 수 있거나 또는 묵시적으로 각 컬러 공간의 참조 화소를 통해 확인할 수 있다. 상관성 정보에 기반하여 적어도 하나의 파라미터가 생성될 수 있으며, 다른 컬러 공간의 복원된 블록에 곱해지거나 더해지는 값으로 사용될 수 있다. 묵시적인 경우에는 현재 블록의 인접한 영역의 복원된 화소와 이에 대응되는 다른 컬러 공간의 복원된 화소로부터 상기 파라미터 정보를 유도할 수 있다.
상기 예를 통해 전술한 예측 모드의 경우 관련 정보(예를 들어, 지원 여부에 대한 정보, 파라미터 정보 등)가 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 포함될 수 있다.
부/복호화 설정에 따라 예측 모드 후보군을 적응적으로 결정할 수 있다. 예측의 정확도를 높이기 위한 목적으로 후보군의 수를 늘릴 수 있고, 예측 모드에 따른 비트량을 줄이기 위한 목적으로 후보군의 수를 줄일 수 있다.
예를 들어, A 후보군(67개. 65개 방향성 모드와 2개의 비방향성 모드), B 후보군(35개. 33개의 방향성 모드와 2개의 비방향성 모드), C 후보군(18개. 17개의 방향성 모드와 1개의 비방향성 모드) 등의 후보군 중 하나를 선택할 수 있다. 본 발명에서 특별한 언급이 없을 때, 기 설정된 하나의 예측 모드 후보군(A 후보군)으로 화면내 예측을 수행하는 경우를 가정하여 설명한다.
예측 블록 생성부에서 적어도 하나의 예측 모드에 따라 예측 블록을 생성할 수 있으며, 상기 예측 모드에 기반하여 참조 화소를 사용할 수 있다. 이때, 참조 화소는 예측 모드에 따라 외삽(Extrapolation) 등의 방법(방향성 모드)에 사용될 수 있고, 내삽(Interpolation) 또는 평균(DC) 또는 복사(Copy) 등의 방법(비방향성 모드)에 사용될 수 있다.
예를 들어, 방향성 모드의 경우 수평과 일부 대각선 모드(Diagonal up right. 수평은 제외되고 대각선은 포함) 사이의 모드는 좌하+좌 블록, 수평 모드는 좌 블록, 수평과 수직 사이의 모드는 좌+좌상+상 블록, 수직 모드는 상 블록, 수직과 일부 대각선 모드(Diagonal down left. 수직은 제외되고 대각선은 포함) 사이의 모드는 상+우상 블록의 참조 화소를 사용할 수 있다. 또는, 비방향성 모드의 경우 좌, 상 블록 또는 좌하, 좌, 좌상, 상, 우상 블록의 참조 화소를 사용할 수 있다. 또는, 컬러 공간의 상관성을 이용하는 모드의 경우 다른 컬러 공간의 복원된 블록을 참조 화소로 사용할 수 있다.
화면내 예측 방법은 방향성을 갖는 예측과 비방향성을 갖는 예측으로 분류가 가능하며, 방향성을 갖는 예측의 경우 직선형 예측과 곡선형 예측으로 분류할 수 있다.
직선형 예측에서 예측 화소는 외삽을 통해 예측 방향 선상에 놓인 참조 화소를 사용하여 생성될 수 있고, 곡선형 예측에서 예측 화소는 외삽을 통해 예측 방향 선상에 놓인 참조 화소를 사용하되 블록의 방향성을 고려하여 화소 단위, 행 또는 열 단위의 부분적인 예측 방향의 변동(예를 들어, 방향성을 갖는 예측 모드 간격의 a 차이를 허용. a는 예측 모드를 순차적으로 인덱스를 할당했을 때의 차이를 의미하며 0이 아닌 1, -1, 2, -2 등의 정수. 즉, 상기 예측 모드의 인접 모드를 의미. 이때, a는 블록의 크기 및 형태, 예측 화소의 위치, 예측 모드 등에 따라 결정됨)을 허용하는 방식을 의미할 수 있다.
360도 영상의 경우 3차원 공간에서 2차원 공간으로의 변환되기 때문에 에지 방향이 직선형에서 곡선형으로 변경되는 경우가 발생할 수 있다. 일반적인 직선형 예측의 경우 곡선형 에지를 포함하는 영역에 대한 예측이 어렵기 때문에, 작은 블록 단위로의 분할이 요구될 수 있으며, 이는 부호화 성능을 저하시킬 수 있다. 이를 위해 방향성 모드에 곡선형 예측 모드를 포함하여 예측 모드 후보군을 구성할 수 있다.
곡선형 예측의 지원 여부를 포함하는 관련 정보(예를 들어, 곡선형 예측 모드 선택 정보, 부분적인 예측 방향 변동 정보 등)가 생성될 수 있으며, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 명시적으로 생성될 수 있거나 영상의 종류, 특성 등(예를 들어, 360도 영상 + 일부 포맷)에 따라 묵시적으로 정해질 수 있다. 또한, 곡선형 예측은 모든 예측 블록에 지원될 수 있거나 일부 예측 블록에 지원될 수 있으며, 이는 블록의 크기, 형태, 영상 타입, 예측 모드 등에 따라 곡선형 예측의 적용 여부가 결정될 수 있다.
예를 들어, 360도 영상 부/복호화의 화면내 예측에 방향성 모드는 직선형 예측 모드와 곡선형 예측 모드를 포함하여 예측 모드 후보군을 구성할 수 있다. 또는, 360도 영상 부/복호화의 화면내 예측에 방향성 모드 중 직선형 예측 모드는 고정적으로 포함하고, 곡선형 모드는 부/복호화 설정(예를 들어, 투영 포맷, 영상 내 블록 위치, 블록 크기에 따른 범위, 영상의 타입 정보 등)에 따라 적응적으로 포함하여 예측 모드 후보군을 구성할 수 있다. 본 발명에서는 방향성을 갖는 예측의 경우 직선형 방향의 예측을 중심으로 설명한다.
예측 모드 결정부에서는 복수의 예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행된다. 일반적으로 블록의 왜곡{예를 들어, 현재 블록과 복원 블록의 Distortion. SAD(Sum of Absolute Difference), SSD(Sum of Square Difference 등}과 해당 모드에 따른 발생 비트량이 고려되는 율-왜곡(Rate-Distortion) 기법을 이용하여 부호화 비용 측면에서 최적인 모드를 결정할 수 있다. 상기 과정을 통해 결정되는 예측 모드에 기반하여 생성되는 예측 블록을 감산부와 가산부로 송신할 수 있다.
예측 모드 부호화부에서는 예측 모드 결정부를 통해 선정된 예측 모드를 부호화할 수 있다. 예측 모드 후보군에서 상기 예측 모드에 대응하는 인덱스 정보를 부호화할 수 있거나 또는 상기 예측 모드를 예측하여 그에 관한 정보를 부호화할 수 있다. 즉, 전자의 경우는 예측 모드를 예측 없이 그대로 부호화하는 방법을, 후자의 경우는 예측 모드의 예측을 수행하여 모드 예측 정보와 그에 기반하여 획득되는 정보를 부호화하는 방법을 의미한다. 또한, 전자의 경우는 색차 성분, 후자의 경우 휘도 성분에 적용될 수 있는 예이며, 이에 한정되지 않고 그 외의 경우 또한 가능할 수 있다.
예측 모드를 예측하여 부호화하는 경우에 예측 모드의 예측값(또는 예측 정보)을 MPM(Most Probable Mode)으로 지칭할 수 있다. 이때, 기 설정된 예측 모드(예를 들어, DC, Planar, 수직, 수평, 대각선 모드 등) 또는 공간적으로 인접한 블록(예를 들어, 좌, 상, 좌상, 우상, 좌하 블록 등)의 예측 모드 등을 MPM으로 구성할 수 있다. 본 예에서 대각선 모드는 Diagonal up right, Diagonal down right, Diagonal down left를 의미하고, 도 36의 2번, 18번, 34번 모드에 대응되는 모드일 수 있다.
또한, MPM 후보군에 기 포함된 모드로부터 유도되는 모드를 MPM 후보군으로 구성할 수 있다. 예를 들어, MPM 후보군에 포함된 모드 중 방향성 모드의 경우, 모드 간격이 a의 차이를 갖는 모드(예를 들어, a는 1, -1, 2, -2 등과 같은 0이 아닌 정수. 도 36에서 10번 모드가 기 포함된 모드인 경우 9번, 11번, 8번, 12번 모드 등이 유도되는 모드에 해당)를 새롭게(또는 추가적으로) MPM 후보군에 포함할 수 있다.
상기 예는 MPM 후보군이 복수 개의 모드로 구성되는 경우에 해당할 수 있으며, MPM 후보군(또는 MPM 후보군 개수)은 부/복호화 설정(예를 들어, 예측 모드 후보군, 영상 타입, 블록 크기, 블록 형태 등)에 따라 정해지며 적어도 하나의 모드를 포함하여 구성될 수 있다. 본 예에서 MPM 후보군은 1 내지 5개의 모드로 구성될 수 있다.
예를 들어, 예측 모드 후보군(또는 전체 모드의 개수)에 따라 MPM 후보군이 결정되는 가정 하에, 예측 모드 후보군이 10개 이하인 경우 1개, 10개 초과 20개 이하인 경우 2개, 20개 초과 40개 이하인 경우 3개, 40개 초과인 경우 5개의 모드로 MPM 후보군을 구성할 수 있다.
MPM 후보군 구성을 위한 예측 모드의 우선 순위가 존재할 수 있다. 상기 우선 순위에 따라 MPM 후보군에 포함되는 예측 모드 순서가 정해질 수 있으며, 상기 우선 순위에 따라 MPM 후보군의 개수만큼 채워지면 MPM 후보군 구성을 완료할 수 있다. 이때, 공간적으로 인접한 블록의 예측 모드, 기 설정된 예측 모드, MPM 후보군에 먼저 포함된 예측 모드로부터 유도되는 모드 순서로 우선 순위가 정해질 수 있으나, 그 외의 변형 또한 가능하다.
MPM을 사용하여 현재 블록의 예측 모드 부호화를 수행하는 경우 예측 모드가 MPM과 일치하는지 여부에 대한 정보(예를 들어, most_probable_mode_flag)를 생성할 수 있다.
MPM과 일치하는 경우(예를 들어, most_probable_mode_flag = 1)에는 MPM의 구성에 따라 MPM 인덱스 정보(예를 들어, mpm_idx)를 추가로 생성할 수 있다. 예를 들어, MPM이 하나의 예측 모드로 구성되는 경우에는 추가적인 MPM 인덱스 정보는 생성하지 않으며, 복수의 예측 모드로 구성되는 경우에는 MPM 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 생성할 수 있다.
MPM과 일치하지 않는 경우(예를 들어, most_probable_mode_flag = 0)에는 예측 모드 후보군에서 MPM 후보군을 제외한 나머지 예측 모드 후보군(또는 non-MPM 후보군)에서 현재 블록의 예측 모드에 대응하는 non-MPM 인덱스 정보(예를 들어, non_mpm_idx)를 생성할 수 있으며, 이는 non-MPM이 하나의 그룹으로 구성되는 경우에 해당하는 예일 수 있다.
non-MPM 후보군이 복수의 그룹으로 구성되는 경우에 현재 블록의 예측 모드가 어떤 그룹에 속하는지에 대한 정보를 생성할 수 있다. 예를 들어, non-MPM은 A와 B 그룹(A는 m개, B는 n개, non-MPM은 m+n개의 예측 모드로 구성되며 m보다 n이 크다고 가정. A의 모드는 방향성 모드로 균등한 간격을 갖고 B의 모드는 방향성 모드로 균등한 간격을 갖지 않는다고 가정)으로 구성되며 현재 블록의 예측 모드가 A 그룹의 예측 모드와 일치하는 경우(예를 들어, non_mpm_A_flag = 1)에는 A 그룹 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 생성할 수 있으며, 일치하지 않는 경우(예를 들어, non_mpm_A_flag = 0)에는 나머지 예측 모드 후보군(또는 B 그룹 후보군)에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 생성할 수 있다. 상기 예와 같이 non-MPM은 적어도 하나의 예측 모드 후보군(또는 그룹)으로 구성이 될 수 있으며, 예측 모드 후보군에 따라 non-MPM 구성이 정해질 수 있다. 예를 들어, 예측 모드 후보군이 35개 이하일 경우에는 1개, 그 이외의 경우에는 2개 이상일 수 있다.
상기 예와 같이 non-MPM이 복수의 그룹으로 구성되는 경우는 예측 모드의 개수가 많고 예측 모드가 MPM으로 예측되지 않을 경우에 모드 비트량을 줄이고자 하는 목적으로 지원될 수 있다.
MPM을 사용하여 현재 블록의 예측 모드 부호화(또는 예측 모드 복호화)를 수행하는 경우 각 예측 모드 후보군(예를 들어, MPM 후보군, non-MPM 후보군 등)에 적용되는 이진화 테이블은 개별적으로 생성될 수 있으며, 각 후보군에 따라 적용되는 이진화 방법 또한 개별적으로 적용될 수 있다.
예측 모드 부호화부를 통해 생성되는 예측 관련 정보는 부호화부로 전송되어 비트스트림에 수록될 수 있다.
본 발명의 일 실시예에 따른 영상 복호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 포함할 수 있다. 또한, 영상 복호화 장치는 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 구현하는 예측 모드 복호화부, 참조 화소 구성부, 예측 블록 생성부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다. 또한, 부호화기와 중복되는 설명은 생략한다.
예측 모드 복호화부에서는 복호화부로부터 예측 모드를 수신하여 현재 블록의 예측 모드를 복원할 수 있다. 상기 예측 모드는 예측 모드 후보군에 대응하는 인덱스 정보 또는 예측 모드의 예측 관련 정보로부터 복원될 수 있다. 즉, 전자의 경우는 예측 모드를 예측 없이 그대로 복호화하는 방법을, 후자의 경우는 예측 모드를 예측을 수행하여 모드 예측 정보와 그에 기반하여 획득되는 정보를 복호화하는 방법을 의미한다.
MPM을 사용하여 현재 블록의 예측 모드 복호화를 수행하는 경우 현재 블록의 예측 모드가 MPM과 일치하는지 여부에 대한 정보를 확인할 수 있다.
MPM과 일치하는 경우에는 MPM의 구성에 따라 MPM 인덱스 정보를 추가로 확인할 수 있다. 예를 들어, MPM이 하나의 예측 모드로 구성되는 경우에는 추가적인 MPM 인덱스 정보는 확인하지 않으며, 복수의 예측 모드로 구성되는 경우에는 MPM 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 확인할 수 있다.
MPM과 일치하지 않는 경우에는 예측 모드 후보군에서 MPM 후보군을 제외한 나머지 예측 모드 후보군에서 현재 블록의 예측 모드에 대응하는 non-MPM 인덱스 정보를 확인할 수 있으며, 이는 non-MPM이 하나의 그룹으로 구성되는 경우에 해당하는 예일 수 있다.
non-MPM 후보군이 복수의 그룹으로 구성되는 경우에는 현재 블록의 예측 모드가 어떤 그룹에 속하는지에 대한 정보를 확인할 수 있다. 예를 들어, non-MPM은 A와 B 그룹으로 구성되며 현재 블록의 예측 모드가 A 그룹의 예측 모드와 일치하는 경우에는 A 그룹 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 확인할 수 있으며, 일치하지 않는 경우에는 A 그룹을 제외한 나머지 예측 모드 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 확인할 수 있다.
참조 화소 구성부는 부호화기의 참조 화소 구성부와 동일한 방법으로 참조 화소를 구성할 수 있으며, 이에 대한 상세한 설명은 생략한다.
예측 블록 생성부는 부호기의 예측 블록 생성부와 동일한 방법으로 예측 블록을 생성할 수 있으며, 이에 대한 상세한 설명은 생략한다. 본 과정을 통해 생성되는 예측 블록을 가산부로 송신할 수 있다.
이하에서, 본 발명의 일 실시예에 따른 화면내 예측에 대해 상세하게 설명한다. 후술하는 예는 부호화기를 중심으로 설명하며, 복호화기는 부호화기의 설명으로부터 유도될 수 있다.
도 37은 화면내 예측 모드 후보군의 다양한 경우를 설명하기 위한 예시도이다. 본 예에서는 방향성 모드를 중심으로 설명할 것이며, 예측 모드의 식별을 위해 각도 또는 인덱스 정보를 사용할 수 있다. 각도의 경우 일부 대각선 모드(Diagonal down right. 0도)를 기준으로 측정될 수 있고, 인덱스의 경우 일부 대각선 모드(Diagonal up right. 0번)를 시작으로 할당될 수 있다. 또한, 상기 예는 모드 간에 균등 간격(각도 기준)을 갖는 경우를 중심으로 설명하지만, 이에 한정되지 않고 다른 변형의 예 또한 가능할 수 있다.
37a 내지 37d를 참조하면, 각각 예측 모드 간에 π/4, π/8, π/16, π/32의 간격을 가질 수 있으며, 도시되지 않는 다른 예측 모드 후보군의 간격(π/64. 65개의 방향성 모드인 경우) 또한 지원될 수 있다. 37a와 같이 예측 모드 후보군이 적은 경우에는 적은 비트로 모드 정보를 표현할 수 있지만, 영상의 에지 등을 잘 반영하지 못하기 때문에 그에 따른 예측의 정확도가 낮을 수 있다. 반면, 37d와 같이 예측 모드 후보군이 많은 경우에는 상기 예와 반대의 경우로 예측의 정확도를 높일 수 있지만, 모드 정보를 표현하기 위해 많은 비트를 사용할 수 있다.
기 설정된 하나의 예측 모드 후보군을 지원하는 경우에는 영상의 지역적 특성을 잘 반영할 수 없기 때문에 부호화 성능의 저하를 가져올 수 있다. 예를 들어, 단조로운 영역의 경우(또는 영상의 에지 방향이 제한적인 경우)에는 많은 예측 모드 후보군으로 인한 모드 비트량이 증가할 수 있고, 복잡한 영역의 경우(또는 에지 방향이 많이 발생하는 경우)에는 적은 예측 모드 후보군으로 부정확한 예측 블록을 생성할 수 있다.
상기 예의 문제점을 해결하기 위해서는 적응적으로 예측 모드 후보군을 지원하는 것이 필요할 수 있다. 후술하는 예를 통해 적응적으로 예측 모드 후보군을 지원하는 다양한 경우를 설명한다. 본 예에서는 방향성 모드를 제외한 나머지 모드는 고정적인 경우(예를 들어, DC, Planar는 항상 포함)를 가정하여 설명하지만, 부호화 설정(예를 들어, 블록의 크기, 형태, 영상 타입 등)에 따라 비방향성 모드 또한 적응적으로 예측 모드 후보군에 포함 여부가 결정될 수 있다.
적응적으로 예측 모드 후보군을 지원하는지 여부에 대한 신호(예를 들어, adaptive_intra_precision_flag)를 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 포함할 수 있다. 적응적으로 예측 모드 후보군을 지원하는 신호가 확인되고 해당 신호가 활성화되는 경우(예를 들어, adaptive_intra_precision_flag = 1)에는 적응적인 예측 모드 후보군을 지원할 수 있고, 해당 신호가 비활성화되는 경우(예를 들어, adaptive_intra_precision_flag = 0)에는 고정적인 예측 모드 후보군을 지원할 수 있다.
상기 신호가 활성화되는 경우에는 부호화 설정에 따라 예측 모드 후보군 선택 정보(예를 들어, intra_precision_idx_flag. 또는, 예측 모드 정밀도 정보)는 묵시적으로 정해지거나 또는 명시적으로 선택 정보가 생성될 수 있다. 설명의 편의를 위해 후술하는 예에서는 예측 모드 후보군을 식별하기 위해 예측 모드 정밀도(예를 들어, 37a 내지 37d의 예측 모드 후보군을 M0 내지 M3 정밀도로 지칭. 숫자가 커질수록 정밀도가 증가한다고 표현)를 사용하여 설명한다.
명시적인 경우에 예측 모드 정밀도 정보는 픽쳐, 슬라이스, 타일, 블록 등의 단위로 포함될 수 있고, 묵시적인 경우에 예측 모드 정밀도 정보는 블록의 크기, 형태 또는 영상의 타입, 종류, 특성, 컬러 공간 등에 따라 정해질 수 있다.
예를 들어, 32×32 이상 블록에는 M0, 32×32 미만 ~ 16×16 이상 블록에는 M1, 16×16 미만 ~ 8×8 이상 블록에는 M2, 8×8 미만 블록에는 M3의 예측 모드 정밀도가 지원될 수 있다. 또는, 영상 타입이 I인 경우에 M3, P인 경우에 M2, B인 경우에 M1의 예측 모드 정밀도가 지원될 수 있다. 상기 예는 묵시적으로 예측 모드 정밀도가 정해지는 예일 수 있다.
또한, 명시적인 경우와 묵시적인 경우가 혼합되어 적응적인 예측 모드 정밀도를 지원할 수 있다.
예를 들어, 32×32 이상 블록에는 M3, 32×32 미만 ~ 16×16 이상 블록에는 M2의 예측 모드 정밀도가 지원되고, 16×16 미만 블록에는 예측 모드 정밀도에 대한 선택 정보가 생성될 수 있다. 또는, 영상 타입이 I인 경우에 M3, P 또는 B인 경우 예측 모드 정밀도에 대한 선택 정보가 생성될 수 있다.
상기 예는 적응적인 예측 모드 정밀도에 대한 일 예일 뿐, 상기 예에 한정되지 않고 다른 변형의 예 또한 가능할 수 있다.
정리하면, 부호화 설정에 따라 기 설정된 하나의 예측 모드 정밀도(또는 고정적인 예측 모드 정밀도)를 사용하거나 복수의 예측 모드 정밀도 후보군 중 하나(또는 적응적인 예측 모드 정밀도)를 선택할 수 있다.
도 38은 본 발명의 일 실시예에 따른 예측 모드 정밀도를 설명하기 위한 예시도이다. 도 38을 참조하면, 예측 모드 정밀도에 따라 지원되는 예측 모드와 예측 모드의 인덱스, 각도 정보를 확인할 수 있다.
본 예에서는 예측 모드 정밀도에 대한 후보군의 개수가 4개인 경우를 가정하여 설명하지만, 이에 한정되지 않고 다양한 조합의 경우가 가능할 수 있다. 또한, 예측 모드 정밀도에 따라 예측 모드 결정부, 예측 모드 부호화부 등의 설정이 변경되는 가정 하에 설명한다. 예를 들어, 예측 모드 정밀도가 M0와 M1인 경우에는 MPM 후보군은 1개, M2와 M3인 경우에는 MPM 후보군은 2개, M3 초과인 경우에는 MPM 후보군이 3개로 구성될 수 있다. 또한, 예측 모드가 MPM과 일치하는 경우에는 MPM 인덱스 정보를 가변 길이 이진화, 일치하지 않는 경우에는 non-MPM 인덱스 정보를 고정 길이 이진화를 사용하여 부호화한다고 가정한다. 본 예에서 MPM 후보군의 개수에 따라 MPM 후보군의 구성을 위한 우선 순위가 동일하게 적용될 수 있거나 또는 동일하지 않을 수 있으며, 부호화 설정에 따라 정해질 수 있다.
본 예에서 A 내지 C 블록은 35개의 모드(M3 정밀도. 방향성 모드 33개와 비방향성 모드 2개로 구성)가 지원되며 A 내지 C 블록의 예측 모드는 도 38에서 각각 21번, 22번, 24번 모드라 가정한다.
A의 경우 M3의 정밀도에서 지원되는 모드일 수 있고, 그 외의 정밀도(M0 ~ M2)에서 지원되지 않는 모드일 수 있다. M3의 정밀도에서 예측 모드로 인해 발생하는 비트는 2 ~ 3 비트 또는 6 비트일 수 있다. 전자의 경우 MPM과 일치하는 경우, 후자의 경우 MPM과 일치하지 않는 경우에 발생하는 비트량을 의미한다.
B의 경우 M2와 M3의 정밀도에서 지원되는 모드일 수 있고, 그 외의 정밀도(M0, M1)에서 지원되지 않는 모드일 수 있다. M2의 정밀도에서 예측 모드로 인해 발생하는 비트는 2 비트 또는 5 비트일 수 있다.
C의 경우 M0 내지 M3의 정밀도에서 지원되는 모드일 수 있다. M1의 정밀도에서 예측 모드로 인해 발생하는 비트는 1 비트 또는 3 비트일 수 있고, M0의 정밀도에서는 1 비트 또는 2 비트일 수 있다.
상기 예에서 C의 경우 예측 모드 정밀도에 따라 최소 1 ~ 2 비트가 발생할 수 있고, 최대 2 ~ 6 비트가 발생할 수 있다. 즉, 적응적인 예측 모드 정밀도가 적용되는 경우에는 더 적은 모드 비트를 사용하여 부호화할 수 있다.
예를 들어, 예측 모드 정밀도의 후보군은 M0 내지 M3이며 예측 모드 정밀도 선택 정보는 각각 00, 01, 10, 11의 이진 비트로 구성되는 경우, 적응적인 예측 모드 정밀도 정보는 2 비트가 발생할 수 있다.
또는, 예측 모드 정밀도 후보군은 M0와 M3이며 예측 모드 정밀도 선택 정보는 각각 0, 1의 이진 비트로 구성되는 경우, 적응적인 예측 모드 정밀도 정보는 1 비트가 발생할 수 있다.
예측 모드 정밀도 후보군의 구성은 부호화 설정에 따라 정해질 수 있고 적어도 하나의 구성을 가질 수 있다. 즉, 영상에 하나의 후보군 구성(예를 들어, M0 내지 M3)를 가질 수 있거나 또는 복수의 후보군 구성(예를 들어, M0 내지 M3, M0 내지 M2, M3과 M3 등)을 가질 수 있다.
37a 내지 37d에서 각 모드에 할당된 인덱스는 실제 모드와 동일할 수 있거나 또는 본 예에서 한정되는 예일 수 있다. 예를 들어, HEVC의 경우 0번과 1번은 Planar와 DC 모드, 2번 내지 34번은 방향성 모드를 의미하며, AVC의 경우 2번은 DC 모드이고 나머지는 방향성 모드로 순차적이지 않은 인덱스가 할당된다. 적응적인 예측 모드 정밀도를 적용하기 위한 목적으로 실제 모드(또는 인덱스)에서 본 예와 같이 임시 모드(또는 인덱스)를 할당할 수 있고, 적응적인 예측 모드 정밀도와 관련된 일련의 과정(예를 들어, 예측 모드 결정 과정, 예측 모드 부호화 과정 등) 후에 다시 원래의 모드로 복구할 수 있다.
예를 들어, HEVC의 경우 비방향성 모드는 제외하고 방향성 모드의 경우 2번 내지 34번 모드는 각각 0번 내지 32번의 임시 인덱스가 할당되고, 적응적인 예측 모드 정밀도에 관련된 일련의 과정 후 2번 내지 34번 모드로 복구될 수 있다.
적응적으로 예측 모드 후보군이 지원되는 경우 예측 모드 부호화 설정 또한 적응적으로 결정될 수 있다.
예를 들어, 예측 모드 결정부를 통해 수평 모드가 최적의 모드로 결정된 경우, 예측 모드 정밀도가 M0 내지 M3일 때 각각 1번, 2번, 4번, 8번 모드 인덱스(도 37 내지 도 40)를 가질 수 있다.
예측 모드를 그대로 부호화하는 경우, 예측 모드 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 부호화할 수 있다. 또는, 예측 모드의 예측을 수행하여 관련 정보(MPM 관련 정보)를 부호화하는 경우, MPM 후보군을 구성하여 MPM과 일치하는지 여부에 대한 정보와 그에 따른 추가적인 정보(예를 들어, MPM 인덱스, non-MPM 인덱스 등)을 부호화할 수 있다.
상기 MPM 후보군 중 공간적으로 인접한 블록의 예측 모드를 후보군으로 구성할 수 있다. 이때, 인접한 블록이 현재 블록과 동일한 예측 모드 정밀도를 가진 경우에는 해당 블록의 예측 모드를 MPM 후보군으로 구성할 수 있으나, 현재 블록과 동일하지 않는 예측 모드 정밀도를 가진 경우에는 해당 블록의 모드를 MPM 후보군으로 구성하는데 문제점(예를 들어, M0 내지 M3에서 동일 모드에 1 ~ 8번과 같은 다른 인덱스가 할당되는 경우)이 발생할 수 있다.
상기 문제점을 해결하기 위한 목적으로 예측 모드 부호화 과정에서 예측 모드 정밀도 변경 과정이 수행될 수 있다. 상세하게는, MPM 후보군 구성을 위해 현재 블록과 다른 예측 모드 정밀도를 가진 블록의 경우 해당 블록의 예측 모드를 현재 블록의 예측 모드 정밀도에 맞춰 변경하는 과정을 수행할 수 있다.
도 39는 본 발명의 일 실시예에 따른 예측 모드의 정밀도 변경에 대한 예시도이다.
도 39를 참조하면, 현재 블록과 인접한 블록의 예측 모드와 정밀도 정보를 나타내고 있으며, 왼쪽에서 오른쪽으로 예측 모드 정밀도 변경 과정이 수행되는 예를 나타낸다. 본 예에서는 좌, 상, 좌상, 우상, 좌하 블록의 예측 모드가 MPM 후보군으로 포함된다고 가정한다.
다음은 본 발명의 일 실시예에 따른 예측 모드의 정밀도 변경에 대한 순서를 설명한다.
우선 MPM 후보군의 예측 모드(x)가 획득되는 분류 기준을 확인한다(A).
상기 분류 기준 확인 결과(A) 해당 모드(x)가 인접한 블록에서 획득된 경우, 해당 모드(x)에 속한 블록의 예측 모드 정밀도가 현재 블록의 예측 모드 정밀도와 동일한지 판단한다(B). 또는, 상기 분류 기준 확인 결과(A)가 기 설정된 모드에서 획득된 경우, 해당 모드(x)의 MPM 후보군 구성을 완료한다.
상기 판단 결과가 참(B-Yes)인 경우, 해당 모드(x)의 MPM 후보군 구성을 완료한다. 또는, 상기 판단 결과가 거짓(B-No)인 경우, 해당 모드(x)를 현재 블록의 예측 모드 정밀도에 맞춰 변경하는 과정을 수행한 후 MPM 후보군 구성은 완료한다.
상기 예의 예측 모드 정밀도 변경 과정은 다음의 수식으로 도출될 수 있다. 이때, X와 Y는 변경 전과 변경 후의 예측 모드 정밀도를 의미하고, p_mode와 n_mode는 변경 전과 변경 후의 예측 모드를 의미한다.
예를 들어, X가 Y보다 작을 경우(즉, 정밀도 증가) n_mode = p_mode << (Y-X)에 따른 수식을 통해 변경 후 예측 모드를 획득할 수 있다. 또는, X가 Y보다 큰 경우(즉, 정밀도 감소) n_mode = p_mode >> (X-Y)에 따른 수식을 통해 변경 후 예측 모드를 획득할 수 있다. 상기 예는 예측 모드 정밀도 변경 과정의 일 예일 뿐, 상기 예에 한정되지 않으며 다른 수식으로의 변경 또한 가능하다.
도 39를 참조하면, 상 블록의 예측 모드 정밀도는 현재 블록의 예측 모드 정밀도와 동일하고, 좌, 좌상, 좌하 블록의 예측 모드 정밀도는 현재 블록의 예측 모드 정밀도와 동일하지 않다. 이때, 좌, 좌상, 좌하 블록의 예측 모드는 현재 블록의 예측 모드 정밀도에 맞춰 변경될 수 있다. 도 38과 도 39를 참조하면, 좌, 좌상, 좌하 블록의 예측 모드는 현재 블록의 예측 모드 정밀도(M1)에 맞춰 2번, 7번, 3번 모드로 변경될 수 있으며, 이를 MPM 후보군으로 포함할 수 있다.
우상 블록의 예측 모드는 비방향성 모드인 DC이며, 이는 상기 예와 다른 예측 모드 정밀도 변경 과정을 수행할 수 있다. 예를 들어, 변경되는 예측 모드 정밀도에 따라 결정되는 예측 모드 후보군에서 DC 모드에 해당하는 인덱스로 변경할 수 있다. 이때, DC 모드가 각 예측 모드 후보군(예를 들어, 9개, 17개, 35개 등)에서 가장 낮은 인덱스(0번)로 할당되는 경우에는 예측 모드 정밀도에 관계없이 고정될 수 있고, 가장 높은 인덱스(8번, 16번, 34번)로 할당되는 경우에는 예측 모드 정밀도에 따라 변경될 수 있다. 즉, 비방향성 모드의 경우 전술한 예측 모드 정밀도 변경 과정(상기 예에서 수식을 통해 획득하는 과정)과 다른 변경 과정을 수행할 수 있다.
정리하면, 현재 블록과 동일한 예측 모드 정밀도를 가진 경우에는 어떤 동작도 수행하지 않고, 현재 블록과 다른 예측 모드 정밀도를 가진 경우에는 예측 모드 정밀도 변경 과정을 수행할 수 있다.
도 40은 본 발명의 일 실시예에 따른 영상 부호화 장치의 화면내 예측 구성을 나타낸 블록 구성도이다. 상세하게는, 화면내 예측 모드 부호화 과정을 위한 구성으로, 화면내 예측 설정 확인부, 예측 모드 후보군 설정부, MPM 후보군 도출부, MPM 후보군 재구성부, 예측 모드 결정부, 예측 모드 부호화부의 전부 또는 일부를 포함하여 구성할 수 있다.
화면내 예측 설정 확인부는 현재 블록의 화면내 예측 설정을 확인할 수 있다. 예를 들어, 현재 블록의 예측 모드 정밀도 정보를 확인할 수 있다.
예측 모드 후보군 설정부는 현재 블록의 예측 블록 생성을 위한 예측 모드 후보군을 구성할 수 있다. 예를 들어, 적응적인 예측 모드 정밀도를 지원하는 경우 예측 모드 정밀도에 따라 예측 모드 후보군을 구성할 수 있고, 적응적인 예측 모드 정밀도를 지원하지 않는 경우 기 설정된 하나의 예측 모드 후보군을 사용할 수 있다.
MPM 후보군 도출부는 현재 블록의 예측 모드의 예측값으로 사용되는 예측 모드를 도출할 수 있다. 예를 들어, 기 설정된 예측 모드, 인접한 블록의 예측 모드, MPM 후보군에 기 포함된 예측 모드 등으로 MPM 후보를 도출할 수 있다.
MPM 후보군 재구성부는 MPM 후보군에 포함된 모드를 재구성할 수 있다. 예를 들어, 적응적인 예측 모드 정밀도를 지원하는 경우에 MPM 후보군의 모드가 현재 블록의 예측 모드 정밀도와 다르다면 현재 블록의 예측 모드 정밀도에 따라 변경(또는 재구성)할 수 있고, 적응적인 예측 모드 정밀도를 지원하지 않는 경우에 MPM 후보군 구성을 마무리할 수 있다.
예측 모드 결정부는 현재 블록의 예측 모드를 결정할 수 있다. 이때, 예측 모드 결정 과정에 평가되는 예측 모드의 후보군은 상기 예측 모드 정밀도에 따라 정해질 수 있다.
예측 모드 부호화부는 현재 블록의 예측 모드를 부호화할 수 있다. 예를 들어, 예측 모드 결정부를 통해 획득되는 현재 블록의 예측 모드와 재구성된 MPM 후보군을 사용하여 예측 모드를 부호화할 수 있다. 본 예는 예측 모드의 예측값을 사용하여 예측 모드 정보를 부호화하는 경우에 해당하는 예일 수 있다.
상기 과정을 통해 생성되는 예측 모드 정보는 비트스트림에 수록되어 복호화기에 전송할 수 있다.
도 41은 본 발명의 일 실시예에 따른 영상 복호화 장치의 화면내 예측 구성을 나타낸 블록 구성도이다. 상세하게는, 화면내 예측 모드 복호화 과정을 위한 구성으로, 화면내 예측 설정 확인부, 예측 모드 후보군 설정부, MPM 후보군 도출부, MPM 후보군 재구성부, 예측 모드 복호화부의 전부 또는 일부를 포함하여 구성할 수 있다. 복호화기의 동작은 부호화기의 설명에서 유도할 수 있으므로 상세한 설명은 생략한다.
360도 영상의 경우 2차원 공간으로의 변환 과정에서 영상 경계가 생성될 수 있으며, 이는 3차원 공간에서는 존재하지 않는 영상의 특성일 수 있다. 360도 영상 특성을 고려하여 화면내 예측을 수행함으로써 부호화 성능을 향상시킬 수 있다.
본 예는 전술한 크기 조정 과정 중 예측 단계 또는 예측 수행 전에 크기 조정 과정이 수행되는 경우의 일 예일 수 있다. 이때, 크기 조정되는 영역은 화면내 예측을 위해 임시로 사용되는 영역이며, 실제적인 크기 조정이 수행되는 것이 아닌 점을 고려하여 이해할 수 있다.
일부 크기 조정 설정(예를 들어, 확장 동작, 오프셋을 통한 크기 조정, 크기 조정 방향 등)은 기 설정된 조건에 따를 수 있으며, 후술하는 예를 통해 데이터 처리 방법과 크기 조정되는 영역의 모드 정보 등을 중심으로 설명할 것이다. 또한, 360도 영상인 경우를 중심으로 설명하며 중복되는 설명은 생략하지만, 전술한 다양한 실시예와 설명을 통해 이해될 수 있고 전술한 요소들에 포함 또는 결합되어 구성될 수 있다.
본 발명의 일 실시예에 따른 화면내 예측에서 현재 블록을 위한 참조 영역은 제 1 참조 영역(예를 들어, 기존의 사용 가능한 영역), 제 2 참조 영역(예를 들어, 사용 불가한 영역), 제 3 참조 영역(예를 들어, 360도 영상의 특성을 고려하여 영상 내 상관성이 존재하는 영역으로부터 획득되는 영역)이 혼합되어 구성될 수 있다. 이때, 제 3 참조 영역은 사용 가능한 영역일 수 있거나 사용 불가한 영역일 수 있다. 참조 영역(또는 블록)은 현재 블록의 화면내 예측(예를 들어, 참조 화소 구성부, 예측 블록 생성부, 예측 모드 부호화부 등)에 사용되는 참조 화소, 예측 모드 등을 포함할 수 있다.
도 42는 본 발명의 일 실시예에 따른 360도 영상의 화면내 예측에 대한 예시도이다. 상세하게는, CMP 투영 포맷에서의 화면내 예측을 설명할 것이며, 이에 한정되지 않고 일반적인 360도 영상(또는 다른 투영 포맷)에서의 적용이 가능할 수 있다.
42a에서 a 내지 h는 a' 내지 h'에 대응되며, a 내지 h의 부호화가 완료된 데이터를 a' 내지 h'로 획득하는 경우를 나타낸다. 42b에서 a 내지 f는 화면내 예측이 수행되는 블록의 위치를 나타낸다. 42b에서 참조 블록 위치의 숫자는 1 내지 3 중 하나일 수 있고, 이는 제 1 참조 영역 내지 제 3 참조 영역을 의미한다. 또한, 42b에서, a 내지 f 블록 주변에 위치한 블록은 좌상, 상, 우상, 좌, 좌하에 위치한 순서대로, 각각 a0 내지 a4, b0 내지 b4, c0 내지 c4, d0 내지 d4, e0 내지 e4, f0 내지 f4로 지칭할 수 있다.
본 예에서 부호화는 최대 부호화 단위(M×M)로 진행되고, 참조 블록은 좌상, 상, 우상, 좌, 좌하 블록(나열된 블록 순서로 0부터 3까지의 인덱스 할당)이며, 예측 블록과 참조 블록의 크기 및 형태가 동일한 경우(본 예에서 M/2×M/2)를 가정하여 설명한다. 또한, 크기 조정되는 영역의 크기(또는 크기 조정값)은 예측 블록의 크기(예를 들어, M/2×M/2)라고 가정하지만, 이에 한정되지 않고 다른 블록의 종류 및 크기 또한 가능할 수 있다.
후술하는 예의 설명에서 전자의 경우는 일반적인 화면내 예측을, 후자의 경우는 360도 영상 특성을 고려한 화면내 예측(또는 360도 영상 화면내 예측)을 의미하며, 전자와 후자의 구분없이 하나의 화면내 예측 설정을 설명한 경우는 일반적인 화면내 예측과 360도 영상 화면내 예측이 동일한 것을 의미한다.
42b의 a는 a3, a4의 사용이 가능하고, a0 ~ a2의 사용이 불가하다. 또는, a0 ~ a4의 사용이 불가하다. a3과 a4의 경우 무의미한 영역에 위치하기 때문에 사용 불가로 상태를 변경할 수 있다(제 1참조 영역 -> 제 2 참조 영역).
42b의 b는 b1, b2의 사용이 가능하고, b0, b3, b4의 사용이 불가하다. b1과 b2의 경우 무의미한 영역에 위치하지만 영상 내 부호화가 완료된 상관성이 높은 영역으로부터 획득될 수 있다(제 1 참조 영역 -> 제 3 참조 영역).
42b의 c는 c1, c2의 사용이 가능하고, c0, c3, c4의 사용이 불가하다. 또는, c0 ~ c2의 사용이 가능하고 c3와 c4의 사용이 불가하다. c0의 경우 영상의 바깥에 위치하지만 부호화가 완료된 상관성이 높은 영역으로부터 획득될 수 있다(제 2 참조 영역 -> 제 3 참조 영역).
42b의 e는 e0, e1, e3, e4의 사용이 가능하고, e2의 사용이 불가하다. 또는, e0 ~ e4의 사용이 가능하다. e2의 경우 영상 경계 바깥에 위치하지만 부호화가 완료된 상관성이 높은 영역으로부터 획득될 수 있다(제 2 참조 영역 -> 제 3 참조 영역).
42b의 f는 f0, f1, f3의 사용이 가능하고, f2와 f4의 사용이 불가하다. 또는, f0 ~ f4의 사용이 가능하다. f2의 경우 아직 부호화가 진행되지 않았지만 영상 내 부호화가 완료된 영역으로부터 획득될 수 있고, f4의 경우 영상 경계 바깥에 위치하지만 부호화가 완료된 상관성 있는 영역으로부터 획득될 수 있다(제 2 참조 영역 -> 제 3 참조 영역).
화면내 예측을 위한 참조 화소를 상기 참조 영역에서 획득하는 경우 제 1 참조 영역의 참조 화소는 참조 화소 메모리에 포함할 수 있고, 제 2 참조 영역의 참조 화소는 사용 불가한 영역에 위치하므로 임의의 화소값 또는 부호화가 완료된 사용 가능한 블록으로부터 화소값을 생성하여 참조 화소 메모리에 포함할 수 있다. 제 3 참조 영역의 참조 화소는 영상 내 부호화가 완료된 상관성이 높은 영역으로부터 획득하여 참조 화소 메모리에 포함할 수 있다.
정리하면, 현재 블록의 참조 화소 메모리는 참조 화소 범위에 맞춰 생성이 되며, 참조 화소 범위에 속하는 블록이 사용 가능하면 해당 블록의 참조 화소를 그대로 메모리에 포함하고, 사용 불가하면 해당 블록의 참조 화소를 생성 또는 획득하여 메모리에 포함한다.
화면내 예측을 위한 MPM 후보군에 포함되는 예측 모드를 상기 참조 영역에서 획득하는 경우 제 1 참조 영역의 예측 모드는 MPM 후보군에 포함할 수 있고, 제 2 참조 영역의 예측 모드는 MPM 후보군에 포함할 수 없다. 제 3 참조 영역의 예측 모드는 영상 내 부호화가 완료된 상관성이 높은 영역으로부터 획득하여 MPM 후보군에 포함할 수 있다.
정리하면, 현재 블록의 MPM 후보군은 기 설정된 위치의 블록의 예측 모드를 포함할 수 있으며, 해당 위치의 블록이 사용 가능하면 해당 블록의 예측 모드를 MPM 후보군에 포함하고, 사용 불가하면 MPM 후보군에 포함할 수 없다.
상기 예에서 영상 내 부호화가 완료된 상관성이 높은 영역으로부터 획득하는 경우 해당 영역의 데이터(예를 들어, 화소값, 예측 모드 정보 등)를 그대로 사용할 수 있거나 또는 현재 블록이 속한 영상 특성(예를 들어, 표면 간의 좌표계 특성 등)을 고려하여 사용할 수 있다.
예를 들어, 현재 블록이 속한 표면의 좌표계 특성과 상관성이 높은 영역이 속한 표면의 좌표계 특성을 고려하여 화소값 변환 과정 또는 예측 모드 변환 과정을 수행하여 획득된 해당 영역의 데이터를 사용할 수 있다.
즉, 투영 포맷에 따라 3차원 공간 상에서 각 표면은 다른 좌표계(예를 들어, 2차원 평면)에 속하기 때문에, 이를 현재 표면의 좌표계 특성에 맞춰 획득되는 다른 표면 데이터의 변환 과정을 수행한다는 것을 의미한다.
상기 예와 비슷한 경우로 참조 영역이 사용 가능하며 현재 블록과 상관성이 존재하지만 표면 간의 특성으로 인한 왜곡이 포함된 경우, 해당 영역의 데이터를 재구성(또는 변환)할 수 있다.
도 42의 d는 d0 ~ d4의 사용이 가능하고, d1과 d2는 현재 블록과 동일한 표면(도 42의 F2)에 위치하고 d0, d3, d4는 다른 표면(도 42의 F3)에 위치한다. d0, d3, d4의 경우 표면 간의 특성에 따라 현재 블록이 속한 좌표계 특성을 고려하여 참조 데이터를 획득할 수 있다. 즉, 참조 화소 변환 과정, 예측 모드 변환 과정을 수행하여 획득된 영상의 데이터를 사용할 수 있다. 이는 부호화 설정에 따라 결정될 수 있으며, 묵시적으로 정해지거나 또는 명시적으로 관련 정보가 생성될 수 있으며, 이에 대한 설명은 영상 크기 조정 과정에서 유도될 수 있다.
본 발명의 일 실시예에 따른 360도 영상의 복호화 방법은, 360도 영상이 부호화된 비트스트림을 수신하는 단계, 수신된 비트스트림에서 획득한 구문 정보를 참조하여, 예측 영상을 생성하는 단계, 상기 생성된 예측 영상을 상기 비트스트림을 역양자화 및 역변환하여 획득한 잔차 영상과 결합하여 복호화된 영상을 획득하는 단계 및 상기 복호화된 영상을 투영 포맷에 따른 360도 영상으로 재구성하는 단계를 포함할 수 있다.
여기서 구문 정보는, 상기 360도 영상에 대한 투영 포맷 정보를 포함할 수 있다.
여기서 상기 투영 포맷 정보는, 상기 360도 영상을 2차원 평면으로 투영시킨 ERP(Equi-Rectangular Projection) 포맷, 상기 360도 영상을 정육면체로 투영시킨 CMP(CubeMap Projection) 포맷, 상기 360도 영상을 8면체로 투영시킨 OHP(OctaHedron Projection) 포맷, 상기 360도 영상을 다면체로 투영시킨 ISP(IcoSahedral Projection) 포맷 중 적어도 하나를 지시하는 정보일 수 있다.
여기서 상기 재구성하는 단계는, 상기 구문 정보를 참조하여, 지역별 포장(regional packing)에 따른 배치 정보를 획득하는 단계 및 상기 배치 정보에 따라, 상기 복호화된 영상의 각 블록을 재배치하는 단계를 포함할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 비트스트림을 복원하여 획득한 참조 영상(reference picture)에 대하여 영상 확장을 수행하는 단계 및 영상 확장이 수행된 참조 영상을 참조하여, 예측 영상을 생성하는 단계를 포함할 수 있다.
여기서 상기 영상 확장을 수행하는 단계는, 상기 참조 영상의 분할 단위를 기초로 영상 확장하는 수행하는 단계를 포함할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위의 경계 화소를 이용하여, 상기 분할 단위마다 개별적으로 확장된 영역을 생성할 수 있다.
여기서 상기 확장된 영역은, 확장할 분할 단위와 공간적으로 인접한 분할 단위의 경계 화소 또는 확장할 분할 단위와 영상의 연속성이 있는 분할 단위의 경계 화소를 이용하여 생성될 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위 중에서 공간적으로 인접한 두 개 이상의 분할 단위가 결합된 영역의 경계 화소를 이용하여, 상기 결합된 영역에 대하여 확장된 영상을 생성할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위 중에서 공간적으로 인접한 분할 단위들의 인접 화소 정보를 모두 이용하여, 상기 인접한 분할 단위들 사이에 확장된 영역을 생성할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 공간적으로 인접한 분할 단위들 각각의 인접 화소들의 평균값을 이용하여 상기 확장된 영역을 생성할 수 있다.
여기서 예측 영상을 생성하는 단계는, 상기 비트스트림을 복원하여 획득한 참조 영상(reference picture)에 대하여 영상 확장을 수행하는 단계 및 영상 확장이 수행된 참조 영상을 참조하여, 화면 내 예측에 따른 예측 영상을 생성하는 단계를 포함할 수 있다.
여기서 상기 화면 내 예측에 따른 예측 영상을 생성하는 단계는, 상기 참조 영상에서, 복원할 현재 블록과 인접한 위치에 있는 참조 블록의 참조 가능성을 확인하는 단계, 참조 가능성에 따라 결정된 참조 화소를 참조하여 상기 현재 블록에 대한 화면 내 예측을 수행하여 예측 블록을 생성하는 단계를 포함할 수 있다.
여기서 상기 현재 블록과 인접한 위치는, 상기 현재 블록의 좌상, 상, 우상, 좌측 위치를 포함할 수 있다.
여기서 상기 참조 가능성을 확인하는 단계 이후에, 360도 영상의 데이터 연속성을 기초로, 상기 현재 블록과 인접하지 않은 위치에 속하고, 상기 현재 블록과 영상 데이터의 상관성이 높으며, 부/복호화가 완료된 제1 영역이 상기 참조 영상 내에 존재하는지 확인하는 단계를 포함할 수 있다.
여기서 상기 부/복호화가 완료된 영역이 상기 참조 영상 내에 존재하는지 확인하는 단계 이후에, 상기 제1 영역의 화소를 참조 화소로서 참조하여, 상기 현재 블록에 대한 화면 내 예측을 수행하는 단계를 포함할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 구문 정보에서, 복호화할 현재 블록에 대한 예측 모드 정밀도를 확인하는 단계, 확인한 예측 모드 정밀도와 상기 구문 정보에서 획득한 MPM (Most Probable Mode) 모드 정보가 상응하는지 판단하는 단계 및 상응하지 않는 경우, 상기 MPM 모드 정보를 상기 현재 블록에 대한 예측 모드 정밀도에 따라 재구성하는 단계를 포함할 수 있다.
여기서 상기 MPM 모드 정보는, 상기 현재 블록과 인접한 블록들 중 적어도 하나의 블록에 대한 화면 내 예측 모드를 지시할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 MPM 모드 정보를 재구성한 정보를 참조하여, 상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계를 더 포함할 수 있다.
여기서 상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계는, 상기 인접한 블록에 속한 참조 화소를 구성하는 단계 및 상기 참조 화소를 이용하여 화면 내 예측을 수행함으로써 상기 현재 블록에 대한 예측 블록을 생성하는 단계를 포함할 수 있다.
여기서 상기 참조 화소를 구성하는 단계는, 상기 현재 블록과 인접한 블록이 사용 불가능한 경우, 상기 현재 블록과 영상 상관성을 가진 다른 블록의 경계 화소를 이용하여, 사용 불가능한 블록의 참조 화소를 구성할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 복호화 장치에 기-설정된 복수의 분할 타입과 소정의 인덱스 정보에 기반하여, 제1 블록의 분할 타입을 결정하는 단계; 여기서, 상기 인덱스 정보는 상기 복수의 분할 타입 중 어느 하나를 특정함,
    상기 결정된 분할 타입에 기반하여, 상기 제1 블록을 복수의 제2 블록으로 분할하는 단계; 및
    화면내 예측에 기반하여 상기 제2 블록을 복호화하는 단계를 포함하되,
    상기 기-설정된 복수의 분할 타입은 상기 제1 블록을 2분할하는 2분할 타입 및 상기 제1 블록을 3분할하는 3분할 타입을 포함하고,
    상기 인덱스 정보에 의해 특정된 분할 타입이 상기 2분할 타입인 경우, 상기 제1 블록은 하나의 수평 라인 또는 하나의 수직 라인에 의해 2개의 제2 블록으로 분할되고,
    상기 인덱스 정보에 의해 특정된 분할 타입이 상기 3분할 타입인 경우, 상기 제1 블록은 2개의 수평 라인 또는 2개의 수직 라인에 의해 3개의 제2 블록으로 분할되고,
    상기 제1 블록이 3분할되는 경우, 상기 3개의 제2 블록 중 어느 하나는 상기 3개의 제2 블록 중 다른 2개의 제2 블록의 크기의 합과 동일한 크기를 가지고, 상기 다른 2개의 제2 블록은 서로 동일한 크기를 가지는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 제2 블록을 복호화하는 단계는,
    복수의 모드 후보군 중에서, 상기 제2 블록의 모드 후보군을 결정하는 단계를 포함하되,
    상기 모드 후보군은, 상기 제2 블록이 화면내 예측을 위해 이용 가능한 화면내 예측 모드의 집합을 의미하고,
    상기 복수의 모드 후보군은, A개의 화면내 예측 모드로 구성된 MPM 후보군, B개의 화면내 예측 모드로 구성된 제1 non-MPM 후보군 및 C개의 화면내 예측 모드로 구성된 제2 non-MPM 후보군을 포함하는, 영상 복호화 방법.
  3. 삭제
  4. 제2항에 있어서,
    상기 제2 블록을 복호화하는 단계는,
    상기 MPM 후보군, 상기 제1 non-MPM 후보군 및 상기 제2 non-MPM 후보군 중어느 하나의 후보군을 선택하는 단계를 포함하고,
    상기 제2 블록의 화면내 예측 모드는, 상기 선택된 후보군으로부터 유도되는, 영상 복호화 방법.
  5. 제4항에 있어서,
    상기 선택은, 소정의 플래그에 기초하여 수행되고,
    상기 플래그는, 상기 제2 블록의 화면내 예측 모드가 상기 MPM 후보군에 속하는지 여부를 나타내는 제1 플래그 또는 상기 제2 블록의 화면내 예측 모드가 상기 제1 non-MPM 후보군에 속하는지 여부를 나타내는 제2 플래그 중 적어도 하나를 포함하는, 영상 복호화 방법.
  6. 제1항에 있어서,
    상기 복수의 제2 블록 중 어느 하나인 복호화 대상 블록은, 상기 복호화 대상 블록에 인접한 참조 화소를 이용하여 복호화되고,
    상기 참조 화소를 포함하는 이웃 블록의 위치는 소정의 스캔 순서에 기초하여 적응적으로 결정되는, 영상 복호화 방법.
  7. 제1 블록을 복수의 제2 블록으로 분할하는 단계; 및
    화면내 예측에 기반하여 상기 제2 블록을 부호화하는 단계를 포함하되,
    상기 분할은 부호화 장치에 기-설정된 복수의 분할 타입 중 어느 하나를 이용하여 수행되고,
    상기 기-설정된 복수의 분할 타입은 상기 제1 블록을 2분할하는 2분할 타입 및 상기 제1 블록을 3분할하는 3분할 타입을 포함하며,
    상기 2분할 타입은, 하나의 수평 라인 또는 하나의 수직 라인을 이용하여 상기 제1 블록을 2개의 제2 블록으로 분할하는 타입이고,
    상기 3분할 타입은, 2개의 수평 라인 또는 2개의 수직 라인을 이용하여 상기 제1 블록을 3개의 제2 블록으로 분할하는 타입이며,
    상기 제1 블록이 3분할되는 경우, 상기 3개의 제2 블록 중 어느 하나는 상기 3개의 제2 블록 중 다른 2개의 제2 블록의 크기의 합과 동일한 크기를 가지고, 상기 다른 2개의 제2 블록은 서로 동일한 크기를 가지는, 영상 부호화 방법.
  8. 영상 부호화 방법에 의해 부호화되는 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서,
    상기 영상 부호화 방법은,
    제1 블록을 복수의 제2 블록으로 분할하는 단계; 및
    화면내 예측에 기반하여 상기 제2 블록을 부호화하는 단계를 포함하되,
    상기 분할은 부호화 장치에 기-설정된 복수의 분할 타입 중 어느 하나를 이용하여 수행되고,
    상기 기-설정된 복수의 분할 타입은 상기 제1 블록을 2분할하는 2분할 타입 및 상기 제1 블록을 3분할하는 3분할 타입을 포함하며,
    상기 2분할 타입은, 하나의 수평 라인 또는 하나의 수직 라인을 이용하여 상기 제1 블록을 2개의 제2 블록으로 분할하는 타입이고,
    상기 3분할 타입은, 2개의 수평 라인 또는 2개의 수직 라인을 이용하여 상기 제1 블록을 3개의 제2 블록으로 분할하는 타입이며,
    상기 제1 블록이 3분할되는 경우, 상기 3개의 제2 블록 중 어느 하나는 상기 3개의 제2 블록 중 다른 2개의 제2 블록의 크기의 합과 동일한 크기를 가지고, 상기 다른 2개의 제2 블록은 서로 동일한 크기를 가지는, 컴퓨터로 판독가능한 기록 매체.
  9. 삭제
  10. 삭제
KR1020207014806A 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치 KR102531386B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237015505A KR20230070062A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR20160127887 2016-10-04
KR1020160127887 2016-10-04
KR20160129386 2016-10-06
KR1020160129386 2016-10-06
KR20170090616 2017-07-17
KR1020170090616 2017-07-17
KR1020197011757A KR20190052128A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치
PCT/KR2017/011138 WO2018066980A1 (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197011757A Division KR20190052128A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237015505A Division KR20230070062A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200060545A KR20200060545A (ko) 2020-05-29
KR102531386B1 true KR102531386B1 (ko) 2023-05-12

Family

ID=61831101

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207014806A KR102531386B1 (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치
KR1020237015505A KR20230070062A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치
KR1020197011757A KR20190052128A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020237015505A KR20230070062A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치
KR1020197011757A KR20190052128A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치

Country Status (3)

Country Link
US (26) US11696035B2 (ko)
KR (3) KR102531386B1 (ko)
WO (1) WO2018066980A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113873260B (zh) * 2016-10-04 2023-02-24 有限公司B1影像技术研究所 图像数据编码/解码方法和装置
US11968374B2 (en) * 2019-07-03 2024-04-23 Beijing Xiaomi Mobile Software Co., Ltd. Method and device for coding and decoding
WO2021025416A1 (ko) * 2019-08-04 2021-02-11 엘지전자 주식회사 신택스 결합을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR102255598B1 (ko) * 2020-07-08 2021-05-25 국민대학교산학협력단 비대면 온라인 평가 시스템 및 운용 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101484280B1 (ko) 2009-12-08 2015-01-20 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치

Family Cites Families (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448297A (en) 1993-06-16 1995-09-05 Intel Corporation Method and system for encoding images using skip blocks
US5440346A (en) 1993-06-16 1995-08-08 Intel Corporation Mode selection for method and system for encoding images
DE69712676T2 (de) 1996-07-08 2003-01-02 Hyundai Curitel, Inc. Verfahren zur Videokodierung
US6618117B2 (en) * 1997-07-12 2003-09-09 Silverbrook Research Pty Ltd Image sensing apparatus including a microcontroller
US7605940B2 (en) * 1999-09-17 2009-10-20 Silverbrook Research Pty Ltd Sensing device for coded data
DE60141961D1 (de) * 2001-09-10 2010-06-10 Texas Instruments Inc Verfahren und Vorrichtung zur Bewegungsvektorenabschätzung
GB0224449D0 (en) * 2002-10-21 2002-11-27 Canon Europa Nv Apparatus and method for generating texture maps for use in 3D computer graphics
JP4562136B2 (ja) * 2003-11-19 2010-10-13 財団法人北九州産業学術推進機構 グラフ幅削減装置及びグラフ幅削減方法、並びに論理回路合成装置及び論理回路合成方法
US8213508B2 (en) * 2004-04-02 2012-07-03 Thomson Licensing Complexity scalable video encoding
US7623682B2 (en) * 2004-08-13 2009-11-24 Samsung Electronics Co., Ltd. Method and device for motion estimation and compensation for panorama image
KR100688383B1 (ko) * 2004-08-13 2007-03-02 경희대학교 산학협력단 파노라마 영상의 움직임 추정 및 보상
JP5615493B2 (ja) * 2005-06-01 2014-10-29 コーニンクレッカ フィリップス エヌ ヴェ デュアルディスプレイ装置
US9208394B2 (en) * 2005-09-05 2015-12-08 Alpvision S.A. Authentication of an article of manufacture using an image of the microstructure of it surface
WO2007043843A1 (en) * 2005-10-13 2007-04-19 Lg Electronics Inc. Method and apparatus for processing a signal
JP4680112B2 (ja) 2006-03-30 2011-05-11 三菱電機株式会社 画像符号化装置
JP4656003B2 (ja) 2006-06-01 2011-03-23 沖電気工業株式会社 画像符号化装置及び画像符号化方法
DE102006041033B4 (de) * 2006-09-01 2017-01-19 Siemens Healthcare Gmbh Verfahren zur Rekonstruktion eines dreidimensionalen Bildvolumens
KR20070103347A (ko) * 2007-10-03 2007-10-23 이제성 360도 파노라마 카메라의 영상컨텐츠를 이용한 고해상도광시야각 대형 디스플레이 방법
US9123422B2 (en) * 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
EP2345256B1 (en) * 2008-10-07 2018-03-14 Euclid Discoveries, LLC Feature-based video compression
JP5820276B2 (ja) * 2009-02-17 2015-11-24 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 3d画像及びグラフィカル・データの結合
JP5558730B2 (ja) * 2009-03-24 2014-07-23 株式会社バンダイナムコゲームス プログラム及びゲーム装置
GB2470455B (en) * 2009-04-13 2013-07-17 1072 Technology Ltd Phototherapy apparatus
US9635368B2 (en) * 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
US9100648B2 (en) * 2009-06-07 2015-08-04 Lg Electronics Inc. Method and apparatus for decoding a video signal
US9549190B2 (en) * 2009-10-01 2017-01-17 Sk Telecom Co., Ltd. Method and apparatus for encoding/decoding image using variable-size macroblocks
KR101698499B1 (ko) * 2009-10-01 2017-01-23 에스케이텔레콤 주식회사 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
US9137545B2 (en) * 2009-10-21 2015-09-15 Sk Telecom Co., Ltd. Image encoding and decoding apparatus and method
CN102098519B (zh) 2009-12-09 2013-04-17 浙江大学 视频编码方法、解码方法、编码及解码装置
US20120019613A1 (en) * 2009-12-11 2012-01-26 Tessera Technologies Ireland Limited Dynamically Variable Stereo Base for (3D) Panorama Creation on Handheld Device
US20110141224A1 (en) * 2009-12-11 2011-06-16 Fotonation Ireland Limited Panorama Imaging Using Lo-Res Images
US8885711B2 (en) * 2009-12-17 2014-11-11 Sk Telecom Co., Ltd. Image encoding/decoding method and device
PL2924995T3 (pl) 2010-07-09 2018-11-30 Samsung Electronics Co., Ltd Sposób dekodowania wideo wykorzystujący łączenie bloków
KR101663762B1 (ko) * 2010-07-20 2016-10-07 에스케이 텔레콤주식회사 다중 예측 필터를 이용하는 경쟁기반 인트라 예측 부호화/복호화 장치 및 방법
KR102696949B1 (ko) * 2010-12-08 2024-08-20 엘지전자 주식회사 인트라 예측 방법과 이를 이용한 부호화 장치 및 복호화 장치
US9462272B2 (en) * 2010-12-13 2016-10-04 Electronics And Telecommunications Research Institute Intra prediction method and apparatus
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8600194B2 (en) * 2011-05-17 2013-12-03 Apple Inc. Positional sensor-assisted image registration for panoramic photography
EP3678373A1 (en) * 2011-06-20 2020-07-08 HFI Innovation Inc. Method and apparatus of directional intra prediction
US8804816B2 (en) 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
CN102957907B (zh) 2011-08-31 2016-06-29 华为技术有限公司 一种变换块位置信息的获取方法和模块
KR20130027975A (ko) * 2011-09-08 2013-03-18 주식회사 케이티 인트라 예측 모드 부호화/복호화 방법 및 장치
US9363511B2 (en) 2011-09-13 2016-06-07 Mediatek Singapore Pte. Ltd. Method and apparatus for Intra mode coding in HEVC
US8878794B2 (en) * 2011-09-27 2014-11-04 Z124 State of screen info: easel
CN103858430B (zh) * 2011-09-29 2017-05-03 夏普株式会社 图像解码装置、图像解码方法及图像编码装置
CN104170379B (zh) 2011-10-24 2016-01-20 英孚布瑞智有限私人贸易公司 用于图像解码的方法和装置
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
KR20130049526A (ko) 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
CN104185988B (zh) * 2011-11-08 2019-05-10 韩国电子通信研究院 用于共享候选者列表的方法和装置
EP4366307A3 (en) * 2012-01-18 2024-07-17 Electronics and Telecommunications Research Institute Method and device for encoding and decoding image
KR101620619B1 (ko) * 2012-01-30 2016-05-12 한국전자통신연구원 인트라 예측 모드 부호화/복호화 방법 및 장치
US8842806B2 (en) * 2012-04-03 2014-09-23 Carestream Health, Inc. Apparatus and method for breast imaging
WO2013189205A1 (en) * 2012-06-22 2013-12-27 Mediatek Inc. Method and apparatus of adaptive intra prediction for inter-layer and inter-view coding
JP6080405B2 (ja) * 2012-06-29 2017-02-15 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
EP2839664A4 (en) * 2012-07-09 2016-04-06 Mediatek Inc METHOD AND APPARATUS FOR PREDICTING INTERVIEW SUB-DIVISION IN 3D VIDEO CODING
KR20140008503A (ko) * 2012-07-10 2014-01-21 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
KR20150036261A (ko) 2012-07-13 2015-04-07 후아웨이 테크놀러지 컴퍼니 리미티드 3차원 비디오를 표현하는 비트 스트림을 코딩하는 장치
US9973784B2 (en) 2012-09-20 2018-05-15 Sony Corporation Image processing device and method
JP6415016B2 (ja) 2012-11-12 2018-10-31 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム
US9788002B2 (en) * 2012-11-29 2017-10-10 Samsung Electronics Co., Ltd. Image processing apparatus and method
US9438926B2 (en) 2012-12-21 2016-09-06 Qualcomm Incorporated Constraints on neighboring block based disparity vector (NBDV) techniques for 3D video
US20150326866A1 (en) * 2012-12-28 2015-11-12 Sharp Kabushiki Kaisha Image decoding device and data structure
US20140185950A1 (en) * 2012-12-28 2014-07-03 Microsoft Corporation Progressive entropy encoding
CN104904209B (zh) * 2013-01-07 2018-07-24 Lg 电子株式会社 视频信号处理方法
US20140198855A1 (en) * 2013-01-14 2014-07-17 Qualcomm Incorporated Square block prediction
US9232225B2 (en) * 2013-03-14 2016-01-05 Chirp Inc. Low complexity and memory efficient image CODEC
AU2013202653A1 (en) * 2013-04-05 2014-10-23 Canon Kabushiki Kaisha Method, apparatus and system for generating intra-predicted samples
US9641853B2 (en) * 2013-04-15 2017-05-02 Futurewei Technologies, Inc. Method and apparatus of depth prediction mode selection
US10262462B2 (en) * 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
KR20150009424A (ko) * 2013-07-15 2015-01-26 한국전자통신연구원 시간적 서브 레이어 정보에 기반한 계층간 예측을 이용한 영상 부, 복호화 방법 및 그 장치
CN112383780B (zh) * 2013-08-16 2023-05-02 上海天荷电子信息有限公司 点匹配参考集和索引来回扫描串匹配的编解码方法和装置
KR102112048B1 (ko) * 2013-08-27 2020-05-18 삼성전자주식회사 악기 연주 기능을 지원하는 전자 장치 및 그의 제어 방법
WO2015062002A1 (en) 2013-10-31 2015-05-07 Mediatek Singapore Pte. Ltd. Methods for sub-pu level prediction
KR20150068299A (ko) 2013-12-09 2015-06-19 씨제이씨지브이 주식회사 다면 영상 생성 방법 및 시스템
JP6441236B2 (ja) * 2013-12-19 2018-12-19 シャープ株式会社 画像復号装置及び画像符号化装置
CN104754361B (zh) * 2013-12-28 2018-01-23 同济大学 图像编码、解码方法及装置
US9294765B2 (en) * 2014-01-07 2016-03-22 Vixs Systems, Inc. Video encoder with intra-prediction pre-processing and methods for use therewith
US20150264348A1 (en) * 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
US9707799B2 (en) * 2014-03-19 2017-07-18 The Procter & Gamble Company Process for printing and securing three-dimensional pattern on non-fibrous substrates and article comprising non-fibrous surface having three-dimensional pattern thereon
KR102120843B1 (ko) * 2014-04-22 2020-06-09 삼성전자주식회사 디스플레이 장치 및 그의 멀티 뷰 디스플레이 방법
US20150363664A1 (en) * 2014-06-13 2015-12-17 Nokia Corporation Method, Apparatus and Computer Program Product for Image Processing
US9900617B2 (en) * 2014-06-20 2018-02-20 Qualcomm Incorporated Single color palette mode in video coding
RU2571616C1 (ru) * 2014-08-12 2015-12-20 Общество с ограниченной ответственностью "Аби Девелопмент" Способ и система оптического распознавания символов, которые сокращают время обработки изображений, потенциально не содержащих символы
KR20160032909A (ko) * 2014-09-17 2016-03-25 한화테크윈 주식회사 멀티 영상 전처리 장치 및 방법
US10554966B2 (en) 2014-10-07 2020-02-04 Samsung Electronics Co., Ltd. Multi-view image encoding/decoding method and apparatus
WO2016072775A1 (ko) 2014-11-06 2016-05-12 삼성전자 주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
WO2016118897A1 (en) 2015-01-22 2016-07-28 Kubicam Inc. Video transmission based on independently encoded background updates
US9871967B2 (en) 2015-01-22 2018-01-16 Huddly As Video transmission based on independently encoded background updates
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
US9936201B2 (en) * 2015-01-27 2018-04-03 Qualcomm Incorporated Contexts for large coding tree units
US10075692B2 (en) * 2015-01-28 2018-09-11 Hfi Innovation Inc. Method of simple intra mode for video coding
US10212434B2 (en) * 2015-01-30 2019-02-19 Qualcomm Incorporated Palette entries coding in video coding
GB2537094B (en) * 2015-02-27 2019-02-20 Sheffield Hallam Univ Image data compression and decompression
US10115031B1 (en) * 2015-02-27 2018-10-30 Evernote Corporation Detecting rectangular page and content boundaries from smartphone video stream
CN107409231B (zh) * 2015-03-05 2021-05-11 索尼公司 图像处理装置和图像处理方法
US9933925B2 (en) * 2015-03-11 2018-04-03 Nexthink Sa Screen layout manager
JP6052319B2 (ja) * 2015-03-25 2016-12-27 Nttエレクトロニクス株式会社 動画像符号化装置
US20180255304A1 (en) * 2015-03-29 2018-09-06 Lg Electronics Inc. Method and device for encoding/decoding video signal
WO2016154963A1 (en) * 2015-04-01 2016-10-06 Mediatek Inc. Methods for chroma coding in video codec
US9930315B2 (en) 2015-04-29 2018-03-27 Lucid VR, Inc. Stereoscopic 3D camera for virtual reality experience
EP3292687A4 (en) * 2015-05-06 2019-07-03 NGCodec Inc. INTRA PREDICTION PROCESSOR WITH PARTITIONING OF REDUCED COST BLOCKS AND PERFECTED SELECTION OF INTRA MODES
US10448058B2 (en) * 2015-05-21 2019-10-15 Qualcomm Incorporated Grouping palette index at the end and index coding using palette size and run value
CN115002458A (zh) 2015-06-05 2022-09-02 杜比实验室特许公司 图像编码和解码方法和图像解码设备
CN115134596A (zh) 2015-06-05 2022-09-30 杜比实验室特许公司 用于执行帧间预测的图像编解码方法、比特流存储方法
US10321162B2 (en) * 2015-06-08 2019-06-11 Qualcomm Incorporated Derivation of color gamut scalability parameters and tables in scalable video coding
CN115134609A (zh) * 2015-06-11 2022-09-30 杜比实验室特许公司 使用自适应去块滤波编码和解码图像的方法及其装置
WO2016204478A1 (ko) 2015-06-15 2016-12-22 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10148977B2 (en) * 2015-06-16 2018-12-04 Futurewei Technologies, Inc. Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
WO2017008263A1 (en) * 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
US10602138B2 (en) * 2015-08-27 2020-03-24 Lg Electronics Inc. Method and device for chroma sample intra prediction in video coding system
GB2557809B (en) * 2015-08-28 2021-12-01 Kt Corp Method and device for processing video signal
KR102275812B1 (ko) * 2015-09-04 2021-07-14 삼성전자주식회사 센터 패드 타입의 스택드 칩 구조에서 신호 완결성 이슈를 개선할 수 있는 온다이 터미네이션 스키마를 갖는 반도체 메모리 장치
CN114697679A (zh) * 2015-09-11 2022-07-01 株式会社Kt 图像解码方法、图像编码方法和包括比特流的设备
US10356432B2 (en) * 2015-09-14 2019-07-16 Qualcomm Incorporated Palette predictor initialization and merge for video coding
US10217189B2 (en) 2015-09-16 2019-02-26 Google Llc General spherical capture methods
KR102432085B1 (ko) * 2015-09-23 2022-08-11 노키아 테크놀로지스 오와이 360도 파노라마 비디오를 코딩하는 방법, 장치 및 컴퓨터 프로그램 제품
US20170118475A1 (en) * 2015-10-22 2017-04-27 Mediatek Inc. Method and Apparatus of Video Compression for Non-stitched Panoramic Contents
US10212444B2 (en) 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
US9992502B2 (en) * 2016-01-29 2018-06-05 Gopro, Inc. Apparatus and methods for video compression using multi-resolution scalable coding
US20170230668A1 (en) 2016-02-05 2017-08-10 Mediatek Inc. Method and Apparatus of Mode Information Reference for 360-Degree VR Video
US10225546B2 (en) * 2016-02-26 2019-03-05 Qualcomm Incorporated Independent multi-resolution coding
KR102546142B1 (ko) * 2016-03-18 2023-06-21 로즈데일 다이나믹스 엘엘씨 비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치
US10319071B2 (en) 2016-03-23 2019-06-11 Qualcomm Incorporated Truncated square pyramid geometry and frame packing structure for representing virtual reality video content
FI20165256A (fi) 2016-03-24 2017-09-25 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen
US9721393B1 (en) 2016-04-29 2017-08-01 Immersive Enterprises, LLC Method for processing and delivering virtual reality content to a user
KR102254162B1 (ko) * 2016-05-12 2021-05-20 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US20170347094A1 (en) * 2016-05-31 2017-11-30 Google Inc. Block size adaptive directional intra prediction
KR20180000279A (ko) * 2016-06-21 2018-01-02 주식회사 픽스트리 부호화 장치 및 방법, 복호화 장치 및 방법
KR20190035678A (ko) * 2016-07-08 2019-04-03 브이아이디 스케일, 인크. 지오메트리 투영을 이용한 360도 비디오 코딩
US10375371B2 (en) * 2016-07-15 2019-08-06 Mediatek Inc. Method and apparatus for filtering 360-degree video boundaries
WO2018022902A1 (en) 2016-07-27 2018-02-01 The Trustees Of Columbia University In The City Of New York Methods and systems for peripheral nerve modulation using focused ultrasound
US10609423B2 (en) * 2016-09-07 2020-03-31 Qualcomm Incorporated Tree-type coding for video coding
US11172005B2 (en) * 2016-09-09 2021-11-09 Nokia Technologies Oy Method and apparatus for controlled observation point and orientation selection audiovisual content
EP3301915A1 (en) 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for omnidirectional video coding with adaptive intra most probable modes
EP3301914A1 (en) 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for encoding and decoding a large field of view video
US20190238888A1 (en) * 2017-07-17 2019-08-01 Ki Baek Kim Image data encoding/decoding method and apparatus
CN109996072B (zh) * 2018-01-03 2021-10-15 华为技术有限公司 视频图像的处理方法及装置
US10986371B2 (en) * 2018-03-22 2021-04-20 Mediatek Inc. Sample adaptive offset filtering method for reconstructed projection-based frame that employs projection layout of 360-degree virtual reality projection
CN110662065A (zh) 2018-06-29 2020-01-07 财团法人工业技术研究院 图像数据解码方法及解码器、图像数据编码方法及编码器
US20200288158A1 (en) * 2019-03-05 2020-09-10 Qualcomm Incorporated Prediction-domain filtering for video coding
WO2021206445A1 (ko) * 2020-04-07 2021-10-14 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101484280B1 (ko) 2009-12-08 2015-01-20 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Xiang Li, "Multi-Type-Tree", JVET-D0117, version 1, 2016.10.6*

Also Published As

Publication number Publication date
US20230276132A1 (en) 2023-08-31
KR20190052128A (ko) 2019-05-15
US11778331B2 (en) 2023-10-03
US20230247301A1 (en) 2023-08-03
US20240064409A1 (en) 2024-02-22
US20240305766A1 (en) 2024-09-12
US11696035B2 (en) 2023-07-04
US20230254582A1 (en) 2023-08-10
US11949994B2 (en) 2024-04-02
US11812155B2 (en) 2023-11-07
US20230254584A1 (en) 2023-08-10
US11792524B2 (en) 2023-10-17
US20230247302A1 (en) 2023-08-03
US20230247299A1 (en) 2023-08-03
US20240267630A1 (en) 2024-08-08
US11956549B2 (en) 2024-04-09
US20220217274A1 (en) 2022-07-07
KR20230070062A (ko) 2023-05-19
US20230254583A1 (en) 2023-08-10
US20240107170A1 (en) 2024-03-28
US20240064410A1 (en) 2024-02-22
US20240305765A1 (en) 2024-09-12
KR20200060545A (ko) 2020-05-29
US11956548B2 (en) 2024-04-09
US20240276101A1 (en) 2024-08-15
US11778332B2 (en) 2023-10-03
US20240276102A1 (en) 2024-08-15
US11792522B2 (en) 2023-10-17
US20240098373A1 (en) 2024-03-21
US11792523B2 (en) 2023-10-17
US20230254585A1 (en) 2023-08-10
US20240259689A1 (en) 2024-08-01
US12096126B2 (en) 2024-09-17
US11838639B2 (en) 2023-12-05
US20240073533A1 (en) 2024-02-29
US20240297970A1 (en) 2024-09-05
US11838640B2 (en) 2023-12-05
US20240064408A1 (en) 2024-02-22
US20230388644A1 (en) 2023-11-30
US20230247300A1 (en) 2023-08-03
WO2018066980A1 (ko) 2018-04-12
US20240147076A1 (en) 2024-05-02
US11902668B2 (en) 2024-02-13
US20240297971A1 (en) 2024-09-05
US20240098372A1 (en) 2024-03-21
US20240297969A1 (en) 2024-09-05
US11997391B2 (en) 2024-05-28

Similar Documents

Publication Publication Date Title
KR102529712B1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
KR102224668B1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
KR102690804B1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
KR20230010060A (ko) 영상 데이터 부호화/복호화 방법 및 장치
JP7269457B2 (ja) 画像データ符号化/復号化方法及び装置
US11902668B2 (en) Image data encoding/decoding method and apparatus
KR20230070327A (ko) 영상 데이터 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
A107 Divisional application of patent
GRNT Written decision to grant