KR102144881B1 - 비디오 처리를 위한 송신 장치 및 방법 - Google Patents

비디오 처리를 위한 송신 장치 및 방법 Download PDF

Info

Publication number
KR102144881B1
KR102144881B1 KR1020157002566A KR20157002566A KR102144881B1 KR 102144881 B1 KR102144881 B1 KR 102144881B1 KR 1020157002566 A KR1020157002566 A KR 1020157002566A KR 20157002566 A KR20157002566 A KR 20157002566A KR 102144881 B1 KR102144881 B1 KR 102144881B1
Authority
KR
South Korea
Prior art keywords
bitstream
decoder
encoding
decoding
picture
Prior art date
Application number
KR1020157002566A
Other languages
English (en)
Other versions
KR20150037944A (ko
Inventor
조나단 사무엘손
보 부르만
릭카드 스죄베르그
마그너스 웨스터런드
Original Assignee
텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) filed Critical 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘)
Publication of KR20150037944A publication Critical patent/KR20150037944A/ko
Application granted granted Critical
Publication of KR102144881B1 publication Critical patent/KR102144881B1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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/146Data rate or code amount at the encoder output
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

본 발명은 프로세서 및 메모리를 포함하는 비디오 스트림의 픽쳐의 시퀀스를 나타내는 비트스트림을 인코딩하는 방법 및 송신 장치에 관한 것이며, 메모리는 상기 프로세서에 의해 실행가능한 명령을 포함하고, 상기 송신 장치는 신택스 엘리먼트를 전송하도록 동작하고, 상기 신택스 엘리먼트의 값은 비트스트림을 디코딩하는 병행화의 일정 레벨을 보증하는 방식으로 비트스트림에 대하여 시행되는 제한을 나타낸다.

Description

비디오 처리를 위한 송신 장치 및 방법{TRANSMITTING APPARATUS AND METHOD THEREOF FOR VIDEO PROCESSING}
본 실시예는 병렬 인코딩/디코딩이 가능할 때 코딩 성능을 개선하는 방법 및 송신 장치에 관한 것이다.
HEVC(High Efficiency Video Coding)은 JCT-VC(Joint Collaborative Team - Video Coding)에서 개발된 비디오 코딩 표준이다. JCT-VC는 MPEG(Moving Picture Experts Group) 및 ITU-T(International Telecommunication Union - Telecommunication Standardization Sector) 간의 공동 프로젝트이다. 현재, 다수의 툴을 포함하고 H.264/AVC(Advanced Video Coding)보다 상당히 더 효율적인 HEVC 모델(HM)이 정의된다.
HEVC는 인터 예측(이전 코딩 픽쳐로부터의 예측) 및 인트라 예측(동일 픽쳐 내의 이전 코딩 픽셀로부터의 예측)을 둘 다 사용하는 블록 기반 하이브리드 비디오 코딩이다. 각각의 픽쳐는 16×16, 32×32 또는 64×64 픽셀의 사이즈일 수 있는 (H.264/AVC 내의 매크로블록에 대응하는) 이차 트리블록(quadratic treeblock)으로 분리된다. 변수(CtbSize)는 일차원의 트리블록의 픽셀의 수, 즉, 16, 32 또는 64로서 표현되는 트리블록의 사이즈를 나타내는데 사용된다.
보통의 슬라이스는 H.264/AVC에서처럼 유사하다. 각각의 보통의 슬라이스는 NAL(Network Abstraction Layer) 유닛 내에 캡슐화되고, 픽쳐내(in-picture) 예측(인트라 샘플 예측, 움직임 정보 예측, 코딩 모드 예측) 및 슬라이스 경계에 걸친 엔트로피 코딩 종속은 디스에이블된다. 따라서, 보통의 슬라이스는 동일한 픽쳐 내에서 다른 보통의 슬라이스로부터 독립적으로 재구성될 수 있다. HEVC 내의 기본 유닛인 트리블록은 비교적 큰 사이즈, 예를 들어, 64×64일 수 있고, "미세 입도 슬라이스(fine granularity slices)의 개념은 HEVC에 포함되어 보통의 슬라이스의 특수 형태로서 트리블록 내의 슬라이스 경계를 통한 최대 송신 유닛 MTU 사이즈 매칭을 허용한다. 슬라이스 입도는 픽쳐 파라미터 세트에서 시그널링되는 반면, 미세 입도 슬라이스의 어드레스는 여전히 슬라이스 헤더에서 시그널링된다.
보통의 슬라이스는 H.264/AVC 내의 병행화(parallelization)를 위해 사용될 수 있는 유일한 툴이다. 병행화는, 스레디드 디코딩(threaded decoding)이 슬라이스를 이용하여 사용될 수 있는 도 1에 도시된 바와 같이 단일 픽쳐의 부분들이 병렬로 인코딩 및 디코딩될 수 있다는 것을 암시한다. 보통의 슬라이스 기반 병행화는 많은 인터 프로세서 또는 인터-코어 통신을 요구하지 않는다. 그러나, 동일한 이유로, 보통의 슬라이스는 슬라이스 헤더의 비트 비용 및 슬라이스 보더(slice border)에 걸친 예측의 부족 때문에 약간의 코딩 오버헤드를 요구할 수 있다. 또한, (이하에 기재되는 다른 툴 중의 일부와 반대로) 보통의 슬라이스는 또한 보통의 슬라이스의 픽쳐내 독립성 및 각각의 보통의 슬라이스가 자신의 NAL 유닛에 캡슐화되는 것 때문에 비트스트림 파티셔닝(partitioning)이 MTU 사이즈 요구사항에 매칭하는 중요한 메카니즘으로 작용한다. 많은 경우, 병행화의 목표 및 MTU 사이즈 매칭의 목표는 픽쳐 내의 슬라이스 레이아웃에 대한 모순되는 요구들에 처하게 한다. 이 상황의 인식은 후술하는 병행화 툴의 개발을 유도한다.
WPP(wavefront parallel processing)에서, 픽쳐는 트리블록들의 단일 행들로 파티셔닝된다. 엔트로피 디코딩 및 예측은 다른 파티션들 내의 트리블록들로부터의 데이터를 이용하도록 허용된다. 병렬 처리는 트리블록들의 행들의 병렬 디코딩을 통해 가능하여, - 행의 디코딩의 시작은 2개의 트리블록에 의해 지연됨 - 상술한 트리블록 및 대상 트리블록(subject treeblock)의 권한에 관련된 데이터가 대상 트리블록이 디코딩되기 전에 이용가능하도록 보장한다. (도 2에 도시된 바와 같이 그래프로 표현될 때 파면(wavefront)처럼 나타나는) 이 스태거 시작(staggered start)을 이용하여, 병행화는 픽쳐가 트리블록 행들을 포함하는 것처럼 많은 프로세서들/코어들까지 가능하다. 픽쳐 내의 이웃 트리블록 행들 사이의 픽쳐내 예측의 허용 때문에, 픽쳐 내 예측을 가능하게 하기 위해 요구되는 인터-프로세서/인터-코어 통신이 상당할 수 있다. WPP 파티셔닝은 적용되지 않을 때와 비교하여 추가의 NAL 유닛의 생성을 유발하지 않고, 따라서, WPP는 MTU 사이즈 매칭에 사용될 수 없다. 파면 세그먼트는 정확하게 트리블록의 하나의 라인을 포함한다.
타일(tile)은 픽쳐를 타일 열들 및 행들로 파티셔닝하는 수평 및 수직 경계들을 정의한다. 이것은 도 3에 도시된 바와 같이 HEVC 내의 타일이 픽쳐를 정의된 폭 및 높이를 갖는 영역들로 분할하는 것을 의미한다. 타일들의 각각의 영역은 래스터 스캔 순서(raster scan order)로 처리되는 정수개의 트리블록으로 구성된다. 타일들 자체는 픽쳐에 걸쳐 래스터 스캔 순서로 처리된다. 정확한 타일 구성 또는 타일 정보(타일의 수, 각 타일의 폭 및 높이 등)는 SPS(sequence parameter set) 및 PPS(picture parameter set)에서 시그널링될 수 있다. 타일 정보는 픽쳐 내의 각 타일의 폭, 높이 및 위치를 포함한다. 이것은 블록의 좌표가 공지되면 블록이 어떤 타일에 속하는지를 또한 알 수 있다는 것을 의미한다.
간략화를 위해, 상이한 픽쳐 파티셔닝 방식의 적용에 대한 제한이 HEVC에서 특정된다. 타일들 및 WPP는 동시에 적용될 수 없다. 또한, 각각의 슬라이스 및 타일에 대하여, 다음의 조건 중의 어느 하나 또는 둘다가 이행되어야 한다: 1) 슬라이스 내의 모든 코딩된 트리블록이 동일 타일에 속하고; 2) 타일 내의 모든 코딩된 트리블록이 동일 슬라이스에 속한다.
SPS(Sequence Parameter Set)는 전체 코딩된 비디오 시퀀스에 대하여 유효한 정보를 유지한다. 특히, SPS는 비트스트림이 어떤 프로파일 및 레벨에 일치하는지를 나타내는데 사용되는 신택스 엘리먼트(profile_idc 및 level_idc)를 유지한다. 프로파일 및 레벨은 비트스트림에 대한 제한 및 비트스트림을 디코딩하는데 필요한 성능에 대한 제한을 특정한다. 프로파일 및 레벨은 또한 개별 디코더 구현예들 간의 상호동작가능성 포인트를 지시하는데 사용될 수 있다. 레벨은 비트스트림, 예를 들어, (루마(luma) 샘플로 표현되는 MaxLumaFS로 표기된) 픽쳐 사이즈 및 (초당 루마 샘플로 표현되는 MaxLumaPR로 표기된) 샘플 레이트 뿐만 아니라 (초당 비트로 표현되는 MaxBR로 표기된) 최대 비트 레이트 및 (비트로 표현되는 Max CPB 사이즈로 표기된) 최대 코딩된 픽쳐 버퍼 사이즈에 대한 제한을 실시한다.
PPS(Picture Parameter Set)는 코딩 비디오 시퀀스 내의 일부 (또는 전체) 픽쳐에 대하여 유효한 정보를 유지한다. PPS는 파면 및 타일의 사용을 제어하는 신택스 엘리먼트를 포함하고 동일한 코딩된 비디오 시퀀스에서 액티브인 모든 PPS에서 동일한 값을 갖도록 요구된다.
또한, 양 HEVC 및 H.264는, 시퀀스 파라미터 세트에 존재할 수 있고 디코딩 프로세스에 영향을 주지 않는, 즉, 픽셀 값에 영향을 주지 않는 파라미터를 포함하는 VUI(video usability information) 신택스 구조를 정의한다. SEI(Supplemental Enhancement Information)는, 임의의 액세스 유닛에 존재할 수 있고 디코딩 프로세스에 영향을 주지 않는 정보를 포함하는 다른 구조이다.
그러므로, 상술한 바와 같이, H.264/AVC에 비교하여, HEVC는 병행화에 더 나은 가능성을 제공한다. 병행화는 단일 픽쳐의 부분이 병렬로 인코딩 및 디코딩될 수 있다는 것을 의미한다. 특히, 타일 및 WPP는 병행화 목적으로 개발된 툴이다. 이들은 본래 인코더 병행화를 위해 설계되었지만, 또한 디코더 병행화를 위해 사용될 수 있다.
타일이 인코더 병행화를 위해 사용될 때, 인코더는 먼저 타일 파티셔닝을 선택한다. 타일 경계가 타일 간의 모든 예측을 깨기 때문에, 인코더는 다수의 타일의 인코딩을 다수의 스레드(thread)에 할당할 수 있다. 적어도 2개의 타일이 존재하자 마자, 다수의 스레드 인코딩이 수행될 수 있다.
따라서, 이 컨텍스트에서, 다수의 스레드가 이용될 수 있다는 사실은 인코딩/디코딩 프로세스의 실제 작업 부하가 서로 독립적으로 수행되는, 즉 별도의 스레드에서 병렬로 수행될 수 있는 개별 "프로세스"로 분할될 수 있다는 것을 암시한다.
HEVC는 병렬 디코딩을 위한 2개의 타입의 엔트리 포인트를 정의한다. 엔트리 포인트는 디코더에 의해 사용되어 타일 또는 서브스트림에 대한 비트가 시작하는 비트스트림 내의 위치를 찾을 수 있다. 제1 타입은 엔트리 포인트 오프셋이다. 이들은 슬라이스 헤더에 열거되고 슬라이스 내에 포함되는 하나 이상의 타일의 시작 포인트를 지시한다. 제2 타입은 비트스트림 내의 타일을 분리하는 엔트리 포인트 마커이다. 엔트리 포인트 마커는 비트스트림 내의 어느곳에서도 발생할 수 없는 특정 코드워드(시작 코드)이다.
따라서, 디코더 병행화를 착수하기 위하여, 비트스트림 내의 엔트리 포인트가 필요하다. 병렬 인코딩을 위하여, 엔트리 포인트가 필요하지 않고, 인코더는 타일/서브스트림의 인코딩이 완료된 후 함께 비트스트림을 스티치(stitch)할 수 있다. 그러나, 디코더는 병렬로 디코딩하기 위하여 비트스트림에서 각 타일이 어디에서 시작하는지를 알 필요가 있다. 인코더가 오직 병렬 인코딩하기를 원할 뿐 병렬 디코딩을 가능하게 하는 것을 원하지 않으면, 엔트리 포인트는 생략될 수 있고, 병렬 디코딩을 가능하게 하는 것도 원한다면, 엔트리 포인트를 삽입해야 한다.
개요
본 발명의 실시예의 목적은 병렬 인코딩/디코딩이 이용가능할 때 성능을 개선하는 것이다. 이는 신택스 엘리먼트를 전송함으로써 달성되고, 신택스 엘리먼트의 값은 비트스트림을 디코딩하는 병행의 일정 레벨을 보장하는 방식으로 비트스트림에 대하여 실시되는 제한을 나타낸다. 신택스 엘리먼트로부터의 지시에 따라 인코딩된 인코딩된 비트스트림을 수신하는 디코더는 인코딩된 비트스트림을 어떻게 디코딩할 수 있는지를 결정할 때 및 비트스트림이 인코딩될 수 있으면 이 지시를 사용할 수 있다.
실시예의 제1형태에 따르면, 비디오 스트림의 픽쳐의 시퀀스를 나타내는 비트스트림을 인코딩하는 방법이 제공된다. 이 방법에서, 신택스 엘리먼트가 전송된다. 상기 신택스 엘리먼트의 값은 상기 비트스트림을 디코딩하는 병행화(parallelism)의 일정 레벨을 보증하는 방식으로 상기 비트스트림에 대하여 시행되는 제한을 나타낸다.
제2 형태에 따르면, 비디오 스트림의 픽쳐의 시퀀스를 나타내는 비트스트림을 인코딩하는 송신 장치가 제공된다. 송신 장치는 프로세서 및 메모리를 포함한다. 상기 메모리는 상기 프로세서에 의해 실행가능한 명령을 포함하고, 상기 송신 장치는 신택스 엘리먼트를 전송하도록 동작하고, 상기 신택스 엘리먼트의 값은 상기 비트스트림을 디코딩하는 병행화(parallelism)의 일정 레벨을 보증하는 방식으로 상기 비트스트림에 대하여 시행되는 제한을 나타낸다.
적어도 일부의 실시예의 이점은, 비트스트림을 병렬로 디코딩할 수 있다는 것을 나타내는 수단을 제공하는 것이다. 이것은 병렬로 디코딩할 수 있는 디코더가 디코딩을 시작하기 전에 디코더가 스트림을 디코딩할 수 있는지를 알 수 있게 한다. 예를 들어 단일 스레드 상에서 720p를 디코딩할 수 있고 각각의 픽쳐가 적어도 4개의 독립적으로 디코딩가능한 영역으로 분리되는 경우(즉, 4개의 병렬 스레드에서 결정될 수 있다) 1080p를 디코딩할 수 있는 디코더가 존재할 수 있다. 실시예를 이용하여, 디코더는 각각의 픽쳐가 분리되는지, 즉, 병렬로 디코딩될 수 있는지를 알 것이다.
도 1은 종래 기술에 따른 슬라이스들을 이용한 스레디드 디코딩의 예를 나타내는 도면.
도 2는 종래 기술에 따른 파면을 이용한 스레디드 디코딩의 예를 나타내는 도면.
도 3은 종래 기술에 따른 타일들을 이용한 스레디드 디코딩의 예를 나타내는 도면.
도 4는 본 발명의 실시예에 따라 수신 장치로 신택스 엘리먼트를 송신하도록 구성되는 송신 장치를 개략적으로 나타내는 도면.
도 5는 종래 기술에 따른 병행성 레벨을 예시하는 도면.
도 6, 7a 및 7b는 본 발명에 따른 방법의 플로우챠트를 나타내는 도면.
도 8은 본 발명의 실시예에 따른 송신 장치의 구현예를 개략적으로 나타내는 도면.
본 명세서에서, 프로세싱 유닛이라는 용어는 코딩된 비디오 시퀀스를 인코딩 또는 디코딩하는 유닛을 지칭하는데 사용된다. 실제로, 이는 CPU, GPU, DSP, FPGA 또는 임의의 타입의 특수 칩에 대응할 수 있다. 이는 또한 다수의 CPU, GPU 또는 이들의 조합을 포함하는 유닛에 대응할 수 있다. 코어라는 용어는 동일한 프로세서의 다른 코어들과 병렬로 인코딩/디코딩 프로세스(의 부분)를 수행할 수 있는 프로세싱 유닛의 일부를 지칭하는데 사용된다. 실제로, 이는 예를 들어, CPU 내의 논리 코어, 멀티코어 CPU 내의 물리 코어, 멀티-CPU 아키텍쳐 내의 하나의 CPU 또는 다수 칩을 갖는 프로세싱 보드 내의 단일 칩에 대응할 수 있다.
스레드라는 용어는 임의의 다른 프로세싱 단계와 병렬로 수행될 수 있는 임의의 프로세싱 단계를 지칭하는데 사용된다. 따라서, 다수 스레드는 병렬로 실행될 수 있다. 프로세서 내의 코어의 수가 실행할 수 있는 스레드의 수와 동일하거나 크면, 이들 모든 스레드가 병렬로 실행될 수 있다. 그렇지 않으면, 임의의 스레드는 다른 스레드가 완료된 후에 시작하거나 대안으로 시간 분할 멀티플렉싱이 적용될 수 있다. 하나의 특정한 스레드가 동시에 다수의 코어 상에서 실행될 수 없다. 임의의 포인트에서의 디코딩 프로세스가 서로 독립적이이서 병렬로 수행될 수 있는 상이한 부분들(단계들 또는 액션들)로 분할되면, 우리는 이러한 각각의 부분이 스레드를 구성한다고 한다.
비트스트림이 일정 부분들을 병렬로 디코딩할 수 있는 방식으로 생성되면 비트스트림이 병행화의 일정 레벨을 지원한다고 한다. 이 텍스트에서, 픽쳐 내의 병행화에 초점을 맞추지만, 본 실시예는 이에 제한되지 않는다. 비디오 시퀀스 내의 임의의 타입의 병행화에 적용될 수 있다.
3개의 슬라이스(A, B 및 C)로 구성된 픽쳐에 대한 디코딩 프로세스는 픽쳐를 순차적 순서로 디코딩하는 방법을 정의한다.
1. A를 디코딩
2. B를 디코딩
3. C를 디코딩
4. 트리블록 내 및 사이에서 디블록킹을 수행
그러나, 프로세서(P)가 4개의 코어(i, ii, iii 및 iv)를 가지면, 디코딩은 다음과 같이 수행될 수 있다.
1. 병렬로 코어(i)는 슬라이스(A)를 디코딩하고, 코어(ii)는 슬라이스(B)를 디코딩하고, 코어(iii)는 슬라이스(C)를 디코딩한다.
2. 모든 슬라이스가 디코딩될 때, (모든 4개의 코어가 무료이기 때문에) 트리블록 내 및 사이의 디블록킹은 임의의 코어에 의해 수행된다.
이는 슬라이스가 독립적으로 디코딩될 수 있기 때문에 가능하다.
이는 상술한 예의 프로세서(P) 내의 각각의 코어는 일정 수의 루마 샘플을 처리할 수 있는 경우일 수 있다. 디코딩에 P를 이용하는 디코더가 자신의 능력을 예를 들어 레벨의 형태로 보고하면, 병렬 디코딩을 위해 구성되지 않는, 예를 들어, 단지 단일 슬라이스를 포함하는 비트스트림을 위해 준비되어야 하는 것처럼 단일 코어 디코딩 성능에 대한 능력을 보고하도록 강요될 수 있다.
비트스트림이 병렬 디코딩을 지원하면 더 높은 레벨을 디코딩할 수 있는 디코더 실행은 그 적합성 요구(conformance claim)를 더 낮은 레벨로 제한하도록 강요될 수 있다. 이것은 본 발명의 실시예에 따른 신택스 엘리먼트를 이용하여 스트림의 병렬 디코딩 특성을 전달함으로써 피할 수 있다.
그러므로, 비디오 스트림의 픽쳐의 시퀀스를 나타내는 비트스트림을 인코딩하는 방법이 제공된다. 방법에서, 신택스 엘리먼트는 예를 들어 SPS에서 전송되고, 신택스 엘리먼트의 값은 비트스트림을 디코딩하는 병행화의 일정 레벨을 보장하는 방식으로 비트스트림에 대하여 시행되는 제한을 나타낸다. 이것은 신택스 엘리먼트의 값이 비트스트림이 인코딩되는 병행화의 레벨을 결정하는데 사용될 수 있다는 것을 의미한다. 도 4에 도시된 바와 같이, 신택스 엘리먼트(440)가 송신 장치(400)로부터 각자의 입출력 유닛(405, 455)을 통해 수신 장치(450)로 SPS(430)에서 전송된다. 송신 장치(400)는 신택스 엘리먼트(440)에 의해 지시되는 병행화의 레벨로 비트스트림을 인코딩하는 인코더(410)를 포함한다. 신택스 엘리먼트 관리 유닛(420)은 사용되어야 하는 병행화의 레벨을 결정한다. 병행화의 레벨은 병렬 디코딩에 관한 수신 장치(450)의 디코더(460)의 능력의 정보(470)에 기초하여 결정될 수 있다.
신택스 엘리먼트는 또한 minSpatialSegmentation_idc로 표기될 수 있는 parallelism_idc라 한다. 신택스 엘리먼트는 픽쳐 세트 또는 전체 비디오 시퀀스일 수 있는 비디오 스트림의 픽쳐의 시퀀스에 대하여 유효하다.
일 실시예에 따르면, 신택스의 엘리먼트의 값은 병행화의 레벨과 동일하게 설정되고, 병행화의 레벨은 사용될 수 있는 스레드의 수를 나타낸다. 도 5를 참조하면, 하나의 픽쳐가 병렬로 디코딩될 수 있는 동일 공간 사이즈의 4개의 독립 부분으로 분할되면, 병행화의 레벨이 4이고 다른 픽쳐가 병렬로 디코딩될 수 있는 2개의 동일 사이즈 독립 부분으로 분할되면, 병행화의 레벨은 2이다.
신택스 엘리먼트의 값은 이 실시예에 따라 도 6의 플로우챠트에 도시된 바와 같이 결정된다. 신택스 엘리먼트의 값을 결정하는 하나의 방법은 병렬 디코딩에 관한 디코더 능력에 관한 디코더로부터의 정보를 이용하는 것이다.
다른 방식은 인코더가 오직 인코더의 목적으로 병행화의 레벨을 선택하고 병렬 정보가 일부의 디코더에 유용할 수 있기 때문에 병렬 정보를 디코더에 제공하는 것이다.
다른 방식은 스트림을 디코딩할 수 있는 디코더에 대한 소정의 디코더 설계를 가정하는 것이다. 모든 스마트폰의 80%가 4개의 코어를 갖는다는 것을 안다면, 인코더는 항상 4개의 독립된 부분을 이용할 수 있다.
신택스 엘리먼트의 값이 결정되면(601), 이하에서 특정되는 단계를 수행하여 이하에서 특정된 바와 같이 제한들 중의 하나의 요구사항을 이행(602)함으로써 예를 들어, a, b 및 c로 지칭되는 하나의 제한이 부과된다(603). 그 후, 신택스 엘리먼트가 수신기의 디코더로 전송되고(604) 픽쳐는 신택스 엘리먼트의 값에 따라 인코딩된다.
일 실시예에 따르면, 신택스 엘리먼트의 값은 비트스트림에 대해 적어도 a 및 b 중 하나의 제한을 부과하는데 사용된다.
a: 슬라이스당 루마 샘플의 최대수는 픽쳐 사이즈의 함수로서 및 신택스 엘리먼트의 값의 함수로서 제한된다.
b: 타일당 루마 샘플의 최대수는 픽쳐 사이즈의 함수로서 및 신택스 엘리먼트의 값의 함수로서 제한된다.
또 다른 실시예에 따르면, 신택스 엘리먼트의 값은 비트스트림에 대해 a, b 및 c 중 하나의 제한을 부과하는데 사용된다.
a: 슬라이스당 루마 샘플의 최대수는 픽쳐 사이즈의 함수로서 및 신택스 엘리먼트의 값의 함수로서 제한된다.
b: 타일당 루마 샘플의 최대수는 픽쳐 사이즈의 함수로서 및 신택스 엘리먼트의 값의 함수로서 제한된다.
c: 파면이 이용되고 트리블록 사이즈, 픽쳐 높이 및 픽쳐 폭이 신택스 엘리먼트의 값의 함수로서 및 픽쳐 사이즈의 함수로서 공동으로 제한된다.
실시예에 따르면, 제한(a, b, 또는 a, b, c)의 요구사항은 도 7a에 도시된 바와 같이 다음의 단계에 의해 이행된다(602).
그러므로, 인코더는 요구사항(a)을 이행하기 위하여 다음의 단계를 수행하도록 구성될 수 있다.
비디오 시퀀스를 구성하는 다수의 픽쳐가 인코딩되고 다음이 수행된다:
픽쳐들의 트리블록들은 슬라이스들로 분할되어(각각의 분할분은 래스터 스캔 순서의 연속적인 트리블록들로 구성됨) 각각의 분할분은 제한(a)에 의해 허용된 것보다 더 많은 루마 샘플을 포함하지 않도록 한다(602a).
트리블록들은 각자의 슬라이스들에서 인코딩된다(상이한 슬라이스들의 인코딩은 순차적으로 또는 병렬로 수행된다).
인코더는 제한(b)을 이행하기 위하여 다음의 단계를 수행하도록 구성될 수 있다.
비디오 시퀀스를 구성하는 다수의 픽쳐가 인코딩되고 다음이 수행된다:
픽쳐들은 (CtbSize(CtbSize는 트리블록 사이즈와 동일함)의 정수배인 샘플 위치들에서의 수평 및 수직 라인을 갖는) 타일로 분할되어 각각의 타일은 제한(b)에 의해 허용되는 것보다 더 많은 루마 샘플을 포함하지 않도록 한다(602b).
트리블록들은 각자의 타일에서 인코딩된다(상이한 타일의 인코딩은 순차적으로 또는 병렬로 수행된다).
인코더는 제한(c)을 이행하기 위하여 다음의 단계를 수행하도록 구성될 수 있다.
비디오 시퀀스를 구성하는 다수 픽쳐가 파면으로 인코딩되고(각각의 PPS에서 tiles_or_entropy_coding_sync_idc를 2로 설정) 전체 시퀀스에 대하여 한번 다음이 수행된다(602c):
비디오 시퀀스 (내의 픽쳐들)의 해상도(루마 샘플 내의 높이 및 폭)가 주어지면, CtbSize가 선택되어 제한(c)이 이행된다.
인코더가 신택스 엘리먼트의 소정 값에 대한 요구사항 중의 하나(이상)를 이행할 필요가 있는 몇 개의 상이한 이유가 존재한다. 신택스 엘리먼트의 값은 또한 값(X)라 한다. 이러한 하나의 이유는 인코더가 특정 값(X)을 필요로 한다는 것을 나타낸 디코더 또는 값(X)이 (소정수보다 높거나 같은) 값들의 특정한 세트 내에 있을 필요가 있는 디코더에 대한 비디오 시퀀스를 인코딩하기 때문이다.
값(X)에 대한 특정 요구사항이 없으면, 인코더는 디코더를 돕기 위하여 및 가능한한 많은 디코더가 디코딩할 수 있는 비트스트림을 생성하기 위하여 값(X)을 가능한 한 높은 번호로 설정하기를 원할 수 있다. 일 예로서, 인코더가 각각의 픽쳐를 X=4.0을 의미하는 4개의 동일한 부분으로 나누는 경우를 고려한다. 인코더가 X=2,0를 전송하고 픽쳐가 적어도 2개의 부분으로 분리되는 것을 나타내는 것이 허락되지만, 이 예에서 디코더가 가장 높은 가능한 값, 즉, 4.0을 갖는 값(X)을 전송하는 것이 유리할 수 있다.
인코더는 제한(a)에 따라 값(X)을 지시하기 위하여 다음의 단계를 수행하도록 구성될 수 있다.
1. 비디오 시퀀스를 구성하는 다수의 픽쳐는 픽쳐당 하나 이상의 슬라이스를 이용하여 인코딩된다.
2. 값(X)은 시퀀스 내의 모든 슬라이스가 제한(a)을 이행하는 가장 높은 가능한 값으로서 시그널링된다.
인코더는 제한(b)에 따라 값(X)을 지시하기 위하여 다음의 단계를 수행하도록 구성될 수 있다.
1. 비디오 시퀀스를 구성하는 다수의 픽쳐는 인코더에 적합한 타일 구성을 이용하여 인코딩된다.
2. 값(X)은 시퀀스 내의 모든 타일이 제한(b)을 이행하는 가장 높은 가능한 값으로서 시그널링된다.
인코더는 제한(c)에 따라 X의 값을 지시하기 위하여 다음의 단계를 수행하도록 구성될 수 있다.
1. pic_height_in_luma_samples와 동일한 높이 및 pic_width_in_luma_samples와 동일한 폭 및 CtbSize와 동일한 트리블록 사이즈를 갖는 비디오 시퀀스를 구성하는 다수의 픽쳐가 WPP를 이용하여 인코딩된다.
2. 값(X)은 제한(c)이 이행되는 가장 높은 가능한 값으로서 시그널링된다.
추가의 실시예에 따르면, parallelism_idc로 표기된 신택스 엘리먼트는 병행화로도 지칭되는 값(X)이 (parallelism_idc/4)+1과 동일한 것에 의해 비트스트림에 대하여 시행되는 제한을 나타낸다. 상술한 실시예와 유사하게, 병행화의 레벨은 사용될 수 있는 스레드의 수를 나타낸다. 도 5를 참조하면, 이는 병렬로 디코딩될 수 있는 4개의 독립 부분으로 분할된 픽쳐 - 병렬화의 레벨은 4임 - 및 병렬로 디코딩될 수 있는 2개의 독립 부분으로 분할된 픽쳐 - 병렬화의 레벨은 2임 - 에 의해 예시된다.
따라서, 값(X)(즉, 신택스 엘리먼트의 값)은 값(X=parallelism=parallelism_idc/4)+1=(신택스 엘리먼트/4)+1)을 산출함으로써 비트스트림이 인코딩되는 병행화의 레벨을 결정하는데 사용될 수 있다.
이 실시예는 이전의 실시예의 더 특정한 버전을 제시하며 이전 실시예로부터의 모든 상이한 형태는 이 실시예에서 반복되지 않지만, 이들은 임의의 적절한 방식으로 결합 및/또는 제한될 수 있다.
이 실시예에 따르면, 병행화의 레벨은
Parallelism=(parallelism_idc/m)+1
로서 산출된다. 병행화가 1보다 크면, 이하에 특정된 제약이 적용된다. m의 바람직한 값은 4이지만 대안으로 다른 값이 사용될 수 있다.
병행화가 1보다 크면(701), 도 7b의 플로우챠트에 도시된 바와 같이 다음의 조건 중의 하나가 이행되어야 한다(702).
A. tiles_or_entropy_coding_sync_idc가 코딩된 비디오 시퀀스 내에서 활성화된 각각의 픽쳐 파라미터 세트에서 0과 동일하고 슬라이스 내의 루마 샘플의 최대수가 floor(pic_width_in_luma_samples*pic_height_in_luma_samples/parallelism)보다 작거나 같다.
B. tiles_or_entropy_coding_sync_idc가 코딩된 비디오 시퀀스 내에서 활성화된 각각의 픽쳐 파라미터 세트에서 1과 동일하고 타일 내의 루마 샘플의 최대수가 floor(pic_width_in_luma_samples*pic_height_in_luma_samples/parallelism)보다 작거나 같다.
C. tiles_or_entropy_coding_sync_idc가 코딩된 비디오 시퀀스 내에서 활성화된 각각의 픽쳐 파라미터 세트에서 2와 동일하고 신택스 엘리먼트(pic_width_in_luma_samples, pic_height_in_luma_samples) 및 변수(CtbSize)가 제한되어, (2*(pic_height_in_luma_samples/CtbSize)+(pic_width_in_luma_samples/CtbSize))*CtbSize*CtbSize≤floor(MaxLumaFS/parallelism)이 된다.
floor(x)는 x보다 작거나 같은 가장 큰 정수를 암시하는 것에 주의해야 한다. pic_width_in_luma_samples는 픽쳐 폭이고 pic_height_in_luma_samples는 픽쳐 높이이다.
parallelism으로 표기된 값(X)은 디코더에 의해 사용되어 하나의 스레드에 의해 처리될 루마 샘플의 최대수를 산출하여 디코더가 병렬 디코딩 정보를 최대로 이용하는 것으로 가정할 수 있다. 상이한 스레드 간의 상호 종속성, 예를 들어 타일 및 슬라이스 경계에 걸친 디블록킹 또는 엔트로피 동기화가 존재함에 주의해야 한다. 디코딩 작업 부하 분배를 계획하는데 있어서 디코더를 돕기 위하여, 인코더는 parallelism_idc의 값을 상기 3개의 조건 중의 하나가 이행되는 가장 높은 가능한 값으로 설정하는 것을 추천한다. 설정 parallelism_idc=floor(4*MaxLumaFS/(2*((pic_height_in_luma_samples/CtbSize)+(pic_width_in_luma_samples/CtbSize))*CtbSize*CtbSize))-4
를 의미하는 tiles_or_entropy_coding_sync_idc=2인 경우에 대하여,
이 실시예의 조건(A)은 제한(a)의 특수 경우이고 제한(a)에 대하여 제시된 인코더 단계는 조건(A)에 적용된다.
이 실시예의 조건(B)은 제한(b)의 특수 경우이고 제한(b)에 대하여 제시된 인코더 단계는 조건(B)에 적용된다.
이 실시예의 조건(C)은 제한(c)의 특수 경우이고 제한(c)에 대하여 제시된 인코더 단계는 조건(C)에 적용된다.
특히, 인코더는 조건(C)에 따라 X의 값을 지시하기 위하여 다음 단계를 수행하도록 구성될 수 있다.
1. pic_height_in_luma_samples와 동일한 높이 및 pic_width_in_luma_samples와 동일한 폭 및 CtbSize와 동일한 트리블록 사이즈를 갖는 비디오 시퀀스를 구성하는 다수의 픽쳐가 WPP를 이용하여 인코딩된다.
2. 값(X)은 신택스 엘리먼트에 의해 제한(c)이 이행되는 가장 높은 가능한 값 즉,
value X=floor(MaxLumaFS/(2*((pic_height_in_luma_samples/CtbSize)+(pic_width_in_luma_samples/CtbSize))*CtbSize*CtbSize))
으로서 시그널링된다.
추가의 실시예에 따르면, 신택스 엘리먼트의 값은 슬라이스, 타일 또는 파면당 바이트의 수에 제한을 부과하는데 사용된다.
따라서, 값(X)의 함수로서 및 선택적으로 MaxBR 및/또는 Max CPB 사이즈의 함수로서 하나의 슬라이스, 타일 및/또는 파면 서브스트림 내의 바이트(또는 비트)의 최대수에 대한 제한이 존재할 수 있다. MaxBR는 레벨에 대한 최대 비트레이트이고 CPB 사이즈는 코딩된 픽쳐 버퍼 사이즈(Coded Picture Buffer size)이다.
제한은 상기 제한 중의 하나 이상과 결합될 수 있다.
특히, 인코더는 슬라이스 내의 바이트의 최대수에 대한 제한(a) 및 요구사항을 이행하기 위하여 다음의 단계를 수행하도록 구성될 수 있다.
1. 비디오 시퀀스를 구성하는 다수의 픽쳐가 인코딩되고 다음이 수행된다:
2. 슬라이스의 트리블록은 다음의 조건 중의 하나 이상을 이행하는 제1 트리블록(T)의 시작 전까지 완전히 인코딩된다:
i. 동일한 슬라이스에서 인코딩되었으면, 슬라이스가 제한(a)에 의해 허용되는 것보다 많은 루마 샘플을 포함하였을 것으로 귀결될 것이다.
ii. 동일한 슬라이스에서 인코되되었으면, 슬라이스 내의 바이트의 수가 슬라이스 내의 바이트의 최대수에 대한 요구사항에 의해 허용된 것보다 많을 것으로 귀결될 것이다.
3. 현재 코딩된 슬라이스 내의 특정 트리블록(T)을 포함하는 대신, 인코더는 T 전에 슬라이스를 완료하고 제1 트리블록으로서 T를 갖는 새로운 슬라이스를 시작한다. 프로세스는 전체 픽쳐가 인코딩될 때까지 단계 2로부터 계속된다.
추가의 형태에 따르면, 송신 장치가 제공된다. 송신 장치는 비트스트림을 인코딩하는 인코더를 포함한다. 인코더는 상술한 바와 같이 방법 단계를 수행하도록 구성된 프로세서 및 입출력부를 포함한다. 따라서, 인코더는 예를 들어, 신택스 엘리먼트에 따라 병행화의 레벨을 갖는 비트스트림을 인코딩, 즉, 신택스 엘리먼트의 값을 이용하여 실시예에 따른 제한을 부과하도록 구성된다. 입출력부는 신택스 엘리먼트를 전송하도록 구성된다. 또한, 인코더는 컴퓨터에 의해 구현될 수 있고, 인코더의 프로세서는 메모리에 저장된 소프트웨어 코드 부분을 실행하도록 구성되고, 프로세서에 의해 실행될 때 소프트웨어 코드 부분은 상술한 각각의 인코더 방법을 생성한다.
따라서, 비디오 스트림의 픽쳐의 시퀀스를 나타내는 비트스트림을 인코딩하는 송신 장치(400)가 도 8에 도시된 바와 같이 제공된다. 송신 장치(400)는 상술한 바와 같이 인코더(410) 및 신택스 엘리먼트 관리 유닛(440)을 포함한다. 일 구현예에 따르면, 인코더 및 신택스 엘리먼트 관리 유닛은 프로세싱 유닛이라고도 지칭되는 프로세서(810) 및 메모리(820)를 포함하는 컴퓨터(800)에 의해 구현된다. 따라서, 이 형태에 따른 송신 장치(400)는 프로세서(810) 및 메모리(820)를 포함한다. 상기 메모리(820)는 프로세서(810)에 의해 실행가능한 명령을 포함하고, 상기 송신 장치(400)는 신택스 엘리먼트를 전송하도록 동작하고, 신택스 엘리먼트의 값은 비트스트림을 디코딩하는 병행화의 일정 레벨을 보장하는 방식으로 비트스트림에 대하여 시행되는 제한을 나타낸다.
송신 장치(400)는 병행화의 레벨과 동일한 신택스 엘리먼트의 값을 설정하도록 동작한다. 이것은 예를 들어 프로세서에 의해 구현되는 신택스 엘리먼트 관리 유닛(440)에 의해 달성될 수 있다.
또한, 송신 장치(400)는 신택스 엘리먼트의 값을 이용하여 예를 들어 신택스 관리 유닛을 이용하여 비트스트림에 대하여 a, b 및 c 중의 하나의 제한을 부과하도록 구성될 수 있다.
a. 슬라이스당 루마 샘플의 최대수는 픽쳐 사이즈의 함수로서 및 신택스 엘리먼트의 값의 함수로서 제한된다.
b. 타일당 루마 샘플의 최대수는 픽쳐 사이즈의 함수로서 및 신택스 엘리먼트의 값의 함수로서 제한된다.
c. 파면이 사용되고 트리블록 사이즈 및 픽쳐 높이 및 픽쳐 폭은 신택스 엘리먼트의 값의 함수로서 및 픽쳐 사이즈의 함수로서 공동으로 제한된다.
또한, 상이한 실시예에 따르면, 송신 장치(400)는 위에서 설명하는 바와 같이 a, b 및 c로 지칭되는 제한의 요구사항을 이행하기 위하여 트리블록 사이즈로의 분할 또는 트리블록 사이즈의 선택에 관한 상이한 액션을 수행하도록 동작한다.
추가의 실시예에 따르면, 송신 장치는 입출력 유닛을 이용하여 시퀀스 내의 모든 슬라이스가 제한(a)의 요구사항을 이행하는 가장 높은 가능한 값으로서 신택스 엘리먼트의 값을 시그널링하도록 동작한다.
추가의 실시예에 따르면, 송신 장치는 입출력 유닛을 이용하여 시퀀스 내의 모든 타일이 제한(b)의 요구사항을 이행하는 가장 높은 가능한 값으로서 신택스 엘리먼트의 값을 시그널링하도록 동작한다.
추가의 실시예에 따르면, 송신 장치는 입출력 유닛을 이용하여 제한(c)의 요구사항이 이행되는 가장 높은 가능한 값으로서 신택스 엘리먼트의 값을 시그널링하도록 동작한다.
추가의 실시예에 따르면, 송신 장치는 예를 들어 신택스 엘리먼트 관리 유닛을 이용하여
병행화=((신택스 엘리먼트의 값)/4)+1
에 의해 예시될 수 있는 신택스 엘리먼트의 값의 함수로서 병행화의 레벨을 결정하도록 동작한다.
그러므로, 송신 장치는, 신택스 엘리먼트의 값이 비트스트림에 대하여 시행되는 제한을 지시하여 적어도 2개의 병렬 프로세스가 디코딩, 즉, 병행화>1에 사용될 수 있으면, 다음의 조건 중의 하나가 이행되어야 하는 것을 보장하도록 구성될 수 있다:
조건(a): 인코딩될 시퀀스 내에서 타일 또는 파면이 이용되지 않으면, 슬라이스 내의 루마 샘플의 최대수는 플로어(픽쳐 폭* 픽쳐 높이/병행화)보다 작거나 동일해야 한다.
조건(b): 인코딩될 시퀀스 내에서 타일은 이용되지만 파면이 이용되지 않으면, 타일 내의 루마 샘플의 최대수는 플로어(픽쳐 폭* 픽쳐 높이/병행화)보다 작거나 동일해야 한다.
조건(c): 인코딩될 시퀀스 내에서 파면이 사용되지만 타일이 이용되지 않으면, 픽쳐 폭 및 픽쳐 높이를 지시하는 신택스 엘리먼트 및 트리블록 사이즈를 지시하는 변수가 제한되어,
(2*(픽쳐 높이/트리블록 사이즈)+(픽쳐 폭/트리블록 사이즈))*트리블록 사이즈*트리블록 사이즈 ≤ 플로어(최대 프레임 사이즈/병행화)이 되고, 플로어(x)는 x보다 작거나 같은 가장 큰 정수를 암시한다.
송신 장치의 입출력 유닛은 시퀀스 파라미터 세트에서 신택스 엘리먼트를 전송하도록 구성될 수 있다.
또 다른 대안으로서, 송신 장치는, 예를 들어 신택스 엘리먼트 관리 유닛을 이용하여, 신택스 엘리먼트의 값을 이용하여 슬라이스, 타일 또는 파면당 바이트 또는 비트의 수의 제한을 부과하도록 동작한다.
송신 장치의 인코더 및 수신 장치의 디코더는 각각 비디오 카메라, 디스플레이, 태블릿, 디지털 TV 수신기, 네트워크 노드 등의 장치에서 구현될 수 있다. 따라서, 본 실시예는 송신 장치 및 비트스트림에 대하여 동작하는 임의의 엘리먼트(네트워크 노드 또는 미디어 어웨어 네트워크 엘리먼트(Media Aware Network Element)에 적용된다. 송신 장치는 예를 들어 사용자 장치, 예를 들어, 모바일 장치 내의 비디오 카메라에 위치할 수 있다.
본 실시예는 HEVC에 제한되지 않고 스케일러블 익스텐션(scalable extension) 또는 멀티뷰 익스텐션(multiview extension) 등의 HEVC의 임의의 익스텐션 또는 상이한 비디오 코덱에 적용될 수 있다.

Claims (33)

  1. 비디오 스트림의 픽쳐들의 시퀀스를 나타내는 비트스트림을 인코딩하는 방법으로서,
    멀티코어 디코더의 알려진 또는 추정된 코어당 처리 능력에 상응하는 인코딩 제한을 결정하는 단계 - 상기 인코딩 제한은, 상기 멀티코어 디코더에서 멀티코어 병렬 디코딩 동안에 상기 멀티코어 디코더의 단일 코어에 의해 처리하는데 필요한 공간 사이즈를 제한함으로써, 상기 비트스트림을 디코딩하기 위한 병행화(parallelism)의 일정 레벨을 보증하는 공간 분할 제한임 -;
    상기 제한에 따라 상기 비트스트림을 인코딩하고, 그에 따라 인코딩된 비트스트림을 획득하는 단계 - 상기 인코딩된 비트스트림의 개별적으로 디코딩가능한 영역들을 디코딩하기 위해 필요한 처리 능력은 상기 알려진 또는 추정된 코어당 처리 능력을 초과하지 않음 -;
    상기 인코딩된 비트스트림을 디코딩하는데 사용하기 위한 시퀀스 파라미터 세트(sequence parameter set; SPS)를 생성하고 상기 인코딩 제한을 표시하는 신택스 엘리먼트를 상기 SPS 내에 포함시키는 단계; 및
    디코딩을 위해 상기 인코딩된 비트스트림을 전송하는 단계 - 상기 전송하는 단계는 상기 멀티코어 디코더의 개별 코어들이 상기 인코딩된 비트스트림의 상기 개별적으로 디코딩가능한 영역들을 디코딩하는데 충분한 처리 능력을 가지고 있는지를 상기 멀티코어 디코더에 의해 결정하는데 사용하기 위해, 상기 SPS를 전송하는 것을 포함함 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 제한은 픽쳐 슬라이스당 루마 샘플들의 개수에 대한 한정이고, 상기 한정은 상기 픽쳐들의 시퀀스와 관련된 픽쳐 사이즈에 따르는 방법.
  3. 제1항에 있어서, 상기 제한에 따라 상기 비트스트림을 인코딩하는 것은, 상기 비트스트림 내의 상기 픽쳐들의 트리블록들을 슬라이스들로 분할하여 각각의 분할분이 래스터 스캔 순서로 연속적인 트리블록들로 구성되고 각각의 분할분은 상기 제한에 해당하는 최대수보다 더 많은 루마 샘플을 포함하지 않도록 하는 것을 포함하는 방법.
  4. 제1항에 있어서, 상기 제한은 슬라이스에 기초하거나, 타일에 기초하거나, 또는 파면에 기초하고, 상기 제한은 슬라이스당, 타일당 또는 파면당 바이트 또는 비트의 최대수를 정의하는 방법.
  5. 제1항에 있어서, 상기 인코딩된 비트스트림에서 상기 개별적으로 디코딩가능한 영역들은 디코딩 스레드들(threads)에 대응하고, 상기 인코딩 제한은 상기 알려진 또는 추정된 코어당 처리 능력을 제공하거나 초과하는 이용가능한 처리 코어들을 가지는 멀티코어 디코더를 위해 상기 디코딩 스레드들이 병렬로 수행될 수 있도록 보장하는 방법.
  6. 제1항에 있어서, 상기 제한에 따라 상기 비트스트림을 인코딩하는 것은, 상기 멀티코어 디코더에서 처리 코어들의 알려진 또는 추정된 개수와 동일한 수의 개별적으로 디코딩가능한 영역들을 획득할 수 있도록 상기 비트스트림을 인코딩하여, 상기 개수의 이용가능한 개별 처리 코어들을 가지는 어떤 멀티코어 디코더라도 각각의 이용가능한 개별 처리 코어가 적어도 상기 알려진 또는 추정된 처리 능력을 갖고 있다는 가정 하에서 상기 개별적으로 디코딩가능한 영역들을 병렬로 디코딩할 수 있도록 하는 것을 포함하는 방법.
  7. 제1항에 있어서, 상기 방법은 디코더로부터 상기 디코더의 디코딩 능력들을 표시하는 보고를 수신하는 단계를 포함하고, 상기 알려진 또는 추정된 코어당 처리 능력은 상기 보고로부터 결정되는 방법.
  8. 비디오 스트림의 픽쳐들의 시퀀스를 나타내는 비트스트림을 인코딩하도록 구성된 인코딩 장치로서, 상기 인코딩 장치는 처리 회로 및 입력/출력 회로를 포함하고,
    상기 처리 회로는,
    멀티코어 디코더의 알려진 또는 추정된 코어당 처리 능력에 상응하는 인코딩 제한을 결정하고 - 상기 인코딩 제한은, 상기 멀티코어 디코더에서 멀티코어 병렬 디코딩 동안에 상기 멀티코어 디코더의 단일 코어에 의해 처리하는데 필요한 공간 사이즈를 제한함으로써, 상기 비트스트림을 디코딩하기 위한 병행화(parallelism)의 일정 레벨을 보증하는 공간 분할 제한임 -;
    상기 제한에 따라 상기 비트스트림을 인코딩하고, 그에 따라 인코딩된 비트스트림을 획득하며 - 상기 인코딩된 비트스트림의 개별적으로 디코딩가능한 영역들을 디코딩하기 위해 필요한 처리 능력은 상기 알려진 또는 추정된 코어당 처리 능력을 초과하지 않음 -;
    상기 인코딩된 비트스트림을 디코딩하는데 사용하기 위한 시퀀스 파라미터 세트(sequence parameter set; SPS)를 생성하고 상기 인코딩 제한을 표시하는 신택스 엘리먼트를 상기 SPS 내에 포함시키도록 구성되고,
    상기 입력/출력 회로는,
    디코딩을 위해 상기 인코딩된 비트스트림을 전송하도록 구성되는 - 상기 전송은 상기 멀티코어 디코더의 개별 코어들이 상기 인코딩된 비트스트림의 상기 개별적으로 디코딩가능한 영역들을 디코딩하는데 충분한 처리 능력을 가지고 있는지를 상기 멀티코어 디코더에 의해 결정하는데 사용하기 위해, 상기 SPS를 전송하는 것을 포함함 - 인코딩 장치.
  9. 제8항에 있어서, 상기 제한은 픽쳐 슬라이스당 루마 샘플들의 개수에 대한 한정이고, 상기 한정은 상기 픽쳐들의 시퀀스와 관련된 픽쳐 사이즈에 따르는 인코딩 장치.
  10. 제8항에 있어서, 상기 처리 회로는, 상기 비트스트림 내의 상기 픽쳐들의 트리블록들을 슬라이스들로 분할하여 각각의 분할분이 래스터 스캔 순서로 연속적인 트리블록들로 구성되고 각각의 분할분은 상기 제한에 해당하는 최대수보다 더 많은 루마 샘플을 포함하지 않도록 하여, 상기 제한에 따라 상기 비트스트림을 인코딩하도록 구성되는 인코딩 장치.
  11. 제8항에 있어서, 상기 제한은 슬라이스에 기초하거나, 타일에 기초하거나, 또는 파면에 기초하고, 상기 제한은 슬라이스당, 타일당 또는 파면당 바이트 또는 비트의 최대수를 정의하는 인코딩 장치.
  12. 제8항에 있어서, 상기 인코딩된 비트스트림에서 상기 개별적으로 디코딩가능한 영역들은 디코딩 스레드들(threads)에 대응하고, 상기 인코딩 제한은 상기 알려진 또는 추정된 코어당 처리 능력을 제공하거나 초과하는 이용가능한 처리 코어들을 가지는 멀티코어 디코더를 위해 상기 디코딩 스레드들이 병렬로 수행될 수 있도록 보장하는 인코딩 장치.
  13. 제8항에 있어서, 상기 처리 회로는, 상기 멀티코어 디코더에서 처리 코어들의 알려진 또는 추정된 개수와 동일한 수의 개별적으로 디코딩가능한 영역들을 획득할 수 있도록 상기 비트스트림을 인코딩하여, 상기 개수의 이용가능한 개별 처리 코어들을 가지는 어떤 멀티코어 디코더라도 각각의 이용가능한 개별 처리 코어가 적어도 상기 알려진 또는 추정된 처리 능력을 갖고 있다는 가정 하에서 상기 개별적으로 디코딩가능한 영역들을 병렬로 디코딩할 수 있도록, 상기 제한에 따라 상기 비트스트림을 인코딩하도록 구성되는 인코딩 장치.
  14. 제8항에 있어서, 상기 처리 회로는, 디코더로부터 상기 디코더의 디코딩 능력들을 표시하는 보고를 상기 입력/출력 회로를 통해 수신하도록 구성되고, 상기 알려진 또는 추정된 코어당 처리 능력을 상기 보고로부터 결정하도록 구성되는 인코딩 장치.
  15. 제1항에 있어서, 상기 신택스 엘리먼트는 "parallelism_idc"로 표기되고, 상기 비트스트림에 대해서 보증되는 상기 병행화의 일정 레벨은 (parallelism_idc/4)+1로 주어지는 방법.
  16. 제1항에 있어서, 인코딩될 상기 픽쳐들의 시퀀스 내에서 픽쳐 타일들이 사용될 때, 타일 당 루마 샘플들의 최대수는 상기 공간 분할 제한으로서 플로어(픽쳐 폭*픽쳐 높이/병행화 레벨)보다 작거나 같게 제한되고, "병행화 레벨"은 상기 비트스트림을 디코딩하는데 보증되는 상기 병행화의 일정 레벨인 방법.
  17. 제8항에 있어서, 상기 신택스 엘리먼트는 "parallelism_idc"로 표기되고, 상기 비트스트림에 대해서 보증되는 상기 병행화의 일정 레벨은 (parallelism_idc/4)+1로 주어지는 인코딩 장치.
  18. 제8항에 있어서, 인코딩될 상기 픽쳐들의 시퀀스 내에서 픽쳐 타일들이 사용될 때, 타일 당 루마 샘플들의 최대수는 상기 공간 분할 제한으로서 플로어(픽쳐 폭*픽쳐 높이/병행화 레벨)보다 작거나 같게 제한되고, "병행화 레벨"은 상기 비트스트림을 디코딩하는데 보증되는 상기 병행화의 일정 레벨인 인코딩 장치.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
KR1020157002566A 2012-06-29 2013-06-27 비디오 처리를 위한 송신 장치 및 방법 KR102144881B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261666056P 2012-06-29 2012-06-29
US61/666,056 2012-06-29
PCT/SE2013/050803 WO2014003675A1 (en) 2012-06-29 2013-06-27 Transmitting apparatus and method thereof for video processing

Publications (2)

Publication Number Publication Date
KR20150037944A KR20150037944A (ko) 2015-04-08
KR102144881B1 true KR102144881B1 (ko) 2020-08-14

Family

ID=48793513

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157002566A KR102144881B1 (ko) 2012-06-29 2013-06-27 비디오 처리를 위한 송신 장치 및 방법

Country Status (5)

Country Link
US (5) US20140241439A1 (ko)
EP (1) EP2868094A1 (ko)
KR (1) KR102144881B1 (ko)
CN (2) CN104685886B (ko)
WO (2) WO2014003676A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102470694B1 (ko) * 2012-02-04 2022-11-25 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
CN104429075B (zh) * 2012-07-09 2017-10-31 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置及图像解码装置
US9432427B2 (en) * 2013-07-25 2016-08-30 Futurewei Technologies, Inc. System and method for effectively controlling client behavior in adaptive streaming
US9596470B1 (en) 2013-09-27 2017-03-14 Ambarella, Inc. Tree-coded video compression with coupled pipelines
GB2523993A (en) * 2014-03-06 2015-09-16 Sony Corp Data encoding and decoding
US10257529B2 (en) 2014-06-30 2019-04-09 Intel Corporation Techniques for generating wave front groups for parallel processing a video frame by a video encoder
CN109076216B (zh) * 2016-03-30 2023-03-31 韩国电子通信研究院 使用画面划分信息对视频进行编码和解码的方法和设备
WO2017171438A1 (ko) * 2016-03-30 2017-10-05 한국전자통신연구원 픽쳐 분할 정보를 사용하는 비디오의 부호화 및 복호화를 위한 방법 및 장치
WO2019199092A1 (ko) * 2018-04-11 2019-10-17 삼성전자 주식회사 멀티미디어 시스템에서의 데이터 처리 장치 및 방법
BR112021004636A2 (pt) * 2018-09-13 2021-05-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. codificador e decodificador de vídeo, mesclador de vídeo e métodos para fornecerem uma representação de vídeo codificado e mesclado
JP7285857B2 (ja) * 2019-01-16 2023-06-02 テレフオンアクチーボラゲット エルエム エリクソン(パブル) リマインダをもつ均一なタイルスプリットを含むビデオコーディング
CN110062278A (zh) * 2019-04-12 2019-07-26 北京字节跳动网络技术有限公司 视频数据发布方法、装置、电子设备和存储介质
WO2020242229A1 (ko) * 2019-05-28 2020-12-03 삼성전자주식회사 작은 크기의 인트라 블록을 방지하기 위한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
CN110248192B (zh) * 2019-06-12 2021-10-15 腾讯科技(深圳)有限公司 编码器切换、解码器切换、屏幕分享方法和屏幕分享系统
CN114930856A (zh) * 2019-11-28 2022-08-19 Lg 电子株式会社 图像/视频编译方法和装置
US11445176B2 (en) * 2020-01-14 2022-09-13 Hfi Innovation Inc. Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding
CN114979772B (zh) * 2021-02-24 2023-05-12 腾讯科技(深圳)有限公司 解码器的配置方法、装置、介质以及电子设备
CN112995237B (zh) * 2021-05-21 2021-10-08 杭州博雅鸿图视频技术有限公司 一种用于处理视频数据流的方法、装置、设备及存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149928A1 (en) * 2002-02-07 2003-08-07 Yeun-Renn Ting Turbo-code decoder
GB0428160D0 (en) * 2004-12-22 2005-01-26 British Telecomm Variable bit rate processing
US9445113B2 (en) * 2006-01-10 2016-09-13 Thomson Licensing Methods and apparatus for parallel implementations of 4:4:4 coding
US7983343B2 (en) * 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
EP2395757A1 (en) * 2006-05-24 2011-12-14 Panasonic Corporation Image decoding device
EP2119187B1 (en) * 2007-02-23 2017-07-19 Nokia Technologies Oy Backward-compatible characterization of aggregated media data units
US7443318B2 (en) * 2007-03-30 2008-10-28 Hong Kong Applied Science And Technology Research Institute Co. Ltd. High speed context memory implementation for H.264
JP5686594B2 (ja) * 2007-04-12 2015-03-18 トムソン ライセンシングThomson Licensing スケーラブル・ビデオ符号化のためのビデオ・ユーザビリティ情報(vui)用の方法及び装置
CN101137062A (zh) * 2007-09-20 2008-03-05 四川长虹电器股份有限公司 具有双核处理器的视频编码系统双核协同编码方法
US8542748B2 (en) * 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
CN101516030B (zh) * 2009-04-10 2013-05-01 华硕电脑股份有限公司 具有多格式影像编解码功能的数据处理电路及处理方法
KR101504887B1 (ko) * 2009-10-23 2015-03-24 삼성전자 주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
CN101908035B (zh) * 2010-07-30 2012-09-05 北京华傲精创科技开发有限公司 视频编解码方法、gpu及其与cpu的交互方法及系统
US9338465B2 (en) * 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9060173B2 (en) * 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US20130107973A1 (en) * 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
US20130177070A1 (en) * 2012-01-11 2013-07-11 Qualcomm Incorporated Significance map support for parallel transform coefficient processing in video coding
US20130188698A1 (en) * 2012-01-19 2013-07-25 Qualcomm Incorporated Coefficient level coding
JP6110410B2 (ja) * 2012-01-31 2017-04-05 ヴィド スケール インコーポレイテッド スケーラブルな高効率ビデオコーディング(hevc)のための参照ピクチャセット(rps)シグナリング
US9621905B2 (en) * 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
KR20230080500A (ko) * 2013-01-04 2023-06-07 지이 비디오 컴프레션, 엘엘씨 효율적인 확장가능한 코딩 개념

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
표준문서1(Felix Henry 등, 2011)*
표준문서2(Rickard Sjoberg 등, 2012)*
표준문서3(Minhua Zhou 등, 2012)*
표준문서4(Seungsoo Jeong 등, 2012)
표준문서5(Vivienne Sze 등, 2011)
표준문서6(Jonatan Samuelsson 등, 2012)

Also Published As

Publication number Publication date
US10819998B2 (en) 2020-10-27
WO2014003676A1 (en) 2014-01-03
US20190149831A1 (en) 2019-05-16
US11570456B2 (en) 2023-01-31
KR20150037944A (ko) 2015-04-08
CN104604235A (zh) 2015-05-06
US10142622B2 (en) 2018-11-27
WO2014003675A1 (en) 2014-01-03
US20140241439A1 (en) 2014-08-28
CN104604235B (zh) 2018-11-09
US20150326870A1 (en) 2015-11-12
EP2868094A1 (en) 2015-05-06
US20210006808A1 (en) 2021-01-07
CN104685886B (zh) 2018-12-07
US20180152716A1 (en) 2018-05-31
CN104685886A (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
KR102144881B1 (ko) 비디오 처리를 위한 송신 장치 및 방법
JP6074509B2 (ja) 映像符号化及び復号化方法、装置及びシステム
CA2885501C (en) Efficient software for transcoding to hevc on multi-core processors
CN106797464B (zh) 用于视频编码和解码中的矢量编码的方法和装置
US8705616B2 (en) Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
EP2324639B1 (en) System and method for decoding using parallel processing
WO2018116924A1 (ja) 符号化装置、符号化方法及びプログラム、復号装置、復号方法及びプログラム
KR20210040195A (ko) 파면 병렬 프로세싱이 인에이블되는 경우의 인트라 픽쳐 예측 모드에 대한 규칙
JP2016529782A (ja) レイヤを横切るピクチャパーティションに対するビットストリームの制限
US10178405B2 (en) Enhanced coding and decoding using intra block copy mode
CN112585970B (zh) 灵活图块分区
CN112640455B (zh) 视频编码中具有子图块的图块分区
TWI824207B (zh) 視頻編碼及解碼
WO2016210177A1 (en) Parallel intra-prediction
JP2022517081A (ja) イントラ・サブパーティション・コーディング・ツールによって引き起こされるサブパーティション境界のためのデブロッキングフィルタ
CN112019842A (zh) 点云压缩的方法、装置、计算机设备和存储介质
WO2021196035A1 (zh) 视频编码的方法和装置
JP2014011726A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
TW202101998A (zh) 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法
US20240171755A1 (en) Picture Tile Attributes Signaled Per-Tile
CN112135151A (zh) 视频解码方法、系统、计算机设备和存储介质
RU2787850C1 (ru) Способ сигнализирования набора выходных слоев в масштабируемом видео потоке
TW202339505A (zh) 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant