KR102662633B1 - 네트워크 추상화 유닛 헤더에서의 타일 식별 - Google Patents

네트워크 추상화 유닛 헤더에서의 타일 식별 Download PDF

Info

Publication number
KR102662633B1
KR102662633B1 KR1020217017989A KR20217017989A KR102662633B1 KR 102662633 B1 KR102662633 B1 KR 102662633B1 KR 1020217017989 A KR1020217017989 A KR 1020217017989A KR 20217017989 A KR20217017989 A KR 20217017989A KR 102662633 B1 KR102662633 B1 KR 102662633B1
Authority
KR
South Korea
Prior art keywords
tile
video
delete delete
nal unit
coded
Prior art date
Application number
KR1020217017989A
Other languages
English (en)
Other versions
KR20210088702A (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 KR20210088702A publication Critical patent/KR20210088702A/ko
Application granted granted Critical
Publication of KR102662633B1 publication Critical patent/KR102662633B1/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/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
    • 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/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
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

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

Abstract

비디오 디코딩 방법 및 장치는 고정된 길이의 코드워드를 포함하는 고 레벨 신택스 구조 내의 영상 세그먼트의 식별정보를 가지고 있는 이진 코딩된 신택스 요소를 디코딩하는 것과 상기 영상 세그먼트를 재구성하는 것을 포함한다.

Description

네트워크 추상화 유닛 헤더에서의 타일 식별
관련 출원에 대한 상호 참조
본 출원은 미국 특허상표청에 2018년 12월 20일에 출원된 미국 가출원 제62/783,152호 및 2019년 5월 6일에 출원된 미국 출원 제16/403,799호에 대해 35 U.S.C.§119에 따라 우선권을 주장한다.
개시된 주제는 비디오 코딩 및 디코딩에 관한 것으로, 보다 구체적으로, 네트워크 추상화 계층 유닛 헤더와 같은 고정 길이 코드 포인트의 고 레벨 신택스 구조에 타일 식별 정보를 포함하는 것에 관한 것이다.
움직임 보상을 수반하는 영상 간 예측(inter-picture prediction)을 사용하는 비디오 코딩 및 디코딩이 수십 년에 걸쳐 알려져 왔다. 압축되지 않은 디지털 비디오는 일련의 영상으로 구성될 수 있고, 각각의 영상은 예를 들어 1920×1080 휘도 샘플 및 연관된 색차 샘플의 공간 차원을 갖는다. 일련의 영상은 고정 또는 가변 영상 레이트(비공식적으로 프레임 레이트라고도 함), 예를 들어 초당 60장의 영상 또는 60Hz를 가질 수 있다. 압축되지 않은 비디오에는 상당한 비트레이트 요건이 있다. 예를 들어, 샘플당 8비트의 1080p60 4:2:0 비디오(60Hz 프레임 레이트의 1920×1080 휘도 샘플 해상도)는 1.5Gbit/s에 가까운 대역폭이 필요하다. 한 시간의 이러한 비디오는 600GB 이상의 저장 공간이 필요하다.
비디오 코딩 및 디코딩의 한 가지 목적은 압축을 통해, 입력 비디오 신호의 중복성(redundancy)을 감소시키는 것이다. 압축은 앞서 언급한 대역폭 또는 저장 공간 요건을, 경우에 따라서는 두 자릿수 이상 감소시키는 데 도움이 될 수 있다. 무손실 압축(lossless compression)과 손실 압축(lossy compression), 그리고 이들의 조합이 모두 사용될 수 있다. 무손실 압축은 압축된 원본 신호(original signal)로부터 원본 신호의 정확한 사본(exact copy)을 재구축할 수 있는 기술을 가리킨다. 손실 압축을 사용하는 경우, 재구축된 신호는 원래 신호와 동일하지 않을 수 있지만, 원본 신호와 재구축된 신호 사이의 왜곡은 재구축된 신호가 의도한 애플리케이션에 유용할 만큼 충분히 작다. 비디오의 경우, 손실 압축이 널리 사용된다. 허용되는 왜곡의 양은 애플리케이션에 따라 다르며; 예를 들어, 특정 소비자 스트리밍 애플리케이션의 사용자는 텔레비전 기여 애플리케이션(television contribution application)의 사용자보다 높은 왜곡을 허용할 수 있다. 달성 가능한 압축비는, 허용 가능한/용인 가능한 왜곡이 높을수록 압축비가 더 높을 수 있다는 것을 반영할 수 있다.
비디오 인코더 및 디코더는 예를 들어, 움직임 보상, 변환, 양자화 및 엔트로피 코딩을 포함하는 몇몇 광범위한 카테고리의 기술을 이용할 수 있으며, 이들 중 일부는 아래에서 소개될 것이다.
패킷 네트워크를 통한 전송을 위해 코딩된 비디오 비트스트림을 패킷으로 분할하는 개념은 수십 년 동안 사용되어 왔다. 초기에, 비디오 코딩 표준 및 기술은 대부분 비트 지향 전송 및 정의된 비트스트림에 최적화되었다. 패킷화(Packetization)는 예를 들어 실시간 전송 프로토콜(Real-time Transport Protocol, RTP) 페이로드 포맷과 같이, 지정된 시스템 계층 인터페이스에서 발생하였다. 인터넷을 통한 비디오의 대량 사용에 적합한 인터넷 연결의 출현으로, 비디오 코딩 표준은 비디오 코딩 계층(video coding layer, VCL)과 네트워크 추상화 계층(network abstraction layer, NAL)의 개념상의 차별화를 통해 그 두드러진 사용 사례를 반영하였다. NAL 유닛은 2003년 H.264에 도입되었으며, 그 이후로 약간의 수정만으로 특정 비디오 코딩 표준 및 기술에서 유지되어 왔다.
NAL 유닛은 많은 경우에, 코딩된 비디오 시퀀스의 모든 선행 NAL 유닛을 반드시 디코딩하지 않고도 디코더가 작용할 수 있는 가장 작은 엔티티로 볼 수 있다. 지금까지 NAL 유닛은 선택적 포워딩 유닛(Selective Forwarding Unit, SFU) 또는 다지점 제어 유닛(Multipoint Control Unit, MCU)와 같은 매체 인식 네트워크 요소(Media Aware Network Element)에 의해, 비트스트림 가지치기(bitstream pruning)를 포함하는 특정 비트스트림 조작 기술(bitstream manipulation technique)뿐만 아니라 특정 오류 복원 기술(error resilience technology)을 가능하게 한다.
도 1은 H.264(101) 및 H.265(102)에 따른 NAL 유닛 헤더의 신택스 다이어그램의 관련 부분을 나타내며, 두 경우 모두에서 각각의 확장은 없다. 두 경우 모두에서, "forbidden_zero_bit"는 특정 시스템 계층 환경에서 시작 코드 에뮬레이션 방지에 사용되는 0 비트(zero bit)이다. "nal_unit_type syntax" 요소는 NAL 유닛이 실어 전달하는(carry) 데이터의 유형을 의미하며, 예를 들어 특정 슬라이스 유형, 파라미터 세트 유형, 부가 확장 정보(Supplementary Enhancement Information, SEI) 메시지 등 중 하나일 수 있다. H.265 NAL 유닛 헤더는 NAL 유닛이 속하는 코딩된 영상의 공간/SNR 및 시간 계층을 지시하는 "nuh_layer_id" 및 "nuh_temporal_id_plus1"을 더 포함한다.
NAL 유닛 헤더는 예를 들어, 다른 NAL 유닛 헤더, 파라미터 세트 등과 같은, 비트스트림 내의 다른 데이터에 대한 어떠한 파싱 의존성도 없는, 쉽게 파싱 가능한 고정된 길이의 코드워드만을 포함한다는 것을 알 수 있다. NAL 유닛 헤더는 NAL 유닛에서의 첫 번째 옥텟이기 때문에, MANE은 그것을 쉽게 추출하고 파싱하고 그것에 따라 작용할 수 있다. 이와 반대로 슬라이스(slice) 또는 타일 헤더(tile header)와 같은 다른 고 레벨 신택스 요소는, 그것들이 파라미터 세트 컨텍스트 유지 및/또는 가변 길이 또는 산술적으로 코딩된 코드 포인트의 처리를 요구할 수 있으므로 MANE에 쉽게 액세스할 수 없다. 그러나 타일 그룹 헤더와 같은 구조도 MANE에 쉽게 액세스할 수 있는 속성을 갖도록 설계될 수 있지만, 기존의 비디오 압축 기술 및 표준은 그렇게 하지 않았을 수 있다.
도 1에 도시된 바와 같이 NAL 유닛 헤더가 코딩된 영상의 공간 영역을 나타내는 슬라이스, 타일 또는 비트스트림의 유사한 부분과 같은, 코딩된 영상의 세그먼트에 NAL 유닛을 연관시킬 수 있는 정보를 포함하지 않음을 추가로 알 수 있다. 관련 기술에서, 그러한 정보는 슬라이스 헤더에 존재하며, 특정 경우에는 매크로블록(macroblock) 또는 CU 주소의 형태로 존재한다. 경우에 따라, 그 주소는 도면의 왼쪽 상단에서부터 카운팅할 때 세그먼트, 슬라이스, 타일이 스캔 순서로 n번째 매크로블록/CU에서 시작함을 지시하는 정수 n이다. 따라서, n은 영상 및 매크로블록/CU 크기 모두에 의존할 수 있으며, 작은 영상 크기의 경우, 작거나(예: 이진 코드로 8비트에 적합) 크며(예: 32400, 이진 코드로 16비트 필요); 두 경우 모두 16x16 샘플의 매크로블록/CU 크기가 가정된다.
역사적으로, 타일 또는 슬라이스와 같은 영상 세그먼트는 대부분 최대 전송 유닛 크기 제약 및 병렬화와 매칭되도록, 비트스트림 분할을 용이하게 하는 데 사용되었다. 두 경우 모두, MANE, SFU 또는 유사한 기기에서의 타일 또는 슬라이스 식별은 일반적으로 필요하지 않다. 디코더는 파라미터 세트의 디코딩으로부터 획득 된 상태와 함께, 비교적 복잡한 슬라이스 헤더 및/또는 유사한 정보로부터 관련 정보를 획득할 수 있다.
그러나 보다 최근에는, 영상 세그먼트 및 특히 타일(및 스캔 순서, 직사각형 순서 또는 임의의 다른 적합한 순서의 타일의 집합인 타일 그룹)이 다른 애플리케이션들 중에서, 합성된 360도 투영에서의 특정 보기를 나타내는 CU의 수집과 같은 목적으로 사용되어 왔다. 그러한 애플리케이션 중 일부에서, MANE 및 SFU는 애플리케이션에 필요하지 않는 경우에 특정 타일 또는 기타 세그먼트를 코딩된 영상에서 유리하게 제거할 수 있다. 예를 들어 정육면체 투영이 사용되어 있는 경우, 외부 관점에서 장면을 렌더링하는 것은 6개의 정육면체 면 중 최대 세 개가 필요하다. 끝점(endpoing)까지, 남아있는 최소 세 개의 면을 나타내는 CU 및 세그먼트를 전송하는 것은 자원의 낭비일 수 있다. 그러나 전송기(sender)가 전체 표현(정육면체 투영의 여섯 개의 면 모두 포함)을 MANE에 전송할 수 있고 MANE이 필요한 서브세트만 잠재적으로 다수의 수신기(receiver)에 포워딩하고, 필요한 서브세트가 수신기마다 다를 수 있는 시나리오에서, MANE은 각각의 수신기에 대해 잠재적으로 서로 다른 정육면체 면을 포함하는 잠재적으로 서로 다른 비트스트림을 조정할 것이다. 그렇게 하는 것은, 현시점에서, MANE이 복잡한 가변 길이 코딩된 슬라이스 헤더를 처리하는 것뿐만 아니라 슬라이스 헤더를 디코딩하는 데 필요한 파라미터 세트 등의 형태로 상태를 유지할 필요가 있다.
신택스 구조에 기초하여 타일의 식별을 향상시킬 수 있도록, 비디오 코덱에서 고정된 길이의 코드워드를 포함하는 신택스 구조에 타일 ID(IDentification)를 포함시키는 기술이 개시된다.
비디오 디코딩 방법은 고정된 길이의 코드워드를 포함하는 고 레벨 신택스 구조 내의 영상 세그먼트의 ID를 가지고 있는 이진 코딩된 신택스 요소를 디코딩하는 단계; 및 상기 영상 세그먼트를 재구축하는 단계를 포함한다.
비디오 시퀀스를 디코딩하는 기기는, 프로그램 코드를 저장하도록 구성된 하나 이상의 메모리; 및 상기 프로그램 코드를 판독하고 상기 프로그램 코드가 명령하는 대로 작동하도록 구성된 하나 이상의 프로세서를 포함하고, 상기 프로그램 코드는, 상기 하나 이상의 프로세서로 하여금 고정된 길이의 코드워드를 포함하는 고 레벨 신택스 구조 내의 영상 세그먼트의 ID를 가지고 있는 이진 코딩된 신택스 요소를 디코딩하게 하도록 구성된 디코딩 코드; 및 상기 하나 이상의 프로세스로 하여금 상기 영상 세그먼트를 재구축하게 하도록 구성된 재구축 코드를 포함한다.
명령어를 저장하는, 컴퓨터로 판독 가능한 비일시적인 매체로서, 상기 명령어는 기기의 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금, 고정된 길이의 코드워드를 포함하는 고 레벨 신택스 구조 내의 영상 세그먼트의 ID를 가지고 있는 이진 코딩된 신택스 요소를 디코딩하게 하고; 상기 영상 세그먼트를 재구축하게 하는 하나 이상의 명령어를 포함한다.
개시된 주제의 추가 특징, 성질 및 다양한 이점은 이하의 상세한 설명 및 첨부 도면으로부터 더욱 명백해질 것이다.
도 1은 H.264 및 H.265에 따른 NAL 유닛 헤더의 개략도이다.
도 2는 일 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 3은 일 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 4는 일 실시예에 따른 디코더의 단순화된 블록도의 개략도이다.
도 5는 일 실시예에 따른 인코더의 단순화된 블록도의 개략도이다.
도 6은 일 실시예에 따른 CU 주소 또는 타일 ID 신택스 요소를 포함하는 NAL 유닛 헤더의 개략도이다.
도 7은 일 실시예에 따른 타일 레이아웃의 개략도이다.
도 8은 일 실시예에 따른 NAL 유닛 디코딩/포워딩의 개략도이다.
도 9는 일 실시예에 따른 컴퓨터 시스템의 개략도이다.
[해결해야 할 문제]
비디오 코딩 신택스는 NAL 유닛 헤더와 같은 고레벨 신택스 구조에서 타일 또는 다른 영상 세그먼트를 식별할 수 있게 해주는 쉽게 식별 가능한/분석 가능한 신택스 요소가 부족하다.
[상세 설명]
도 2는 본 개시의 일 실시예에 따른 통신 시스템(200)의 단순화된 블록도를 나타낸다. 시스템(200)은 네트워크(250)를 통해 상호연결된 적어도 두 개의 단말기(210-220)를 포함할 수 있다. 데이터의 단방향 송신을 위해, 제1 단말기(210)는 네트워크(250)를 통해 다른 단말기(220)에 송신하기 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말기(220)는 네트워크(250)로부터 다른 단말기의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하여 복원된 비디오 데이터를 표시할 수 있다. 단방향 데이터 송신은 미디어 서비스 애플리케이션 등에서 일반적일 수 있다.
도 2는 예를 들어 영상회의 중에 발생할 수 있는 코딩된 비디오의 양방향 송신을 지원하기 위해 제공되는 제2 쌍의 단말기(230, 240)를 나타낸다. 데이터의 양방향 송신을 위해, 각각의 단말기(230, 240)는 네트워크(250)를 통해 다른 단말기에 송신하기 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말기(230, 240)는 또한 다른 단말기에 의해 송신되는 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩할 수 있으며, 복원된 비디오 데이터를 로컬 디스플레이 기기에 표시할 수 있다.
도 2에서 단말기(210-240)는 서버, 개인용 컴퓨터 및 스마트폰으로 나타낼 수 있으나 본 개시의 원리는 이에 한정되지 않을 수 있다. 본 개시의 실시예는 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어 및/또는 전용 영상회의 장비를 사용하는 애플리케이션을 찾는다. 네트워크(250)는 예를 들어 유선 및/또는 무선 통신 네트워크를 포함한, 단말기(210-240) 사이에서 코딩된 비디오 데이터를 전달하는 임의의 수의 네트워크를 나타낸다. 통신 네트워크(250)는 회선 교환(circuit-switched) 및/또는 패킷 교환(packet-switched) 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크로는 통신 네트워크, 근거리 통신망, 광역 통신망 및/또는 인터넷을 포함한다. 본 논의의 목적을 위해, 네트워크(250)의 아키텍처 및 토폴로지는 아래에서 설명되지 않는 한 본 개시의 동작에 중요하지 않을 수 있다.
도 3은 개시된 주제에 대한 애플리케이션의 일례로서, 스트리밍 환경에서 비디오 인코더 및 디코더의 배치를 예시한다. 개시된 주제는 예를 들어, 영상회의, 디지털 TV, CD, DVD, 메모리 스틱 등을 포함한 디지털 미디어에 압축된 비디오의 저장을 포함한, 다른 비디오 지원(video enabled) 애플리케이션에도 동일하게 적용될 수 있다.
스트리밍 시스템은, 예를 들어 압축되지 않은 비디오 샘플 스트림(302)을 생성하는 비디오 소스(301), 예를 들어 디지털 카메라를 포함할 수 있는 캡처 서브 시스템(313)을 포함할 수 있다. 인코딩된 비디오 비트스트림과 비교할 때 높은 데이터 볼륨을 강조하기 위해 굵은 선으로 표시된 샘플 스트림(302)은 카메라(301)에 결합된 인코더(303)에 의해 처리될 수 있다. 인코더(303)는 아래에서 더 상세히 설명되는 바와 같이 개시된 주제의 측면들을 가능하게 하거나 구현할 수 있는 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다
샘플 스트림과 비교할 때 더 낮은 데이터 볼륨을 강조하기 위해 가는 선으로 표시된 인코딩된 비디오 비트스트림(304)은 향후 사용을 위해 스트리밍 서버(305)에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(306, 308)는 인코딩된 비디오 비트스트림(304)의 사본(307, 309)을 검색하기 위해 스트리밍 서버(305)에 액세스할 수 있다. 클라이언트(306)는 인코딩된 비디오 비트스트림(307)의 들어오는 사본을 디코딩하고 디스플레이(312) 또는 다른 렌더링 기기(도시되지 않음)에서 렌더링될 수 있는 나가는 비디오 샘플 스트림(311)을 생성하는 비디오 디코더(310)를 포함할 수 있다. 일부 스트리밍 시스템에서, 비디오 비트스트림(304, 307, 309)은 특정 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 이러한 표준의 예로는 ITU-T 권고 H.265가 있다. 비공식적으로 Versatile Video Coding 또는 VVC로 알려진 비디오 코딩 표준이 개발 중이다. 개시된 주제는 VVC의 컨텍스트에서 사용될 수 있다.
도 4는 본 발명의 일 실시예에 따른 비디오 디코더(310)의 기능 블록도일 수 있다.
수신기(410)는 디코더(310)에 의해 디코딩될 하나 이상의 코덱 비디오 시퀀스를 수신할 수 있고; 동일하거나 다른 실시예에서, 한 번에 하나의 코딩된 비디오 시퀀스를 수신할 수 있으며, 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스와 독립적이다. 코딩된 비디오 시퀀스는, 인코딩된 비디오 데이터를 저장하는 저장 기기에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(412)로부터 수신될 수 있다. 수신기(410)는 인코딩된 비디오 데이터를, 그 각각의 사용 엔터티(도시되지 않음)에 포워딩 될 수 있는 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 함께 수신할 수 있다. 수신기(410)는 코딩된 비디오 시퀀스를 다른 데이터로부터 분리할 수 있다. 네트워크 지터를 방지하기 위해, 버퍼 메모리(415)는 수신기(410)와 엔트로피 디코더/파서(420)(이하 "파서") 사이에 결합될 수 있다. 수신기(410)가 충분한 대역폭 및 제어 가능성을 갖는 저장/포워딩 기기 또는 등시성 네트워크(isosychronous network)로부터 데이터를 수신하는 경우, 버퍼(415)는 불필요하거나, 작을 수 있다. 인터넷과 같은 최선형 패킷 네트워크(best effort packet network)에서 사용하기 위해, 버퍼(415)가 필요할 수 있고, 비교적 클 수 있으며, 유리하게는 적응적인 크기일 수 있다.
비디오 디코더(310)는 엔트로피 코딩된 비디오 시퀀스로부터 심볼(421)을 재구축하기 위해 파서(420)를 포함할 수 있다. 이러한 심볼의 카테고리에는 디코더(310)의 작업(operation)을 관리하는 데 사용되는 정보와, 디코더의 일체화된 부분(integral part)은 아니지만 디코더에 결합될 수 있는 디스플레이(312)와 같은 렌더링 기기를 제어하기 위한 잠재적 정보가 포함된다. 렌더링 기기(들)에 대한 제어 정보는 부가 확장 정보(SEI 메시지) 또는 비디오 사용성 정보(Video Usability Information, VUI) 파라미터 세트 프래그먼트(도시되지 않음)의 형태일 수 있다. 파서(420)는 수신한 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있고, 가변 길이 코딩, 허프만(Huffman) 코딩, 컨텍스트 민감도 유무의 산술 코딩 등을 포함한, 당업자에게 잘 알려진 원리를 따를 수 있다. 파서(420)는 비디오 디코더에서의 화소의 서브그룹 중 적어도 하나에 대한 서브그룹 파라미터의 세트를 그 그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브그룹에는 영상 그룹(Group of Pictures, GOP), 영상, 타일, 슬라이스, 매크로블록, 코딩 유닛(Coding Unit, CU), 블록, 변환 유닛(Transform Unit, TU), 예측 유닛(Prediction Unit, PU) 등이 포함될 수 있다. 엔트로피 디코더/파서는 변환 계수, 양자화기 파라미터 값, 움직임 벡터 등과 같은 코딩된 비디오 시퀀스 정보로부터 추출할 수 있다.
파서(420)는 버퍼(415)로부터 수신한 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 작업을 수행하여, 심볼(421)을 생성할 수 있다.
심볼의 재구축(421)은 코딩된 비디오 영상 또는 그 일부(예: 인터 및 인트라 영상, 인터 및 인트라 블록)의 유형 및 기타 인자에 따라 다수의 상이한 유닛을 포함할 수 있다. 어떤 유닛이 관련되는지 또 어떻게 관련되는지는 코딩된 비디오 시퀀스로부터 파서(420)에 의해 파싱된 서브그룹 제어 정보에 의해 제어될 수 있다. 파서(420)와 여러 유닛 사이의 그러한 서브그룹 제어 정보의 흐름은 아래에 명확성을 위해 나타내지 않는다.
이미 언급된 기능 블록을 넘어서, 디코더(310)는 아래에서 설명되는 바와 같이 개념적으로 다수의 기능 유닛으로 세분될 수 있다. 상업적 제약 하에서 작동하는 실제 구현에서, 이러한 유닛 중 다수는 서로 밀접하게 상호작용하며, 적어도 부분적으로는, 서로 통합될 수 있다. 그러나 개시된 주제를 설명하기 위해, 아래의 기능 단위로 개념적으로 세분화하는 것이 적절하다.
제1 유닛은 스케일러/역 변환 유닛(451)이다. 스케일러/역 변환 유닛(451)은 파서(420)로부터 심볼(들)(421)로서, 사용할 변환, 블록 크기, 양자화 인자, 양자화 스케일링 매트릭스 등을 포함한, 제어 정보뿐만 아니라 양자화된 변환 계수를 수신한다. 스케일러/역 변환 유닛(451)은 집성기(aggregator)(455)에 입력될 수 있는, 샘플 값을 포함하는 블록을 출력할 수 있다.
경우에 따라서는, 스케일러/역변환 유닛(451)의 출력 샘플은 인트라 코딩된 블록에 속할 수 있으며; 즉, 이전에 재구축된 영상의 예측 정보를 사용하지 않지만, 현재 영상의 이전에 재구축된 부분에서의 예측 정보를 사용할 수 있는 블록이다. 이러한 예측 정보는 인트라 영상 예측 유닛(452)에 의해 제공될 수 있다. 경우에 따라서는, 인트라 영상 예측 유닛(452)은 현재 (부분적으로 재구축된) 영상(456)으로부터 가져온 이미 재구축된 주변 정보를 사용하여, 재구축중인 블록과 동일한 크기 및 모양의 블록을 생성한다. 집성기(455)는, 경우에 따라, 인트라 예측 유닛(452)이 생성한 예측 정보를 스케일러/역 변환 유닛(451)에 의해 제공되는 출력 샘플 정보에 샘플 단위로 추가한다.
다른 경우에, 스케일러/역 변환 유닛(451)의 출력 샘플은 인터 코딩되고 잠재적으로 움직임 보상된 블록에 속할 수 있다. 이러한 경우, 움직임 보상 예측 유닛(453)은 예측에 사용되는 샘플을 가져오기 위해 참조 영상 메모리(457)에 액세스할 수 있다. 블록과 관련된 심볼(421)에 따라 가져온 샘플을 움직임 보상한 후, 그러한 샘플은 집성기(455)에 의해 스케일러/역 변환 유닛(이 경우 잔차 샘플 또는 잔차 신호라고 함)의 출력에 추가되어 출력 샘플 정보를 생성할 수 있다. 움직임 보상 유닛이 예측 샘플을 가져오는 참조 영상 메모리 내의 주소는 움직임 벡터에 의해 제어될 수 있으며, 움직임 벡터에 의해 제어될 수 있으며, 예를 들어 X, Y 및 참조 영상 성분을 가질 수 있는 심볼(421)의 형태로 움직임 보상 유닛에서 이용 가능하다. 움직임 보상은 또한 서브샘플의 정확한 움직임 벡터가 사용 중일 때 참조 영상 메모리로부터 가져온 샘플 값의 보간, 움직임 벡터 예측 메커니즘 등을 포함할 수 있다.
집성기(455)의 출력 샘플은 루프 필터 유닛(456)에서 다양한 루프 필터링 기술의 대상이 될 수 있다. 비디오 압축 기술은, 코딩된 비디오 비트스트림에 포함된 파라미터에 의해 제어되고 파서(420)로부터의 심볼(421)로서 루프 필터 유닛(456)에 이용 가능하게 되는 인루프 필터 기술을 포함할 수 있지만, 코딩된 영상 또는 코딩된 비디오 시퀀스의 이전(디코딩 순서상) 부분을 디코딩하는 동안에 획득된 메타 정보는 물론 이전에 재구축되고 루프 필터링된 샘플 값에도 응답할 수 있다.
루프 필터 유닛(456)의 출력은 렌더 기기(render device)(312)에 출력될 수 있을뿐만 아니라 미래의 인터 영상 예측에 사용하기 위해 참조 영상 메모리(456)에 저장될 수도 있는 샘플 스트림일 수 있다.
일단 완전히 재구축된 특정 코딩된 영상은 미래 예측을 위한 참조 영상으로 사용될 수 있다. 코딩된 영상이 완전히 재구축되고 코딩된 영상이(예를 들어, 파서(420)에 의해) 참조 영상으로 식별되면, 현재 참조 영상(456)은 참조 영상 버퍼(457)의 일부가 될 수 있고, 다음 코딩된 영상의 재구축을 시작하기 전에 새로운 현재 영상 메모리를 재할당할 수 있다.
비디오 디코더(420)는 ITU-T Rec H.265와 같은, 표준으로 문서화될 수 있는 미리 정해진 비디오 압축 기술에 따라 디코딩 작업을 수행할 수 있다. 코딩된 비디오 시퀀스는 비디오 압축 기술 문서 또는 표준에, 특히 그 중의 프로파일 문서에 지정된 대로, 비디오 압축 기술 또는 표준의 신택스에 준거하고 있다는 의미에서, 사용되는 비디오 압축 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다. 또한, 준수를 위해 필요한 것은 코딩된 비디오 시퀀스의 복잡도가 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 범위 내에 있어야 한다는 것일 수 있다. 경우에 따라서는, 레벨은 최대 영상 크기, 최대 프레임 레이트, 최대 재구축 샘플 레이트(예: 초당 메가 샘플로 측정됨), 최대 참조 영상 크기 등을 제한한다. 레벨별로 설정되는 제한은, 경우에 따라서는, 가상 참조 디코더(Hippothetical Reference Decoder, HRD) 사양 및 코딩된 비디오 시퀀스에서 시그널링된 HRD 버퍼 관리를 위한 메타데이터(matadata)를 통해 추가로 제한될 수 있다.
일 실시예에서, 수신기(410)는 인코딩된 비디오와 함께 추가(중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로 포함될 수 있다. 추가 데이터는 데이터를 적절하게 디코딩하고/하거나 원본 비디오 데이터를 더 정확하게 재구축하기 위해 비디오 디코더(420)에 의해 사용될 수 있다. 추가 데이터는, 예를 들어 시간, 공간 또는 SNR 향상 계층(enhancement layer), 중복 슬라이스, 중복 영상, 순방향 오류 수정 코드(forward error correction code) 등의 형태일 수 있다.
도 5는 본 개시의 일 실시예에 따른 비디오 인코더(303)의 기능 블록도일 수 있다.
인코더(303)는 인코더(303)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(301)(인코더의 일부가 아님)로부터 비디오 샘플을 수신할 수 있다.
비디오 소스(301)는 임의의 적절한 비트 심도(예: 8비트, 10비트, 12비트,…), 임의의 색 공간(예: BT.601 Y CrCB, RGB 등) 및 임의의 적절한 샘플링 구조(예: Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 인코더(303)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서, 비디오 소스(301)는 미리 준비된 비디오를 저장한 저장 기기일 수 있다. 영상회의 시스템에서, 비디오 소스(303)는 로컬 이미지 정보를 비디오 시퀀스로 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 볼 때 움직임을 전달하는 복수의 개별 영상으로 제공될 수 있다. 영상 자체는 화소의 공간 배열로 구성될 수 있으며, 각각의 화소는 사용중인 샘플링 구조, 색 공간 등에 따라 하나 이상의 샘플을 포함할 수 있다. 당업자는 화소와 샘플 사이의 관계를 쉽게 이해할 수 있다. 이하의 설명은 샘플에 초점을 맞춘다.
일 실시예에 따르면, 인코더(303)는 소스 비디오 시퀀스의 영상을 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약하에 코딩된 비디오 시퀀스(543)로 코딩 및 압축할 수 있다. 적절한 코딩 속도를 강제하는 것이 제어기(550)의 기능 중 하나이다. 제어기는 이하에 설명된 대로 다른 기능 유닛을 제어하며 이러한 유닛에 기능적으로 결합된다. 명확하게 하기 위해, 결합은 표시되어 있지 않다. 제어기에 의해 설정되는 파라미터로는 레이트 제어 관련 파라미터(영상 스킵, 양자화기, 레이트 왜곡 최적화 기술의 람다 값 등), 영상 크기, 영상 그룹(GOP) 레이아웃, 최대 움직임 벡터 검색 범위 등을 포함할 수 있다. 당업자는 특정 시스템 설계를 위해 최적화된 비디오 인코더(303)와 관련될 수 있기 때문에 제어기(550)의 다른 기능을 쉽게 식별할 수 있다.
일부 비디오 인코더는 당업자가 "코딩 루프"로서 용이하게 인식할 수 있는 방식으로 작동한다. 지나치게 단순화된 설명으로서, 코딩 루프는 인코더(530)의 인코딩 부분(이하 "소스 코더")(코딩될 입력 영상, 및 참조 영상(들)에 기초하여 심볼을 생성하는 책임짐), 및 심볼을 재구축하여 (원격) 디코더도 생성할 것인 샘플 데이터를 생성하는 인코더(303)에 내장된 (로컬) 디코더(533)로 구성될 수 있다(심볼과 코딩된 비디오 비트스트림 사이의 압축은 개시된 주제에서 고려되는 비디오 압축 기술에서 무손실이기 때문임). 그 재구축된 샘플 스트림은 참조 영상 메모리(534)에 입력된다. 심볼 스트림의 디코딩은 디코더 위치(로컬 또는 원격)에 관계없이 정확한 비트의 결과(bit-exact result)를 가져오므로, 참조 영상 버퍼 내용은 또한 로컬 인코더와 원격 인코더 사이에 비트가 정확하다. 다시 말해, 인코더의 예측 부분은 디코딩 중에 예측을 사용할 때 디코더가 "인식"할 것과 정확히 동일한 샘플 값을 참조 영상 샘플링으로서 "인식한다". 참조 영상 동시성의 이러한 기본 원리(및 예를 들어 채널 오류로 인해 동시성이 유지될 수 없는 경우에 생기는 드리프트)는 당업자에게 잘 알려져있다.
"로컬" 디코더(533)의 작동은 "원격"디코더(310)의 작동과 동일할 수 있으며, 이는 이미 도 4과 관련하여 상세하게 설명되었다. 도 4를 또한 간략히 참조하면, 그러나, 심볼이 이용 가능하고 엔트로피 코더(545) 및 파서(420)에 의한 코딩된 비디오 시퀀스로의 심볼의 인코딩/디코딩은 무손실일 수 있기 때문에, 채널(412), 수신기(410), 버퍼(415) 및 파서(420)를 포함한, 디코더(310)의 엔트로피 디코딩 부분은 로컬 디코더(533)에서 완전히 구현되지 않을 수 있다.
이 시점에서 이루어질 수 있는 관찰은 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 모든 디코더 기술이 또한 상응하는 인코더에, 실질적으로 동일한 기능적인 형태로 반드시 존재할 필요가 있다는 것이다. 이러한 이유로, 개시된 주제는 디코더 작업에 초점을 맞춘다. 인코더 기술에 대한 설명은 포괄적으로 설명된 디코더 기술의 반대이므로 생략할 수 있다. 특정 영역에서만 더 상세한 설명이 필요하며 아래에 제공된다.
그 작업의 일부로서, 소스 코더(530)는 "참조 프레임"으로 지정된 비디오 시퀀스로부터 하나 이상의 이전에 코딩된 프레임을 참조하여 입력 프레임을 예측적으로 코딩하는 움직임 보상된 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(532)은 입력 프레임의 화소 블록과 입력 프레임에 대한 예측 참조(들)로서 선택될 수 있는 참조 프레임(들)의 화소 블록 간의 차이를 코딩한다.
로컬 비디오 디코더(533)는 소스 코더(530)에 의해 생성된 심볼에 기초하여, 참조 프레임으로 지정될 수 있는 프레임의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(532)의 작업은 유리하게는 손실 프로세스일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 5에 도시되지 않음)에서 디코딩될 수 있을 때, 재구축된 비디오 시퀀스는 일반적으로 일부 오류가 있는 소스 비디오 시퀀스의 복제본(replica)일 수 있다. 로컬 비디오 디코더(533)는 참조 프레임에 대해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스를 복제하고 재구축된 참조 프레임이 참조 영상 캐시(534)에 저장되게 할 수 있다. 이러한 방식으로, 인코더(303)는 원단(far-end) 비디오 디코더(전송 오류 없음)에 의해 획득될 재구축된 참조 프레임으로서 공통 콘텐츠를 갖는 재구축된 참조 프레임의 사본을 로컬로 저장할 수 있다.
예측기(535)는 코딩 엔진(532)에 대한 예측 검색을 수행할 수 있다. 즉, 코딩될 새로운 프레임에 대해, 예측기(535)는 참조 영상 메모리(534)에서 샘플 데이터(후보 참조 화소 블록) 또는 참조 영상 움직임 벡터, 블록 모양 등과 같은 특정 메타데이터를 검색할 수 있으며, 이는 새로운 영상에 대한 적절한 예측 참조의 역할을 할 수 있다. 예측기(535)는 적절한 예측 참조를 찾기 위해 샘플 블록마다 화소 블록 단위(sample block-by-pixel block basis)로 작업할 수 있다. 경우에 따라서는, 예측기(535)에 의해 획득되는 검색 결과에 의해 결정된 바와 같이, 입력 영상은 참조 영상 메모리(534)에 저장된 다수의 참조 영상으로부터 인출된 예측 참조를 가질 수 있다.
제어기(550)는 예를 들어 비디오 데이터를 인코딩하기 위해 사용되는 파라미터 및 서브그룹 파라미터의 설정을 포함한, 소스 코더(530)의 코딩 작업을 관리할 수 있다.
전술한 모든 기능 유닛의 출력은 엔트로피 코더(545)에서 엔트로피 코딩을 받을 수 있다. 엔트로피 코더는 예를 들어, 허프만 코딩, 가변 길이 코딩, 산술 코딩 등으로서, 당업자에게 알려진 기술에 따라 심볼을 무손실 압축함으로써, 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 바꾼다.
송신기(540)는 엔트로피 코더(545)에 의해 생성되는 코딩된 비디오 시퀀스(들)를 버퍼링하여, 인코딩된 비디오 데이터를 저장할 저장 기기에 대한 하드웨어/소프트웨어 링크일 수 있는 통신 채널(560)을 통한 송신을 준비할 수 있다. 송신기(540)는 소스 코더(530)로부터의 코딩된 비디오 데이터를 송신될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림(소스는 도시되지 않음)과 병합할 수 있다.
제어기(550)는 인코더(303)의 작업을 관리할 수 있다. 코딩하는 동안, 제어기(550)는 각각의 코딩된 영상에 특정 코딩된 영상 유형을 할당할 수 있으며, 이는 각각의 영상에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있다. 예를 들어, 영상은 종종 다음과 같은 프레임 유형 중 하나로서 지정될 수 있다:
인트라 영상(Intra Picture, I 영상)은 예측 소스인 시퀀스 내의 어떤 다른 프레임도 사용하지 않고 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱은 예를 들어 독립 디코더 리프레시 영상(Independent Decoder Refresh Picture)을 포함한, 상이한 유형의 인트라 영상을 허용한다. 당업자는 I 영상의 이러한 변형 및 그 각각의 적용 및 특징을 알고 있다.
예측 영상(Predictive picture, P 영상)은 각각의 블록의 샘플 값을 예측하기 위해 최대 하나의 움직임 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양방향 예측 영상(Bi-directionally Predictive Picture, B 영상)은 각각의 블록의 샘플 값을 예측하기 위해 최대 두 개의 움직임 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다중 예측 영상(multiple-predictive picture)은 단일 블록의 재구축을 위해 두 개 이상의 참조 영상과 관련 메타데이터를 사용할 수 있다.
소스 영상은 일반적으로 공간적으로 복수의 샘플 블록(예: 각각 4x4, 8x8, 4x8 또는 16x16 샘플의 블록)으로 세분화되고 블록 단위로 코딩될 수 있다. 블록은 블록들의 영상 각각에 적용되는 코딩 할당에 의해 결정된 대로 다른 (이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 영상의 블록은 비 예측적으로 코딩될 수 있거나, 동일한 영상의 이미 코딩된 블록(공간 예측 또는 인트라 예측)을 참조하여 예측적으로 코딩될 수 있다. P 영상의 화소 블록은 하나의 이전에 코딩된 참조 영상을 참조하여 공간 예측 또는 시간 예측을 통해 예측적으로 코딩될 수 있다. B 영상의 블록은 하나 또는 두 개의 이전에 코딩된 참조 영상을 참조하여 공간 예측 또는 시간 예측을 통해 예측적으로 코딩될 수 있다.
비디오 코더(303)는 ITU-T Rec. H.265와 같은 미리 정해진 비디오 코딩 기술 또는 표준에 따라 코딩 작업을 수행할 수 있다. 그 작업 시에, 비디오 코더(303)는 입력 비디오 시퀀스에서 시간적 및 공간적 중복성을 이용하는 예측 코딩 작업을 포함한, 다양한 압축 작업을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다.
일 실시예에서, 송신기(540)는 인코딩된 비디오와 함께 추가 데이터를 송신할 수 있다. 소스 코더(530)는 코딩된 비디오 시퀀스의 일부로서 이러한 데이터를 포함할 수 있다. 추가 데이터는 시간/공간/SNR 향상 계층, 중복 영상 및 슬라이스와 같은 다른 형태의 중복 데이터, 부가 확장 정보(SEI) 메시지, 시각적 사용성 정보(Visual Usability Information, VUI) 파라미터 집합 프래그먼트 등을 포함할 수 있다.
일 실시예에 따르면, 타일, 타일 그룹, 슬라이스, 블록 그룹(Group Of Blocks, GOB) 등(이후, 타일)과 같은 영상 세그먼트를 식별하는 정보는 NAL 유닛 헤더(NAL Unit Header, NUH) 또는 고정된 길이의 코드워드를 포함하고 MANE에 의한 용이한 처리를 위해 설계된 유사한 구조(이후, NUH)와 같은 용이하게 액세스할 수 있는 고 레벨 신택스 구조에 위치한다.
타일을 식별하는 정보는 다른 형태를 취할 수 있다. 이 정보의 설계 시에, 몇 가지 설계 고려사항을 염두에 두어야 한다. 이러한 설계 고려사항 중 일부는 아래에 나열되어 있다.
주어진 영상에서 가능한 타일 수는, 예를 들어 레거시 비디오 코딩 기술 또는 표준에서 가능한 슬라이스 수와 비교할 때 적을 수 있다. 예를 들어, H.264에서는 (특정 영상 크기의 경우) 단일 매크로블록을 커버하는 슬라이스를 가질 수 있어, 매크로블록만큼 많은 슬라이스를 허용한다. 반대로 타일형 큐브 맵(tiled cube map)을 나타낼 때, 영상의 해상도에 관계없이 여섯 개의 타일로 충분할 수 있다. 많은 실제 사례에서는, 64개, 128개 또는 256개의 최대 타일 수를 안전하게 가정할 수 있다.
타일 레이아웃은 고정될 수 있으며, 비디오 코딩 기술 자체는 영상에서 영상으로의 타일 레이아웃의 유연성을 허용할 수 있지만, 시스템 표준 또는 기술은 타일 레이아웃이 세션 내내 동일하게 유지되는 지점에 대한 유연성을 제한할 수 있다. 이는 세션 설정과 같은 비 비디오(non-video) 비트스트림 특정 수단을 통해 타일 레이아웃을 MANE에서 사용할 수 있도록 해준다. 따라서 비디오 코딩 및 MANE 작업에서 파라미터 세트들 간의 바람직하지 못한 컨텍스트 의존성이 금지될 수 있다.
적어도 위의 가정하에서, NAL 유닛이 MANE에 의해 제거될 수 있도록, NAL 유닛이 가지고 있는 타일을 식별하기 위한 메커니즘은 H.264 및 H.265와 같은 관련 기술과 비교할 때 상당히 단순화될 수 있다. 예를 들어, H.264 및 H.265에서, MANE는 슬라이스 헤더 내의 슬라이스/타일 주소 코드워드의 길이에 관해 학습하기 위해 올바른 시퀀스 파라미터 세트를 식별해야 한다. 이러한 길이 정보는 시퀀스 파라미터 세트 내의 가변 길이 코드워드로서 코딩된다. 따라서 최소한. MANE은 현재의 활성 시퀀스 파라미터 세트를 식별하기 위해 파라미터 세트의 활성화 시퀀스를 따라야 하며, (파라미터 세트가 파싱에 독립적이므로 이 순서가 아닐 수 있음) 가변 길이 코드워드를 디코딩하여 슬라이스 헤더에 실려 전달되는 이진 코딩된 슬라이스/타일 주소의 길이를 식별해야 할 것이다. 그런 다음 MANE는 시작 매크로블록/CU 주소를 얻기 위해 슬라이스 헤더 내의 가변 길이 코드워드(들)를 디코딩해야 할 것이다. 이 정보는 타일을 식별하기 위해 파라미터 세트로부터 디코딩된 대로 타일 레이아웃과 매칭될 수 있다.
동일하거나 다른 실시예에서, 타일에 대한 식별 정보는 타일의 제1 매크로블록/CU의 주소일 수 있다. 실제로 이러한 메커니즘은 시작 주소를 슬라이스 헤더에서 NUH로 이동시킬 것이다. 그렇게 하는 것은 코덱 설게에 대한 최소한의 변경 접근법일 수 있지만, NUH를 크게 증가시키는 단점이 있다. 그러나 슬라이스/타일 헤더에서 동일한 양의 비트가 제거되었을 것이기 때문에, NUH의 크기 증가는 코딩 효율성 관점에서도 용인될 수 있다.
위에서 지적한 바와 같이, 매크로블록/CU 주소는 작은 영상 크기 및 큰 매크로블록/CU 크기에 대해 합리적으로 작을 수 있고, 작은 CU 크기 및 큰 영상 크기에 대해 상당히 클 수 있다. 이러한 이유로, H.265의 SPS는 슬라이스 헤더에 가지고 있는 매크로블록/CU 주소의 길이의 지시를 포함한다. 동일하거나 다른 실시예에서, 그 메커니즘은 NAL 유닛 헤더에 대해 유지될 수 있다. 그러나 이렇게 하는 것은 두 가지 단점이 있을 수 있다. 첫째, 파라미터 세트 값을 통해 NAL 유닛 헤더 내의 신택스 요소의 크기를 결정함으로써 확립되는 컨텍스트 의존성은 파라미터 세트 활성화를 추적하기 위해 MANE을 필요로 할 수 있으며, 이는 귀찮을 수 있다. 둘째, NAL 유닛 헤더는 적어도 지금까지, MANE에서의 처리를 단순화하기 위해 옥텟으로 정렬되어 있다. 그 옥텟 정렬을 유지하려면 패딩 - 낭비되는 비트 -이 필요할 수 있는데, 이러한 경우 나머지 NAL 유닛 헤더 신택스 요소와 함께, 파라미터 세트에 의해 시그널링된 매크로블록/CU 주소의 크기는 8로 나눌 수 있는 비트 수가 되지 않는다.
동일하거나 다른 실시예에서, 매크로블록/CU 주소의 크기 - 또는 NAL 유닛 헤더 내의 임의의 다른 신택스 요소 -는 NAL 유닛 헤더 내의 다른 필드에 의해 결정될 수 있다. 이 메커니즘은 파라미터 세트와 NAL 단위 헤더 사이의 컨텍스트 의존성을 회피하고, 많은 경우에 더 바람직할 수 있다. 단점은 NAL 유닛 헤더의 다른 필드에서, 비트 또는 코드 포인트를 사용하는 것일 수 있다. 세부사항은 아래에 제공된다.
그러나 전통적인 의미에서 슬라이스를 고려하지 않고, 타일 또는 타일 그룹 또는 비트스트림 엔티티에 대한 CU의 유사한 할당 메커니즘만을 고려할 때, 더 진보된 옵션이 이용 가능할 수 있다. 이러한 옵션을 설명하기 위해, 슬라이스 및 타일이라는 용어를 간략하게 검토해야 한다. 슬라이스는 일반적으로 스캔 순서대로, CU 또는 매크로블록의 모음일 수 있으며, 두 가지 인자: 일반적으로 슬라이스 헤더에 코딩된 시작 매크로블록/CU 주소와, 종종 새로운 슬라이스의 시작(다음 슬라이스 헤더의 존재를 통해 차례로 지시됨)에 의해 식별되는 슬라이스의 끝에 의해 식별된다. 특정 비디오 압축 기술 및 표준은 슬라이스의 수와 레이아웃에 상대적으로 사소한 제한을 부과하지만, 대부분의 경우, 슬라이스 레이아웃은 코딩된 영상에서 코딩된 영상으로 변경될 수 있으며 종종 레이트 제어 및 MTU 크기 매칭과 같은 메커니즘에 의해 결정된다.
반면에 타일은 CU의 전형적인 직사각형 배열을 가리킬 수 있으며, (직사각형 타일과 다른 직사각형 타일이 결합하여 영상을 구성하는) 직사각형의 크기 및 모양은 파라미터 세트에 코딩되어 있다. 다시 말해, 타일 레이아웃은 하나의 타일 레이아웃에서 다른 타일 레이아웃으로 변경하려면 다른 파라미터 세트의 활성화를 필요로 한다는 점에서 다소 정적이다. 또한, 타일의 수는 효율적인 하드웨어 구현이 가능하도록 제한된다. 그 결과는, 많은 비디오 압축 기술 및 표준에서, 비교적 짧은 고정된 길이의 이진 코드워드, 예를 들어 8비트는 실제 사용 시에 모든 영상 크기에 대해 최대 타일 수를 지정할 수 있도록 해준다. 이에 따라, 타일 ID에 대한 고정된 길이의 코드워드는 NAL 유닛 헤더 내의 타일을 식별하는 데 사용될 수 있어, 타일 식별 NAL 유닛 헤더 코드워드와 파라미터 세트 사이의 신택스 분석 및 컨텍스트 의존성을 회피할 수 있다. 마찬가지로, 타일 그룹 ID에 대한 고정된 길이의 코드워드는 타일 그룹을 식별하는 데 사용될 수 있다. 물론, NAL 유닛 헤더 내의 매크로블록/CU 주소에 대한 가변 길이 코드워드를 지원하는 메커니즘은, 원하는 경우, 유사한 아키텍처 단점을 희생하면서, 타일 ID 코드워드에 동일하게 적용될 수 있다.
도 6을 참조하여, NAL 유닛 헤더 설계를 위한 몇 가지 구현 옵션을 소개한다.
NAL 유닛(601)은 코딩된 비디오 비트스트림의 일부일 수 있다. 경우에 따라t서는, NAL 유닛은 정렬되고 데이터 네트워크의 일반적인 최대 전송 유닛(Maximum Transfer Unit, MTU) 크기보다 작거나 같은 옥텟이다. 하나의 이러한 일반적인 MTU 크기는 약 1500 옥텟이며, 이는 초기 이더넷 기술의 특정 제한에 기인한다. NAL 유닛은 그 시작 부분에 NAL 유닛 헤더(602)를 포함할 수 있다. 코딩된 비디오 비트스트림 내부의 NAL 유닛의 프레이밍은 시작 코드를 통해, 패킷 지향 전송 네트워크 기반의 패킷 구조와의 정렬 등을 통해 이루어질 수 있다.
다시 도 6을 참조하면, 도 6은 또한 H.265에서 사용된 것과 유사한 예시적인 NAL 유닛 헤더의 신택스 다이어그램(603)이다. 개시된 주제는 유사한 구조의 NAL 유닛 헤더, 예를 들어 H.264의 NAL 유닛 헤더, 또는 VVC 또는 고정된 길이의 코드워드를 포함하는 임의의 다른 고 레벨 신택스 구조와 동일하게 사용될 수 있다. NAL 유닛 헤더(603)에는 신택스 요소 CU 주소 또는 타일 ID(604)가 포함될 수 있다. 그 신택스 요소의 길이는 고정될 수 있고, NAL 유닛 헤더가 옥텟 정렬을 계속하도록 선택될 수 있다. 신택스 요소(604)는 비디오 인코더 및 디코더뿐만 아니라 MANE에 의해 용이하게 처리될 수 있는 포맷일 수 있다. 한정이 아닌 예로서, CU 주소 또는 타일 ID(604)는 설명자(descriptor) u(6)로 표현된 것처럼 6비트의 부호 없는 정수로 나타낼 수 있다. 제시된 예에서, CU 주소 또는 타일 ID는 H.265에서 layer_id에 사용되는 것과 동일한 비트를 차지한다. 유사한 주제의 다른 표현은 NAL 유닛 헤더(605) 및 CU 주소 또는 타일 ID(606)를 사용하여 도시되어 있다.
또한 H.265 NAL 유닛 헤더의 필드를 보존하는 NAL 유닛(607)이 도시되어 있다. 신택스 요소(608)는 예를 들어 NAL 유닛 헤더의 끝에 추가된다. 신택스 요소의 위치는 예시일 뿐이며; 또한 NAL 유닛 헤더의 다른 신택스 요소의 중간 어딘가에 삽입될 수 있다. 그 신택스 요소는 고정 또는 가변 크기일 수 있으며, 가변 크기인 경우, 그 크기는 위에서 언급한 임의의 메커니즘(예: 파라미터 세트 신택스 요소를 통해, NAL 유닛 유형, 등을 통해), 또는 기타 적절한 메커니즘에 의해 결정될 수 있다.
신택스 요소(608)는 예를 들어, 매크로블록/CU 주소 또는 타일 번호와 같은 타일 ID, 또는 타일 그룹을 표기하는 번호와 같은, 임의의 형태의 영상 세그먼트 식별 정보를 가지고 있을 수 있다. 신택스 요소의 번호 지정 범위는 미리 정해질 수 있다. 매크로블록/CU 주소의 경우, 번호 지정 범위는 0에서부터 영상의 최대 매크로블록/CU 수까지이다. 입니다. 타일 ID의 경우, 범위 지정 범위는 최대 타일의 수에 의존할 수 있으며, 이는 예를 들어 파라미터 세트에 코딩되어 있는 프로파일, 레벨, 층(tier), 최대 또는 실제 영상 크기, 등과 같이 당업자에게 알려진 메커니즘에 의해 정의될 수 있다. 비 타일/슬라이스 NAL 유닛(파라미터 세트 NAL 유닛, SEI NAL 유닛 등)에 대해 신택스 요소가 존재하면, 신택스 요소의 값은 특정 숫자, 예를 들어 0으로 한정될 수 있다. 대안으로, 신택스 요소의 존재는 NAL 유닛 유형을 금지할 수 있고(gated), 이에 따라 신택스 요소는 특정 NAL 유닛 유형에 존재하지 않을 수 있다. 대안으로, 특정 비 타일/슬라이스 NAL 유닛 유형의 경우, 위에서 설명한 것 이외의 최우선 시맨틱(overriding semantic)이 신택스 요소에 할당될 수 있다.
동일한 또는 다른 실시예에서, 타일 ID는 예를 들어 다음과 같이 식별될 수 있다. 도 7은 굵은 선으로 표시된 예시적인 타일 레이아웃(702)에 의해 세분된 공간 영역의 영상(701)을 도시한다. 제시된 타일 레이아웃은 예를 들어 H.265에서 이용 가능한 신택스, 또는 타일 레이아웃(702)을 표현하는 데 필요할 더 고급의 신택스로 표현할 수 있다. 타일 레이아웃 내의 타일 각각은 적절한 번호부여 메커니즘이지만 바람직하게는 타일의 스캔 순서 번호부여를 통해, 할당된 타일 ID를 가질 수 있다. 도 7에서는, 스캔 순서 타일 번호부여를 타일 ID 1에서 8까지를 통해 보여주며, 예를 들어 스캔 순서상의 두 번째 타일은 타일 ID 2(703)가 할당되어 있다.
인코더는 당업자에게 알려진 기존의 NAL 유닛 헤더 신택스를 작성하는 것과 유사한 방식으로 전술한 바와 같이 덧붙여진(populated) 타일 ID 또는 매크로블록/CU 주소를 커버하는 신택스 요소를 포함하는 NAL 유닛 헤더를 작성할 수 있다.
디코더 또는 MANE은 코딩된 비디오 비트스트림으로부터 NAL 유닛 헤더 - 더 정확하게는 NAL 유닛 헤더를 구성하는 신택스 요소 -를 매크로블록/CU 주소 또는 타일 ID 또는 다른 형태의 타일 식별 정보를 가지고 있는 신택스 요소의 유무와 관계 없이, 당업자에게 알려진 방식으로 파싱할 수 있다. 그러나 위에서 설명된 바와 같이 경우에 따라서는, 신택스 요소는 상태 정보를 요구하지 않고 코딩될 수 있고, 예를 들어 고정된 길이, 이진 코드와 같은 액세스 가능한 엔트로피 코딩된 포맷일 수 있다는 점에 유의해야 한다. 지금까지, 개시된 주제에 따라 NAL 유닛 헤더를 파싱하는 것은 신택스 요소 tile_id 자체의 실제 존재를 넘어서 디코더 또는 MANE에 대한 추가적인 부담스러운 작업을 포함하지 않을 수 있다.
개시된 주제에 따르면, 디코더 또는 MANE은 하지만, 개시된 주제 없이 요구되는 작업과 비교할 때 적은 노력으로 코딩된 영상에서 타일을 식별할 수 있다. 일례로, 디코더 또는 MANE이 외부의 비 비디오 코딩 수단에 의해 특정 애플리케이션에 대해 특정 타일을 재구축할 필요가 없다는 정보를 통지받았다고 가정한다. 예를 들어, 도 7에 도시된 장면, 즉 마을의 거리를 고려한다. 거리가 감시 카메라로 포착되었다고 가정한다. 타일 ID 2(703)인 타일을 고려한다. 그 타일은 대부분 벽을 덮고 있고; 감시 시스템의 구성자(configurator)가 그 영역을 감시와 관련이 없다고 간주한다고 가정한다. 따라서 카메라가 모든 타일을 인코딩할 수 있지만, ID 2의 타일은 애플리케이션에 필요하지 않을 수 있다. 따라서, 카메라에 의해 생성된 비트스트림이 하나 이상의 MANE을 통해 최종 목적지로 라우팅되고, 하나의 MANE이 대역폭 부족을 관찰하고 비트스트림에서 무언가를 제거해야 하면, 그 타일은 애플리케이션에 필요하지 않을 수 있으므로 유리하게 제거할 수 있다. 필요한 범위까지, NAL 유닛(슬라이스 또는 타일)의 페이로드가 파싱되는 것을 최소한, 필요로 할 개시된 주제가 없으면, 타일에서 첫 번째(제1) 매크로블록의 매크로블록/CU 주소를 추출하기 위해, 그 매크로블록/CU 주소를 타일 레이아웃(타일이 사용중이면)에 매핑한다. 사용중인 비디오 코딩 기술 또는 표준에 따라, 위에서 설명한 바와 같이, 가변 길이 코드워드의 처리와 MANE에서 파라미터 세트 컨텍스트의 유지가 모두 필요할 수 있으며; 구현 및 계산 복잡도의 관점에서 모두 바람직하지 않습니다. 대신, 동일하거나 다른 실시예에서, MANE은 이진 코딩된 코드워드의 NAL 유닛 헤더 처리를 통해 NAL 유닛이 어떤 타일을 가지고 있는지를 식별하는 데 필요한 모든 정보를 얻을 수 있다.
도 8을 참조하면, 디코더 또는 MANE은 예를 들어 다음과 같이 개시된 주제를 사용할 수 있다.
디코더는 비디오 비트스트림으로부터, 매크로블록/CU 주소 또는 타일 ID를 커버하는 신택스 요소를 포함하는 NAL 유닛 헤더를 파싱할 수 있다(801). 이 정보를 사용하여, 디코더 또는 MANE은 타일 ID를 식별할 수 있다(802). 타일 ID는 직접 디코딩될 수 있거나, 디코더/MANE는 예를 들어 파라미터 세트를 디코딩하고 활성화 시퀀스를 따름으로써 확립되는, 타일 레이아웃에 대한 사전 정보(priori information)를, NAL 유닛 헤더에 코딩된 매크로블록/CU 주소와 매칭시킬 수 있다. 디코더는 각각 디코더 또는 MANE에 의해 재구축 또는 포워딩이 필요한 타일 목록에 대해 타일 ID를 매칭시킬 수 있다(803). 매칭되는 것이 있으면(804), 디코더는 타일을 가지고 있는 NAL 유닛을 재구축하거나, MANE이 타일을 가지고 있는 NAL 유닛을 포워딩할 수 있다. 그러나 매칭되는 것이 없으면(805), 디코더 또는 MANE은 어쩌면 묵묵히, NAL 유닛을 폐기할 수 있다.
전술한 네트워크 추상화 유닛 헤더의 영상 참조를 위한 기술은 컴퓨터로 판독 가능한 명령어를 사용하여 컴퓨터 소프트웨어로 구현될 수 있고, 하나 이상의 컴퓨터로 판독 가능한 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 9는 개시된 주제의 특정 실시예를 구현하기에 적합한 컴퓨터 시스템(900)을 도시한다.
컴퓨터 소프트웨어는 임의의 적절한 기계 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있으며, 어셈블리, 컴파일, 링크 또는 유사한 메커니즘을 거쳐, 컴퓨터 중앙 처리 유닛(central processing unit, CPU), 그래픽 처리 유닛(Graphics Processing Unit, GPU) 등에 의해, 직접, 또는 해석, 마이크로 코드 실행 등을 통해 실행될 수 있는 명령어를 포함하는 코드를 생성할 수 있다.
명령어는 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게임 기기, 사물 인터넷 기기 등을 포함한, 다양한 유형의 컴퓨터 또는 그 구성요소에서 실행될 수 있다.
컴퓨터 시스템(900)에 대한 도 9에 도시된 구성요소는 본질적으로 예시이며, 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 한정도 시사하려는 것이 아니다. 구성요소의 구성은 컴퓨터 시스템(900)의 예시적인 실시예에 나타낸 구성요소 중 어느 하나 또는 조합과 관련된 어떠한 의존성 또는 요건도 갖는 것으로 해석되어서는 안 된다.
컴퓨터 시스템(900)은 특정 인간 인터페이스(human interface) 입력 기기를 포함할 수 있다. 이러한 인간 인터페이스 입력 기기는 촉각 입력(예: 키 입력, 스 와이프(swipe), 데이터 장갑 움직임), 오디오 입력(예: 음성, 박수), 시각 입력(예: 제스처), 후각 입력(도시하지 않음)을 통해 한 명 이상의 인간 사용자의 입력에 응답할 수 있다. 인간 인터페이스 기기는 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔한 이미지, 정지 이미지 카메라에서 얻은 사진 이미지), 비디오(예: 2차원 비디오, 입체 비디오를 포함한 3차원 비디오)와 같은, 인간에 의한 의식적인 입력과 직접 관련이 없는 특정 미디어를 캡처하는 데도 사용될 수 있다.
입력 인간 인터페이스 기기는 키보드(901), 마우스(902), 트랙 패드(903), 터치 스크린(910), 데이터 장갑(904), 조이스틱(905), 마이크로폰(906), 스캐너(907), 카메라(908) 중 하나 이상(각각 하나만 나타냄)을 포함할 수 있다.
컴퓨터 시스템(900)은 또한 특정 인간 인터페이스 출력 기기를 포함할 수 있다. 이러한 인간 인터페이스 출력 기기는 예를 들어 촉각 출력, 소리, 빛. 그리고 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 인간 인터페이스 출력 기기로는 촉각 출력 기기(예: 터치 스크린(910), 데이터 장갑(904) 또는 조이스틱(905)에 의한 촉각 피드백, 하지만 입력 기기 역할을 하지 않는 촉각 피드백 기기도 있을 수 있음), 오디오 출력 기기(예: 스피커(909), 헤드폰(도시하지 않음)), 시각 출력 기기(예: CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하는 스크린(910), 각각 터치 스크린 입력 기능이 있거나 없고, 각각 또는 촉각 피드백 기능이 있거나 없음 - 그 일부는 스테레오 그래픽 출력, 가상 현실 안경(미도시), 홀로 그래픽 디스플레이 및 연기 탱크(미도시)와 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 출력할 수 있음 -), 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(900)은 또한 CD/DVD 또는 유사한 매체(921)를 가지는 CD/DVD ROM/RW(920), 썸 드라이브(thumb-drive)(922), 탈착 가능한 하드 드라이브 또는 솔리드 스테이트(923), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(도시되지 않음)과 같은 특화된 ROM/ASIC/PLD 기반 기기 등과 같은 인간이 액세스 가능한 저장 기기 및 연관된 매체를 포함할 수 있다.
당업자는 현재 개시된 주제와 관련하여 사용되는 "컴퓨터로 판독 가능한 매체"라는 용어가 송신 매체(transmission media), 반송파(carrier wave) 또는 다른 일시적인 신호(transitory signal)를 포함하지 않는다는 것을 또한 이해해야 한다.
컴퓨터 시스템(900)은 또한 하나 이상의 통신 네트워크에 대한 인터페이스를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등일 수 있다. 네트워크의 예로는 이더넷과 같은 근거리 네트워크; 무선 LAN; GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크; 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크; CANBus를 포함하는 차량 및 산업용, 등을 포함한다. 특정 네트워크는 일반적으로 특정 범용 데이터 포트 또는 주변 버스(949)(예: 컴퓨터 시스템 900의 USB 포트)에 장착되는 외부 네트워크 인터페이스 어댑터를 필요로 하며, 다른 것들은 일반적으로 후술하는 바와 같이(예: PC 컴퓨터 시스템에 이더넷 인터페이스가 또는 스마트폰 컴퓨터 시스템에 셀룰러 네트워크 인터페이스가) 장착에 의해 컴퓨터 시스템(900)의 코어에 통합된다. 이러한 네트워크를 사용하여, 컴퓨터 시스템(900)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예: 방송 TV), 단방향 전송 전용(예: CANbus에서 특정 CANbus 기기로) 또는 양방향(예: 근거리 통신망 또는 광역 디지털 네트워크를 사용하는 다른 컴퓨터 시스템으로의)일 수 있다. 특정 프로토콜 및 프로토콜 스택이 위에서 설명한 네트워크 및 네트워크 인터페이스 각각에서 사용될 수 있다.
전술한 인간 인터페이스 기기, 인간이 액세스 가능한 저장 기기 및 네트워크 인터페이스는 컴퓨터 시스템(900)의 코어(940)에 장착될 수 있다.
코어(940)는 하나 이상의 중앙 처리 유닛(CPU)(941), 그래픽 처리 유닛(GPU)(942), FPGA(Field Programmable Gate Areas)(943) 형태의 특화된 프로그램 가능한 처리 유닛, 특정 태스크용의 하드웨어 가속기(hardware accelerator)(944), 등을 포함할 수 있다. 판독 전용 메모리(Read-only memory, ROM) 945, 랜덤 액세스 메모리(Random-access memory)(946), 사용자가 액세스 불가능한 내부 하드 드라이브, SSD 등과 같은, 내부 대용량 저장장치(947)와 함께, 이러한 기기는 시스템 버스(948)를 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(948)는 추가적인 CPU, GPU 등에 의한 확장을 가능하게 하는 하나 이상의 물리 플러그(physical plug)의 형태로 액세스 가능할 수 있다. 주변 기기는 코어의 시스템 버스(948)에 직접, 또는 주변 버스(949)를 통해 장착될 수 있다. 주변 기기 버스용의 아키텍처로는 PCI, USB 등을 포함한다.
CPU(941), GPU(942), FPGA(943) 및 가속기(944)는 조합하여 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어를 실행할 수 있다. 그 컴퓨터 코드는 ROM(945) 또는 RAM(946)에 저장될 수 있다. 과도 데이터(transitional data)가 또한 RAM(946)에 저장될 수 있는 반면, 영구 데이터는 예를 들어 내부 대용량 저장장치(947)에 저장될 수 있다. 메모리 기기 중 어느 것에 대한 빠른 저장 및 검색은 하나 이상의 CPU(941), GPU(942), 대용량 저장장치(947), ROM(945), RAM(946) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 가능해질 수 있다.
컴퓨터로 판독 가능한 매체는 컴퓨터로 구현되는 다양한 작업을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구축된 것일 수 있거나, 컴퓨터 소프트웨어 분야의 숙련자들에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
한정이 아닌 예로서, 아키텍처(900), 특히 코어(940)를 갖는 컴퓨터 시스템은 하나 이상의 유형의, 컴퓨터로 판독 가능한 매체에 구현된 소프트웨어를 실행하는 프로세서(CPU, GPU, FPGA, 가속기 등을 포함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터로 판독 가능한 매체는 위에서 소개한 바와 같이 사용자가 액세스할 수 있는 대용량 저장장치와 연관된 매체일 수 있으며, 코어 내부의 대용량 저장장치(947) 또는 ROM(945)과 같은 비일시적 성질의 코어(940)의 특정 저장장치일 수도 있다.
본 개시의 다양한 실시예를 구현하는 소프트웨어는 이러한 기기에 저장되고 코어(940)에 의해 실행될 수 있다. 컴퓨터로 판독 가능한 매체는 특정 요구에 따라, 하나 이상의 메모리 소자 또는 칩을 포함할 수 있다. 소프트웨어는 코어(940) 및 구체적으로 내부 프로세서(CPU, GPU, FPGA 등 포함)으로 하여금, RAM(946)에 저장된 데이터 구조를 정의하는 것 및 소프트웨어에 의해 정의된 프로세스에 따라 그러한 데이터 구조를 수정하는 것을 포함한, 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하도록 할 수 있다. 소프트웨어에 의해 정의 된 프로세스에 따라. 추가로 또는 대안으로, 컴퓨터 시스템은 여기에 설명한 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 작동할 수 있는 회로(예: 가속기 944)에 로직 고정 배선식(logic hardwired) 또는 다른 방식으로 구현된 결과로 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 포함할 수 있으며 그 반대의 경우도 마찬가지이다. 컴퓨터로 판독 가능한 매체에 대한 참조는 실행을 위한 소프트웨어를 저장하는 회로(예: 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로 또는 적절한 경우 둘 다를 포함할 수 있다. 본 개시는 하드웨어 및 소프트웨어의 임의의 적합한 조합을 포함한다.
본 개시는 여러 예시적인 실시예를 설명했지만, 본 개시의 범위 내에 속하는 변경, 치환, 및 다양한 대체 등가물이 있다.

Claims (20)

  1. 비디오 디코딩 방법으로서,
    고정된 길이의 코드워드를 포함하는 네트워크 추상화 계층(network abstraction layer, NAL) 유닛 헤더 내의 타일의 ID(IDentification)를 가지고 있는 이진 코딩된 타일 식별자를 디코딩하는 단계;
    상기 NAL 유닛 헤더 내의 상기 이진 코딩된 타일 식별자의 디코딩에 기초하여, 상기 타일 식별자가 디코딩될 타일의 목록에 포함되어 있다고 결정하는 단계; 및
    상기 타일 식별자가 디코딩될 타일의 목록에 포함되어 있다는 결정에 기초하여 상기 타일을 재구축하는 단계
    를 포함하고,
    상기 NAL 유닛 헤더는 NAL 유닛이 가지고 있는(carry) 데이터의 유형을 지시하는 nal_unit_type 신택스 요소, 상기 타일 식별자를 지시하는 nuh_tile_id 신택스 요소, 및 상기 NAL 유닛이 속하는 코딩된 영상의 시간 계층을 지시하는 nuh_temporal_idplus1 신택스 요소를 포함하고, 상기 타일 식별자의 크기는 파라미터 세트 내의 하나 이상의 신택스 요소를 통해 결정되는,
    비디오 디코딩 방법.
  2. 제1항에 있어서,
    주어진 타일 레이아웃에 대해, 상기 타일 레이아웃 내의 타일 각각은 유일한 타일 식별자를 가지며, 상기 유일한 타일 식별자는 상기 타일 레이아웃 내의 영상 세그먼트의 스캔 순서에 따라 할당되는, 비디오 디코딩 방법.
  3. 제2항에 있어서,
    상기 스캔 순서는 상기 타일 레이아웃의 타일의 좌측 상단 코너와 연관되고, 상단에서 하단, 우측에서 좌측 순으로 하나씩 증가되는, 비디오 디코딩 방법.
  4. 제1항에 있어서,
    상기 타일 식별자는 상기 NAL 유닛 헤더에서 고정된 위치에 있는, 비디오 디코딩 방법.
  5. 제1항에 있어서,
    상기 파라미터 세트는 상기 NAL 유닛 헤더가 속한 영상에 대해 활성화되는, 비디오 디코딩 방법.
  6. 비디오 시퀀스를 디코딩하는 기기로서,
    프로그램 코드를 저장하도록 구성된 하나 이상의 메모리; 및
    프로그램 코드를 판독하도록 구성된 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는 상기 프로그램 코드가 명령하는 대로 작동할 때 제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행하도록 상기 기기를 구성하는,
    기기.
  7. 명령어를 저장하는, 컴퓨터로 판독 가능한 비일시적인 매체로서,
    상기 명령어는 기기의 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금, 제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행하도록 상기 기기를 구성하게 하는,
    컴퓨터로 판독 가능한 비일시적인 매체.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020217017989A 2018-12-20 2019-12-19 네트워크 추상화 유닛 헤더에서의 타일 식별 KR102662633B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862783152P 2018-12-20 2018-12-20
US62/783,152 2018-12-20
US16/403,799 2019-05-06
US16/403,799 US11140403B2 (en) 2018-12-20 2019-05-06 Identifying tile from network abstraction unit header
PCT/US2019/067487 WO2020132249A1 (en) 2018-12-20 2019-12-19 Identifying tile from network abstraction unit header

Publications (2)

Publication Number Publication Date
KR20210088702A KR20210088702A (ko) 2021-07-14
KR102662633B1 true KR102662633B1 (ko) 2024-05-03

Family

ID=71097945

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217017989A KR102662633B1 (ko) 2018-12-20 2019-12-19 네트워크 추상화 유닛 헤더에서의 타일 식별

Country Status (6)

Country Link
US (3) US11140403B2 (ko)
EP (1) EP3900350A4 (ko)
JP (3) JP7177270B2 (ko)
KR (1) KR102662633B1 (ko)
CN (1) CN113302931B (ko)
WO (1) WO2020132249A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019138744A1 (ja) 2018-01-10 2019-07-18 住友電気工業株式会社 複合部材、放熱部材、半導体装置、及び複合部材の製造方法
JP2022539489A (ja) * 2019-06-25 2022-09-12 インテル コーポレイション レベル導出を伴うサブピクチャおよびサブピクチャセット
WO2021039578A1 (ja) * 2019-08-29 2021-03-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
WO2021211576A1 (en) * 2020-04-13 2021-10-21 Op Solutions, Llc Methods and systems for combined lossless and lossy coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180220161A1 (en) * 2012-06-29 2018-08-02 Ge Video Compression, Llc Video data stream concept

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US9521418B2 (en) * 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US9210430B2 (en) * 2012-01-19 2015-12-08 Sharp Kabushiki Kaisha Reference picture set signaling and restriction on an electronic device
CN104247433B (zh) * 2012-04-06 2018-02-06 索尼公司 解码装置和解码方法以及编码装置和编码方法
US10491913B2 (en) * 2012-04-24 2019-11-26 Telefonaktiebolaget L M Ericsson (Publ) Identifying a parameter set for decoding a multi-layer video representation
US10097841B2 (en) * 2012-05-04 2018-10-09 Lg Electronics Inc. Method for storing image data, method for parsing image data, and an apparatus for using the same
US20140010277A1 (en) * 2012-07-09 2014-01-09 Qualcomm, Incorporated Supplemental enhancement information (sei) messages having a fixed-length coded video parameter set (vps) id
AU2013322008B2 (en) * 2012-09-26 2016-10-27 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
US9479782B2 (en) * 2012-09-28 2016-10-25 Qualcomm Incorporated Supplemental enhancement information message coding
CN105052167B (zh) 2013-01-18 2018-10-09 佳能株式会社 用于封装分区定时媒体数据的方法、装置和计算机可读存储介质
CN105075271A (zh) * 2013-04-08 2015-11-18 索尼公司 利用shvc的关注区域可伸缩性
US9749627B2 (en) * 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
GB2516224A (en) * 2013-07-11 2015-01-21 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
US20150016503A1 (en) * 2013-07-15 2015-01-15 Qualcomm Incorporated Tiles and wavefront processing in multi-layer context
WO2015047162A1 (en) * 2013-09-26 2015-04-02 Telefonaktiebolaget L M Ericsson (Publ) Hybrid codec scalable video
US10419768B2 (en) * 2016-03-30 2019-09-17 Qualcomm Incorporated Tile grouping in HEVC and L-HEVC file formats
CN109691103B (zh) * 2016-07-14 2023-02-28 皇家Kpn公司 视频编码

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180220161A1 (en) * 2012-06-29 2018-08-02 Ge Video Compression, Llc Video data stream concept

Also Published As

Publication number Publication date
JP7434499B2 (ja) 2024-02-20
JP2024050837A (ja) 2024-04-10
KR20210088702A (ko) 2021-07-14
WO2020132249A1 (en) 2020-06-25
JP2022510181A (ja) 2022-01-26
US11140403B2 (en) 2021-10-05
CN113302931B (zh) 2024-04-23
EP3900350A1 (en) 2021-10-27
JP7177270B2 (ja) 2022-11-22
EP3900350A4 (en) 2022-10-19
US11677972B2 (en) 2023-06-13
US20200204813A1 (en) 2020-06-25
US20210392359A1 (en) 2021-12-16
JP2023015265A (ja) 2023-01-31
US20230379486A1 (en) 2023-11-23
CN113302931A (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
KR102656160B1 (ko) 전방향 미디어 코딩을 위한 랩-어라운드 패딩 방법, 디바이스, 및 컴퓨터 판독가능 매체
KR102648248B1 (ko) 랜덤 액세스 포인트 및 픽처 유형의 식별 방법
KR102660034B1 (ko) 비디오 스트림 내의 서브-영역 분할들을 이용한 패딩 처리를 위한 방법
KR102662633B1 (ko) 네트워크 추상화 유닛 헤더에서의 타일 식별
KR102592924B1 (ko) 비디오 비트스트림에서의 적응적 픽처 크기의 시그널링
CN112292859B (zh) 一种用于解码至少一个视频流的方法和装置
JP7177179B2 (ja) 簡略化された最確モードリスト生成スキーム
CN113348666B (zh) 用于对编码视频流进行解码的方法和系统
CA3132390A1 (en) Tile and sub-picture partitioning
JP2023165926A (ja) ビデオ符号化のための方法、装置、媒体およびコンピュータ・プログラム
JP7254188B2 (ja) 点群符号化のためのパラメータセット設計の方法並びにその装置及びプログラム
JP7127151B2 (ja) 8ビット変換コアを用いる主変換のための方法および装置
CN113491128B (zh) 已解码图片存储器管理的方法和相关装置
JP7061680B2 (ja) ビデオ符号化において縮減された前のラインバッファを使用するインター予測の方法及び装置
JP2023126585A (ja) マルチラインイントラ予測のためのモードリストを生成する方法、並びにその装置及びコンピュータプログラム
JP2024518007A (ja) 非インターリーブ分離ツリー

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)