KR102106716B1 - 타일 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템 - Google Patents

타일 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템 Download PDF

Info

Publication number
KR102106716B1
KR102106716B1 KR1020180140513A KR20180140513A KR102106716B1 KR 102106716 B1 KR102106716 B1 KR 102106716B1 KR 1020180140513 A KR1020180140513 A KR 1020180140513A KR 20180140513 A KR20180140513 A KR 20180140513A KR 102106716 B1 KR102106716 B1 KR 102106716B1
Authority
KR
South Korea
Prior art keywords
video
encoding
tile
encoded
tiles
Prior art date
Application number
KR1020180140513A
Other languages
English (en)
Inventor
김용환
허진강
정진우
Original Assignee
전자부품연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 전자부품연구원 filed Critical 전자부품연구원
Priority to KR1020180140513A priority Critical patent/KR102106716B1/ko
Application granted granted Critical
Publication of KR102106716B1 publication Critical patent/KR102106716B1/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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

초대용량(8K, 16K) 영상의 타일 기반 스트리밍을 위한 "실시간" 트랜스코딩이 가능한 분산 트랜스코딩 방법 및 시스템이 제공된다. 본 발명의 실시예에 따른 분산 트랜스코딩 방법은 입력 동영상을 분석하여 비트스트림 레벨에서 시간 분할하는 단계; 시간 분할된 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하는 제1 인코딩 단계; 시간 분할된 비디오를 NxM개의 타일로 공간 분할한 후, NxM개의 비디오 인코더로 인코딩하는 제2 인코딩 단계; 인코딩된 비디오를 파일로 저장하여 전송하는 단계;를 포함한다.
이에 의해, 초대용량(8K, 16K) 영상(360 VR 또는 파노라마 영상)의 타일 기반 스트리밍을 위한 "실시간" 분산 트랜스코딩이 가능한데, 타일을 지원하는 비디오 코덱(HEVC 및 AV1)을 모두 지원하므로, 유연한 서비스 제공이 가능하다.

Description

타일 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템{Distributed Video Transcoding Method and System for Tiled Streaming}
본 발명은 초대용량(8K, 16K) 영상(360VR, 파노라마 영상 등)의 타일(Tile) 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템에 관한 것으로, 더욱 상세하게는 초대용량 영상을 분산 트랜스코딩할 때, 영상의 시간 단위 분할과 공간 단위 분할을 통한 실시간 분산 처리 구조 및 방법에 관한 것이다.
1) 타일 기반 스트리밍 서비스 개요
8K(7680x4320)/16K(15360x8640)급 360VR 및 파노라마 영상과 같은 초대용량 비디오를 스트리밍 서비스하기 위해서는, 1) 네트웍 대역폭 부족, 2) 다수 클라이언트를 위한 스트리밍 서버의 초대용량 데이터 처리 능력 부족, 3) 소비가전 디바이스의 재생 능력 부족, 이라는 세 가지 문제를 해결하는 기술이 필요하다.
360VR 영상과 파노라마 영상의 시청 특징은 전체 영역을 한번에 보는 것이 아니라, 한 순간에는 일부 영역(Field of View; FOV)만을 보는 것이다. 즉, 전체 영역을 보기 위해서는 일부 영역을 상하좌우로 조금씩 움직이면서 보게 된다.
따라서, 초대용량 영상 데이터를 한번에 스트리밍하기보다는 영상을 미리 분할 영상(타일)로 분할하여 사용자가 현재 보고 있는 영역만을 적응적으로 스트리밍하는 방법을 "타일 기반 스트리밍 서비스 기술"이라고 한다.
이 방법을 사용하면, 위의 3가지 문제점을 모두 해결할 수 있지만, 사용자의 FOV 뷰 스위칭시 새로운 타일을 스트리밍 받아야하므로 약간의 지연(latency)이 발생하는 단점을 가지게 된다.
이러한 단점은 작은 해상도(예를 들면, Full-HD(1920x1080))의 전체 영상을 분할 영상들과 동시에 스트리밍하여 어느 정도 보완이 가능하다. 즉, 사용자의 FOV 뷰 스위칭시 상대적으로 저화질인 작은 해상도의 영상이 해당 영역에 먼저 보이고, 새롭게 스트리밍 받은 고화질의 분할 영상이 조금 후 업데이트되는 방식이다.
도 1에 GPAC 프로젝트에서 개발한 타일 기반 스트리밍 서비스 개요도를 나타내었다.
초대용량 영상(360VR, 파노라마 영상 등)의 타일(Tile) 기반 스트리밍 서비스를 위해서는 크게 1) 모션 제한 비디오 인코더 (Motion-constrained video encoder), 2) 타일 기반 분산 트랜스코더 시스템, 3) 비트스트림 스티처(Stitcher), 4) 전용 플레이어가 필요하다.
2) 종래기술: 타일 기반 비디오 HEVC 인코딩 및 스트리밍 방법
독일 프라운호퍼 HHI 연구소는 타일 기반 HEVC 인코딩 및 스트리밍 시스템을 제안하였다. 도 2는 타일 기반 인코더 시스템 구조를 보여주고, 도 3은 플레이어에서의 비트스트림 스티칭 및 재생 구조를 보여주고 있다.
도 2를 보면, 원본 초대용량 영상을 세로 방향 타일들로 분할하여 타일 개수만큼의 HEVC 인코더들로 인코딩하고 있다. 여기에서 분산 인코딩/트랜스코딩 개념은 없다.
도 3의 우측 상단을 보면, 큰 타일은 고화질 분할 영상 타일들이고, 작은 타일들은 저해상도 전체 영상 타일들이다. 즉, 고화질 분할 영상 타일들과 저해상도 전체 영상 타일들을 모두 비트스트림 스티칭하여, 싱글 HEVC 디코더로 디코딩하는 구조이다. 이러한 구조의 장단점은 다음과 같다.
- 장점 1: 싱글 디코더만으로 재생이 가능하기 때문에 재생기의 연산 부하가 낮다.
- 장점 2: 고화질 분할 영상들과 저해상도 전체 영상을 모두 타일로 분할하여 4K급으로 전송하므로, 기존 4K 동영상 스트리밍에 비해서 대역폭 증가는 없다.
- 단점 1: 저해상도 전체영상 타일들 때문에 고화질 분할 영상들의 전체 크기가 가능한 전체 크기의 2/3로 줄어들기 때문에, 약간의 화질 손실이 발생한다.
- 단점 2: 타일의 구조가 복잡하여, 인코딩 시스템, 비트스트림 스티처, 재생기에서 처리가 복잡하고, 확장성(다양한 코덱 지원, 저해상도 전체 영상의 해상도 제한 등)이 떨어진다.
3) 모션 제한 비디오 부호화 (Motion-Constrained Video Encoding) 개요
타일 기반 스트리밍 서비스를 하기 위해서는 비디오 코덱이 '타일(Tile)' 기반 독립적인 압축/복원을 지원해야 한다. 현재 타일을 지원하는 표준 비디오 코덱은 2013년에 표준화 완료된 ISO/IEC & ITU-T 의 High Efficiency Video Coding (HEVC) 국제표준 비디오 코덱과 2018년에 표준화 완료된 Alliance for Open Media 포럼의 AV1 산업계표준 비디오 코덱이 전부이다.
타일은 픽처의 내부를 직사각형 모양의 가로/세로 영역으로 나누어서 압축 및 복원을 할 수 있는 기능이다. 참고로, 기존의 비디오 코덱들에서 지원했던 '슬라이스(Slice)'는 픽처 내부 영역을 가로 영역으로만 나눌 수 있기 때문에 타일과 차이가 있다.
타일은 1) 부호화기 병렬 처리시 압축효율 향상, 2) 다수 영상의 비트스트림 레벨에서의 영상 통합(비트스트림 스티칭) 에 이용될 수 있다. 도 4에 하나의 픽처를 2x2 타일로 나누어진 타일 구조 예를 보인다.
특히 비트스트림 스티칭은 타일 기반 스트리밍 서비스의 핵심 기술 중의 하나로써, 부호화기에서 모션 제한 인코딩을 수행해야만 오류 없이 통합 및 복호화가 가능하다. 여기에서 모션 제한 인코딩은 타일을 지원하는 비디오 부호화기 (HEVC, AV1)에서, 시간/공간적으로 타일 경계를 넘어서는 움직임을 포함하는 모든 예측 및 루프 필터링을 제한하는 부호화를 의미한다. 비디오 코덱 표준에 정확하게 부합하는 모션 제한 부호화기를 설계할 수 있기 때문에, 복호화시 널리 퍼져있는 표준 디코더를 사용한다.
도 5에 HEVC 비트스트림 스티처 개념도를 보인다. 도 5에서 4개로 분할된 비트스트림을 타일 기능을 이용하는 '비트스트림 스티처'를 통해서 표준에 부합하는 통합된 하나의 비트스트림으로 만든다.
4) 종래기술: 타일 기반 비디오 HEVC 부호화 방법
HEVC(High-Efficiency Video Coding) 코덱을 이용한 타일 기반의 360° VR 비디오 스트리밍 방식들이 제안되었다. 도 6에서 타일 기반 HEVC 인코더의 모션 제한 부호화 방법을 표시하고 있다.
HEVC 부호화의 인터 예측 모드에서는 Integer motion vector를 검색하는 것과 Fractional motion vector를 검색하는 방법이 있는데, 이러한 벡터의 검색 범위를 재조정하여 타일 경계를 넘어가는 벡터가 존재하지 않게 제한한다. 또한 인터 예측에서 움직임 벡터 예측시, 동일 타일 내의 움직임 벡터만을 이용하도록 제한한다. 이는 인터 예측모드에서 주변 타일 간의 상관 관계를 없애는 방법이다.
또한 HEVC 인코더의 Picture parameter set (PPS) 에 있는 loop_filter_across_tiles_enabled_flag_set을 0으로 설정한다. 이 플래그는 디코더에서 타일들로 이뤄지는 영상을 디코딩할 때 타일의 경계 부분에 있는 화소들에서는 인 루프 필터인 Deblocking filter 및 Sample adaptive offset filter를 제한한다는 플래그이다. 즉, 타일의 경계 부분에서 인 루프 필더를 사용 안 한다는 것이다.
이러한 여러 예측 및 필터링 제한은 인코더 측면에서 약간의 압축율 저하(즉, 비트율 증가)를 보이지만, 이는 초대용량 영상의 스트리밍 서비스를 위해서 무시할만한 수준이다.
이와 같이, HEVC의 모션 제한 압축은 타일 경계에서 루프 필터를 수행하지 않는 옵션을 이용하고, 기타 알려진 제한을 이용하면 된다. 그러나 AV1 비디오 코덱의 경우는 타일 경계에서 루프 필터를 수행하지 않는 옵션이 없는 바, 이를 해결하기 위한 방안의 모색이 요청된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 초대용량(8K, 16K) 영상의 타일 기반 스트리밍을 위한 "실시간" 트랜스코딩이 가능한 분산 트랜스코딩 방법 및 시스템을 제공함에 있다.
본 발명의 다른 목적은, 고화질을 최대한 보장하기 위한 '멀티 인코딩, 듀얼 디코딩' 구조의 스트리밍 시스템을 제공함에 있다.
본 발명의 또 다른 목적은, AV1 코덱의 특성에 맞는 타일 기반 부호화 방법 및 장치, 구체적으로, AV1 표준 디코더를 전혀 수정하지 않고 타일 기반 분할 영상들을 비트스트림 레벨에서 통합하여 디코딩할 수 있게 부호화하는 AV1 부호화 방법 및 장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 분산 트랜스코딩 방법은 부호화될 입력 동영상을 분석하여 비트스트림 레벨에서 시간 분할하는 단계; 시간 분할된 부호화될 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하는 제1 인코딩 단계; 시간 분할된 부호화될 비디오를 NxM개의 타일로 공간 분할한 후, NxM개의 비디오 인코더로 인코딩하는 제2 인코딩 단계; 인코딩된 비디오를 파일로 저장하여 전송하는 단계;를 포함한다.
파일 정보를 메타데이터로 저장하여 전송하는 단계;를 포함하고, 메타데이터는, video_tiles 태그를 포함하고, video_tiles 태그는, 개별 타일의 track_id, 원본 전체 영상에서의 x, y 좌표 및 tile_width, tile_height 정보가 포함된다 region_segment들을 포함할 수 있다.
본 발명에 따른 분산 트랜스코딩 방법은 비디오에 대한 오디오를 분산 처리하지 않고 트랜스코딩하는 단계;를 더 포함할 수 있다.
분할 단계에서 시간 분할되는 입력 동영상은, 타일 기반의 AV1 코덱으로 부호화될 영상이고, 제2 인코딩 단계는, 타일들에 대해, 모션 제한 부호화를 수행하는 것일 수 있다.
제2 인코딩 단계는, 타일 경계 블록에서의 DF의 파라미터를 다음과 같이 설정하는 것일 수 있다.
deltaLF = -loop_filter_level[i]
allow_intrabc = 0,
delta_lf_present = 1,
loop_filter_sharpness = 0,
loop_filter_delta_enabled = 0
제2 인코딩 단계는, 프레임 헤더에 존재하는 loop_filter_level 값을 양자화 파라미터 인덱스 값 기반으로 계산하도록 설정하고, 모든 타일 영상의 양자화 파라미터 인덱스 값이 일치하도록 설정하는 것일 수 있다.
제2 인코딩 단계는, 타일 경계 블록에서 cdef_idx[]=-1로 설정하고, 타일 경계 블록에서 restoration_type=RESTORE_NONE으로 설정하는 것일 수 있다.
제2 인코딩 단계는, 타일 기반 AV1 영상 프레임의 헤더 파라미터에서 "allow_warped_motion=0" 및 "segmentation_enabled=0"으로 설정하고, 타일 기반 AV1 영상 프레임의 헤더 파라미터에서 interpolation_filter를 하나의 동일한 값으로 고정하며, AV1 부호화기의 Golden Frame (GF) group 및 Key frame interval을 동일한 값으로 고정하는 것일 수 있다.
제2 인코딩 단계는, 타일 기반 AV1 영상의 포맷과 사이즈를 기초로, 움직임 예측 범위를 제한하고, 제한된 움직임 예측 범위를 기초로 영상을 구성하는 타일들에 대한 모션 벡터들을 예측하는 것일 수 있다.
한편, 본 발명의 다른 실시예에 따른, 분산 트랜스코딩 시스템은 입력 동영상을 분석하여 비트스트림 레벨에서 시간 분할하고, 슬레이브 노드들에 의해 인코딩된 비디오를 파일로 저장하여 전송하는 마스터 노드; 시간 분할된 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하고, 시간 분할된 비디오를 NxM개의 타일로 공간 분할한 후 NxM개의 비디오 인코더로 인코딩하는 슬레이브 노드들;을 포함한다.
한편, 본 발명의 다른 실시예에 따른, 분산 트랜스코딩 방법은 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하는 제1 인코딩 단계; 비디오를 NxM개의 타일로 공간 분할한 후, NxM개의 비디오 인코더로 인코딩하는 제2 인코딩 단계;를 포함한다.
한편, 본 발명의 다른 실시예에 따른, 분산 트랜스코딩 시스템은 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하는 제1 노드; 비디오를 NxM개의 타일로 공간 분할한 후, NxM개의 비디오 인코더로 인코딩하는 제2 노드;를 포함한다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, 초대용량(8K, 16K) 영상(360 VR 또는 파노라마 영상)의 타일 기반 스트리밍을 위한 "실시간" 분산 트랜스코딩이 가능한데, 타일을 지원하는 비디오 코덱(HEVC 및 AV1)을 모두 지원하므로, 유연한 서비스 제공이 가능하다.
또한, 본 발명의 실시예들에 따르면, '멀티 인코딩, 듀얼 디코딩' 구조를 통하여 초고화질 영상을 제공하고, 지연(latency)에 대응할 수 있다.
그리고, 본 발명의 실시예들에 따르면, 초대용량 영상의 모션 제한 AV1 부호화를 통하여 타일 기반 스트리밍 서비스가 가능하게 된다.
[도 1] 타일 기반 스트리밍 서비스 개요도
[도 2] 프라운호퍼 HHI 연구소의 타일 기반 인코더 시스템
[도 3] 프라운호퍼 HHI 연구소의 타일 기반 비트스트림 스티칭 및 재생기
[도 4] 2x2 타일로 나누어진 픽처 예
[도 5] HEVC 비트스트림 스티처 개념도
[도 6] 모션 제한 HEVC 부호화기 수정 방법
[도 7] 타일 기반 스트리밍 서비스 개념도
[도 8] 타일 기반 스트리밍 서비스를 위한 분산 트랜스코더 시스템 개요도
[도 9] SR 메타데이터의 구조
[도 10] KMSP 패킷 구조
[도 11] 모션 제한 AV1 부호화기 수정 방법
[도 12] 비트스트림 스티칭에 의한 단일 프레임 헤더 예
[도 13] 움직임 벡터 제한 부호화를 위한 모션 벡터 범위 (CBWS <= 8 및 CBHS <= 8)
[도 14] 움직임 벡터 제한 부호화를 위한 모션 벡터 범위 (CBWS > 8 및 CBHS > 8)
[도 15] AV1 DF의 블록 lvl 값 계산 방법
[도 16] 모션 제한 AV1 부호화기를 위한 DF 파라미터 설정 요약
[도 17] 픽처 경계에 위한 블록의 CDEF 제한
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
1. 트랜스코딩 방법 및 시스템
본 발명의 실시예에서는 도 7과 같은 타일 기반 스트리밍 서비스 방법을 제시한다. 도 7에서 본 발명은 "Motion-constrained HEVC/AV1 distributed transcoder" 시스템에 해당한다.
종래 기술인 프라운호퍼 HHI 연구소의 타일 기반 스트리밍 서비스 시스템과의 차이점은 '멀티 인코딩, 듀얼 디코딩' 구조인 점이다. 즉, 타일로 분할하여 트랜스코딩된 고화질 영상들과 원본 초고해상도 영상으로부터 다운샘플된 Full-HD급의 저해상도 전체 영상(low resolution full video)을 일반 영상으로 인코딩 및 전송하고, 재생기에서는 4K급의 고화질 분할영상은 4K 디코더(HW 또는 SW)를 이용하여 디코딩하고, 동시에 저해상도 전체 영상은 Full-HD 디코더(SW 또는 HW)로 디코딩한다.
따라서 재생기에서 듀얼 디코더가 필요하다. 이러한 구조의 장점은 다음과 같다.
- 장점 1: 고화질 분할 영상들의 전체 크기가 4K 로 유지되기 때문에, 화질 손실이 발생하지 않는다.
- 장점 2: 타일의 구조가 단순하기 때문에, 여러 비디오 코덱에 적용하는 확장성이 우수하고, 트랜스코딩 시스템, 비트스트림 스티처, 재생기에서 처리가 수월하다.
타일 기반 스트리밍 서비스를 위한 분산 트랜스코딩 시스템 개요도를 도 8에 보인다. 본 발명의 실시예에 따른 분산 트랜스코더는 오픈소스 분산처리 플랫폼인 Hadoop 및 Spark를 기반으로 설계하여, 1) 트랜스코딩 연산을 담당하는 슬레이브 노드(120)를 손쉽게 추가함으로써 초대용량 영상의 실시간 트랜스코딩이 가능하고, 2) 슬레이브 노드(120)의 고장에 대응이 수월하다.
분산 트랜스코딩의 내부 흐름은 다음과 같다.
1) Transcoder Master(110) : 입력 동영상을 분석하여 비트스트림 레벨에서 "영상 시간 분할(Time division)"
- 시간 분할 간격은 1~N초로 설정이 가능하고, 영상에 따라 기본 값은 3~5초이다.
- 시간 분할은 비디오 Key frame (HEVC 및 H.264/AVC의 IDR picture, MPEG-1/2/4의 Intra frame, AV1의 Key frame 등) 에서만 가능하기 때문에, 영상 내에서 비디오 Key frame 위치에 따라 시간 분할 간격은 조금씩 변동된다.
- 필요하다면 오디오 트랜스코딩 수행. 즉, 오디오는 비디오와 달리 분산 처리하지 않고 마스터에서 단독으로 트랜스코딩함. 왜냐하면 오디오는 오디오코덱의 포맷 특성상 분산 처리가 거의 불가능하고, 트랜스코딩 연산 부하가 낮아서 마스터 단독으로 처리 가능하기 때문이다.
2) Transcoder Master(110) : 시간 분할된 원본 비디오 비트스트림 및 (트랜스코딩된) 오디오 비트스트림을 KETI Multi-Stream Protocol (KMSP) 포맷의 패킷으로 먹싱(Muxing)한 후에 슬레이브로 배포(업로드)
- 슬레이브로 KMSP 패킷을 배포하는 2가지 방법이 있다. 1) 하둡의 HDFS(Hadoop Distributed File System)에 패킷 업로드, 2) Spark Streaming의 custom TCP receiver에 패킷 전송. 본 발명 시스템에서는 위의 두 가지를 옵션으로 모두 지원한다.
- KMSP 패킷 업로드시 Spark Streaming 서버의 메모리 버퍼 오버플로 및 실시간 처리 시간 지연에 의한 패킷 손실(loss)를 막기 위한 rate control을 수행한다. 즉, 슬레이브 노드의 처리 용량을 미리 알고 있으므로, 처리할 수 있는 만큼의 패킷들만을 지속적으로 업로드한다.
3) Slave Node(120) : KMSP 패킷을 수신하여 디먹싱(Demuxing) 후 원본 비디오 디코딩 후 Full-HD급으로 다운샘플링. 그 후 2개의 비디오 인코더를 이용하여 원본 비디오와 다운샘플된 비디오 인코딩 수행
- 여기에서 타일 분할 옵션이 켜져 있으면, 디코딩된 원본 비디오를 NxM개의 타일로 "비디오 공간 분할(Space division)"한 후 타일 개수 개의 모션 제한 비디오 인코더와 다운샘플링된 영상을 위한 비디오 인코더를 이용하여 비디오 인코딩을 수행한다. 따라서 (타일 개수 + 1)개의 비디오 인코더가 필요하다.
4) Slave Node(120) : 트랜스코딩된 비디오와 마스터로부터 받은 오디오를 출력 파일 포맷(MP4, MPEG-4 TS 등)으로 먹싱하여 HDFS 파일로 저장 또는 TCP로 전송
- 타일로 나누어진 NxM개의 비디오들은 하나의 출력 파일 내에 NxM개의 트랙(track)으로 저장
5) Transcoder Master(110) : 슬레이브들로부터 시간 분할된 출력 파일들을 수신하여 하나의 최종 출력 파일로 저장
- 슬레이브로부터 출력 파일을 수신하는 2가지 방법이 있다. 1) 하둡의 HDFS(Hadoop Distributed File System)로부터 파일 다운로드, 2) Spark Streaming의 custom TCP sender로부터 출력 파일 수신. 본 발명 시스템에서는 위의 두 가지를 옵션으로 모두 지원한다.
6) Transcoder Master(110) : 타일을 포함한 최종 출력 파일의 정보를 SR (Spatial Relationship) 메타데이터(xml)로 저장.
- SR 메타데이터의 구조는 도 9과 같다. 만약 타일 옵션이 선택될 경우, video_tiles 태그의 region_segment들에 개별 타일의 track_id, 원본 전체 영상에서의 x, y 좌표 및 tile_width, tile_height 등의 정보가 포함된다.
도 8의 트랜스코딩은 실시간 처리를 지원하는 Spark Streaming 방식에 맞게 입력 KMSP 패킷 업로드 및 출력 MP4 파일 다운로드들이 계속적으로 이루어지는 스트리밍 방식으로 동작한다.
타일이 적용되는 트랜스코딩의 최종 출력 파일에 대한 간단한 예를 들면, output profile의 개수를 2로 선택하면 profile 0는 타일이 적용된 고화질 분할 영상들로 트랜스코딩되고, profile 1은 타일이 적용되지 않은 저해상도(Full-HD급) 전체 영상으로 트랜스코딩되어서, 분산 트랜스코딩 시스템의 최종 출력은 1) file0.mp4, 2) file1.mp4, 3) file_sr.xml 이 된다.
도 10에 KMSP 패킷 구조를 보인다. 입력 동영상에 대한 정보는 GlobalHeader에 기입되고, 최대 4개의 출력 동영상에 대한 트랜스코딩 옵션 및 정보(비디오 코덱 ID(HEVC, AV1 등), 영상 가로/세로 크기, 등)는 StreamHeader에 들어 있다. 따라서 공간 분할 트랜스코딩을 위한 타일 정보도 출력 동영상에 대한 정보이기 때문에 StreamHeader에 포함되어 있다.
2. 타일 기반 스트리밍을 위한 모션 제한 AV1 영상 부호화
본 발명의 실시예에서는 도 11에서와 같이 AV1 코덱의 특성에 맞는 움직임 벡터가 제한된 타일 기반 부호화 방법을 제시한다. 본 발명에 따른 실시예에서는, 원래는 서로 상관도가 존재하는 여러 타일들을 상관도를 제한한 분할 영상으로 인코딩하는 것이다.
이를 위해서 도 11과 같은 크게 세 가지 작업을 수행하는데, 1) AV1 인코더 파라미터 수정, 2) AV1 인코더 인터 예측 모드 수정, 3) AV1 인코더 인 루프 필터 수정이다.
이에 따라 각 부분에서 타일들 간의 상관도를 제거 또는 최소화함으로서 타일 기반 스트리밍을 위한 모션 제한 AV1 부호화를 사용할 수 있게 된다. 또한 본 발명의 실시예에서 제안한 방법을 수행함으로 부호화 속도를 일부 높힐 수 있다.
AV1 모션 제한 부호화는 HEVC 모션 제한 부호화와 근본적인 차이가 있다. 슬라이스의 존재 여부이다. HEVC는 각 타일마다 개별 슬라이스 헤더를 가질 수 있기 때문에, 슬라이스 전체에 영향을 미치는 파라미터들이 달라도 문제가 없다. 그러나, AV1은 슬라이스 개념이 없고, 모든 타일이 하나의 프레임 헤더를 참조하므로, 프레임 헤더에 들어가는 많은 파라미터들이 일치(동기화)되어야 한다.
1) AV1 인코더 프레임 헤더 파라미터 수정
글로벌 모션 예측 및 로컬 모션 예측 방법은 AV1 표준에서 새로 도입된 코딩 방법들 중 하나이다.
글로벌 모션 예측 방법은 현재 예측하고자하는 프레임과 reference 프레임들과 영상 전체의 움직임 벡터를 구해서 각 Superblock에서 글로벌 움직임 벡터를 사용할 수 있게 하는 방법이다. 그리고 로컬 움직임 예측 방법은 주변 prediction block들의 움직임 벡터를 이용하여 affine transform을 통해서 움직임 벡터를 계산하는 방법이다. 따라서 글로벌로 예측된 움직임 파라미터는 프레임 헤더에 포함된다.
이 기술은 분할 영상을 통합하여 단일 영상으로 디코딩하는 타일 기반 스트리밍에서는 사용할 수 없다. 왜냐하면 도 12에 보이는 바와 같이 타일 기반 스트리밍 시스템에서 클라이언트는 단일 스트림 디코딩을 사용하기 때문에, 분할 영상 비트스트림 통합 후 단 하나의 프레임 헤더가 존재하고 그 안에 단 하나의 글로벌 모션 파라미터만 존재하기 때문이다. 즉, 여러 개의 타일에 각각 해당하는 상이한 글로벌 모션 파라미터 데이터를 하나의 프레임 헤더에 포함하여 사용할 수 없다. 단일 스트림은 도 12에 표시된 비트스트림 합성기로 생성되며 합성된 스트림은 글로벌/로컬 모션 파라미터를 사용 안 하는 단일 스트림이다.
결과적으로 AV1 부호화기에서 모든 프레임 헤더의 다음 값들을 0으로 설정해야 한다.
- allow_warped_motion=0
- segmentation_enabled=0
프레임 헤더의 다음 값들은 고정되어야 한다.
- interpolation_filter = 하나의 동일한 값으로 고정함 : AV1 부호화기에서 interpolation_filter는 5개의 값(EIGHTTAP, EIGHTTAP_SMOOTH, EIGHTTAP_SHARP, BILINEAR, SWITCHABLE) 중에 프레임에 따라 적응적으로 1개를 선택할 수 있다.
- 또한 이러한 단일 프레임 헤더 제한 때문에 AV1 부호화기의 Golden Frame (GF) group 및 Key frame interval이 고정되어야 한다.
2) AV1 인코더 인터 예측 모드 수정
움직임 예측시 모션 벡터는 픽처 경계(picture boundary)를 넘어갈 수 없게 예측을 해야 한다. 움직임 벡터의 허용 범위는 다음과 같은 3개 항목에 의해서 영향을 받는다.
ㄱ) 픽처 크로마 샘플링 포맷
ㄴ) 루마 화소의 1/8th-pel 단위 예측 및 크로마 화소의 1/16th-pel 단위 예측을 위한 AV1의 8-tap 보간 필터
ㄷ) 예측 블록의 가로 및 세로 크기(화소 단위)
- 루마 또는 크로마 블록의 가로 크기가 4와 같거나 작을 경우 4-tap 필터, 아니면 8-tap 필터
- 루마 또는 크로마 블록의 세로 크기가 4와 같거나 작을 경우 4-tap 필터, 아니면 8-tap 필터
본 발명의 실시예에서는 위의 3개의 항목을 반영하여, 수식들과 같이 움직임 벡터의 범위를 제한한다.
2.1) 정수 루마 화소 단위 예측시 범위
2.1.1) YCbCr 4:2:0 포맷 : (크로마 x, y 화소 좌표는 소수 발생)
- CBWS <= 8 이면, X-축은 [0, TWBS]에서 {1, TWBS-1}를 제외한 범위
- CBWS > 8 이면, X-축은 [0, TWBS]에서 {1, 3, 5, TWBS-5, TWBS-3, TWBS-1}를 제외한 범위
- CBHS <= 8 이면, Y-축은 [0, THBS]에서 {1, THBS-1}를 제외한 범위
CBHS > 8 이면, Y-축은 [0, THBS]에서 {1, 3, 5, THBS-5, THBS-3, THBS-1}를 제외한 범위
2.1.2) YCbCr 4:2:2 포맷 : (크로마 x 화소 좌표는 소수 발생)
- CBWS <= 8 이면, X-축은 [0, TWBS]에서 {1, TWBS-1}를 제외한 범위
CBWS > 8 이면, X-축은 [0, TWBS]에서 {1, 3, 5, TWBS-5, TWBS-3, TWBS-1}를 제외한 범위
- Y-축은 [0, THBS]
2.1.3) YCbCr 4:4:4 or YCbCr 4:0:0 or RGB 등 크로마 서브샘플링하지 않는 포맷
- X-축은 [0, TWBS]
- Y-축은 [0, THBS]
2.2) 소수 루마 화소 단위 예측시 범위
2.2.1) YCbCr 4:2:0 포맷
- CBWS <= 8 이면, X-축은 [3, TWBS-4]
CBWS > 8 이면, X-축은 [6, TWBS-7]
- CBHS <= 8 이면, Y-축은 [3, THBS-4]
CBHS > 8 이면, Y-축은 [6, THBS-7]
2.2.2) YCbCr 4:2:2 포맷
- CBWS <= 8 이면, X-축은 [3, TWBS-4]
CBWS > 8 이면, X-축은 [6, TWBS-7]
- CBHS <= 4 이면, Y-축은 [1, THBS-2]
CBHS > 4 이면, Y-축은 [3, THBS-4]
2.2.3) YCbCr 4:4:4 or YCbCr 4:0:0 or RGB 등 크로마 서브샘플링하지 않는 포맷
- CBWS <= 4 이면, X-축은 [1, TWBS-2]
CBWS > 4 이면, X-축은 [3, TWBS-4]
- CBHS <= 4 이면, Y-축은 [1, THBS-2]
CBHS > 4, Y-축은 [3, THBS-4]
위 수식에서 ref_x는 참조 픽처의 화소 단위 x 좌표를 의미하고, ref_y는 y 좌표를 의미하며, TWBS = Tile_Width_Size - Current_Block_Width_Size (CBWS), THBS = Tile_Height_Size - Current_Block_Height_Size (CBHS) 를 의미한다.
YCbCr 4:2:0 크로마 포맷에서 인터 예측의 움직임 벡터 범위를 도 13과 도 14에 보였다.
3) AV1 인코더 인 루프 필터 파라미터 수정
AV1은 루프 필터를 사용하여 디코딩 된 이미지 품질을 개선한다. AV1 표준에는 다음과 같은 세 가지 필터가 존재한다. A) Deblocking filter (DF), B) Constrained directional enhancement filter (CDEF), C) Loop Restoration filter (LRF). 이러한 세 개의 필터가 코딩 루프 내에서 순차적으로(DF->CDEF->LRF) 실행된다.
AV1 부호화 표준에서는 인 루프 필터를 타일 경계 부분에서 사용 안하게 하는 플래그가 없다. 따라서, DF, CDEF 및 LRF 필터를 타일 경계 부분에서 사용 하지 않게 수정해야 한다. 또한 통합된 단일 스트림 디코딩 때문에, 여러 분할영상의 프레임 헤더에 보낼 수 있는 DF, CDEF 및 LRF의 프레임 파라미터 데이터를 전부 일치시키는 수정이 필요하다.
3.1) DF의 타일 경계 블록 필터링 제한 및 프레임 파라미터 값 제한
AV1 DF는 각 블록 단위로 Narrow filter, Wide filter, No filter을 적용할 수 있다. 본 발명의 실시예에서는 타일 경계 부분에 위치하는 블록에서는 No filter를 설정하여 타일 경계에서 DF 필터링을 하지 않는 것이 목표이다. 또한 프레임 헤더 동기화를 위하여 프레임 헤더의 일부 파라미터 값 수정이 필요하다.
3.1.1) 타일 경계 블록에서의 DF 필터링 제한
본 발명의 실시예에서 제안하는 DF 제한 방법은 다음과 같다. 먼저, DF의 입력 블록이 picture 경계 블록인지를 확인한다. 경계 블록이면 본 발명의 실시예서 제안하는 DF 제한 방법을 수행하고 경계 블록 아니면 일반 DF를 적용한다.
타일 경계에 위치한 블록을 No filter로 설정하기 위해서 filterMask 값이 0 이라는 조건을 만족해야 한다 (filterMask=0). 다만 모든 타일 경계 블록에서 완벽하게 filterMask를 0으로 설정할 방법(mask = 1)은 없기 때문에, 최대한 mask=1이 될 수 있도록 여러 변수를 수정하여 비트스트림 통합에 의한 디코딩시 화질 열화를 최대한 줄이는 방법이다.
AV1 표준에 명시된 filterMask 계산식은 수식 (7)와 같다.
Figure 112018113604266-pat00001
(7)
수식 (7)에 나오는 limit 과 blimit 값은 수식 (8)과 같다.
limit = Clip3(1, 9- loop_filter_sharpness, lvl >> shift), if loop_filter_sharpness > 0
limit = Max(1, lvl >> shift), if loop_filter_sharpness == 0 (8)
blimit = 2*(lvl+2) + limit
그리고 lvl 값은 도 15와 같이 계산할 수 있다.
도 15에서 HF=Horizontal Filtering, VF=Vertical Filtering을 의미하고, lvl 값은 DF의 필터링 강도(strength)를 나타낸다. loop_filter_level은 프레임 헤더에 포함되어 있고 deltaLF는 각 블록마다 전송 및 계산된 값이다. 그리고 segment 및 loop_filter_delta_enabled 값을 사용하지 않음으로써 도 15에서 bold으로 표현된 부분 만 lvl 값에 영향을 준다.
본 발명의 실시예에서는 타일 경계에 위치하는 블록에서 lvl 값을 0으로 설정하기 위해서 타일 경계 블록에서 deltaLF를 다음 수식 (9)과 같이 세팅한다.
deltaLF = -loop_filter_level[i] (9)
그리고 limit 값을 최소값으로 설정하기 위해서 프레임 헤더에서 다음과 같은 값을 설정한다.
- allow_intrabc = 0,
- delta_lf_present = 1,
- loop_filter_sharpness = 0,
- loop_filter_delta_enabled = 0
3.1.2) 프레임 헤더 동기화를 위한 DF 파라미터 값 제한
DF 파라미터는 동일한 세팅을 위해서 프레임 헤더에 존재하는 loop_filter_level 값을 각 분할 영상에서 동일한 값으로 유지해야 한다. 이 조건을 달성하기 위해서 loop_filter_level 값을 base_q_idx 값 기반으로 계산하도록 설정한 후, 모든 분할 영상의 base_q_idx 값을 일치시키면, 결과적으로 loop_filter_level 값도 일치하게 된다. 여기에서 base_q_idx는 프레임 헤더에 포함되어 있는 양자화 파라미터 인덱스이다.
도 16에 모션 제한 AV1 부호화를 위한 DF 파라미터 설정 결과 요약을 보인다. 도 16에서 FRAME_LF_COUNT=4로 정의되어 있다.
3.2) CDEF의 타일 경계 블록 필터링 제한 및 프레임 파라미터 값 제한
CDEF에서는 DF와 동일하게 타일 경계 블록에서는 CDEF를 사용하지 않도록 설정한다.
3.2.1) 타일 경계 블록에서의 CDEF 필터링 제한
CDEF는 기본적으로 8x8 블록 단위로 필터링을 수행하게 되며, 프레임 헤더에 포함되어 있는 동적인 필터링 파라미터 셋 8개를 64x64 블록 단위로 적응적으로 선택하여 사용한다.
따라서 본 발명의 실시예에서는 타일 경계에 위치한 64x64 블록의 CDEF 필터링 파라미터 값을 조정하여 CDEF을 OFF한다. 즉, 64x64 크기 Superblock의 cdef_idx[0]=-1로 설정하거나, 128x128 크기 Superblock의 cdef_idx[0..3]=-1로 설정하면 그 블록에서 CDEF가 수행되지 않는다. 여기에서 cdef_idx[0..3]은 모두 -1이 될 필요는 없다. 타일 경계에 해당하는 64x64 블록의 cdef_idx만 -1로 설정하면 된다. 도 17에서 각 분할 영상의 경계 부분이 OFF된 예를 보여준다.
3.2.2) 프레임 헤더 동기화를 위한 CDEF 파라미터 값 제한
CDEF 필터링 파라미터 값은 Primary strength와 Secondary strength으로 표현하는 최대 64가지 필터 강도(strength) 값이 루마 블록과 크로마 블록을 위해서 각각 존재하는데 (cdef_y_pri_strength[], cdef_y_sec_strength[], cdef_uv_pri_strength[], cdef_uv_sec_strength[]), 그 중에서 루마와 크로마에 각각 8개의 필터 강도 값을 비디오 특성에 맞게 동적으로 계산하여 프레임 헤더를 통해서 디코더에 전달한다.
본 발명의 실시예에서는 여러 분할 영상의 프레임 헤더 동기화를 위해서 실험적으로 루마와 크로마에 대해서 가장 최적의 CDEF 필터 강도 값 8개를 각각 고정하여 프레임 헤더를 통해 전송한다.
이렇게 함으로 압축효율은 조금 하락하지만, 부호화 시간을 줄이고 비트스트림 레벨에서의 통합(스티칭)이 가능하게 된다.
3.3) LRF의 타일 경계 블록 필터링 제한 및 프레임 파라미터 값 제한
LRF의 필터링 단위는 64x64, 128x128, 또는 256x256 크기 블록(Loop Restoration Unit; LRU)을 선택할 수 있다. 본 발명의 실시예에서는 속도 향상 및 타일 경계 이외 블록들의 화질 최적화를 위해서 가장 적절한 64x64 크기의 LRU를 사용한다.
3.3.1) 타일 경계 블록에서의 LRF 필터링 제한
AV1 표준에서는 LRF의 종류가 RESTORE_NONE, RESTORE_SWITCHABLE, RESTORE_WIENER, RESTORE_SGRPROJ로 4개 타입으로 구분되고, LRU마다 선택적으로 사용된다. 따라서 본 발명의 실시예에서는 타일 경계에 위치하는 LRU의 필터링 타입을 조정하여 LRF 필터링을 제한한다. 즉, restoration_type=RESTORE_NONE으로 설정한다.
3.3.2) 프레임 헤더 동기화를 위한 LRF 파라미터 값 제한
AV1 프레임 헤더에는 해당 프레임의 LRF 필터링 유형(lr_type)을 4개 중에 한 개를 적응적으로 선택하여 전송한다. 본 발명의 실시예에서는 각 분할 영상의 프레임 헤더에서 lr_type=RESTORAE_SWITCHABLE으로 고정하여 사용한다. 프레임 헤더의 lr_type=RESTORAE_SWITCHABLE은 각 LRU마다 restoration_type을 4개 타입 중에 하나로 자유롭게 선택 가능하게 한다.
3. 변형예
지금까지, 초대용량(8K, 16K) 영상의 타일 기반 스트리밍을 위한 "실시간" 트랜스코딩이 가능한 분산 트랜스코딩 방법 및 시스템과 AV1 코덱의 특성에 맞는 타일 기반 부호화 방법 및 장치에 대해 바람직한 실시예를 들어 상세히 설명하였다.
위 실시예에서는, 초대용량 영상의 타일 기반 스트리밍을 위한 실시간 트랜스코딩이 가능하고 고화질을 최대한 보장할 수 있는 '멀티 인코딩, 듀얼 디코딩' 구조를 제시하였다.
이에 의해, 초대용량(8K, 16K) 영상(360 VR 또는 파노라마 영상)의 타일 기반 스트리밍을 위한 실시간 분산 트랜스코딩이 가능한데, 타일을 지원하는 비디오 코덱(HEVC 및 AV1)을 모두 지원하므로, 유연한 서비스 제공이 가능하고, '멀티 인코딩, 듀얼 디코딩' 구조를 통하여 초고화질 영상을 제공하고, 지연(latency)에 대응할 수 있다.
또한, 위 실시예에서는, 초대용량 영상의 타일 기반 스트리밍을 위한 모션 제한 AV1 영상 부호화 방법 및 장치를 제시하였는데, AV1 표준 디코더를 전혀 수정하지 않고 타일 기반 분할 영상들을 비트스트림 레벨에서 통합하여 디코딩할 수 있게 부호화하는 AV1 부호화 기술을 제시하였다.
이에 의해, 초대용량 영상(360 VR 또는 파노라마 영상)의 모션 제한 AV1 부호화를 통하여 타일 기반 스트리밍 서비스가 가능해지고, 소비가전 디바이스에서 하나의 표준 AV1 디코더를 이용하여 분할 영상을 통합 복호화 할 수 있게 된다.
한편, 본 실시예에 따른 장치와 방법의 기능을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
110 : Transcoder Master
120 : Slave Node

Claims (12)

  1. 부호화될 입력 동영상을 시간 분할하는 단계;
    시간 분할된 부호화될 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하는 제1 인코딩 단계;
    시간 분할된 부호화될 비디오를 NxM개의 타일로 공간 분할한 후, NxM개의 비디오 인코더로 인코딩하는 제2 인코딩 단계;
    인코딩된 비디오를 파일로 저장하여 전송하는 단계;를 포함하고,
    제2 인코딩 단계는,
    타일 경계 블록에서 cdef_idx[]=-1로 설정하고, 타일 경계 블록에서 restoration_type=RESTORE_NONE으로 설정하는 것을 특징으로 하는 분산 트랜스코딩 방법.
  2. 청구항 1에 있어서,
    파일 정보를 메타데이터로 저장하여 전송하는 단계;를 포함하고,
    메타데이터는, video_tiles 태그를 포함하고,
    video_tiles 태그는, 개별 타일의 track_id, 원본 전체 영상에서의 x, y 좌표 및 tile_width, tile_height 정보가 포함된 region_segment들을 포함하는 것을 특징으로 하는 분산 트랜스코딩 방법.
  3. 청구항 1에 있어서,
    비디오에 대한 오디오를 분산 처리하지 않고 트랜스코딩하는 단계;를 더 포함하는 것을 특징으로 하는 분산 트랜스코딩 방법.
  4. 청구항 1에 있어서,
    분할 단계에서 시간 분할되는 입력 동영상은,
    타일 기반의 AV1 코덱으로 부호화될 영상이고,
    제2 인코딩 단계는,
    타일들에 대해, 모션 제한 부호화를 수행하는 것을 특징으로 하는 분산 트랜스코딩 방법.
  5. 삭제
  6. 부호화될 입력 동영상을 시간 분할하는 단계;
    시간 분할된 부호화될 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하는 제1 인코딩 단계;
    시간 분할된 부호화될 비디오를 NxM개의 타일로 공간 분할한 후, NxM개의 비디오 인코더로 인코딩하는 제2 인코딩 단계;
    인코딩된 비디오를 파일로 저장하여 전송하는 단계;를 포함하고,
    분할 단계에서 시간 분할되는 입력 동영상은,
    타일 기반의 AV1 코덱으로 부호화될 영상이고,
    제2 인코딩 단계는,
    타일들에 대해, 모션 제한 부호화를 수행하며,
    프레임 헤더에 존재하는 loop_filter_level 값을 양자화 파라미터 인덱스 값 기반으로 계산하도록 설정하고, 모든 타일 영상의 양자화 파라미터 인덱스 값이 일치하도록 설정하는 것을 특징으로 하는 분산 트랜스코딩 방법.
  7. 삭제
  8. 부호화될 입력 동영상을 시간 분할하는 단계;
    시간 분할된 부호화될 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하는 제1 인코딩 단계;
    시간 분할된 부호화될 비디오를 NxM개의 타일로 공간 분할한 후, NxM개의 비디오 인코더로 인코딩하는 제2 인코딩 단계;
    인코딩된 비디오를 파일로 저장하여 전송하는 단계;를 포함하고,
    분할 단계에서 시간 분할되는 입력 동영상은,
    타일 기반의 AV1 코덱으로 부호화될 영상이고,
    제2 인코딩 단계는,
    타일들에 대해, 모션 제한 부호화를 수행하며,
    타일 기반 AV1 영상 프레임의 헤더 파라미터에서 interpolation_filter를 하나의 동일한 값으로 고정하며, AV1 부호화기의 Golden Frame (GF) group 및 Key frame interval을 동일한 값으로 고정하는 것을 특징으로 하는 분산 트랜스코딩 방법.
  9. 청구항 1에 있어서,
    제2 인코딩 단계는,
    타일 기반 AV1 영상의 포맷과 사이즈를 기초로, 움직임 예측 범위를 제한하고, 제한된 움직임 예측 범위를 기초로 영상을 구성하는 타일들에 대한 모션 벡터들을 예측하는 것을 특징으로 하는 분산 트랜스코딩 방법.
  10. 부호화될 입력 동영상을 시간 분할하고, 시간 분할된 부호화될 비디오를 NxM개의 타일로 공간 분할하는 마스터 노드;
    시간 분할된 부호화될 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하고, 공간 분할된 NxM개의 타일을 NxM개의 비디오 인코더로 인코딩하는 슬레이브 노드들;을 포함하고,
    마스터 노드는,
    슬레이브 노드들에 의해 인코딩된 비디오들을 파일로 저장하여 전송하며,
    슬레이브 노드들은,
    타일 경계 블록에서 cdef_idx[]=-1로 설정하고, 타일 경계 블록에서 restoration_type=RESTORE_NONE으로 설정하는 것을 특징으로 하는 분산 트랜스코딩 시스템.
  11. 부호화될 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하는 제1 인코딩 단계;
    부호화될 비디오를 NxM개의 타일로 공간 분할한 후, NxM개의 비디오 인코더로 인코딩하는 제2 인코딩 단계;를 포함하고,
    제2 인코딩 단계는,
    타일 경계 블록에서 cdef_idx[]=-1로 설정하고, 타일 경계 블록에서 restoration_type=RESTORE_NONE으로 설정하는 것을 특징으로 하는 분산 트랜스코딩 방법.
  12. 부호화될 비디오를 다운샘플링한 후 하나의 비디오 인코더로 인코딩하는 제1 노드;
    부호화될 비디오를 NxM개의 타일로 공간 분할한 후, NxM개의 비디오 인코더로 인코딩하는 제2 노드;를 포함하고,
    제2 노드는,
    타일 경계 블록에서 cdef_idx[]=-1로 설정하고, 타일 경계 블록에서 restoration_type=RESTORE_NONE으로 설정하는 것을 특징으로 하는 분산 트랜스코딩 시스템.
KR1020180140513A 2018-11-15 2018-11-15 타일 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템 KR102106716B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180140513A KR102106716B1 (ko) 2018-11-15 2018-11-15 타일 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180140513A KR102106716B1 (ko) 2018-11-15 2018-11-15 타일 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR102106716B1 true KR102106716B1 (ko) 2020-05-04

Family

ID=70732601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180140513A KR102106716B1 (ko) 2018-11-15 2018-11-15 타일 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102106716B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112511838A (zh) * 2021-02-05 2021-03-16 北京欣博电子科技有限公司 一种降低视频转码延时的方法、装置、设备和可读介质
US20220086470A1 (en) * 2019-09-24 2022-03-17 At&T Intellectual Property I, L.P. Transcoding ultra-high-definition panoramic videos
JP2023515859A (ja) * 2020-06-18 2023-04-14 中興通訊股▲ふん▼有限公司 ビデオブロック化方法、伝送方法、サーバー、アダプタ及び記憶媒体

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160031515A (ko) * 2013-07-12 2016-03-22 캐논 가부시끼가이샤 화상 부호화 장치, 화상 부호화 방법, 화상 복호화 장치, 화상 복호화 방법, 및 컴퓨터 판독가능 저장 매체
JP2018522469A (ja) * 2015-06-16 2018-08-09 キヤノン株式会社 画像データカプセル化

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160031515A (ko) * 2013-07-12 2016-03-22 캐논 가부시끼가이샤 화상 부호화 장치, 화상 부호화 방법, 화상 복호화 장치, 화상 복호화 방법, 및 컴퓨터 판독가능 저장 매체
JP2018522469A (ja) * 2015-06-16 2018-08-09 キヤノン株式会社 画像データカプセル化

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220086470A1 (en) * 2019-09-24 2022-03-17 At&T Intellectual Property I, L.P. Transcoding ultra-high-definition panoramic videos
JP2023515859A (ja) * 2020-06-18 2023-04-14 中興通訊股▲ふん▼有限公司 ビデオブロック化方法、伝送方法、サーバー、アダプタ及び記憶媒体
JP7338075B2 (ja) 2020-06-18 2023-09-04 中興通訊股▲ふん▼有限公司 ビデオブロック化方法、伝送方法、サーバー、アダプタ及び記憶媒体
CN112511838A (zh) * 2021-02-05 2021-03-16 北京欣博电子科技有限公司 一种降低视频转码延时的方法、装置、设备和可读介质

Similar Documents

Publication Publication Date Title
US11197030B2 (en) System and method for video coding
US11917179B2 (en) System and method for video coding
KR102154407B1 (ko) 타일 기반 스트리밍을 위한 모션 제한 av1 영상 부호화 방법 및 장치
US20140056356A1 (en) Method and apparatus for efficient signaling of weighted prediction in advanced coding schemes
US20220312023A1 (en) Encoder, decoder, encoding method, and decoding method
KR102106716B1 (ko) 타일 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템
US11575896B2 (en) Encoder, decoder, encoding method, and decoding method
US20220394303A1 (en) Encoder, decoder, encoding method, and decoding method
US20220303546A1 (en) Encoder, decoder, encoding method, and decoding method
US20220329785A1 (en) Encoder, decoder, encoding method, decoding method, and medium
US20230119758A1 (en) System and method for video coding
US20220159273A1 (en) Encoder, decoder, and medium
US20220150483A1 (en) System and method for video coding
US20230217065A1 (en) Reproduction apparatus, transmission apparatus, reproduction method, and transmission method
US20230108110A1 (en) Encoder, decoder, encoding method, and decoding method
US11876959B2 (en) Encoder, decoder, encoding method, and decoding method
US20220385899A1 (en) Encoder, decoder, encoding method, and decoding method
US20160080752A1 (en) Method and apparatus for processing video signal
US12010347B2 (en) System and method for video coding
US20240171778A1 (en) Encoder, decoder, encoding method, and decoding method
US20240064330A1 (en) Encoder, decoder, encoding method, and decoding method
US11546590B2 (en) System and method for video coding
US20240137521A1 (en) Encoding method, bitstream processing method, encoder, and bitstream processing device
US20240187622A1 (en) System and method for video coding
US20220191525A1 (en) Encoder, decoder, and medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant