KR102176327B1 - 비디오 랜덤 액세스를 간단하게 하기 위한 제한사항 및 유닛 타입 - Google Patents

비디오 랜덤 액세스를 간단하게 하기 위한 제한사항 및 유닛 타입 Download PDF

Info

Publication number
KR102176327B1
KR102176327B1 KR1020207014506A KR20207014506A KR102176327B1 KR 102176327 B1 KR102176327 B1 KR 102176327B1 KR 1020207014506 A KR1020207014506 A KR 1020207014506A KR 20207014506 A KR20207014506 A KR 20207014506A KR 102176327 B1 KR102176327 B1 KR 102176327B1
Authority
KR
South Korea
Prior art keywords
picture
bitstream
pictures
decoding
rap
Prior art date
Application number
KR1020207014506A
Other languages
English (en)
Other versions
KR20200061415A (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 KR20200061415A publication Critical patent/KR20200061415A/ko
Application granted granted Critical
Publication of KR102176327B1 publication Critical patent/KR102176327B1/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/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • 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/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
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field

Abstract

CRA(clean random access) 픽쳐 및/또는 다른 타입의 RAP(random access point) 픽쳐를 갖는 비트스트림에 관한 개선점을 개시한다. RAP 픽쳐에 대한 새로운 타입의 정의 및 전략적 제한사항은 콘테이너 포맷으로의 기본 비디오 스트림 데이터 유닛의 맵핑을 간단하게 할 수 있다. 이러한 개선점은, 비디오 코딩 시스템이 적응적 비디오 전송, 프로덕션 편집, 광고 삽입 등을 보다 유연하게 수행하도록 하는 기능을 향상시킬 수 있다.

Description

비디오 랜덤 액세스를 간단하게 하기 위한 제한사항 및 유닛 타입{CONSTRAINTS AND UNIT TYPES TO SIMPLIFY VIDEO RANDOM ACCESS}
본 출원은 비디오 인코딩 및 디코딩에 관한 것으로, 특히 랜덤 액세스 포인트 픽쳐에 관련된 개선점에 관한 것이다.
엔지니어들은 디지털 비디오의 비트 레이트를 감소시키기 위해(소스 코딩 또는 소스 인코딩이라고도 불리는) 압축(compression)을 사용한다. 압축은, 비디오 정보를 보다 낮은 비트 레이트 형태로 변환함으로써 비디오 정보의 저장 및 전송 비용을 감소시킨다. (디코딩이라고도 하는) 압축해제(decompression)는 정보를 압축된 형태로부터 원래 버전으로 재구성한다. "코덱"은 인코더/디코더 시스템이다.
지난 20년간에 걸쳐, H.261, H.262(MPEG-2 또는 ISO/IEC 13818-2), H.263 및H.264(AVC 또는 ISO/IEC 14496-10) 표준 및 MPEG-1(ISO/IEC 11172-2), MPEG-4 Visual(ISO/IEC 14496-2) 및 SMPTE 421M 표준을 포함하는 다양한 비디오 코덱 표준들이 채택되어 왔다. 보다 최근에는, HEVC 표준이 개발되고 있다. 통상적으로, 비디오 코덱 표준은 인코딩된 비디오 비트스트림의 신택스(syntax)에 관한 옵션을 정의하여, 특정 기능이 인코딩 및 디코딩에 사용될 때 비디오 비트스트림에서의 파라미터를 상세히 표시한다. 많은 경우에, 비디오 코덱 표준은 디코더가 올바른 디코딩 결과를 얻기 위해 수행해야 하는 디코딩 동작에 관한 세부사항도 제공한다.
브로드캐스팅 및 스트리밍 애플리케이션에서는, 디코더가 인코딩된 비트스트림의 어떤 포인트에 랜덤하게 액세스하고 이 랜덤 액세스 포인트로부터 픽쳐를 디코딩하는 기능이 요구된다. 이러한 랜덤 액세스는, 가령, 보는 이가 브로드캐스트 또는 스트림간을 전환하거나 비트스트림 스플라이싱(bitstream splicing)이 수행될 때 행해진다.
요약하면, 발명의 상세한 설명에서는, CRA(clean random access) 픽쳐 및/또는 다른 타입의 RAP(random access point) 픽쳐를 갖는 비트스트림에 관한 개선점을 제공한다. RAP 픽쳐에 대한 새로운 타입의 정의 및 전략적 제한사항은 콘테이너 포맷으로의 기본 비디오 스트림 데이터 유닛의 맵핑을 간단하게 할 수 있다. 이러한 개선점은, 비디오 코딩 시스템이 적응적 비디오 전송, 프로덕션 편집, 광고 삽입 등을 보다 유연하게 수행하도록 하는 기능을 향상시킬 수 있다.
본 명세서에서 설명되는 개선점은, 비트스트림의 시작부분만이 아닌 중간 부분에서도, 비트스트림의 CRA 픽쳐 후에 나타나는 하나 이상의 잠재적으로 디코딩 가능하지 않은 픽쳐를 CRA 픽쳐가 가질 수 있도록 하는 것을 포함하며, 이에 한정되는 것은 아니다. 일부 사용에서는, 이들 잠재적으로 디코딩 가능하지 않은 픽쳐는, 이들이 비트스트림에서 CRA 픽쳐 후에 나타나지만 CRA 픽쳐의 식별된 디스플레이 출력 순서보다 선행하는 식별된 디스플레이 출력 순서를 갖는다는 점에서, CRA 픽쳐에 대해 선행(leading) 픽쳐이다. 바꿔 말해, 비트스트림의 시작 부분에서 CRA 픽쳐가 디코딩 가능하지 않은 선행 픽쳐를 가질 수 있을 뿐만 아니라, 비트스트림의 시작 부분에 있지 않으며 비트스트림 내에서 자신에 후속하는 잠재적으로 디코딩 가능하지 않은 픽쳐를 갖는 CRA 픽쳐 또한 비트스트림이 가질 수 있다. 이러한 관점에서, 선행 픽쳐는 비트스트림 순서(또는 코딩된 순서, 디코드 순서, 디코딩 순서 등)에서는 CRA 픽쳐에 후속하지만 디스플레이 순서(또는 출력 순서)에서는 그 CRA 픽쳐보다 선행하는 픽쳐이다. 비트스트림을 시작하는 CRA 픽쳐는, 앞선 기준 픽쳐를 잃어버려서 디코딩될 수 없는 선행 픽쳐가 (비트스트림 순서상) 후속하도록 허용된다. 이제, 비트스트림의 중간부분에 해당하는 CRA 픽쳐에도, 이러한 디코딩 가능하지 않은 픽쳐가 비트스트림에서 후속할 수 있다. 개시된 기술의 실시예에 따르면, 비트스트림 중간의 CRA 픽쳐 후에는 디코딩 가능하지 않은 선행 픽쳐가 올 수 없었던 제한이 사라졌다.
소정 구현예에서, CRA 픽쳐에 대한 이러한 디코딩 가능하지 않은 선행 픽쳐가 존재할 가능성을 표시하는 플래그 또는 기타 표시자가 (가령, 픽쳐-레벨 정보로서, 또는 슬라이스 헤더 내에) 추가된다. 이 표시자는 (가령, 디코더에 의해) 선행 픽쳐를 어떻게 처리할지 (가령, 디코더가 선행 픽쳐를 디코딩해야 하는지)를 결정하는 데에 사용될 수 있다. 예를 들어, 본 명세서에서 설명되는 끊어진 링크 기능이 사용될 때, 선행 픽쳐가 존재하는지 여부와 선행 픽쳐가 무슨 타입인지를 표시하기 위해 상이한 NAL(network abstraction layer) 유닛 타입이 사용된다. 또한, 이들 NAL 유닛 타입은 CRA를 위한 보통의 NAL 유닛 타입과는 상이하다. 또한, 소정 구현에서, 픽쳐를 선행 픽쳐로 분류하여 잠재적으로 디코딩 가능하지 않은 픽쳐를 식별하는 규칙을 사용하는 대신에, 잠재적으로 디코딩 가능하지 않은 픽쳐를 명시적으로 식별하기 위한 플래그 또는 기타 표시자가 추가된다.
본 명세서에서 설명되는 다른 개선점은, (a) 비디오 기본 스트림 데이터의 유닛의 콘테이너 포맷으로의 맵핑을 간단하게 하는, RAP 픽쳐에 대한 유닛 타입의 새로운 정의, (b) 이러한 맵핑 동작을 간단하게 하는 RAP 픽쳐에 대한 전략적 제한사항, 및 (c) 종복 유닛 타입의 제거를 포함하며, 이에 한정되지 않는다.
본 명세서에서 소개되는 새로운 CRA 픽쳐 타입 및 연돤된 플래그 또는 기타 표시자의 실시예는 흔히 "BLA(broken link access)"픽쳐로서 지칭된다. 이러한 BLA 픽쳐 및 연관된 표시자를 사용함으로써, 디코더가 디코딩을 시작할 수 있는 액세스 포인트의 수를 증가시킬 수 있어서, 비디오 코딩 시스템이 패스트 포워드 동작, 리와인드 동작, 스캐닝 동작, 스플라이싱 동작 또는 비디오 스트림들간 전환 동작과 같은 다양한 동작을 수행할 수 있는 속도를 향상시키고 보다 끊김 없이 재생할 수 있게 한다. 또한, 이러한 BLA 픽쳐 및 연관된 표시자를 사용함으로써, 비디오 인코딩 시스템 또는 비디오 디코딩 시스템으로 하여금 적응적 비디오 전송, 프로덕션 편집, 광고 삽입 등을 보다 유연하게 수행하게 할 수 있다.
본 발명의 전술한 목적, 특징 및 장점과 기타 목적, 특징 및 장점은 이하의 상세한 설명으로부터 보다 명백해질 것이며, 첨부된 도면을 참조하여 설명한다.
도 1은 일부 실시예가 구현될 수 있는 예시적 컴퓨팅 시스템의 도면이다.
도 2(a) 및 2(b)는 일부 실시예가 구현될 수 있는 예시적 네트워크 환경의 도면이다.
도 3은 일부 실시예와 함께 구현될 수 있는 예시적 인코더 시스템의 도면이다.
도 4는 일부 실시예와 함께 구현될 수 있는 예시적 디코더 시스템의 도면이다.
도 5는 CRA 픽쳐를 포함하는 예시적 코딩된 픽쳐 시퀀스를 도시하는 도면이다.
도 6은 비트스트림을 생성하는 제 1 예시적 방법을 도시하는 흐름도이다.
도 7은 비트스트림을 디코딩하는 제 1 예시적 방법을 도시하는 흐름도이다.
도 8은 비트스트림을 생성하는 제 2 예시적 방법을 도시하는 흐름도이다.
도 9는 비트스트림을 디코딩하는 제 2 예시적 방법을 도시하는 흐름도이다.
도 10은 비트스트림을 생성하는 제 3 예시적 방법을 도시하는 흐름도이다.
도 11은 비트스트림을 디코딩하는 제 3 예시적 방법을 도시하는 흐름도이다.
도 12는 비트스트림 부분을 프로세싱하는 제 1 예시적 방법을 도시하는 흐름도이다.
도 13은 비트스트림 부분을 프로세싱하는 제 2 예시적 방법을 도시하는 흐름도이다.
도 14는 비트스트림을 생성하는 제 4 예시적 방법을 도시하는 흐름도이다.
도 15는 비트스트림을 디코딩하는 제 4 예시적 방법을 도시하는 흐름도이다.
상세한 설명에서는, CRA(clean random access) 픽쳐 및 다른 RAP(random access point) 픽쳐를 갖는 비트스트림을 인코딩 및 디코딩하기 위한 개선점을 제공한다. 특히, 상세한 설명에서는, 비트스트림이 비트스트림의 시작 부분에서 CRA 픽쳐를 가질 수 있고 또한 비트스트림의 시작 부분에 있지 않은 CRA 픽쳐를 가질 수 있는 실시예가 설명되는데, 이러한 CRA 픽쳐 중 임의의 픽쳐가 하나 이상의 디코딩 가능하지 않은 선행(leading) 픽쳐를 가질 수 있다. 본 명세서에서, 이러한 CRA 픽쳐는 종종 "BLA(broken link access)" 픽쳐라고 한다. 또한, 상세한 설명에서는, RAP 픽쳐에 대한 유닛 타입의 새로운 정의 및 RAP 픽쳐에 대한 전략적 제한사항이 콘테이너 포맷으로의 비디오 기본 스트림 데이터의 맵핑을 간단하게 하며, 중복 유닛 타입이 제거되는 실시예를 설명한다.
본 명세서에서 설명되는 개선점 중 일부는 HEVC 표준에 특정한 신택스 요소 및 동작을 참조하여 설명된다. 예를 들어, HEVC 표준의 어떤 드래프트 버전을 참조하는데, 이는 HEVC 표준의 JCTVC-I1003 - 2012년 4월 제네바, 제9회 미팅, JCTVC- I1003_d5, "High efficiency video coding (HEVC) text specification draft 7" (이하 "JCTVC-I1003_d5")을 포함한다. 본 명세서에서 설명되는 개선점은 다른 표준 또는 포맷에 대해서도 구현될 수 있다.
보다 일반적으로, 본 명세서에서 설명되는 예에 대한 다양한 대안이 가능하다. 예를 들어, 본 명세서에서 설명되는 방법 중 임의의 방법은 설명되는 방법의 동작의 순서를 변경하거나, 특정 방법의 동작을 분할, 반복 또는 생략하는 등에 의해 변경될 수 있다. 개시된 기술의 다양한 양태는 조합하여 또는 개별적으로 사용될 수 있다. 상이한 실시예가 설명되는 개선점 중 하나 이상을 사용할 수 있다. 본 명세서에서 설명되는 개선점 중 일부는 배경기술 단락에서 설명되는 문제점 중 하나 이상을 해결한다. 통상적으로, 소정의 기술/툴은 모든 이러한 문제를 해결하지 못한다.
I. 예시적 컴퓨팅 시스템
도 1은 설명되는 개선점 중 몇몇이 구현되기에 적합한 컴퓨팅 시스템(100)의 일반적인 예를 도시하고 있다. 개선점들은 다양한 범용 컴퓨팅 시스템 또는 특수 목적 컴퓨팅 시스템에서 구현될 수 있으므로, 컴퓨팅 시스템(100)은 사용 또는 기능의 범위에 관한 어떠한 제한도 제시하고자 하는 것이 아니다.
도 1을 참조하면, 컴퓨팅 시스템(100)은 하나 이상의 프로세싱 유닛(110, 115)과, 메모리(120, 125)를 포함한다. 도 1에서, 이 가장 기본적인 구성(130)은 파선 내에 포함된다. 프로세싱 유닛(110, 115)은 컴퓨터로 실행 가능한 인스트럭션을 실행한다. 프로세싱 유닛은 범용 CPU(central processing unit), ASIC(application-specific integrated circuit) 내의 프로세서, 또는 임의의 다른 유형의 프로세서일 수 있다. 멀티프로세싱 시스템에서, 다수의 프로세싱 유닛은 컴퓨터로 실행 가능한 인스트럭션을 실행하여 프로세싱 파워를 증가시킨다. 예를 들어, 도 1은 중앙 처리 유닛(110)과 함께 그래픽 처리 유닛 또는 코프로세싱 유닛(co-processing unit,115)을 도시하고 있다. 실체가 있는(tangible) 메모리(120, 125)는 휘발성 메모리 (가령, 레지스터, 캐시, RAM), 비휘발성 메모리 (가령, ROM, EEPROM, 플래시 메모리 등), 또는 이들 둘의 어떤 조합일 수 있으며, 프로세싱 유닛(들)에 의해 액세스될 수 있다. 메모리(120, 125)는, 프로세싱 유닛(들)에 의해 실행하기에 적합한 컴퓨터로 판독 가능한 인스트럭션의 형태로, 미디어 콘테이너 포맷으로의 맵핑을 간단하게 하는 유닛 타입 및/또는 전략적 제한사항(섹션 V, VI, VII 참조)을 사용하여 RAP 픽쳐를 인코딩 및 디코딩하기 위한 하나 이상의 개선점을 구현하는 소프트웨어(180)를 저장한다.
컴퓨팅 시스템은 추가적인 특징을 가질 수 있다. 예를 들어, 컴퓨팅 시스템(100)은 스토리지(140), 하나 이상의 입력 디바이스(150), 하나 이상의 출력 디바이스(160), 및 하나 이상의 통신 접속부(170)를 포함한다. 버스, 컨트롤러 또는 네트워크와 같은 상호접속 메커니즘(도시 생략)은 컴퓨팅 시스템(100)의 컴포넌트들을 상호접속시킨다. 통상적으로, 운영 시스템 소프트웨어(도시 생략)는 컴퓨팅 시스템(100)에서 실행되는 다른 소프트웨어에 대한 동작 환경을 제공하며, 컴퓨팅 시스템(100)의 컴포넌트들의 동작을 조정한다(coordinates).
실체가 있는 스토리지(140)는 제거 가능할 수도 제거 가능하지 않을 수도 있으며, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, DVD, 또는 정보를 일시적이지 않은 방식(in a non-transitory way)으로 저장하기 위해 사용될 수 있고 컴퓨팅 시스템(100) 내에서 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 스토리지(140, 125)는, 미디어 콘테이너 포맷으로의 맵핑을 간단하게 하는 유닛 타입 및/또는 전략적 제한사항(섹션 V, VI, VII 참조)을 사용하여 RAP 픽쳐를 인코딩 및 디코딩하기 위한 하나 이상의 개선점을 구현하는 소프트웨어(180)에 대한 인스트럭션을 저장한다.
입력 디바이스(들)(150)는 키보드, 마우스, 펜 또는 트랙볼(trackball)과 같은 터치 입력 디바이스; 음성 입력 디바이스; 스캐닝 디바이스; 또는 컴퓨팅 시스템(100)으로의 입력을 제공하는 다른 디바이스일 수 있다. 비디오 인코딩에 있어서, 입력 디바이스(들)(150)는 카메라, 비디오 카드, TV 튜너 카드, 또는 아날로그 또는 디지털 형태로 비디오 입력을 수신하는 유사한 디바이스, 또는 컴퓨팅 시스템(100)으로 비디오 샘플을 판독하는 CD-ROM 또는 CD-RW일 수 있다. 출력 디바이스(들)(160)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 시스템(100)으로부터의 출력을 제공하는 다른 디바이스일 수 있다.
통신 접속부(170)는 통신 매체를 통해 다른 컴퓨팅 개체로의 통신을 가능하게 한다. 통신 매체는, 컴퓨터로 실행 가능한 인스트럭션, 오디오 또는 비디오 입력 또는 출력, 또는 기타 데이터와 같은 정보를 변조된 데이터 신호를 통해 전달한다. 변조된 데이터 신호는, 내부에 정보를 인코딩하기 위해 자신의 특성들 중 하나 이상을 설정 또는 변경한 신호이다. 제한적이 아닌 예시적으로, 통신 매체는 전기, 광학, RF, 또는 기타 캐리어를 사용할 수 있다.
컴퓨터로 판독 가능한 매체의 일반적인 맥락에서 개선점을 설명할 수 있다. 컴퓨터로 판독 가능한 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용 가능한 유형의 매체이다. 제한적인 아닌 예시적으로, 이 컴퓨팅 시스템(100)에서, 컴퓨터로 판독 가능한 저장 매체는 메모리(120, 125), 스토리지(140) 및 이들 중 임의의 조합을 포함한다.
컴퓨팅 시스템에서 대상 실제 또는 가상 프로세서상에서 실행되는 프로그램 모듈에 포함되는 것과 같은, 컴퓨터로 실행 가능한 인스트럭션의 일반적인 맥락에서 개선점들을 설명할 수 있다. 일반적으로, 프로그램 모듈은, 특정 작업을 수행하거나 특정 추상적 데이터 유형(abstract data types)을 수행하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능은 다양한 실시예에서 원하는 대로 프로그램 모듈들 사이에서 조합되거나 분할될 수 있다. 프로그램 모듈을 위한 컴퓨터로 실행 가능한 인스트럭션은 로컬 또는 분산형 컴퓨팅 시스템 내에서 실행될 수 있다.
본 명세서에서, "시스템"이라는 용어와 "디바이스"라는 용어는 상호 교환적으로 사용된다. 맥락상으로 명백하게 표시되지 않는 한, 두 용어는 컴퓨팅 시스템 또는 컴퓨팅 디바이스의 유형에 제한을 암시하지 않는다. 일반적으로, 컴퓨팅 시스템 또는 컴퓨팅 디바이스는 로컬 또는 분산형일 수 있으며, 특수 목적 하드웨어 및/또는 범용 하드웨어와, 본 명세서에서 설명되는 기능을 구현하는 소프트웨어와의 임의의 조합을 포함할 수 있다.
개시되는 방법들은 이들 중 임의의 방법을 수행하도록 구성되는 전용 컴퓨팅 하드웨어를 사용하여 구현될 수도 있다. 예를 들어, 개시되는 방법들은 이들 중 임의의 방법을 구현하도록 특수하게 설계되거나 구성되는 집적 회로 (가령, ASIC(application specific integrated circuit), DSP(digital signal process unit), GPU(graphics processing unit) 또는 FPGA(field programmable gate array)와 같은 PLD(programmable logic device))에 의해 구현될 수 있다.
설명의 목적을 위해, 상세한 설명에서는 컴퓨팅 시스템에서의 컴퓨터 동작을 기술하기 위해 "결정한다" 및 "사용한다"와 같은 용어들이 사용된다. 이들 용어는 컴퓨터에 의해 수행되는 동작에 대한 고수준의 추상적 개념(high- level abstractions)이며, 인간에 의해 수행되는 행위와 혼동해서는 안된다. 이들 용어에 대응하는 실제 컴퓨터 동작은 구현에 따라 달라진다.
II. 예시적 네트워크 환경
도 2(a) 및 도 2(b)는 비디오 인코더(220) 및 비디오 디코더(270)를 포함하는 예시적 네트워크 환경(201 및 202)을 도시하고 있다. 인코더(220) 및 디코더(270)은 적합한 통신 프로토콜을 사용하여 네트워크(250)를 통해 접속된다. 네트워크(250)는 인터넷 또는 다른 컴퓨터 네트워크를 포함할 수 있다.
도 2(a)에 도시된 네트워크 환경(201)에서, 각 실시간 통신("RTC (real-time communication)") 툴(210)은 양방향 통신을 위해 인코더(220) 및 디코더(270) 모두를 포함한다. 소정 인코더(220)는, SMPTE 421M 표준, (H.264 또는 AVC로도 알려진) ISO/IEC 14496-10 표준, HEVC 표준, 다른 표준 또는 전용 포맷(proprietary format)에 따라, 이 인코더(220)로부터 인코딩된 데이터를 수신하는 대응 디코더(270)에 대한 출력을 생성할 수 있다. 양방향 통신은, 영상 회의, 영상 통화 또는 기타 양자간 통신 시나리오의 일부일 수 있다. 도 2(a)의 네트워크 환경(201)은 2개의 실시간 통신 툴(210)을 포함하지만, 네트워크 환경(201)은 대신에 다자간 통신에 참가하는 3개 이상의 실시간 통신 툴(210)을 포함할 수도 있다.
실시간 통신 툴(210)은 인코더(220)에 의한 인코딩을 관리한다. 도 3은 실시간 통신 툴(210)에 포함될 수 있는 예시적 인코더 시스템(300)을 도시하고 있다. 실시간 통신 툴(210)은 대안으로 다른 인코더 시스템을 사용할 수 있다. 실시간 통신 툴(210)은 또한 디코더(270)에 의한 디코딩을 관리한다. 도 4는 실시간 통신 툴(210)에 포함될 수 있는 예시적 디코더 시스템(400)을 도시하고 있다. 실시간 통신 툴(210)은 대안으로 다른 디코더 시스템을 사용할 수 있다.
도 2(b)에 도시된 네트워크 환경(202)에서, 인코딩 툴(212)은 디코더(270)를 포함하는 다수의 재생 툴(playback tools, 214)로 전송하기 위해 비디오를 인코딩하는 인코더(220)를 포함한다. 단방향 통신은 비디오 감시 시스템, 웹 카메라 모니터링 시스템, 원격 데스크톱 회의 프리젠테이션, 영상 배포 시스템 (가령, 스트리밍 비디오 스트리밍 배포 시스템), 또는 비디오가 인코딩되어 한 위치로부터 하나 이상의 다른 위치로 송신되는 다른 시나리오를 위해 제공될 수 있다. 도 2(b)에 도시된 네트워크 환경(202)은 2개의 재생 툴(214)을 포함하지만, 네트워크 환경(202)은 더 많거나 적은 수의 재생 툴(214)을 포함할 수 있다. 일반적으로, 재생 툴(214)은 인코딩 툴(212)과 통신하여 재생 툴(214)이 수신할 비디오 스트림을 결정한다. 재생 툴(214)은 비디오 스트림을 수신하고, 수신된 인코딩된 데이터를 적합한 기간 동안 버퍼링하고, 디코딩 및 재생을 시작한다.
도 3은 인코딩 툴(212)에 포함될 수 있는 예시적 인코더 시스템(300)을 도시하고 있다. 인코딩 툴(212)은 대안으로 다른 인코더 시스템을 사용할 수 있다. 인코딩 툴(21)은 하나 이상의 재생 툴(214)과의 접속을 관리하기 위해 서버측 콘트롤러 로직을 포함할 수도 있다. 도 4는 재생 툴(214)에 포함될 수 있는 예시적 디코더 시스템(400)을 도시하고 있다. 재생 툴(214)은 대안으로 다른 디코더 시스템을 사용할 수 있다. 재생 툴(214)은 인코딩 툴(212)과의 접속을 관리하기 위해 클라이언트측 콘트롤러 로직을 포함할 수도 있다.
III. 예시적 인코더 시스템
도 3은 일부 실시예와 함께 구현될 수 있는 예시적 인코더 시스템(300)의 블록도이다. 인코더 시스템(300)은 실시간 통신용 로우-레이턴시(low-latency) 인코딩 모드, 트랜스 코딩 모드(transcoding mode), 파일 또는 스트림으로부터의 미디어 재생을 위한 보통의 인코딩 모드와 같은 다수의 인코딩 모드들 중 하나에서 동작할 수 있는 범용 인코딩 툴일 수 있다. 또는, 인코더 시스템(300)은 이러한 인코딩 모드 중 하나에 적응된 특수 목적 인코딩 툴일 수 있다. 인코더 시스템(300)은, 운영 시스템 모듈로서, 애플리케이션 라이브러리의 일부로서 또는 단독 애플리케이션으로서 구현될 수 있다. 전체적으로, 인코더 시스템(300)은 비디오 소스(310)로부터 소스 비디오 프레임(311) 시퀀스를 수신하고, 채널(390)로의 출력으로서 인코딩된 데이터를 생성한다. 채널로 출력되는 인코딩된 데이터는 섹션 V, VI 및 VII에서 설명될 전략적 제한사항 및/또는 유닛 타입을 갖는 RAP 픽쳐에 대한 코딩된 데이터를 포함할 수 있다.
비디오 소스(310)는 카메라, 튜너 카드, 저장매체 또는 기타 디지털 비디오 소스일 수 있다. 비디오 소스(310)는, 가령, 초당 30 프레임의 프레임 레이트로 비디오 프레임 시퀀스를 생성한다. 본 명세서에서 사용되는 바와 같이, "프레임"이라는 용어는 일반적으로 소스, 코딩되거나 재구성된 이미지 데이터를 지칭한다. 프로그레시브 비디오(progressive video)에 있어서, 프레임은 프로그레시브 비디오 프레임이다. 인터레이스드 비디오(interlaced video)에 있어서, 예시적 실시예에서, 인터레이스드 비디오 프레임은 인코딩에 앞서 인터레이싱이 해제된다(de-interlaced). 이와 달리, 2개의 상보적 인터레이스드 비디오 필드가 인터레이스드 비디오 프레임 또는 개별적인 필드로서 인코딩될 수 있다. 프로그레시브 비디오 프레임을 표시하는 것과는 별도로, "프레임"이라는 용어는 짝을 이루지 않는 단일 비디오 필드, 비디오 필드의 상보적 짝, 주어진 시각에서 비디오 오브젝트를 나타내는 비디오 오브젝트 평면, 또는 더 큰 이미지에서의 관심 영역을 표시할 수 있다. 비디오 오브젝트 평면 또는 영역은 한 장면의 다수의 오브젝트 또는 영역을 포함하는 보다 큰 이미지의 일부일 수 있다.
도달 소스 프레임(311)은 다수의 프레임 버퍼 저장 영역(321, 322, …, 32n)을 포함하는 소스 프레임 임시 메모리 저장 영역(320)에 저장된다. 프레임 버퍼(321, 322 등)는 하나의 소스 프레임을 소스 프레임 저장 영역(320)에 유지한다. 소스 프레임(311) 중 하나 이상이 프레임 버퍼(321, 322 등)에 저장된 후, 프레임 셀렉터(330)는 소스 프레임 저장 영역(320)으로부터 개별적인 소스 프레임을 주기적으로 선택한다. 인코더(340)에 입력하기 위해 프레임 셀렉터(330)에 의해 프레임이 선택되는 순서는, 비디오 소스(310)에 의해 프레임이 생성되는 순서와는 상이할 수 있다. 가령, 시간적 후진 예측(temporally backward prediction)을 위해 한 프레임이 순서상 앞설 수 있다. 인코더(340) 이전에, 인코더 시스템(300)은 인코딩에 앞서서 선택된 프레임(331)의 사전 처리 (가령, 필터링)을 수행하는 프리-프로세서(pre-processor)(도시 생략)를 포함할 수 있다.
인코더(340)는 선택된 프레임(331)을 인코딩하여 코딩된 프레임(341)을 생성하고, 또한 MMCO(memory management control operation) 신호(342) 또는 RPS(reference picture set) 정보를 생성한다. 현재 프레임이 인코딩된 첫 번째 프레임이 아닌 경우, 그 인코딩 프로세스를 수행할 때, 인코더(340)는 디코딩된 프레임 임시 메모리 저장 영역(360)에 저장된 하나 이상의 이전에 인코딩된/디코딩된 프레임(369)을 사용할 수 있다. 이러한 저장된 디코딩된 프레임(369)은 현재 소스 프레임(331)의 콘텐트의 프레임간 예측(inter-frame prediction)을 위한 기준 프레임으로서 사용된다. 일반적으로, 인코더(340)는 모션 추정 및 보상, 주파수 변환, 양자화 및 엔트로피 코딩과 같은 인코딩 작업을 수행하는 다수의 인코딩 모듈을 포함한다. 인코더(340)에 의해 수행되는 정확한 동작은 압축 포맷에 따라 변할 수 있다. 출력되는 인코딩된 데이터의 포맷은 윈도우 미디어 비디오(Windows Media Video) 포맷, VC-1 포맷, MPEG-x 포맷 (가령, MPEG-1, MPEG-2, 또는MPEG-4), H.26x 포맷 (가령, H.261, H.262, H.263, H.264), HEVC 포맷 또는 기타 포맷일 수 있다.
예를 들어, 인코더(340) 내에서, 인터-코딩된(inter-coded), 예측된 프레임은 기준 프레임으로부터의 예측과 관련하여 표현된다. 모션 추정기는 하나 이상의 기준 프레임(369)을 참조하여, 매크로 블록, 블록 또는 소스 프레임(341)의 다른 샘플 세트를 추정한다. 다수의 기준 프레임이 사용되는 경우, 다수의 기준 프레임은 상이한 시간적 방향 또는 동일한 시간적 방향일 수 있다. 모션 추정기는 모션 벡터 정보와 같은 모션 정보를 출력한다. 이 정보는 엔트로피 코딩된다. 모션 보상기는 모션 벡터를 기준 프레임에 적용하여 모션이 보상된 예측 값을 결정한다. 인코더는 블록의 모션이 보상된 예측 값과 대응 원본 값 사이에 차가 존재하는 경우에 이를 결정한다. 이들 예측 잔여 값은 주파수 변환, 양자와 및 엔트로피 인코딩을 사용하여 더 인코딩된다. 유사하게, 인트라 예측(intra prediction)에 있어서, 인코더(340)는 블록에 대한 인트라 예측 값을 결정하고, 예측 잔여 값을 결정하며, 예측 잔여 값을 인코딩할 수 있다. 특히, 인코더(340)의 엔트로피 코더는 양자화된 변환 계수 값뿐만 아니라 소정 부가 정보 (가령, 모션 벡터 정보, 양자화 파라미터 값, 모드 결정, 파라미터 선택)도 압축한다. 통상적인 엔트로피 코딩 기술은 Exp-Golomb 코딩, 산술 코딩(arithmetic coding), 차분 코딩(differential coding), 허프만 코딩, 런 길이 코딩(run length coding), V2V(variable-length-to-variable-length) 코딩, V2F(variable-length-to-fixed-length) 코딩, LZ 코딩, 사전 코딩(dictionary coding), PIPE(probability interval partitioning entropy) 코딩 및 이들의 조합을 포함한다. 엔트로피 코더는 정보의 종류에 따라 상이한 코딩 기술을 사용할 수 있으며, 한 특정 코딩 기술 내에서 다수의 코드 테이블로부터 선택할 수 있다.
코딩된 프레임(341) 및 MMCO/RPS 정보(342)는 디코딩 프로세스 에뮬레이터(350)에 의해 처리된다. 디코딩 프로세스 에뮬레이터(350)는 디코더의 기능 중 일부를 구현한다. 예를 들어, 모션 추정 및 보상에서 인코더(340)에 의해 사용되는 기준 프레임을 재구성하는 디코팅 작업을 구현한다. 디코딩 프로세스 에뮬레이터(350)는 MMCO/RPS 정보(342)를 사용하여 특정한 코딩된 프레임(341)이 인코딩될 후속 프레임의 인터-프레임 예측에서 기준 프레임으로서 사용되기 위해 재구성되고 저장되어야 하는지를 판단한다. MMCO/RPS 정보(342)가 코딩된 프레임(341)이 저장되어야 한다고 표시하면, 디코딩 프로세스 에뮬레이터(350)는 코딩된 프레임(341)을 수신하는 디코더에 의해 수행될 디코딩 프로세스를 모델링하고, 대응하는 디코딩된 프레임(351)을 생성한다. 그러한 과정에서, 인코더(340)가 디코딩된 프레임 저장 영역(360)에 저장된 디코딩된 프레임(들)(369)을 사용한 경우, 디코딩 프로세스 에뮬레이터(350)는 또한 디코딩 프로세스의 일부로서 저장 영역(360)으로부터 디코딩된 프레임(들)(369)을 사용한다.
디코딩된 프레임 임시 메모리 저장 영역(360)은 다수의 프레임 버퍼 저장 영역(360, 361, …, 36n)을 포함한다. 디코딩 프로세스 에뮬레이터(350)는 MMCO/RPS 정보(342)를 사용하여 저장 영역(360)의 콘텐트를 관리함으로써, 인코더에 의해(340) 더 이상 기준 프레임으로서 사용될 필요가 없는 프레임을 갖는 프레임 버퍼(361, 362 등)를 식별한다. 디코딩 프로세스를 모델링한 후, 디코딩 프로세스 에뮬레이터(350)는 이 방식으로 식별된 프레임 버퍼(361, 362 등)에 새롭게 디코딩된 프레임(351)을 저장한다.
코딩된 프레임(341) 및 MMCO/RPS 정보(342)는 또한 임시 코딩된 데이터 영역(370)에서 버퍼링된다. 코딩된 데이터 영역(370)에서 수집되는 코딩된 데이터는, 기본 코딩된 비디오 비트스트림의 신택스의 일부로서, 섹션 V, VI 및 VII에서 설명될 전략적 제한사항 및/또는 유닛 타입을 갖는 RAP 픽쳐에 대한 코딩된 데이터를 포함할 수 있다. 코딩된 데이터 영역(370)에서 수집된 코딩된 데이터는 코딩된 비디오 데이터에 관한 미디어 메타데이터 (가령, 하나 이상의 SEI(supplemental enhancement information) 메시지 또는 VUI(video usability information) 메시지 내의 하나 이상의 파라미터)를 포함할 수도 있다.
임시 코딩된 데이터 영역(370)으로부터의 수집된 데이터(371)는 채널 인코더(380)에 의해 처리된다. 채널 인코더(380)는 (가령, ISO/IEC 14496-12와 같은 미디어 콘테이너 포맷에 따라) 미디어 스트림으로서 전송을 위해 수집된 데이터를 패킷화한다. 이 경우, 채널 인코더(380)는 미디어 전송 스트림의 신택스의 일부로서 신택스 요소를 추가할 수 있다. 또는, 채널 인코더(380)는 (가령, ISO/IEC 14496-12와 같은 미디어 콘테이너 포맷에 따라) 파일로 저장하기 위해 수집된 데이터를 조직할(organize) 수 있다. 이 경우, 채널 인코더(380)는 미디어 저장 파일의 신택스의 일부로서 신택스 요소를 추가할 수 있다. 또는, 보다 일반적으로, 채널 인코더(380)는 하나 이상의 미디어 시스템 멀티플렉싱 프로토콜 또는 전송 프로토콜을 구현할 수 있다. 이 경우, 채널 인코더(380)는 프로토콜(들)의 신택스의 일부로서 신택스 요소를 추가할 수 있다. 채널 인코더(380)는 채널(390)로의 출력을 제공하는데, 이는 저장, 통신 접속 또는 그 출력을 위한 다른 채널을 나타낸다.
IV. 예시적 디코더 시스템
도 4은 일부 실시예와 함께 구현될 수 있는 예시적 디코더 시스템(400)의 블록도이다. 디코더 시스템(400)은 실시간 통신용 로우-레이턴시(low-latency) 디코딩 모드 및 파일 또는 스트림으로부터의 미디어 재생을 위한 보통의 디코딩 모드와 같은 다수의 디코딩 모드들 중 하나에서 동작할 수 있는 범용 디코딩 툴일 수 있다. 또는, 디코더 시스템(300)은 이러한 디코딩 모드 중 하나에 적응된 특수 목적 디코딩 툴일 수 있다. 디코더 시스템(400)은, 운영 시스템 모듈로서, 애플리케이션 라이브러리의 일부로서 또는 단독 애플리케이션으로서 구현될 수 있다. 전체적으로, 디코더 시스템(400)은 채널(410)로부터 코딩된 데이터를 수신하고, 출력 목적지(490)에 대한 출력으로서 재구성된 프레임을 생성한다. 코딩된 데이터는 섹션 V, VI 및 VII에서 설명될 전략적 제한사항 및/또는 유닛 타입을 갖는 RAP 픽쳐에 대한 코딩된 데이터를 포함할 수 있다.
디코더 시스템(400)은 채널(410)을 포함하는데, 이는 저장, 통신 접속 또는 입력으로서 코딩된 데이터에 대한 다른 채널을 나타낸다. 채널(410)은 채널 코딩된, 코딩된 데이터를 생성한다. 채널 디코더(420)는 코딩된 데이터를 처리할 수 있다. 예를 들어, 채널 디코더(420)는 (가령, ISO/IEC 14496-12와 같은 미디어 콘테이너 포맷에 따라) 미디어 스트림으로서 전송을 위해 수집된 데이터를 패킷 해제한다(de-packetizes). 이 경우, 채널 디코더(420)는 미디어 전송 스트림의 신택스의 일부로서 추가된 신택스 요소를 파싱할(parse) 수 있다. 또는, 채널 디코더(420)는 (가령, ISO/IEC 14496-12와 같은 미디어 콘테이너 포맷에 따라) 파일로 저장하기 위해 수집된 코딩된 비디오 데이터를 분리한다. 이 경우, 채널 디코더(420)는 미디어 저장 파일의 신택스의 일부로서 추가된 신택스 요소를 파싱할 수 있다. 또는, 보다 일반적으로, 채널 디코더(420)는 하나 이상의 미디어 시스템 디멀티플렉싱 프로토콜 또는 전송 프로토콜을 구현할 수 있다. 이 경우, 채널 디코더(420)는 프로토콜(들)의 신택스의 일부로서 추가된 신택스 요소를 파싱할 수 있다.
채널 디코더(420)로부터 출력되는 코딩된 데이터(421)는 충분한 양의 이러한 데이터가 수신될 때까지 임시 코딩된 데이터 영역(430)에 저장된다. 코딩된 데이터(421)는 코딩된 프레임(431) 및 MMCO/RPS 정보(432)를 포함한다. 코딩된 데이터 영역(430)의 코딩된 데이터는, 기본 코딩된 비디오 비트스트림의 신택스의 일부로서, 섹션 V, VI 및 VII에서 설명될 전략적 제한사항 및/또는 유닛 타입을 갖는 RAP 픽쳐에 대한 코딩된 데이터를 포함할 수 있다. 코딩된 데이터 영역(430)의 코딩된 데이터(421)는 인코딩된 비디오 데이터에 관한 미디어 메타데이터 (가령, 하나 이상의 SEI 메시지 또는 VUI 메시지 내의 하나 이상의 파라미터)를 포함할 수도 있다. 일반적으로, 코딩된 데이터 영역(430)은 이러한 코딩된 데이터(421)가 디코더(450)에 의해 사용될 때까지 코딩된 데이터(421)를 임시로 저장한다. 이 때, 코딩된 프레임(431) 및 MMCO/RPS 정보(432)에 대한 코딩된 데이터는 코딩된 데이터 영역(430)으로부터 디코더(450)로 전달된다. 디코딩이 계속됨에 따라, 새로운 코딩된 데이터가 코딩된 데이터 영역(430)에 추가되고, 코딩된 데이터 영역(430)에 남아 있는 가장 오래된 코딩된 데이터가 디코더(450)로 전달된다.
디코더(450)는 코딩된 프레임(431)을 주기적으로 디코딩하여 대응하는 디코딩된 프레임(451)을 생성한다. 적합한 경우, 디코딩 프로세스를 수행할 때, 디코더(450)는 인터-프레임 예측을 위한 기준 프레임으로서 하나 이상의 이전에 디코딩된 프레임(469)을 사용할 수 있다. 디코더(450)는 디코딩된 프레임 임시 메모리 저장 영역(460)으로부터 이러한 이전에 디코딩된 프레임(469)을 판독한다. 일반적으로, 디코더(450)는 엔트로피 디코딩, 역 양자화, 역 주파수 변환 및 모션 보상과 같은 디코딩 작업을 수행하는 다수의 디코딩 모듈을 포함한다. 디코더(450)에 의해 수행되는 정확한 동작은 압축 포맷에 따라 변할 수 있다.
예를 들어, 디코더(450)는 압축된 프레임 또는 프레임 시퀀스에 대한 인코딩된 데이터를 수신하고, 디코딩된 프레임(451)을 포함하는 출력을 생성한다. 디코더(450)에서, 버퍼는 압축된 프레임에 대한 인코딩된 데이터를 수신하고, 수신된 인코딩된 데이터가 엔트로피 디코더에 대해 이용 가능하게 한다. 엔트로피 디코더는 엔트로피 코딩된 양자화 데이터 및 엔트로피 코딩된 부가 정보를 엔트로피 디코딩하며, 통상적으로 인코더에서 수행되는 인트로피 인코딩을 역으로 적용한다. 섹션 V, VI 및 VII에서는, RAP 픽쳐에 대한 코딩된 데이터, 전략적 제한사항 및/또는 디코더(450)에 의해 디코딩될 수 있는 유닛 타입의 예를 설명한다. 모션 보상기는 모션 정보를 하나 이상의 기준 프레임에 적용하여, 재구성되는 프레임의 서브 블록, 블록 및/또는 매크로블록(총칭하여 블록)의 모션 보상 예측을 형성한다. 인트라 예측 모듈은 인접한 이전에 재구성된 샘플 값으로부터 현재 블록의 샘플 값을 공간적으로 예측할 수 있다. 디코더(450)는 또한 예측 잔여 값을 재구성한다. 역 양자화기(inverse quantizer)는 엔트로피 디코딩된 데이터를 역 양자화한다. 역 주파수 변환기는 양자화된 주파수 영역 데이터를 공간 영역 정보로 변환한다. 예측된 프레임에 있어서, 디코더(450)는 재구성된 예측 잔여 값을 모션 보상된 예측과 결합하여 재구성된 프레임을 형성한다. 유사하게 디코더(450)는 예측 잔여 값을 인트라 예측으로부터의 공간적 예측과 결합할 수 있다. 비디오 디코더(450)의 모션 보상 루프는, 디코딩된 프레임(451)에서 블록 경계 행 및/또는 열을 지나는 불연속성을 완만하게 하기 위해 적응적 디-블로킹 필터(adaptive de-blocking filter)를 포함한다.
디코딩된 프레임 임시 메모리 저장 영역(460)은 다수의 프레임 버퍼 저장 영역(461, 462,…, 46n)을 포함한다. 디코딩된 프레임 저장 영역(460)은 DPB의 일례이다. 디코더(450)는 MMCO/RPS 정보(432)를 사용하여 디코딩된 프레임(451)을 저장할 수 있는 프레임 버퍼(461, 462 등)을 식별한다. 디코더(450)는 그 프레임 버퍼에 디코딩된 프레임(451)을 저장한다.
출력 시퀀서(480)는 MMCO/RPS 정보(432)를 사용하여 출력 순서상 다음에 생성될 프레임이 디코딩된 프레임 저장 영역(460)에서 이용 가능한 때를 식별한다. 출력 순서상 다음에 생성될 프레임(481)이 디코딩된 프레임 저장 영역(460)에서 이용 가능한 때에, 이는 출력 시퀀서(480)에 의해 준비되어 출력 목적지(490) (가령, 디스플레이)에 출력된다. 일반적으로, 출력 시퀀서(480)에 의해 디코딩된 프레임 저장 영역(460)으로부터 프레임이 출력되는 순서는 디코더(450)에 의해 프레임이 디코딩되는 순서와는 상이할 수 있다.
V. CRA 픽쳐를 갖는 비트스트림에 대한 개선점
이 섹션에서는, CRA(clean random access) 픽쳐를 갖는 비트스트림을 인코딩 및/또는 디코딩하는 여러 변형례를 설명한다. 특히, 이 섹션에서는, CRA 픽쳐를 갖는 비트스트림이, 하나 이상의 디코딩 가능하지 않은 선행 픽쳐를 잠재적으로 갖는, 비트스트림 중간부분의(mid-bitstream) CRA 픽쳐를 갖도록 허용되는 예를 제공한다. 전술한 인코더 또는 디코더 중 임의의 것이 개시된 인코딩 및 디코딩 기법을 사용하도록 적응될 수 있다.
JCTVC-I1003_d5에 따르면, CRA 픽쳐는 I 슬라이스(인트라 예측만을 사용하여 디코딩되는 슬라이스)만을 포함하는 코딩된 픽쳐이다. 또한, 디코딩 순서 및 출력 순서 모두에서 CRA 픽쳐에 후속하는 모든 코딩된 픽쳐는 디코딩 순서 또는 출력 순서상 CRA 픽쳐보다 선행하는 어떠한 픽쳐로부터의 인터 예측도 사용해서는 안된다. 디코딩 순서상으로 CRA 픽쳐보다 선행하는 임의의 픽쳐는 출력 순서상으로도 CRA 픽쳐보다 선행한다. "선행 픽쳐"는, 디코딩 순서상으로는 어떤 다른 특정 픽쳐에 후속하지만 출력 순서상으로는 이보다 선행하는 코딩된 픽쳐이다. 선행 픽쳐가 CRA 픽쳐와 연관되는 경우, 이는 디코딩 순서상으로는 CRA 픽쳐에 후속하지만 출력 순서상으로는 CRA 픽쳐보다 선행하는 코딩된 픽쳐이다. CRA 픽쳐와 연관되는 선행 픽쳐는 CRA 픽쳐의 픽쳐 순서 카운트보다 작은 픽쳐 순서 카운트를 갖는다.
JCTVC-I1003_d5에 따르면, "IDR(instantaneous decoding refresh) 픽쳐"는 모든 기준 픽쳐를 "기준을 위해 사용되지 않는" 것으로 표시하는 디코딩 프로세스를 일으키는 코딩된 픽쳐이다. 디코딩 순서상 IDR 픽쳐에 후속하는 모든 코딩된 픽쳐는 디코딩 순서상 IDR 픽쳐보다 선행하는 어떠한 픽쳐로부터의 인터 예측도 사용하지 않고 디코딩될 수 있다. 디코딩 순서상 각 코딩된 비디오 시퀀스의 첫 번째 픽쳐는 IDR 픽쳐 또는 CRA 픽쳐이다.
도 5는 3개의 CRA 픽쳐를 포함하는 일련의 픽쳐와, 양방향적으로 예측되는 슬라이스를 포함하는 다수의 픽쳐("B" 픽쳐)와, 단방향적으로 예측되는 슬라이스를 포함하는 다수의 픽쳐("P" 픽쳐)를 도시하는 블록도(500)이다. 도 5의 화살표는 모션 보상을 위해 B 픽쳐 및 P 픽쳐가 (가령, 하나 이상의 모션 벡터를 따라) 어떤 픽쳐로부터 의존하는지를 도시하는 데에 사용된다. 또한, 도 5는 픽쳐의 출력 순서 및 디코딩 순서를 도시하고 있다. 도 5에 도시된 픽쳐들 중 첫 번째 CRA 픽쳐는 디코딩 순서상 비트스트림의 시작 부분에 존재하고, 나머지 2개의 CRA 픽쳐는 비트스트림의 중간(즉, 디코딩 순서상 비트스트림의 시작 부분 후)에 존재한다. 두 번째 CRA 픽쳐(디코딩 순서상 픽쳐 5) 또는 세 번째 CRA 픽쳐(디코딩 순서상 픽쳐 11)에 있어서, 디코딩 순서상으로는 CRA 픽쳐에 후속하지만 출력 순서상으로는 이보다 선행하는 여러 선행 픽쳐가 존재한다. 이들 CRA 픽쳐 각각에 대해, 플래그는 CRA 픽쳐에 후속할 수 있는 선행 픽쳐에 관한 정보를 표시하며, 이에 대해서는 후술할 것이다.
이전 HEVC 서브미션, JCTVC-H0496에 따르면, 비트스트림은 IDR 픽쳐가 아닌 CRA 픽쳐로 시작하도록 허용되었다. 예를 들어, 도 5에 도시된 일련의 픽쳐는 CRA 픽쳐로 시작한다. 또한, 이러한 CRA 픽쳐는 디코딩 가능하지 않은 선행 픽쳐(디코딩 순서상으로는 CRA 픽쳐에 후속하지만 출력/디스플레이 순서상으로는 이에 선행하며, 비트스트림에서 실제로 존재하지 않는 기준 픽쳐에 대한 참조를 포함하는 픽쳐)를 갖도록 허용되었다. JCTVC-H0496에 따르면, 비트스트림이 CRA 픽쳐로 시작하면, 이 CRA 픽쳐와 연관되는 선행 픽쳐가 비트스트림에 존재하는 경우에 이는 무시된다(비트스트림으로부터 제거되거나 폐기된다). (도 5는 디코딩 순서상 픽쳐1인 첫 번째 CRA 픽쳐 후의 이러한 선행 픽쳐는 도시하지 않는다.)
IDR 픽쳐가 아닌 CRA 픽쳐로 비트스트림을 시작할 수 있게 하는 것은, 편집 유연성을 증가시키고자 하는 것이다. JCTVC-I1003_d5는 비트스트림의 중간 부분에 존재하는 CRA 스플라이스 포인트가 "감지 가능(sensible)"할 것을 요구하였다. 즉, 현재 CRA 픽쳐보다 이른 IDR 또는 CRA에서 디코더가 비트스트림을 디코딩하기 시작할 때, CRA 픽쳐의 선행 픽쳐 전부가 완전히 디코딩 가능할 것을 요구하였다. DPB(decoded picture buffer)는 (DPB 픽쳐 설정 기술 신택스에 존재하거나 인터 예측을 위해 참조되는) 선행 픽쳐의 신택스에 의해 참조되는 픽쳐 전부를 포함하도록 요구되었다. 따라서, 비트스트림의 시작 후의 CRA 픽쳐가 선행 픽쳐를 갖는 경우, 그 선행 픽쳐는 디코딩 가능한 것으로 이해되었다. 가령, 도 5에서, 세 번째 CRA 픽쳐(디코딩 순서상 11 번째 픽쳐) 뒤에는, 출력 순서상으로는 이보다 선행하는 2개의 픽쳐(디코딩 순서상 픽쳐 12 및 13)가 디코딩 순서상으로는 후속한다. 이들 2개의 선행 픽쳐는 세 번째 CRA 픽쳐에만 의존한다. 이러한 이유로, 이들은 디코딩이 랜덤 액세스 포인트로서 세 번째 CRA 포인트에서 시작하더라도 디코딩 가능할 것이다. 그러나, CRA 픽쳐의 배치가 임의의 선행 픽쳐가 디코딩 가능할 것으로 보장되도록 제한되는 경우, 인코더는 CRA 픽쳐로서 픽쳐를 지정할 수 있는 것으로 엄격하게 제한될 수 있다.
개시된 기술의 소정 실시예에 따르면, CRA 픽쳐의 선행 픽쳐의 디코딩 가능성에 관한 요구조건은 불필요하고 바람직하지 않으므로 제거된다. 개시된 기술의 실시형태는 추가적으로, 비트스트림의 시작부분에 존재하지 않는 CRA 픽쳐가 비트스트림 중간 부분의 CRA 픽쳐와 연관되는 선행 픽쳐의 존재 및 타입을 표시하는 정보를 디코더에 제공할 수 있게 한다. 보다 완전히 후술할 바와 같이, 이러한 CRA 픽쳐는 본 명세서에서 종종 BLA 픽쳐라고 지칭하며, 복수의 끊어진(broken) 링크 액세스 픽쳐 타입 중 하나를 가질 수 있다. 따라서, 도 5에 도시된 바와 같이, 이러한 실시예를 사용하는 인코더 또는 비디오 프로세싱 디바이스는 비트스트림 내에 BLA-타입 CRA 픽쳐를 보다 유연하게 배치할 수 있다. 도 5에서, 두 번째 CRA 픽쳐(디코딩 순서상 픽쳐 5) 뒤에는, 출력 순서상으로는 이 CRA 픽쳐보다 선행하는 2개의 선행 픽쳐(출력 순서상 픽쳐 5 및 6 대해 이 CAR 픽쳐는 출력 순서상 픽쳐 7)가 디코딩 순서상으로는 후속한다(디코딩 순서상 픽쳐 6 및 7). 이전의 방안에서는, 두 번째 CRA가 디코딩에서 CRA 픽쳐 이전에 기준 픽쳐에 대한 모션 보상 의존성을 갖는 선행 픽쳐를 가지고 이러한 기준 픽쳐가 이용 가능하다는 것이 보장되지 않기 때문에, 비트스트림 중간 부분의 CRA 픽쳐가 스캔, 패스트 포워드, 리와인드 또는 비트스트림 스위칭 동작의 일부로서 디코딩을 시작하기 위한 스플라이스 포인트 또는 랜덤 액세스 포인트로서 사용될 수 없었다. 가령, 도 5에서, 디코딩 순서상 여섯 번째 및 일곱 번째인 선행 픽쳐는 디코딩 순서상 두 번째인 픽쳐에 의존한다. 그러나, 개시된 기술의 실시예를 사용하면, 스플라이싱 동작 또는 랜덤 액세스 동작 또는 비트스트림 스위칭 동작이 발생할 때, (가령, 픽쳐를 BLA-유형 CRA 픽쳐(본 명세서에서는 종종 단순히 "BLA 픽쳐라고 함")로서 식별한 플래그 또는 신택스 요소를 사용하여) 두 번째 CRA 픽쳐가 BLA 픽쳐로서 지정될 수 있다. 이러한 표시는, BLA와 연관되는 임의의 디코딩 가능하지 않은 선행 픽쳐를 올바르게 처리하도록 (가령, 디코딩 가능하지 않은 선행 픽쳐를 디코딩하지 않거나, 디코딩 가능하지 않은 선행 픽쳐를 출력하지 않거나, 디코딩 가능하지 않은 픽쳐를 드롭핑하여) 디코더에 의해 사용될 수 있다. 또한, 보다 완전히 후술할 일부 구현에서, 다수의 타입의 BLA 픽쳐가 지정될 수 있어서, 선행 픽쳐가 BLA 픽쳐와 연관될 수 있는지 여부 및 선행 픽쳐의 타입에 관한 추가적인 정보를 디코더에 제공할 수 있다. 이들 다수의 BLA 타입은 추가 정보를 제공하여, 디코더가 비트스트림을 올바르게 디코딩하고 디코딩 가능한 픽쳐만을 출력할 수 있다.
소정 구현에서, CRA 픽쳐에 대한 신택스 요소는 CRA 픽쳐에 대한 선행 픽쳐가 이들 선행 픽쳐를 디코딩하기 위해 필요한 잃어버린(missing) 기준 픽쳐일 수 있다는 점에서 "끊어진 링크"의 존재 가능성을 표시한다. 예를 들어, 디코딩 가능하지 않은 선행 픽쳐가 존재할 수 있는지를 시그날링하는 플래그가 CRA 픽쳐의 픽쳐-레벨 정보에 추가된다. 플래그는 슬라이스 헤더 또는 수립될 수 있는 다른 신택스 위치 (가령, APS와 같은, 픽쳐 레벨 정보를 위한 다른 적합한 위치)에 추가될 수 있다. 일 특정 구현에서, 이 플래그가 "1"이면, 비트스트림은 앞선 기준 픽쳐를 잃어버려서 디코딩 가능하지 않은 CRA 픽쳐 중 선행 픽쳐를 포함하도록 허용된다(이는 비트스트림을 시작하는 CRA 픽쳐의 선행 픽쳐의 경우에 해당한다). 따라서, 디코딩 동안에, 플래그는 디코더에(디코딩 가능할 수 있는 선행 픽쳐를 포함하는) CRA 픽쳐와 연관되는 선행 픽쳐를 무시 또는 폐기하도록 시그날링한다.
특정 구현에서, "1"에 대응하는 끊어진 링크 플래그를 갖는 CRA 픽쳐는 다음의 경우를 제외하고는 IDR 픽쳐와 본질적으로 동일한 방식으로 동작할 것이다.
CRA 픽쳐는, 비트스트림에 존재하지 않는 픽쳐를 참조할 수 있는 선행 픽쳐가(비트스트림 순서상) 후속하도록 허용될 것이다. CRA 픽쳐의 선행 픽쳐는 디코더에 의해 무시되고 폐기될 것이다. 예를 들어, 디코더에 대한 표준은 디코더가 CRA 픽쳐의 선행 픽쳐 전부에 대한 디코딩 프로세스를 건너뛰고 이들을 출력하지 않도록 특정할 것이다(이는 비트스트림의 시작부분에서의 CRA 픽쳐의 경우에 해당한다). 그러므로, 선행 픽쳐 중 하나 이상의 사실 디코딩 가능하더라도, 끊어진 링크 플래그는 디코더에 CRA 픽쳐와 연관되는 선행 픽쳐가 무시되고 폐기되어야 한다고 표시한다.
또한, CRA의 픽쳐 순서 카운트는 "0"이 되도록 요구되지 않을 것이다. 대신, 하나의 예시적 구현에서, 픽쳐 순서 카운트 MSB는 "0"으로 설정되고 LSB는 CRA 픽쳐에서 송신된 LSB 값으로 설정될 것이다(이는 비트스트림의 시작부분의 CRA 픽쳐에 대해 특정된 바에 해당한다). 또한, 일부 구현에서, IDR 픽쳐의 픽쳐 순서 카운트는 0이 아닐 수 있다. 즉, IDR 픽쳐의 픽쳐 순서 카운트는 "0"이 되도록 요구되지 않는다.
소정 구현에서, "1"에 대응하는 끊어진 링크 플래그 (가령, broken_link_flag)를 갖는 CRA 픽쳐는 또한, IDR 픽쳐에 대해서와 동일한 방식으로 동작하는 no_output_of_prior_pics_flag 및 IDR 픽쳐의 idr_pic_id와 동일한 방식으로 동작하는 random_access_pic_id를 포함한다. 일부 구현에서, 현재 idr_pic_id는 random_access_pic_id로 개명되고, 단지 IDR 픽쳐만이 아닌 CRA 픽쳐 및 IDR 픽쳐 모두에 대해 제한사항이 적용된다. 또한, IDR 픽쳐와 마찬가지로, "1"에 대응하는 끊어진 링크 플래그를 갖는 CRA 픽쳐는 상이한 SPS를 활성화시키고 픽쳐 사이즈를 변경하는 등을 수행할 수 있다.
이 구현에서, 끊어진 링크 플래그의 값이 CRA 픽쳐에 대해 "0"일 때, 그 CRA 픽쳐가 비트스트림에서(디코딩 순서상) 첫 번째 픽쳐가 아닌 한, 비트스트림은 앞선 기준 픽쳐를 잃어버려서 디코딩 가능하지 않을 수 있는 CRA 픽쳐의 선행 픽쳐를 포함하도록 허용되지 않는다. 즉, 디코딩이 디코딩 순서상으로 보다 빠른 CRA 또는 IDR 픽쳐에서 시작할 때 이러한 선행 픽쳐가 완전히 디코딩 가능하지 않는 한, 비트스트림은 디코딩 순서상으로 "0"의 끊어진 링크 플래그를 갖는 CRA 픽쳐 후에 선행 픽쳐를 포함하지 않는다. 따라서, 디코딩 동안에, 플래그는 디코더에 CRA 픽쳐와 연관되는 선행 픽쳐를 디코딩하도록 시그날링한다. 그러나, CRA 픽쳐가 비트스트림의 첫 번째 픽쳐이고 "0"의 끊어진 링크 플래그를 갖는 경우, 플래그는 무시될 수 있고, 마치 끊어진 플래그가 "1"인 것처럼 CRA 픽쳐가 처리될 수 있다.
도 5에 도시된 예에서, 두 번째 CRA 픽쳐(디코딩 순서상 픽쳐 5)에 대해, 플래그의 값은 "1"일 수 있는데, 이는 랜덤 액세스 시에 일부 선행 픽쳐가 기준 픽쳐를 잃어버릴 수 있기 때문이다. 이는, 도 5의 두 번째 CRA 픽쳐가 이전에 가능했던 랜덤 액세스 기능보다 큰 랜덤 액세스 기능을 위해 사용될 수 있게 한다. 예를 들어, 두 번째 CRA 픽쳐는 이제 스캔, 패스트포워드, 리와인드 동작 또는 비트스트림 스위칭 동작의 일부로서, 시작 픽쳐로서 사용될 수 있다. 또한, 두 번째 CRA 픽쳐는 비트스트림이 두 번째 픽쳐에서 시작하도록 크롭핑된(cropped) 후 다른 비트스트림의 끝부분에 첨부되는 스플라이스 포인트로서 사용될 수 있다. 두 번째 CRA 픽쳐는 BLA 픽쳐("1"의 끊어진 링크 플래그 값)로서 식별되기 때문에, 최종 비트스트림은 올바르게 디코딩될 수 있으며 유효한 비트스트림을 나타낼 수 있다. 또한, 소정 구현에서, 비디오 인코더 또는 비디오 프로세싱 디바이스는 CRA 픽쳐의 상태를 변경하여 BLA 픽쳐가 될 수 있다. 예를 들어, 스플라이싱 동작의 일부로서, 비디오 프로세싱 디바이스는 CRA 픽쳐의 목적지를 수정하여 BLA 픽쳐라고 표시함으로써, 최종 스플라이싱된 비트스트림이 유효할 것이다. 세 번째 CRA 픽쳐(디코딩 순서상 픽쳐 11)에 대해, 플래그의 값은 "0"일 수 있는데, 이는 랜덤 액세스 시에 선행 픽쳐가 기준 픽쳐를 잃지 않을 것이기 때문이다.
전술한 실시예에서는, 디코더가 CRA 픽쳐와 연관되는 디코딩 가능하지 않은 선행 픽쳐를 건너뛰어야 하는지를 시그날링하는 "플래그"를 설명하였지만, 임의의 적합한 표시자가 사용될 수 있다. 예를 들어, 일부 구현에서, 픽쳐의 다양한 특성을 특정하는 다른 픽쳐 레벨 표시자 또는 신택스 요소가 사용된다. 일부 구현에서, 이 목적을 위해 사용되는 신택스 요소는, 소정 CRA 픽쳐와 연관되는 NAL(network abstraction layer) 유닛 타입(또는 비트스트림의 픽쳐와 연관되는 다른 표시자)으로서 알려진 신택스 표시자일 수 있다. 예를 들어, 하나의 NAL 유닛 타입 값은 잠재적 "끊어진 링크" 상태를 갖는 것으로 표시되는 CRA 픽쳐를 위해 사용될 수 있으며, 다른 NAL 유닛 타입 값은 이러한 잠재적 "끊어진 링크" 상태를 갖지 않는 것으로 표시되는 CRA 픽쳐를 위해 사용될 수 있다.
또한, 전술한 실시예에서는 "클린(clean)" 랜덤 액세스 픽쳐를 설명하지만, 본 명세서에서 개시되는 개선점은(복원 프레임 또는 비트스트림을 시작하기 위해 사용될 가능성이 있는 다른 픽쳐와 같은) 임의의 랜덤 액세스 픽쳐 또는 균등물과의 접속에 사용될 수 있다. 또한, 이러한 대안적 실시예에서, 표시자는(시간적 출력 순서에 기초하여 식별되는 선행 픽쳐뿐만 아니라, 가령, 어떤 다른 방식으로 식별되는 선행 픽쳐를 포함하는) 임의의 타입의 연관된 디코딩 가능하지 않은 픽쳐의 가능성을 시그날링하는 데에 사용될 수 있다.
전술한 실시예에서는, 픽쳐가 CRA 픽쳐의 선행 픽쳐인지를 판단함으로써(즉, 디코딩 순서상 CRA 픽쳐에 후속하는 픽쳐가 출력 순서상 이보다 선행하는지를 식별함으로써) 잠재적으로 디코딩 가능하지 않은 픽쳐를 식별하지만, 다른 분류 규칙 또는 표시자 또는 추가적 분류 규칙 또는 표시자가 잠재적으로 디코딩 가능하지 않은 픽쳐를 식별하는 데에 사용될 수 있다. 예를 들어, "플래그" 또는 신택스 요소 값, 또는 비트스트림의 픽쳐와 연관되는 다른 표시자는, 연관된 CRA 픽쳐의 출력 순서 위치에 대한 자신의 출력 순서 위치와 무관하게, 각 픽쳐가 잠재적으로 디코딩 가능하지 않은 픽쳐인지를 표시하며 각 픽쳐와 함께 송신될 수 있다. 다시 말해, 표시자는 잠재적으로 디코딩 가능하지 않은 픽쳐에 대해 시그날링된다. 일부 구현에서, 이 목적을 위해 사용되는 신택스 요소는 NAL 유닛 타입으로 알려진 신택스 표시자일 수 있다. 예를 들어, CRA 픽쳐가 아닌 것으로 표시되는 픽쳐에 있어서, 랜덤 액세스 디코딩 프로세스가 CRA 픽쳐의 위치에서 시작하거나 "끊어진 링크" CRA 픽쳐가 표시되었을 때 하나의 NAL 유닛 타입은 잠재적으로 디코딩 가능하지 않은 픽쳐로서 폐기될 픽쳐에 의해 사용될 수 있으며, 다른 NAL 유닛 타입은 디코딩 가능한 것으로 표시되는 픽쳐에 의해 사용될 수 있다. 잠재적으로 디코딩 가능하지 않은 픽쳐로서 폐기될 선행 픽쳐는 본 명세서에서 종종 TFD(tagged-for-discard) 픽쳐 또는 RASL(random access skipped leading) 픽쳐로 지칭된다(또는 비트스트림 내에 표시된다). 디코딩 가능한 선행 픽쳐는 본 명세서에서 종종 RADL(random access decodable leading) 픽쳐(또는 DLP (decodable leading picture))로서 지칭된다(또는 비트스트림 내에 표시된다).
일부 실시예에서, 픽쳐가 디코딩될 수 있는지에 대한 판단은 픽쳐의 디코딩 프로세스가 비트스트림 순서상 CRA 픽쳐 이전에 나타나는 일부 픽쳐에 의존할 수 있는지에 대한 식별을 포함할 뿐만 아니라, 픽쳐의 디코딩 프로세스가 비트스트림 순서상 둘 이상의 CRA 픽쳐 이전에 나타나는 일부 픽쳐에 의존할 수 있는지에 대한 식별도 포함할 수 있다. 이 판단은 유용할 수 있는데, 가령, 픽쳐가 랜덤 액세스 디코딩 프로세스가 개시된 후에 마주치게 되는 둘 이상의 CRA 픽쳐에 후속하는 픽쳐가 디코딩될 수 있는지를 디코더가 식별할 수 있게 하기 위해 통상적으로 필요하기 때문이다. 이러한 시나리오에서, 기준 픽쳐 선택을 다음과 같이 제한하는 것이 도움이 될 수 있다 - 픽쳐는, 디코딩 순서상 x개 보다 많은 CRA 픽쳐보다 선행하는 비트스트림의 어떠한 픽쳐도 인터-픽쳐 예측을 위한 기준으로서 사용해서는 안된다. 예를 들어, x는 2이다. 이러한 제한을 두지 않는다면 다수의 CRA 픽쳐가 마주친 후에도 디코더에 의한 랜덤 액세스를 수행할 때 복원이 보장되지 않을 수 있다.
많은 관점에서, 어떤 환경 하에서 폐기될 픽쳐가 명시적으로 표시되는 경우에 IDR 픽쳐의 사용은 불필요하다. 디코더에 의한 랜덤 액세스를 수행할 때 디코딩되고 출력될(출력 순서상) 선행 픽쳐가 비트스트림 순서상 IDR 픽쳐에 후속할 수 있다. 픽쳐의 디코딩 여부의 분류가 픽쳐 순서 카운트에 의해 암시적으로 결정되지 않고 (NAL 유닛 타입과 같은) 명시적 신택스 표시자에 의해 결정되는 경우, CRA 픽쳐는 IDR 픽쳐의 모든 기능을 가질 수 있다. 예를 들어, 어떤 특정 구현에서, 비트스트림의 픽쳐와 연관되는 신택스 요소 값 또는 (NAL 유닛 타입 값과 같은) 다른 표시자는 적어도 다음의 4개의 픽쳐 타입을 식별하는 데에 사용될 수 있다.
Figure 112020051105480-pat00001
픽쳐가 "끊어진 링크"를 갖지 않는 CRA 픽쳐라고 식별하는 하나의 타입
Figure 112020051105480-pat00002
픽쳐가 "끊어진 링크"를 갖는 CRA 픽쳐라고 식별하는 하나의 타입
Figure 112020051105480-pat00003
픽쳐가 디코딩 프로세스가 비트스트림 순서상 임의의 앞선 CRA 픽쳐의 위치에서 시작할 때 항상 디코딩될 픽쳐라고 식별하는 하나의 타입, 및
Figure 112020051105480-pat00004
픽쳐가 랜덤 액세스가 비트스트림 순서상 앞선 CRA 픽쳐의 랜덤 액세스 포인트에서 수행되었을 때 또는 비트스트림 순서상 앞선 CRA 픽쳐가 "끊어진 링크"로서 표시될 때 디코딩되지 않을 픽쳐라고 식별하는 하나의 타입.
VI. RAP 픽쳐에 대한 전략적 제한사항 및 유닛 타입
HEVC 드래프트 JCTVC-I1003_d5에서, RAP("random access point") 픽쳐는 NAL 유닛 타입 4 내지 8로 표시된다. RAP 픽쳐의 특징에 따라, 어떤 타입의 미디어 콘테이너 포맷에 있어서, 유닛 타입은 후술할 3개의 SAP("stream access point") 타입 중 하나로 맵핑될 수 있다. 이들 또한 2012년 4월 제네바 제100회 MPEG 미팅, w12640, ISO/IEC 14496-12 제4판, "Information technology - Coding of audio-visual objects - Part 12:ISO base media file format"에서 정의된다. 총 6개의 SAP 타입이 정의되지만, RAP 픽쳐는 이 문헌의 SAP 타입 중 3개의 타입으로만 맵핑될 수 있다. 이용 가능한 SAP 타입은 타입 1, 타입 2 및 타입 3을 포함한다.
타입1은 "폐쇄 GOP 랜덤 액세스 포인트(closed GOP random access point)"의 일부 예(디코딩 순서상 포인트 ISAP로부터 시작하는 모든 액세스 유닛이 올바르게 디코딩될 수 있어서, 틈이 없이 올바르게 디코딩된 액세스 유닛의 연속적인 시간 시퀀스를 얻음)에 대응한다. 여기서, 디코딩 순서상 액세스 유닛은 또한 프리젠테이션 순서상 첫 번째 액세스 유닛이다.
타입2는 "폐쇄 GOP 랜덤 액세스 포인트"의 다른 예에 대응한다. 여기서, 포인트 ISAU로부터 시작하는 미디어 스트림의 디코딩 순서상 첫 번째 액세스 유닛은 프리젠테이션 순서상 첫 번째 액세스 유닛이 아니다.
타입 3은 "개방 GOP 랜덤 액세스 포인트(open GOP random access point)"의 예에 대응한다. 여기서, 올바르게 디코딩될 수 없으며 시간 TSAP보다 작은 프리젠테이션 시간을 갖는, 디코딩 순서상 포인트 ISAU에 후속하는 일부 액세스 유닛이 존재한다.
시스템의 관점에서, SAP 맵핑을 최대한 간단하게 하면서 최대한 많은 타입을 허용하는 것이 바람직하다. 개시된 기술의 일부 실시예에서, RAP 픽쳐는 허용된 유닛 타입에 대한 다음 제한사항 및 조절사항 중 하나 이상을 포함한다.
다음 예에서, RAP 픽쳐는 NAL 유닛 타입에 따라 CRA 픽쳐, BLA("broken link access") 픽쳐 또는 IDR 픽쳐로 더 분류될 수 있다. JCTVC-11003_d5의 HEVC 디자인에서, CRA 픽쳐는 NAL 유닛 타입 4 및 5로 표시되고, BLA 픽쳐는 NAL 유닛 타입 6 및 7로 표시되며, IDP 픽쳐는 NAL 유닛 타입 8로 표시된다. NAL 유닛 타입 5 및 7은 CRA 또는 BLA 픽쳐가 어떠한 연관된 TFD("tagged for discard")도 가지지 않을 때에만 CRA 및 BLA 픽쳐에 대해 각각 사용될 수 있다.
A. IDR 픽쳐의 제거 또는 IDR 픽쳐에 대한 제한사항
섹션 V에서 전술한 실시예의 일부와 일치하게, BLA 픽쳐의 개념은 제안JCTVC-I0404로부터의 JCTVC-I1003_d5의 HEVC 디자인에 채택되었다(2012년 4월, 제네바, 제9회 미팅, JCTVC-I0404, G. J. Sullivan의 "CRA pictures with broken links"). 이 제안은 또한, CRA/BLA 픽쳐는 IDR 픽쳐( 또는 그 이상)의 기능을 달성할 수 있음을 지적하였으며, 따라서 IDR 픽쳐의 개념을 HEVC 설계로부터 제외할 것을 권고하였지만, IDR 픽쳐는 JCTVC-I1003_d5의 HEVC 설계에 유지되었다.
개시된 기술의 소정 실시예에서, IDR 픽쳐가 여전히 사용되지만, 인코딩은 IDR 픽쳐의 SAP 타입으로의 맵핑을 간단하게 하는 추가 제한사항을 따른다.
JCTVC-11003의 HEVC 설계에서, IDR 픽쳐는 SAP 타입 1 또는 2로 맵핑할 수 있다. IDR 픽쳐가 선행 픽쳐(디코딩 순서상으로는 현재 픽쳐에 후속하지만 출력 순서상으로는 이보다 선행하는 코딩된(그리고 디코딩 가능한) 픽쳐)를 갖는 경우, 이는 SAP 타입 2로 맵핑될 것이다. IDR 픽쳐가 선행 픽쳐를 갖지 않는 경우, 이는 SAP 타입 1에 맵핑될 것이다. 그래서, 시스템이 IDR 픽쳐를 만나게 될 때, 이 시스템은 SAP 타입으로의 올바른 맵핑을 결정하기 위해 선행 픽쳐가 존재하는지를 확인해야 한다. 이는 흔치 않은 상황을 확인하기 위해 컴퓨팅 리소스 및 저장 리소스를 불필요하게 소비할 수 있다.
개시된 기술의 일 실시예에 따르면, IDR 픽쳐는 선행 픽쳐를 갖지 않도록 제한된다. 이러한 제한을 둠으로써, IDR 픽쳐는 항상 타입 1의 SAP로 맵핑한다.
B. CRA/BLA 픽쳐에 대한 NAL 유닛 타입
개시된 기술의 소정 구현에서, TFD 픽쳐가 존재하지 않을 때, CRA 픽쳐의 기능은 BAL 픽쳐의 기능과 동일하다. 따라서, 이 목적을 위해 2개의 NAL 유닛 타입을 정의할 필요를 피할 수 있으며, 하나의 타입 값으로 연관된 TFD 픽쳐를 갖지 않는 CRA 픽쳐 또는 BLA 픽쳐를 표시할 수 있다.
또한, 연관된 TFD 픽쳐를 갖지 않는 CRA/BLA 픽쳐는 선행 픽쳐를 갖는지의 여부에 따라 SAP 타입 1 또는 2로 맵핑할 수 있다. 특정 구현에서, 중복된 NAL 유닛 타입 중 하나는 (CRA/BLA 픽쳐가 선행 픽쳐를 갖지 않는 경우에 발생하는) CRA/BLA 픽쳐가 직접 SAP 타입 1으로 맵핑하는 경우를 표시하는 데에 사용될 수 있다. 이는 선행 픽쳐를 갖지 않는 CRA/BLA의 공통적인 경우에 있어서, 적합한 SAP 타입으로의 맵핑을 간단하게 한다.
일 특정 구현은 이하의 표 1에서 정의되는 바와 같은 NAL 유닛 타입(이 예에서는, NAL 유닛 타입 4 내지 7)을 포함한다.
Figure 112020051105480-pat00005
다른 특정 구현은 이하에서 정의되는 바와 같은 NAL 유닛 타입(이 예에서는, NAL 유닛 타입 16 내지 21)을 포함한다. 이 예에서, TFD 선행 픽쳐는 RASL("random access skipped leading") 픽쳐로서 지칭된다. 특정 구현에서, 모든 RASL 픽쳐는 연관된 BLA 또는 CRA 픽쳐의 선행 픽쳐이다. 연관된 RAP 픽쳐가 BLA 픽쳐이거나 비트스트림에서 첫 번째 코딩된 픽쳐인 경우, RASL 픽쳐는 출력되지 않거나 올바르게 디코딩 가능하지 않을 수 있다. 이는, RASL 픽쳐가 비트스트림에 존재하지 않는 픽쳐에 대한 참조를 포함하기 때문이다. 또한, RASL 픽쳐는 RASL 픽쳐 이외의 픽쳐의 디코딩 프로세스를 위한 기준 픽쳐로서 사용되지 않는다. 소정 구현예에서, RASL 픽쳐가 존재하는 경우에 이들 전부가 동일한 연관된 RAP 픽쳐의 트레일링 픽쳐(trailing pictures) 전부보다 디코딩 순서상 선행한다. 또한, 이하의 예에서, 디코딩 가능한 선행 픽쳐는 RADL("random access decodable leading") 픽쳐로서 지칭된다. 특정 구현에서, RADL 픽쳐 전부가 선행 픽쳐이며, RADL 픽쳐는 동일한 연관된 RAP 픽쳐의 트레일링 픽쳐의 디코딩 프로세스에 대한 기준 픽쳐로서 사용되지 않는다. 소정 구현예에서, RASL 픽쳐가 존재하는 경우에 이들 전부가 동일한 연관된 RAP 픽쳐의 트레일링 픽쳐 전부보다 디코딩 순서상 선행한다. 또한, 특정 구현에서, BLA 픽쳐는 (a) I 슬라이스만을 포함하고, 비트스트림에서 디코딩 순서상 첫 번째 픽쳐이거나 비트스트림에서 추후에 나타날 수 있으며, (b) 새로운 코딩된 비디오 시퀀스를 시작하고, IDR 픽쳐로서 디코딩 프로세스에 대해 동일한 효과를 가지며, (c) 비어 있지 않은 기준 픽쳐 세트를 특정하는 신택스 요소를 포함한다.
Figure 112020051105480-pat00006
이와 달리, 다른 타입 값이 비디오 기본 비트스트림 데이터 (가령, 다른 NAL 유닛 타입 값 또는 기타 비디오 타입 값) 및/또는 미디어 콘테이너 포맷 데이터 (가령, 다른 SAP 타입 값 또는 기타 콘테이너 포맷 값)를 위해 사용될 수 있으며, RAP에 대한 이들 제한사항 및 픽쳐 타입의 허용된 조합 중 하나 이상과 일치한다.
C. 선행 픽쳐의 비트스트림 순서에 대한 제한사항
인코딩 시스템이 RAP 픽쳐를 가능한 SAP 타입 중 하나로 맵핑하는 경우, 선행 픽쳐의 존재를 확인하고, 존재한다고 확인되면 선행 픽쳐 중 어느 것이 TFD 픽쳐인지를 확인한다. JCTVC-I1003_d5의 HEVC 디자인의 인터-픽쳐 의존성에 대한 제한사항에 따르면, 현재 RAP 픽쳐의 선행 픽쳐는 현재 RAP 픽쳐 및 다음 RAP 픽쳐 후에 비트스트림의 임의의 곳에 존재할 수 있다. 선행 픽쳐에 대한 검색 범위는 매우 길 수 있다.
이 검색을 보다 간단히 하기 위해, 개시된 기술의 소정 구현에 따르면, RAP 픽쳐에 대한 임의의 비선행 픽쳐(non-leading picture)에 앞서, 비트스트림의 선행 픽쳐 전부가(즉, 디코딩 순서상으로) 발생하는 것을 보장하는 제한사항이 존재한다. 즉, 특정 RAP 픽쳐에 있어서, 그 RAP 픽쳐에 대한 임의의 비선행 픽쳐에 앞서 그 RAP 픽쳐에 대한 선행 픽쳐 전부가 비트스트림에서(즉, 디코딩 순서상으로) 발생하도록 비트스트림이 제한된다.
VII. 개시된 기술의 양태를 구현하기 위한 일반적인 실시예
도 6 내지 11은 개시된 기술에 따른 실시예를 설명하는 흐름도이다. 도 6 내지 11에 도시된 방법은 전술하거나 후술할 특정 양태 중 하나 이상을 포함할 수 있다. 또한, 도 6 내지 11에 도시된 방법은 제한적인 것으로 해석되어서는 안되며, 도시된 방법의 동작 중 하나 이상이 단독으로 또는 다양한 조합 또는 세부 조합으로 사용될 수 있다. 또한, 방법의 동작의 시퀀스는, 일부 경우에, 재배열되거나 적어도 부분적으로 동시에 수행될 수 있다. 또한, 전술한 바와 같이, 도 6 내지 11에 개시된 방법은 컴퓨터로 판독 가능한 저장 매체(이러한 저장 매체는 진행하는 파(propagating waves)를 포함하지 않음)에 저장되는 컴퓨터로 실행 가능한 인스트럭션으로서 구현되거나 디지털 미디어 프로세싱 시스템에 의해 구현될 수 있다.
도 6은 인코더 또는 디지털 미디어 프로세싱 툴 또는 디바이스에 의해 수행될 수 있는 예시적 방법(600)이다.
단계(610)에서, 픽쳐 (가령, 비디오 시퀀스의 픽쳐 그룹으로부터의 픽쳐)는 복수의 픽쳐 타입 중 하나로서 지정된다. 소정 실시예에서, 픽쳐 타입은 다음 중 하나 이상을 포함한다. (1) 픽쳐가 RAP(random access point) 픽쳐로서 사용될 수 있는 BLA(broken link access) 픽쳐라고 표시하고, 또한 픽쳐가 어떠한 연관된 디코딩 가능하지 않은 선행 픽쳐도 갖지 않지만 하나 이상의 연관된 디코딩 가능한 선행 픽쳐를 가질 수 있다고 표시하는 타입; (2) 픽쳐가 RAP 픽쳐로서 사용될 수 있는 BLA 픽쳐라고 표시하고, 또한 픽쳐가 어떠한 연관된 선행 픽쳐도 갖지 않는다고 표시하는 타입; (3) 픽쳐가 RAP 픽쳐로서 사용될 수 있는 BLA 픽쳐라고 표시하고, 또한 픽쳐가 하나 이상의 연관된 디코딩 가능한 선행 픽쳐 또는 디코딩 가능하지 않은 선행 픽쳐를 가질 수 있다고 표시하는 타입; (4) 인코딩된 픽쳐가 연관된 RADL 픽쳐를 가질 수 있는 IDR(instantaneous decoding refresh) 픽쳐라고 표시하는 타입; (5) 인코딩된 픽쳐가 어떠한 연관된 선행 픽쳐도 갖지 않는IDR 픽쳐라고 표시하는 타입; 및/또는 (6) 인코딩된 픽쳐가 RAP 픽쳐로서 사용될 수 있는 CRA(clean random access) 픽쳐라고 표시하는 타입.
전술한 바와 같이, 타입 중 하나 이상이 픽쳐가 BLA 픽쳐라고 표시한다. 소정 실시예에서, BLA 픽쳐는 I 슬라이스만을 포함하고, 비트스트림에서 디코딩 순서상 첫 번째 픽쳐이거나 비트스트림에서 추후에 나타날 수 있다. 또한, 이들 실시예에서, BLA 픽쳐는 새로운 코딩된 비디오 시퀀스를 시작하며, 디코딩 프로세스에 대해 IDR 픽쳐와 동일한 효과를 가진다. 그러나, BLA 픽쳐는 (디코딩 동안에 무시될 수 있는) 비어있지 않은 기준 픽쳐 세트를 특정하는 신택스 요소를 포함한다.
일부 실시예에서, 전술한 제 1 BLA 타입은, BLA 픽쳐가 연관된 RASL(random access skipped leading) 픽쳐를 갖지 않지만 디코딩되도록 특정될 연관된 RADL(random access decodable leading) 픽쳐를 갖는다고 표시한다. (가령, NAL 유닛 타입이 RASL 픽쳐 또는 RADL 픽쳐로서 선행 픽쳐를 특정하도록 사용될 수 있다.) 소정 구현에서, 모든 RASL 픽쳐는 연관된 BLA 또는 CRA 픽쳐의 선행 픽쳐이다. 연관된 RAP 픽쳐가 BLA 픽쳐이거나 비트스트림에서 첫 번째 코딩된 픽쳐인 경우, RASL 픽쳐는 디코더에 의해 출력되지 않거나 올바르게 디코딩 가능하지 않을 수 있다. 이는, RASL 픽쳐가 비트스트림에 존재하지 않는 픽쳐에 대한 참조를 포함할 수 있기 때문이다. RASL 픽쳐는 RASL 픽쳐 이외의 픽쳐의 디코딩 프로세스를 위한 기준 픽쳐로서 사용되지 않는다. 또한, 소정 구현예에서, RASL 픽쳐가 존재하는 경우에 이들 전부가 동일한 연관된 RAP 픽쳐의 트레일링 픽쳐 전부보다 디코딩 순서상 선행한다. 또한, 일부 구현에서, 모든 RADL 픽쳐가 선행 픽쳐이다. RADL 픽쳐는 동일한 연관된 RAP 픽쳐의 트레일링 픽쳐의 디코딩 프로세스를 위한 기준 픽쳐로서 사용되지 않는다. 또한, 소정 구현예에서, RADL 픽쳐가 존재하는 경우에 이들 전부가 동일한 연관된 RAP 픽쳐의 트레일링 픽쳐 전부보다 디코딩 순서상 선행한다. 이 타입은 다양한 이름을 가질 수 있지만, 일 특정 구현에서, 이 타입은 "BLA_W_DLP"라고 명명된다.
일부 실시예에서, 전술한 제 2 BLA 타입은 BLA 픽쳐가 어떠한 연관된 선행 픽쳐도 갖지 않는다고 표시한다. 이 타입은 다양한 이름을 가질 수 있지만, 일 특정 구현에서, 이 타입은 "BLA_N_LP"라고 명명된다.
소정 실시예에서, 전술한 제 3 BLA 타입은 BLA 픽쳐가 연관된 RASL 픽쳐를 가질 수 있다고 표시한다. 연관된 RASL 픽쳐는 비트스트림에 존재하지 않는 픽쳐에 대한 참조를 포함할 수 있기 때문에 디코더에 의해 출력되지 않고 디코딩 가능하지 않을 수 있다. 또한, 이 타입은 BLA 픽쳐가 디코딩되도록 특정된 연관된 RADL 픽쳐를 가질 수 있다고 표시한다. 이 타입은 다양한 이름을 가질 수 있지만, 일 특정 구현에서, 이 타입은 "BLA_W_LP"라고 명명된다.
일부 실시예에서, 전술한 제 4 타입은 픽쳐가 비트스트림에 존재하는 연관된 RASL 픽쳐를 갖지 않지만 비트스트림에서 연관된 RADL을 가질 수 있다고 표시한다. 특정 구현에서, IDR 픽쳐는 I 슬라이스만을 포함하고, 비트스트림에서 디코딩 순서상 첫 번째 픽쳐이거나 비트스트림에서 추후에 나타날 수 있다. 각 IDR 픽쳐는 디코딩 순서상 코딩된 비디오 시퀀스의 첫 번째 픽쳐이다. IDR 픽쳐는 연관된 RASL 픽쳐를 갖지 않는다. 이 타입은 다양한 이름을 가질 수 있지만, 일 특정 구현에서, 이 타입은 "IDR_W_DLP"라고 명명된다.
소정 실시예에서, 전술한 제 5 타입은 픽쳐가 어떠한 연관된 선행 픽쳐도 갖지 않는 IDR 픽쳐라고 표시한다. 이 타입은 다양한 이름을 가질 수 있지만, 일 특정 구현에서, 이 타입은 "IDR_N_LP"라고 명명된다.
일부 실시예에서, 전술한 제 6 타입은 픽쳐가 CRA 픽쳐라고 표시한다. 특정 구현에서, CRA 픽쳐는 I 슬라이스만을 포함하고, 비트스트림에서 디코딩 순서상 첫 번째 픽쳐이거나 비트스트림에서 추후에 나타날 수 있다. 또한, CRA 픽쳐는 연관된 RADL 또는 RASL 픽쳐를 가질 수 있다. CRA 픽쳐가 비트스트림에서 디코딩 순서상 첫 번째 픽쳐인 경우, CRA 픽쳐는 디코딩 순서상 코딩된 비디오 시퀀스의 첫 번째 픽쳐이며, 연관된 RASL 픽쳐는 비트스트림에 존재하지 않는 픽쳐에 대한 참조를 포함할 수 있기 때문에, 어떠한 연관된 RASL 픽쳐도 디코더에 의해 출력되지 않고 디코딩 가능하지 않을 수 있다. 이 타입은 다양한 이름을 가질 수 있지만, 일 특정 구현에서, 이 타입은 "CRA_NUT"라고 명명된다.
단계(612)에서, 비트스트림의 적어도 일부가 생성된다. 도시된 실시예에서, 비트스트림의 적어도 일부는 (가령, NAL 유닛 타입과 같은 신택스 요소로서) 픽쳐에 대해 지정된 픽쳐 타입을 포함한다.
소정 구현에서, 방법(600)은 인코더에 의해 수행되며, 픽쳐를 인코딩하는 단계를 더 포함한다. 비트스트림은 인코딩된 픽쳐를 더 포함할 수 있다. 다양한 인코딩 기술이 사용될 수 있다. 예를 들어, 전술한 인코딩 기술 중 하나가 사용될 수 있다. 소정 실시예에서, BLA 픽쳐로 지정된 인코딩된 픽쳐는 비트스트림의 첫 번째 픽쳐가 아니다.
일부 실시예에서, 이 방법은 하나 이상의 선행 픽쳐 및 인코딩된 픽쳐와 연관되는 비선행 픽쳐를 인코딩하는 단계를 더 포함한다. 이러한 실시예에서, 비트스트림의 적어도 일부를 생성하는 동작은 인코딩된 선행 픽쳐 전부가 비트스트림의 적어도 일부에서 인코딩된 비선행 픽쳐 전부보다 선행하도록 인코딩된 선행 픽쳐 및 인코딩된 비선행 픽쳐의 순서를 정하는 단계를 포함할 수 있다. 또한, 선행 픽쳐는 (가령, NAL 유닛 타입 값을 사용하여) RADL 또는 RASL 픽쳐로서 지정될 수 있다.
도 7은 디코더 또는 디지털 미디어 프로세싱 툴 또는 디바이스에 의해 수행되는 예시적 방법(700)이다. 전반적으로, 이 방법(700)은, 가령, 도 6의 방법(600)으로부터 생성되는 비트스트림을 디코딩하도록 수행될 수 있다.
단계(710)에서, 비트스트림의 적어도 일부가 수신된다(가령, 버퍼링되거나, 액세스되거나, 로딩되거나 또는 추가 처리를 위해 준비된다). 도시된 실시예에서, 비트스트림의 적어도 일부는 인코딩된 픽쳐 및 인코딩된 픽쳐에 대한 지정된 픽쳐 타입을 포함한다. 픽쳐 타입은 복수의 픽쳐 타입 중 하나로부터 선택된다. 소정 실시예에서, 복수의 픽쳐 타입은 다음 중 하나 이상을 포함한다. (1) 인코딩된 픽쳐가 RAP(random access point) 픽쳐로서 사용될 수 있는 BLA(broken link access) 픽쳐라고 표시하고, 또한 인코딩된 픽쳐가 어떠한 연관된 디코딩 가능하지 않은 선행 픽쳐도 갖지 않지만 하나 이상의 연관된 디코딩 가능한 선행 픽쳐를 가질 수 있다고 표시하는 타입; (2) 인코딩된 픽쳐가 RAP 픽쳐로서 사용될 수 있는 BLA 픽쳐라고 표시하고, 또한 인코딩된 픽쳐가 어떠한 연관된 선행 픽쳐도 갖지 않는다고 표시하는 타입; (3) 인코딩된 픽쳐가 RAP 픽쳐로서 사용될 수 있는 BLA 픽쳐라고 표시하고, 또한 인코딩된 픽쳐가 하나 이상의 연관된 디코딩 가능한 선행 픽쳐 또는 디코딩 가능하지 않은 선행 픽쳐를 가질 수 있다고 표시하는 타입; (4) 인코딩된 픽쳐가 연관된 RADL 픽쳐를 가질 수 있는 IDR(instantaneous decoding refresh) 픽쳐라고 표시하는 타입; (5) 인코딩된 픽쳐가 어떠한 연관된 선행 픽쳐도 갖지 않는IDR 픽쳐라고 표시하는 타입; 및/또는 (6) 인코딩된 픽쳐가 RAP 픽쳐로서 사용될 수 있는 CRA(clean random access) 픽쳐라고 표시하는 타입. 픽쳐 타입에 대한 예시적 구현에 관한 추가적인 세부사항은 도 6을 참조하여 전술하였다.
단계(712)에서, 인코딩된 픽쳐가 디코딩된다. 다양한 디코딩 기술이 사용될 수 있다. 예를 들어, 전술한 디코딩 기술 중 하나가 사용될 수 있다.
소정 실시예에서, 인코딩된 픽쳐는 비트스트림의 첫 번째 픽쳐가 아니다. 일부 실시예에서, 이 방법은 단계(710)의 인코딩된 픽쳐와 연관되는 하나 이상의 선행 픽쳐 및 단계(710)의 인코딩된 픽쳐와 연관되는 하나 이상의 비선행 픽쳐를 디코딩하는 단계를 더 포함한다. 이러한 실시예에서, 비트스트림의 적어도 일부는, 첫 번째 픽쳐와 연관되는 인코딩된 선행 픽쳐 전부가 첫 번째 픽쳐와 연관되는 인코딩된 비선행 픽쳐 전부보다 앞서도록 순서가 정해질 수 있다. 또한, 선행 픽쳐는 (가령, NAL 유닛 타입 값을 사용하여) RADL 또는 RASL 픽쳐로서 지정될 수 있다.
도 8은 인코더 또는 디지털 미디어 프로세싱 툴 또는 디바이스에 의해 수행되는 예시적 방법(800)이다.
단계(810)에서, 비트스트림의 적어도 일부가 생성된다. 도시된 실시예에서, 비트스트림은, 비트스트림의 초기 픽쳐가 아닌 랜덤 액세스 포인트픽쳐를 포함하고 (가령, 랜덤 액세스 포인트 픽쳐는 비트스트림의 초기 픽쳐에 후속하는 픽쳐 순서 위치에 존재한다) 랜덤 액세스 포인트 픽쳐가 하나 이상의 연관된 디코딩 가능하지 않은 선행 픽쳐를 갖도록 생성된다. 또한, 도시된 실시예에서, 비트스트림은, 랜덤 액세스 포인트 픽쳐가 디코더가 디코딩을 시작할 수 있는 픽쳐라고 시그날링하는 디코더에 대한 표시를 포함하도록 생성된다.
소정 구현에서, 이 표시는 추가 정보를 포함한다. 예를 들어, 이 표시는 또한, RAP 픽쳐가 어떤 연관된 선행 픽쳐를 갖는지를 표시하고, 인코딩된 픽쳐가 어떤 연관된 선행 픽쳐를 갖는 경우에는 연관된 선행 픽쳐 전부가 디코딩 가능한지를 표시할 수 있다. 이 표시는 다양한 포맷을 가질 수 있다. 예를 들어, 일 구현에서, 이 표시는 (가령, 표 2에 도시된 바와 같은 NAL 유닛 타입과 같은) 신택스 요소이다. 일부 실시예에서, 비트스트림의 적어도 일부는 인코딩된 픽쳐에 대한 하나 이상의 선행 픽쳐 및 인코딩된 픽쳐에 대한 하나 이상의 비선행 픽쳐를 더 포함한다. 이러한 구현에서, 비트스트림의 적어도 일부를 생성하는 동작은, 선행 픽쳐 전부가 비선행 픽쳐보다 선행하도록 인코딩된 픽쳐에 대한 선행 픽쳐 및 인코딩된 픽쳐에 대한 비선행 픽쳐의 순서를 정하는 단계를 포함할 수 있다.
단계(812)에서, (가령, 컴퓨터로 판독 가능한 저장 매체에 저장하거나, 파일에 기록하거나, 또는 다른 이러한 형태의 출력으로) 비트스트림의 적어도 일부가 출력된다.
도 9은 디코더 또는 디지털 미디어 프로세싱 툴 또는 디바이스에 의해 수행되는 예시적 방법(900)이다.
단계(910)에서, 비트스트림의 적어도 일부가 수신된다. 도시된 실시예에서, 비트스트림의 적어도 일부는 비트스트림의 초기 픽쳐에 후속하는 픽쳐 순서 위치에 랜덤 액세스 포인트 픽쳐를 포함한다. 또한, 비트스트림의 적어도 일부는 랜덤 액세스 포인트 픽쳐와 연관되는 하나 이상의 디코딩 가능하지 않은 선행 픽쳐를 포함한다. 비트스트림의 적어도 일부는 또한, 랜덤 액세스 포인트 픽쳐가 어떤 연관된 선행 픽쳐를 갖는지의 표시와, 랜덤 액세스 포인트 픽쳐가 어떤 연관된 선행 픽쳐를 갖는 경우에는 연관된 선행 픽쳐 전부가 디코딩 가능한지의 표시를 포함할 수 있다. 이 표시는 다양한 포맷을 가질 수 있다. 예를 들어, 일 구현에서, 이 표시는, 랜덤 액세스 포인트 픽쳐가 어떤 연관된 선행 픽쳐를 갖는지와, 랜덤 액세스 포인트 픽쳐가 어떤 어떤 연관된 선행 픽쳐를 갖는다면 연관된 선행 픽쳐 전부가 디코딩 가능한지를 시그날링하는 신택스 요소 (가령, 표 2에 도시된 NAL 유닛 타입 값)이다.
단계(912)에서, 랜덤 액세스 포인트 픽쳐가 디코딩된다.
도 10은 인코더 또는 디지털 미디어 프로세싱 툴 또는 디바이스에 의해 수행되는 예시적 방법(1000)이다.
단계(1010)에서, RAP(random access point)로 지정되는 픽쳐를 포함하는 비트스트림이 생성된다. 또한, 이 생성하는 단계는, RAP에 대한 모든 선행 픽쳐가 RAP에 대한 임의의 비선행 픽쳐보다 디코딩 순서상 앞서도록 수행된다. 단계(1012)에서, (가령, 컴퓨터로 판독 가능한 저장 매체에 비트스트림을 저장하거나 비트스트림을 파일에 기록함으로써) 비트스트림이 출력된다.
도 11은 디코더 또는 디지털 미디어 프로세싱 툴 또는 디바이스에 의해 수행되는 예시적 방법(1100)이다.
단계(1110)에서, 복수의 픽쳐에 대한 인코딩된 데이터를 포함하는 비트스트림이 수신된다(가령, 메모리에 버퍼링되거나, 액세스되거나, 로딩되거나 또는 추가 처리를 위해 입력된다). 도시된 실시예에서, 비트스트림은 "RAP(random access point)" 픽쳐로 지정되는 픽쳐를 포함한다. 또한, 도시된 실시예에서, 비트스트림은, RAP에 대한 모든 선행 픽쳐가 RAP에 대한 임의의 비선행 픽쳐보다 디코딩 순서상 앞선다는 제한사항 하에서 생성되었다.
단계(1112)에서, 복수의 픽쳐가 디코딩된다.
개시된 기술의 실시예는 비디오 재생 품질에 실질적으로 영향을 주지 않고, 디코더가 디코딩을 시작할 수 있는 이용 가능한 랜덤 액세스 포인트의 수를 증가시키는 데에 사용될 수 있다. 따라서, 개시된 기술의 실시예는 비디오 코딩 시스템이 동작할 수 있는 속도를 향상시키고 보다 끊김 없이 재생할 수 있다. 예를 들어, BLA 픽쳐 및 연관된 표시자의 사용은, 디코딩 프로세스를 시작하기 위한 랜덤 액세스 포인트의 수를 증가시키고 랜덤 액세스 포인트 (가령, BLA 픽쳐)에서 시작하는 비디오를 적합하게 처리하도록 디코더에 의해 사용될 수 있는 정보를 제공함으로써, 패스트포워드 동작, 리와인드 동작, 스캐닝 동작, 스플라이싱 동작 또는 비디오 스트림간 전환 동작과 같은 다양한 동작의 성능을 향상시킬 수 있다. 이하의 도 12 및 13은 본 명세서에서 개시되는 BLA 기술의 장점을 취하는 예시적 비디오 프로세싱 방법을 제공한다. 개시된 기술은, 적응적 비디오 전송, 프로덕션 편집, 광고 삽입 등을 유연하게 수행하도록 비디오 인코딩 또는 비디오 디코딩 시스템에서 사용될 수 있다.
도 12은 미디어 프로세싱 툴 또는 디바이스에 의해 수행되는 예시적 방법(1200)이다.
단계(1210)에서, 첫 번째 비트스트림 부분이 디코딩된다. 단계(1212)에서, (가령, 픽쳐에 대한 NAL 유닛 타입 값을 파싱하고 프로세싱함으로써) 두 번째 비트스트림 부분의 인코딩된 픽쳐가 끊어진 링크 액세스 픽쳐라는 표시가 검출된다. 단계(1214)에서, 두 번째 비트스트림 부분의 적어도 일부가 끊어진 링크 액세스 픽쳐에서 시작하여 디코딩된다. 소정 구현에서, 디코딩은 끊어진 링크 액세스 픽쳐와 연관되는 두 번째 비트스트림 중 하나 이상의 픽쳐를 건너뛰는 단계( skipping)(가령, 디코딩하지 않거나 출력하지 않는 단계)를 포함한다. 예를 들어, 디코더는 RADL 픽쳐로서 지정되는 선행 픽쳐를 디코딩하고 RASL 픽쳐로서 지정되는 픽쳐의 디코딩을 건너뛸 수 있다. 단계(1216)에서, 첫 번째 비트스트림 부분으로부터의 디코딩된 픽쳐가 출력되고, 두 번째 비트스트림 부분으로부터의 디코딩된 픽쳐가 후속하여 출력된다.
예시적 방법(1200)은 미디어 프로세싱 디바이스 (가령, 비디오 재생 툴 또는 디바이스)에 의해 구현되는 (가령, 비디오 스트림의 특정 포인트 또는 시각으로 스캔하고자 하는 사용자에 의해 개시되는) 패스트포워드 동작, 리와인드 동작 또는 스캔 동작의 일부로서 수행될 수 있다. 이러한 예에서, 비트스트림 부분들은 동일한 비트스트림의 일부이다. 예시적 방법(1200)은 또한, (가령, 케이블, 위성 또는 인터넷 TV 시스템과 접속하여 사용되는 비디오 디코더에 의해 수행되는 바와 같은) 스트림, 브로드캐스트 또는 채널 스위칭 동작이 수행될 때 수행될 수 있다. 이러한 예에서, 비트스트림 부분은 서로 상이한 비트스트림이다.
또한, 소정 구현에서, 표시는 인코딩된 픽쳐가 복수의 타입의 끊어진 링크 액세스 픽쳐 중 하나라고 표시하는데, 복수의 타입은 다음 중 둘 이상을 포함한다. 하나 이상의 선행 픽쳐를 포함할 수 있는 타입, 하나 이상의 선행 픽쳐를 포함하지만 디코딩 가능하지 않은 선행 픽쳐는 포함하지 않을 수 있는 타입, 선행 픽쳐를 포함하지 않는 타입. 이 표시는 본 명세서에서 개시되는 다른 타입 중 하나 이상을 시그날링할 수도 있다.
도 13은 미디어 프로세싱 디바이스 또는 애플리케이션에 의해 수행되는 예시적 방법(1300)이다.
단계(1310)에서, 첫 번째 비트스트림의 적어도 일부가 수신된다. 단계(1312)에서, 두 번째 비트스트림의 적어도 일부가 수신된다. 단계(1314)에서, 첫 번째 비트스트림의 적어도 일부는 끊어진 링크 액세스 픽쳐에서 두 번째 비트스트림의 적어도 일부와 스플라이싱된다(spliced). 소정 실시예에서, 스플라이싱 동작은 끊어진 링크 액세스 픽쳐와 연관되는 RASL(random access skipped leading) 픽쳐를 생략하는 동작을 더 포함한다. 또한, 일부 실시예에서, 스플라이싱 동작은 스플라이스 포인트로서 클린 랜덤 액세스 픽쳐를 식별하는 동작과, 클린 랜덤 액세스 픽쳐를 스플라이싱된 비트스트림의 끊어진 링크 액세스 픽쳐로서 지정하는 동작을 포함한다. 또한, 소정 실시예에서, 이 방법은, 끊어진 링크 액세스 픽쳐가 복수의 끊어진 링크 액세스 픽쳐 타입 (가령, 본 명세서에 개시된 타입 중 하나) 중 하나라는 표시를 (가령, 픽쳐에 대한 NAL 유닛 타입 값을 파싱하고 프로세싱함으로써) 검출하는 동작을 더 포함한다.
이 방법(1300)은, 가령, 비디오 편집 디바이스 또는 애플리케이션에 의해, 또는 미디어 재생 디바이스 또는 애플리케이션에 의해 수행될 수 있다. 또한, 소정 실시예에서, 이 표시는 인코딩된 픽쳐가 복수의 타입의 끊어진 링크 액세스 픽쳐 중 하나라고 표시하는데, 복수의 타입은 다음 중 둘 이상을 포함한다. 하나 이상의 선행 픽쳐를 포함할 수 있는 타입, 하나 이상의 선행 픽쳐를 포함하지만 디코딩 가능하지 않은 선행 픽쳐는 포함하지 않을 수 있는 타입, 선행 픽쳐를 포함하지 않는 타입. 이 표시는 본 명세서에서 개시되는 다른 타입 중 하나 이상을 시그날링할 수도 있다.
도 14은 인코더 또는 디지털 미디어 프로세싱 툴 또는 디바이스에 의해 수행될 수 있는 예시적 방법(1400)이다.
단계(1410)에서, BLA 픽쳐가 인코딩된다. 단계(1412)에서, BLA 픽쳐와 연관되는 하나 이상의 선행 픽쳐가 인코딩된다. 단계(1414)에서, 인코딩된 BLA 픽쳐 및 하나 이상의 인코딩된 연관된 선행 픽쳐를 포함하는 비트스트림이 생성된다. 또한, 도시된 실시예에서, 비트스트림을 생성하는 동작은, (가령, 스프라이싱, 패스트포워드, 리와인드, 비디오 스트림 변경 동작 등의 후에 발생할 수 있는 경우와 같이) 디코딩 순서상 BLA 픽쳐 이전의 픽쳐가 디코더에 대해 이용 가능하지 않을 때 각 선행 픽쳐가 디코딩 가능한지를 표시하는 명시적 표시를, 하나 이상의 인코딩된 연관된 선행 픽쳐마다, 비트스트림에 생성하는 단계를 더 포함한다. 특정 구현에서, 이 표시는 각 선행 픽쳐가 RASL 픽쳐인지 또는 RADL 픽쳐인지를 식별하는 NAL 유닛 타입이다.
또한, 소정 구현에서, 비트스트림을 생성하는 동작은, BLA 픽쳐가 복수의 타입의 BLA 픽쳐 중 하나라는 명시적 표시를 생성하는 동작을 더 포함할 수 있다. 예를 들어, 픽쳐는 하나 이상의 연관된 디코딩 가능한 선행 픽쳐 또는 가능하지 않은 선행 픽쳐를 가질 수 있는 BLA 타입 (가령, BLA_W_LP 타입)으로서 지정될 수 있다.
도 15은 디코더 또는 디지털 미디어 프로세싱 툴 또는 디바이스에 의해 수행되는 예시적 방법(1500)이다. 예를 들어, 이 방법은 도 14에서 생성되는 비트스트림을 디코딩하도록 수행될 수 있다.
단계(1510)에서, BLA 픽쳐 및 BLA 픽쳐와 연관된 하나 이상의 인코딩된 선행 픽쳐를 포함하는 비트스트림이 수신된다. 도시된 예에서, 비트스트림은, (가령, 스프라이싱, 패스트포워드, 리와인드, 비디오 스트림 변경 동작 등의 후에 발생할 수 있는 경우와 같이) BLA 픽쳐 이전의 픽쳐가 디코더에 대해 이용 가능하지 않을 때 각 선행 픽쳐가 디코딩 가능한지를 표시하는 명시적 표시를, 하나 이상의 인코딩된 연관된 선행 픽쳐마다, 더 포함한다. 단계(1512)에서, 인코딩된 BLA 픽쳐 및 하나 이상의 인코딩된 연관된 선행 픽쳐는 명시적 표시에 따라 디코딩된다.
일부 예에서, 비트스트림은, BLA 픽쳐가 복수의 타입의 BLA 픽쳐 중 하나라는 명시적 표시를 더 포함한다. 예를 들어, BLA 픽쳐는 하나 이상의 연관된 디코딩 가능한 선행 픽쳐 또는 가능하지 않은 선행 픽쳐를 가질 수 있는 끊어진 링크 액세스 타입일 수 있다. 또한, 일부 예에서, 하나 이상의 인코딩된 연관된 선행 픽쳐 각각에 대한 명시적 표시는 디코딩 순서상 BLA 픽쳐 이전의 픽쳐가 이용 가능하지 않을 때 각 선행 픽쳐가 디코딩 가능한 선행 픽쳐인지 아닌지를 표시한다(가령, 선행 픽쳐는 RASL 또는 RADL 픽쳐로서 지정될 수 있다).
VIII. 결론
개시된 발명의 원리가 적용될 수 있는 많은 가능한 실시예의 관점에서, 도시된 실시예는 본 발명의 바람직한 예일 뿐이며 본 발명의 범위를 제한하는 것으로 고려되어서는 안된다는 것을 인식해야 한다. 오히려, 본 발명의 범위는 이하의 청구항에 의해 정의된다. 그러므로, 이들 청구항의 범위 및 사상 내에 해당하는 모든 것을 본 발명으로서 청구한다.

Claims (16)

  1. 컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금 방법을 수행하게 하는 컴퓨터 실행가능 명령어를 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 방법은,
    복수의 픽쳐에 대한 인코딩된 데이터를 포함하는 비트스트림의 적어도 일부를 생성하는 단계 - 상기 복수의 픽쳐는 랜덤 액세스 포인트(random access point: RAP) 픽쳐 및 하나 이상의 연관된 디코딩 불가능 선행 픽쳐(one or more associated non-decodable leading pictures)를 포함하고, 상기 RAP 픽쳐는 상기 비트스트림의 초기 픽쳐(initial picture) 이후의 비트스트림 순서 위치에 존재하고, 상기 비트스트림의 상기 적어도 일부는 상기 RAP 픽쳐가 디코더에 의해 디코딩이 시작될 수 있는 픽쳐임을 나타내는 표시를 더 포함함 - 와,
    상기 비트스트림의 상기 적어도 일부를 출력하는 단계를 포함하는,
    컴퓨터 판독가능 저장 매체.
  2. 제1항에 있어서,
    상기 표시는 상기 RAP 픽쳐가 복수의 픽쳐 타입 중 하나임을 나타내는 신택스 요소인,
    컴퓨터 판독가능 저장 매체.
  3. 제1항에 있어서,
    상기 비트스트림의 상기 적어도 일부는 상기 RAP 픽쳐와 연관된 하나 이상의 비-선행(non-leading) 픽쳐를 더 포함하고,
    상기 비트스트림의 상기 적어도 일부를 생성하는 단계는, 상기 RAP 픽쳐와 연관된 상기 선행 픽쳐 및 상기 비-선행 픽쳐를 순서화하여 상기 선행 픽쳐의 전부가 상기 비-선행 픽쳐에 앞서게 하는 단계를 포함하는,
    컴퓨터 판독가능 저장 매체.
  4. 제1항에 있어서,
    상기 방법은,
    비트스트림의 적어도 일부를 수신하는 단계와,
    상기 RAP 픽쳐가 디코딩된 첫 번째 픽쳐가 되도록 상기 RAP 픽쳐를 디코딩하는 단계를 포함하는,
    컴퓨터 판독가능 저장 매체.
  5. 랜덤 액세스 포인트(RAP) 픽쳐로 지정된 픽쳐를 포함하는 비트스트림을 생성하는 단계 - 상기 RAP 픽쳐에 대한 임의의 모든 선행 픽쳐는 디코딩 순서에서 상기 RAP 픽쳐에 대한 임의의 비-선행 픽쳐에 앞섬 - 와,
    상기 비트스트림의 적어도 일부를 출력하는 단계를 포함하는
    방법.
  6. 제5항에 있어서,
    RAP 픽쳐로 지정된 픽쳐를 포함하는 복수의 픽쳐에 대한 인코딩된 데이터를 포함하는 비트스트림을 수신하는 단계 - 상기 비트스트림은 상기 RAP 픽쳐에 대한 임의의 모든 선행 픽쳐가 디코딩 순서에서 상기 RAP 픽쳐에 대한 임의의 비-선행 픽쳐에 앞선다는 제한사항 하에서 생성된 것임 - 와,
    상기 복수의 픽쳐를 디코딩하는 단계를 더 포함하는
    방법.
  7. 제1 비트스트림 부분을 디코딩하는 단계와,
    제2 비트스트림 부분에서의 인코딩된 픽쳐가 끊어진(broken) 링크 액세스 픽쳐라는 표시를 검출하는 단계와,
    상기 끊어진 링크 액세스 픽쳐에서 시작하여 상기 제2 비트스트림 부분의 적어도 일부를 디코딩하는 단계와,
    상기 제1 비트스트림 부분으로부터의 디코딩된 픽쳐에 이어서 상기 제2 비트스트림 부분으로부터의 디코딩된 픽쳐를 출력하는 단계를 포함하는
    방법.
  8. 제7항에 있어서,
    상기 디코딩하는 단계는, 상기 끊어진 링크 액세스 픽쳐와 연관된 상기 제2 비트스트림의 하나 이상의 픽쳐의 디코딩을 건너뛰는 단계를 더 포함하는,
    방법.
  9. 제8항에 있어서,
    디코딩 동안 건너뛴 상기 하나 이상의 픽쳐는 랜덤 액세스 건너뛴 선행 픽쳐(random access skipped leading pictures)인,
    방법.
  10. 제7항에 있어서,
    상기 제 1 비트스트림 부분 및 상기 제 2 비트스트림 부분은 동일한 비트스트림의 일부이고, 상기 방법은 패스트 포워드(fast forward) 동작, 리와인드(rewind) 동작, 또는 스캔(scan) 동작의 일부로서 수행되는,
    방법.
  11. 제7항에 있어서,
    상기 제 1 비트스트림 부분과 상기 제 2 비트스트림 부분은 상이한 비트스트림으로부터 유래된 것이며,
    상기 방법은 비디오 스트림 스위칭 동작의 일부로서 수행되는,
    방법.
  12. 제7항에 있어서,
    상기 표시는 상기 인코딩된 픽쳐가 끊어진 링크 액세스 픽쳐의 복수의 타입 중 하나임을 나타내고,
    상기 복수의 타입은, (a) 하나 이상의 선행 픽쳐를 포함할 수 있는 타입, (b) 하나 이상의 선행 픽쳐를 포함할 수 있지만 디코딩 불가능 선행 픽쳐는 포함하지 않는 타입, 또는 (c) 선행 픽쳐를 포함하지 않는 타입 중 둘 이상을 포함하는,
    방법.
  13. 제1 비트스트림의 적어도 일부를 수신하는 단계와,
    제2 비트스트림의 적어도 일부를 수신하는 단계와,
    상기 제1 비트스트림의 상기 적어도 일부를 상기 제2 비트스트림의 상기 적어도 일부와 스플라이싱(splicing)하는 단계 - 상기 제2 비트스트림의 스플라이스 포인트는 끊어진 링크 액세스 픽쳐임 - 를 포함하는
    방법.
  14. 제13항에 있어서,
    상기 스플라이싱 하는 단계는 상기 끊어진 링크 액세스 픽쳐와 연관된 하나 이상의 랜덤 액세스 건너뛴 선행 픽쳐에 대한 정보를 삭제하는 단계를 포함하는,
    방법.
  15. 제13항에 있어서,
    상기 스플라이싱 하는 단계는,
    상기 제2 비트스트림의 상기 적어도 일부 내의 클린(clean) 랜덤 액세스 픽쳐를 상기 스플라이스 포인트로서 식별하는 단계와,
    상기 클린 랜덤 액세스 픽쳐를 상기 스플라이싱된 비트스트림에서 상기 끊어진 링크 액세스 픽쳐로서 지정하는 단계를 포함하는,
    방법.
  16. 제13항에 있어서,
    상기 끊어진 링크 액세스 픽쳐가 복수의 타입 중 하나라는 표시를 검출하는 단계를 더 포함하되,
    상기 복수의 타입은, (a) 하나 이상의 선행 픽쳐를 포함할 수 있는 타입, (b) 하나 이상의 선행 픽쳐를 포함할 수 있지만 디코딩 불가능 선행 픽쳐는 포함하지 않는 타입, 또는 (c) 선행 픽쳐를 포함하지 않는 타입 중 둘 이상을 포함하는,
    방법.
KR1020207014506A 2012-04-16 2013-04-16 비디오 랜덤 액세스를 간단하게 하기 위한 제한사항 및 유닛 타입 KR102176327B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201261624984P 2012-04-16 2012-04-16
US61/624,984 2012-04-16
US201261639663P 2012-04-27 2012-04-27
US61/639,663 2012-04-27
US201261667357P 2012-07-02 2012-07-02
US61/667,357 2012-07-02
US13/732,328 2012-12-31
US13/732,328 US9532055B2 (en) 2012-04-16 2012-12-31 Constraints and unit types to simplify video random access
PCT/US2013/036821 WO2013158670A1 (en) 2012-04-16 2013-04-16 Constraints and unit types to simplify video random access

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147028919A Division KR102117723B1 (ko) 2012-04-16 2013-04-16 비디오 랜덤 액세스를 간단하게 하기 위한 제한사항 및 유닛 타입

Publications (2)

Publication Number Publication Date
KR20200061415A KR20200061415A (ko) 2020-06-02
KR102176327B1 true KR102176327B1 (ko) 2020-11-09

Family

ID=49325076

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207014506A KR102176327B1 (ko) 2012-04-16 2013-04-16 비디오 랜덤 액세스를 간단하게 하기 위한 제한사항 및 유닛 타입
KR1020147028919A KR102117723B1 (ko) 2012-04-16 2013-04-16 비디오 랜덤 액세스를 간단하게 하기 위한 제한사항 및 유닛 타입

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020147028919A KR102117723B1 (ko) 2012-04-16 2013-04-16 비디오 랜덤 액세스를 간단하게 하기 위한 제한사항 및 유닛 타입

Country Status (8)

Country Link
US (4) US9532055B2 (ko)
EP (1) EP2839647B1 (ko)
JP (1) JP6238318B2 (ko)
KR (2) KR102176327B1 (ko)
CN (1) CN104350750B (ko)
AR (1) AR093278A1 (ko)
TW (1) TWI603609B (ko)
WO (1) WO2013158670A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130272619A1 (en) * 2012-04-13 2013-10-17 Sharp Laboratories Of America, Inc. Devices for identifying a leading picture
US9351016B2 (en) 2012-04-13 2016-05-24 Sharp Kabushiki Kaisha Devices for identifying a leading picture
US9402082B2 (en) * 2012-04-13 2016-07-26 Sharp Kabushiki Kaisha Electronic devices for sending a message and buffering a bitstream
US9426460B2 (en) * 2012-04-13 2016-08-23 Sharp Kabushiki Kaisha Electronic devices for signaling multiple initial buffering parameters
US9979959B2 (en) * 2012-04-20 2018-05-22 Qualcomm Incorporated Video coding with enhanced support for stream adaptation and splicing
KR102574868B1 (ko) 2012-04-23 2023-09-06 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
WO2013165311A1 (en) * 2012-05-03 2013-11-07 Telefonaktiebolaget L M Ericsson (Publ) Identifying leading pictures in video coding
WO2013187698A1 (ko) 2012-06-12 2013-12-19 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
JP6045222B2 (ja) * 2012-06-28 2016-12-14 株式会社Nttドコモ 動画像予測復号装置、方法及びプログラム
US9225978B2 (en) * 2012-06-28 2015-12-29 Qualcomm Incorporated Streaming adaption based on clean random access (CRA) pictures
US9591303B2 (en) * 2012-06-28 2017-03-07 Qualcomm Incorporated Random access and signaling of long-term reference pictures in video coding
US20140003520A1 (en) * 2012-07-02 2014-01-02 Cisco Technology, Inc. Differentiating Decodable and Non-Decodable Pictures After RAP Pictures
IN2015MN00146A (ko) * 2012-07-03 2015-10-16 Samsung Electronics Co Ltd
CN104620578B (zh) * 2012-07-06 2018-01-02 三星电子株式会社 用于随机访问的多层视频编码的方法和设备以及用于随机访问的多层视频解码的方法和设备
CN104412608B (zh) 2012-07-10 2018-03-06 索尼公司 图像解码装置、图像解码方法、图像编码装置及图像编码方法
JP2014039252A (ja) * 2012-08-10 2014-02-27 Panasonic Corp 画像復号方法および画像復号装置
KR102397259B1 (ko) * 2012-09-13 2022-05-12 엘지전자 주식회사 영상 부호화/복호화 방법 및 장치
US9491487B2 (en) * 2012-09-25 2016-11-08 Apple Inc. Error resilient management of picture order count in predictive coding systems
US20140092995A1 (en) * 2012-09-28 2014-04-03 Sharp Laboratories Of America, Inc. Electronic devices for signaling a random access point picture message
JP6094126B2 (ja) * 2012-10-01 2017-03-15 富士通株式会社 動画像復号装置
US9661341B2 (en) * 2013-01-07 2017-05-23 Microsoft Technology Licensing, Llc Syntax and semantics for buffering information to simplify video splicing
CN104919803B (zh) * 2013-01-15 2017-09-12 华为技术有限公司 一种用于解码视频比特流的方法
US9596486B2 (en) * 2013-04-05 2017-03-14 Qualcomm Incorporated IRAP access units and bitstream switching and splicing
US9674533B2 (en) 2013-04-05 2017-06-06 Qualcomm Incorporated Picture alignments in multi-layer video coding
US9602822B2 (en) 2013-04-17 2017-03-21 Qualcomm Incorporated Indication of cross-layer picture type alignment in multi-layer video coding
US10003815B2 (en) 2013-06-03 2018-06-19 Qualcomm Incorporated Hypothetical reference decoder model and conformance for cross-layer random access skipped pictures
US9900605B2 (en) 2013-10-14 2018-02-20 Qualcomm Incorporated Device and method for scalable coding of video information
US10264272B2 (en) * 2013-10-15 2019-04-16 Qualcomm Incorporated Device and method for scalable coding of video information
US9794558B2 (en) 2014-01-08 2017-10-17 Qualcomm Incorporated Support of non-HEVC base layer in HEVC multi-layer extensions
US10187650B2 (en) * 2014-06-17 2019-01-22 Stmicroelectronics International N.V. Video encoders/decoders and video encoding/decoding methods for video surveillance applications
US9800898B2 (en) 2014-10-06 2017-10-24 Microsoft Technology Licensing, Llc Syntax structures indicating completion of coded regions
EP3200460A4 (en) 2014-10-16 2017-08-23 Samsung Electronics Co., Ltd Method and device for processing encoded video data, and method and device for generating encoded video data
US20160234522A1 (en) * 2015-02-05 2016-08-11 Microsoft Technology Licensing, Llc Video Decoding
US10129566B2 (en) * 2015-03-16 2018-11-13 Microsoft Technology Licensing, Llc Standard-guided video decoding performance enhancements
US9979983B2 (en) 2015-03-16 2018-05-22 Microsoft Technology Licensing, Llc Application- or context-guided video decoding performance enhancements
KR102077239B1 (ko) * 2015-07-02 2020-02-13 삼성전자주식회사 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치
KR102477964B1 (ko) * 2015-10-12 2022-12-16 삼성전자주식회사 미디어 전송 시스템에서 비디오 비트스트림의 임의 접근 및 재생을 가능하게 하는 기법
CN105227864A (zh) * 2015-10-16 2016-01-06 南阳师范学院 一种图片生成动画并与视频片段拼接合成的视频编辑方法
US10958988B2 (en) * 2017-03-24 2021-03-23 Mediatek Inc. Methods and apparatus for media content asset changes
JP6967653B2 (ja) * 2019-12-19 2021-11-17 株式会社Nttドコモ 動画像予測復号方法
WO2021202371A1 (en) * 2020-03-30 2021-10-07 Bytedance Inc. Slice types in a picture
WO2021222038A1 (en) * 2020-04-27 2021-11-04 Bytedance Inc. Sublayers information in video coding
WO2023220000A1 (en) * 2022-05-10 2023-11-16 Bytedance Inc. Improved extended dependent random access point support in iso base media file format

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004008735A2 (en) * 2002-07-16 2004-01-22 Nokia Corporation A method for random access and gradual picture refresh in video coding

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149247B2 (en) * 2002-01-22 2006-12-12 Microsoft Corporation Methods and systems for encoding and decoding video data to enable random access and splicing
JP3513148B1 (ja) 2002-10-11 2004-03-31 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム
US7924921B2 (en) * 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US20080159407A1 (en) 2006-12-28 2008-07-03 Yang Nick Y Mechanism for a parallel processing in-loop deblock filter
US20110081133A1 (en) * 2009-10-05 2011-04-07 Xuemin Chen Method and system for a fast channel change in 3d video
US9516379B2 (en) * 2011-03-08 2016-12-06 Qualcomm Incorporated Buffer management in video codecs
US9706227B2 (en) 2011-03-10 2017-07-11 Qualcomm Incorporated Video coding techniques for coding dependent pictures after random access
EP2752011B1 (en) * 2011-08-31 2020-05-20 Nokia Technologies Oy Multiview video coding and decoding
US9131245B2 (en) * 2011-09-23 2015-09-08 Qualcomm Incorporated Reference picture list construction for video coding
US20130089152A1 (en) * 2011-10-05 2013-04-11 Qualcomm Incorporated Signaling picture identification for video coding
US9264717B2 (en) * 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
US9351016B2 (en) * 2012-04-13 2016-05-24 Sharp Kabushiki Kaisha Devices for identifying a leading picture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004008735A2 (en) * 2002-07-16 2004-01-22 Nokia Corporation A method for random access and gradual picture refresh in video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Akira Fujibayashi, "Random access support for HEVC", JCTVC-D234, JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 4th Meeting: Daegu, Korea, (2011.01.15.)*
Youngo Park,"On syntax for clean random access (CRA) pictures", JCTVC-G533, 2011.11.08.

Also Published As

Publication number Publication date
JP6238318B2 (ja) 2017-11-29
US10432973B2 (en) 2019-10-01
US9532055B2 (en) 2016-12-27
US20200029094A1 (en) 2020-01-23
EP2839647A1 (en) 2015-02-25
US20130272430A1 (en) 2013-10-17
US11943480B2 (en) 2024-03-26
TW201351964A (zh) 2013-12-16
KR20150003196A (ko) 2015-01-08
US20170142445A1 (en) 2017-05-18
CN104350750A (zh) 2015-02-11
KR102117723B1 (ko) 2020-06-01
US20220191547A1 (en) 2022-06-16
TWI603609B (zh) 2017-10-21
KR20200061415A (ko) 2020-06-02
WO2013158670A1 (en) 2013-10-24
EP2839647B1 (en) 2018-07-04
JP2015517281A (ja) 2015-06-18
CN104350750B (zh) 2018-10-23
US11303933B2 (en) 2022-04-12
AR093278A1 (es) 2015-05-27

Similar Documents

Publication Publication Date Title
US11943480B2 (en) Constraints and unit types to simplify video random access
US11405636B2 (en) Conditional signalling of reference picture list modification information
US11943464B2 (en) Syntax and semantics for buffering information to simplify video splicing
KR102474461B1 (ko) 코딩된 영역들의 완료를 나타내는 신택스 구조들
JP7376647B2 (ja) 信頼性レベル及び混合コンテンツ情報を含む付加拡張情報
US20160301895A1 (en) Mitigating loss in inter-operability scenarios for digital video
KR20170065568A (ko) 샘플 메타데이터와 미디어 샘플들의 결합

Legal Events

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