KR102648248B1 - 랜덤 액세스 포인트 및 픽처 유형의 식별 방법 - Google Patents

랜덤 액세스 포인트 및 픽처 유형의 식별 방법 Download PDF

Info

Publication number
KR102648248B1
KR102648248B1 KR1020217023885A KR20217023885A KR102648248B1 KR 102648248 B1 KR102648248 B1 KR 102648248B1 KR 1020217023885 A KR1020217023885 A KR 1020217023885A KR 20217023885 A KR20217023885 A KR 20217023885A KR 102648248 B1 KR102648248 B1 KR 102648248B1
Authority
KR
South Korea
Prior art keywords
nal unit
picture
current
video
cvs
Prior art date
Application number
KR1020217023885A
Other languages
English (en)
Other versions
KR20210102451A (ko
Inventor
병두 최
스테판 웽거
샨 리우
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Priority to KR1020247008286A priority Critical patent/KR20240040121A/ko
Publication of KR20210102451A publication Critical patent/KR20210102451A/ko
Application granted granted Critical
Publication of KR102648248B1 publication Critical patent/KR102648248B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/188Methods 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 a video data packet, e.g. a network abstraction layer [NAL] unit
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Landscapes

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

Abstract

적어도 하나의 프로세서를 사용하여 비디오 디코딩을 위해 현재 네트워크 추상화 계층(Network Abstraction Layer, NAL) 단위를 재구성하기 위한 접근법은, 현재 NAL 단위를 인트라 랜덤 액세스 픽처(Intra Random Access Picture, IRAP) NAL 단위로 결정하는 단계; 현재 NAL 단위의 바로 이전에 디코딩된 이전 NAL 단위가 코딩된 비디오 시퀀스(CVS)의 끝을 지시하는지 여부를 결정하는 단계; 이전 NAL 단위가 CVS의 끝을 지시한다는 결정에 기반하여, 현재 NAL 단위를 순간 디코더 리프레시(Instantaneous Decoder Refresh, IDR) NAL 단위 또는 깨진 링크 액세스(Broken Link Access, BLA) NAL 단위 중 하나로 디코딩하는 단계; 및 이전 NAL 단위가 CVS의 끝을 지시하지 않는다는 결정에 기반하여, 현재 NAL 단위를 클린 랜덤 액세스(CRA) NAL 단위로 디코딩하는 단계, 그리고 디코딩된 현재 NAL 단위를 재구성하는 단계를 포함한다.

Description

랜덤 액세스 포인트 및 픽처 유형의 식별 방법
개시된 주제는 비디오 코딩 및 디코딩에 관한 것으로, 보다 구체적으로는, 네트워크 추상화 계층 단위 헤더와 같은 고정 길이 코드 포인트, 고수준 신택스 구조(syntax structure)에 픽처 참조를 포함하는 것에 관한 것이다.
관련 출원에 대한 교차 참조 본 출원은 미국 특허법 제119조에 따라 2018년 12월 28일에 미국 특허 및 상표청에 제출된 미국 가출원 번호 62/786,306과, 2019년 8월 15일에 미국 특허 및 상표청에 제출된 미국 출원 번호 16/541,693의 우선권을 주장하며, 상기 개시는 그 전체가 참조로서 여기에 포함된다.
움직임 보상(motion compensation)과 함께 픽처 간 예측을 사용하는 비디오 코딩 및 디코딩의 예시는 수십 년 동안 알려져 왔다. 압축되지 않은 디지털 비디오는 일련의 픽처(picture)로 구성될 수 있고, 각 픽처는, 예를 들어, 1920 x 1080개의 휘도 샘플(luminance samples) 및 연관된 색차 샘플(chrominance samples)의 공간 차원을 갖는다. 일련의 픽처는 고정 또는 가변 픽처 레이트(picture rate)를 가질 수 있고, 이는 프레임 레이트(frame rate)로 알려져 있을 수 있으며, 예를 들어 초당 60개의 픽처 또는 60Hz이다. 압축되지 않은 비디오는 상당한 비트 전송률 요구 사항을 갖는다. 예를 들어, 샘플 당 8비트의 1080p60 4:2:0 비디오(60Hz 프레임 속도의 1920x1080 휘도 샘플 해상도)는 거의 1.5Gbit/s 대역폭을 필요로 한다. 이러한 비디오의 한 시간에는 600GB 이상의 저장 공간이 필요하다.
비디오 코딩 및 디코딩의 한 가지 목적은, 압축을 통해, 입력 비디오 신호의 중복성의 감소일 수 있다. 압축은 앞서 언급한 대역폭 또는 저장 공간 요구 사항을, 몇몇 경우에서 두 배 크기 이상으로 줄이는 데 도움이 될 수 있다. 무손실 압축과 손실 압축뿐만 아니라 그들의 조합이 채택될 수 있다. 무손실 압축은 원본 신호의 정확한 사본이 압축된 원본 신호로부터 재구성될 수 있는 기술을 의미한다. 손실 압축을 사용할 때, 재구성된 신호는 원본 신호와 동일하지 않을 수 있지만, 원본 신호와 재구성된 신호 사이의 왜곡은 재구성된 신호가 의도된 응용 프로그램에 유용할 만큼 충분히 작다. 비디오의 경우, 손실 압축이 널리 채택된다. 왜곡 허용의 정도는 응용 프로그램에 따라 다른데, 예를 들어, 특정 소비자 스트리밍 애플리케이션의 사용자는 텔레비전 기여 애플리케이션(television contribution application)의 사용자보다 더 높은 왜곡을 감내할 수 있다. 달성 가능한 압축 비율은, 허용/허용가능 왜곡이 높을수록 압축 비율이 높아질 수 있다는 것을 반영할 수 있다.
비디오 인코더 및 디코더는, 예를 들어, 그중 일부는 아래에서 소개될, 움직임 보상, 변환, 양자화, 및 엔트로피 코딩을 포함하는 여러 범주의 기술을 활용할 수 있다.
코딩된 비디오 비트스트림을 패킷 네트워크를 통한 전송을 위해 패킷으로 분할하는 예시는 수십 년 동안 사용되어 왔다. 초기에, 비디오 코딩 표준 및 기술은 대부분 봇 지향 전송(bot-oriented transport) 및 정의된 비트스트림에 최적화되었다. 패킷화(packetization)는, 예를 들어, 실시간 전송 프로토콜(Real-time Transport Protocol, RTP) 페이로드 형식으로 지정된, 시스템 계층 인터페이스 내에서 발생했다. 인터넷을 통한 비디오의 대량 사용에 적합한 인터넷 연결의 출현과 함께, 비디오 코딩 표준은 비디오 코딩 계층(video coding layer, VCL) 및 네트워크 추상화 계층(network abstraction layer, NAL)의 개념적 차별화를 통한 두드러진 사용 사례를 반영했다. NAL 단위는 2003년에 H.264에 도입되었고, 그 이후로 약간의 수정만으로 특정 비디오 코딩 표준 및 기술에서 유지되었다.
NAL 단위는, 많은 경우에, 디코더가 코딩된 비디오 시퀀스의 모든 선행하는 NAL 단위를 반드시 디코딩하지 않고도 동작할 수 있는 가장 작은 엔티티로 볼 수 있다. 지금까지, NAL 단위는 선택적 포워딩 단위(Selective Forwarding Units, SFUs) 또는 멀티포인트 제어 단위(Multipoint Control Units, MCUs)와 같은 미디어 인식 네트워크 요소(Media Aware Network Elements, MANEs)에 의해, 비트스트림 프루닝(bitstream pruning)을 포함하는, 특정 비트스트림 조작(bitstream manipulation) 기술뿐만 아니라 특정 오류 복원(error resilience) 기술을 활성화한다.
도 1은 H.264(101) 및 H.265(102)에 따른 NAL 단위 헤더의 신택스(syntax) 다이어그램의 관련 부분을 도시하며, 두 경우 모두 그들 각각의 확장은 없다. 두 경우 모두에서, forbidden_zero_bit는 특정 시스템 계층 환경 내에서 시작 코드 에뮬레이션 방지에 사용되는 제로 비트이다. nal_unit_type 신택스 요소는, 예를 들어, 특정 슬라이스 유형, 파라미터 세트 유형, 보충 향상 정보(Supplementary Enhancement Information, SEI) 메시지 등 중 하나일 수 있는, NAL 단위 운반체(NAL unit carry)의 데이터 유형을 참조한다. H.265 NAL 단위 헤더는 nuh_layer_id 및 nuh_temporal_id_plus1을 더 포함하며, 이는 NAL 단위가 속하는 코딩된 픽처의 공간/SNR 및 시간 계층을 지시한다.
NAL 단위 헤더가, 예를 들어, 다른 NAL 단위 헤더, 파라미터 세트 등과 같은 비트스트림 내의 다른 데이터에 대한 어떤 파싱 종속성(parsing dependency)을 갖지 않는, 쉽게 파싱될 수 있는 고정 길이의 코드워드만 포함한다는 것이 관찰될 수 있다. NAL 단위 헤더는 NAL 단위 내의 첫 번째 옥텟(octet)이기 때문에, MANE는 NAL 단위 헤더를 쉽게 추출하고, 파싱하고, NAL 단위 헤더에서 동작할 수 있다. 이와 반대로, 예를 들어 슬라이스 또는 타일 헤더 등의 다른 고수준 신택스 요소는 파라미터 세트 컨텍스트의 유지 및/또는 가변 길이 또는 산술적으로 코딩된 코드 포인트의 처리를 요구할 수 있으므로 MANE에 대해 쉽게 액세스할 수 없다.
또한 관찰될 수 있는 것은, 도 1에 도시된 대로의 NAL 단위 헤더는 NAL 단위를 복수의 NAL 단위(예를 들어, 다수의 타일 또는 슬라이스를 포함하는, 적어도 일부가 개별 NAL 단위로 패킷화된 것과 같은)로 구성된 코딩된 픽처에 연관시킬 수 있는 정보를 포함하지 않다는 것이다.
RTP(RFC 3550), MPEG 시스템 표준, ISO 파일 형식 등과 같은 특정 전송 기술은, MANE에 의해 쉽게 액세스될 수 있으면서 각각의 전송 단위를 코딩된 픽처와 연관시키는 데 도움이 될 수 있는, 종종 MPEG 및 ISO 파일 형식의 예에서의 프레젠테이션 시간, 또는 RTP의 예에서의 캡쳐 시간과 같은 타이밍 정보의 형식의, 특정 정보를 포함할 수 있다. 하지만, 이러한 정보의 어의(semantic)는 전송/저장 기술마다 다를 수 있으며, 비디오 코딩에 사용되는 픽처 구조와 직접적인 관계가 없을 수 있다. 따라서, 이러한 정보는, 기껏해야 휴리스틱스(heuristic)일 수 있고 NAL 단위 스트림 내의 NAL 단위가 동일한 코딩된 픽처에 속하는지 여부를 식별하는 데 딱히 적합하지 않을 수 있다.
해결해야 할 문제
기존 비디오 코딩 신택스에는 NAL 단위 헤더와 같은 고수준 신택스 구조 내의 랜덤 액세스 포인트, 랜덤 액세스 픽처 유형, 및 리딩 픽처 유형을 식별하는 쉽게 식별/분석 가능한 신택스 요소가 없다.
일 실시예에서, 적어도 하나의 프로세서를 사용하여 비디오 디코딩을 위해 현재 네트워크 추상화 계층(Network Abstraction Layer, NAL) 단위를 재구성하는 방법이 제공되며, 상기 방법은 현재 NAL 단위를 인트라 랜덤 액세스 픽처(Intra Random Access Picture, IRAP) NAL 단위로 결정하는 단계; 현재 NAL 단위의 바로 전에 디코딩된 이전 NAL 단위가 코딩된 비디오 시퀀스(CVS)의 끝을 지시하는지 여부를 결정하는 단계; 이전 NAL 단위가 CVS의 끝을 지시한다는 결정에 기반하여, 현재 NAL 단위를 순간 디코더 리프레시(Instantaneous Decoder Refresh, IDR) NAL 단위 또는 깨진 링크 액세스(Broken Link Access, BLA) NAL 단위 중 하나로 디코딩하는 단계; 이전 NAL 단위가 CVS의 끝을 지시하지 않는다는 결정에 기반하여, 현재 NAL 단위를 클린 랜덤 액세스(CRA) NAL 단위로 디코딩하는 단계; 및 디코딩된 현재 NAL 단위를 재구성하는 단계를 포함한다.
일 실시예에서, 비디오 디코딩을 위한 현재 네트워크 추상화 계층(Network Abstraction Layer, NAL) 단위를 재구성하기 위한 장치가 제공되며, 상기 장치는 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및 프로그램 코드를 읽고 프로그램 코드에 의해 지시된 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 프로그램 코드는, 적어도 하나의 프로세서로 하여금 현재 NAL 단위를 인트라 랜덤 액세스 픽처(Intra Random Access Picture, IRAP) NAL 단위로 결정하게 하도록 구성된 제1 결정 코드; 상기 프로세서로 하여금 현재 NAL 단위의 바로 전에 디코딩된 이전 NAL 단위가 코딩된 비디오 시퀀스(CVS)의 끝을 지시하는지 여부를 결정하게 하도록 구성된 제2 결정 코드; 상기 적어도 하나의 프로세서로 하여금, 이전 NAL 단위가 CVS의 끝을 지시한다는 결정에 기반하여, 현재 NAL 단위를 순간 디코더 리프레시(Instantaneous Decoder Refresh, IDR) NAL 단위 또는 깨진 링크 액세스(Broken Link Access, BLA) NAL 단위 중 하나로 디코딩하게 하도록 구성된 제1 디코딩 코드; 상기 적어도 하나의 프로세서로 하여금, 이전 NAL 단위가 CVS의 끝을 지시하지 않는다는 결정에 기반하여, 현재 NAL 단위를 클린 랜덤 액세스(CRA) NAL 단위로 디코딩하게 하도록 구성된 제2 디코딩 코드; 및 상기 프로세서로 하여금 디코딩된 현재 NAL 단위를 재구성하게 하도록 구성된 재구성 코드를 포함한다.
일 실시예에서, 명령어를 저장하는 컴퓨터가 판독 가능한 비일시적 매체가 제공되며, 상기 명령어는, 비디오 디코딩을 위한 현재 네트워크 추상화 계층(NAL) 단위를 재구성하는 장치의 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 현재 NAL 단위를 인트라 랜덤 액세스 픽처(Intra Random Access Picture, IRAP) NAL 단위로 결정하고, 현재 NAL 단위의 바로 전에 디코딩된 이전 NAL 단위가 코딩된 비디오 시퀀스(CVS)의 끝을 지시하는지 여부를 결정하고, 이전 NAL 단위가 CVS의 끝을 지시한다는 결정에 기반하여, 현재 NAL 단위를 순간 디코더 리프레시(Instantaneous Decoder Refresh, IDR) NAL 단위 또는 깨진 링크 액세스(Broken Link Access, BLA) NAL 단위 중 하나로 디코딩하고; 이전 NAL 단위가 CVS의 끝을 지시하지 않는다는 결정에 기반하여, 현재 NAL 단위를 클린 랜덤 액세스(CRA) NAL 단위로 디코딩하고; 디코딩된 현재 NAL 단위를 재구성하게 한다.
개시된 주제의 추가 특징, 본질, 및 다양한 이점은 다음의 상세한 설명 및 첨부 도면으로부터 더욱 명백해질 것이다.
도 1은 H.264 및 H.265에 따른 NAL 단위 헤더의 개략도이다.
도 2는 일 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 3은 일 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 4는 일 실시예에 따른 디코더의 단순화된 블록도의 개략도이다.
도 5는 일 실시예에 따른 인코더의 단순화된 블록도의 개략도이다.
도 6은 일 실시예에 따른 NAL 단위 헤더의 개략도이다.
도 7은 일 실시예에 따른 랜덤 액세스 포인트 픽처 및 리딩 픽처의 개략도이다.
도 8은 일 실시예에 따른 파라미터 세트 내의 신택스 요소의 개략도이다.
도 9는 일 실시예에 따른 비디오 디코딩을 위한 현재 네트워크 추상화 계층(Network Abstraction Layer, NAL) 단위를 재구성하기 위한 예시적인 프로세스의 흐름도이다.
도 10은 일 실시예에 따른 컴퓨터 시스템의 개략도이다.
도 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)는 회선 교환 및/또는 패킷 교환 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크에는 통신 네트워크, 근거리 통신망, 광역 통신망 및/또는 인터넷이 포함된다. 본 논의의 목적을 위해, 네트워크(250)의 아키텍처 및 토폴로지는 아래에서 설명되지 않는 한 본 개시의 동작에 중요하지 않을 수 있다.
도 3은, 개시된 주제에 대한 응용의 예시로서, 스트리밍 환경 내의 비디오 인코더 및 디코더의 배치를 예시한다. 개시된 주제는, 예를 들어, 화상 회의, 디지털 TV, CD, DVD, 메모리 스틱 등을 포함하는 디지털 미디어 상의 압축된 비디오의 저장을 포함하는 다른 비디오 가능 애플리케이션 등에도 동일하게 적용될 수 있다.
스트리밍 시스템은, 비압축 비디오 샘플 스트림(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)가 충분한 대역폭 및 제어 가능성을 갖는 저장/전달 장치로부터, 또는 등시성 네트워크(isosynchronous network)로부터 데이터를 수신하는 중일 때, 버퍼메모리(415)는 필요하지 않거나, 또는 작을 수 있다. 인터넷과 같은 최선형(best effort) 패킷 네트워크 상에서의 사용을 위해, 버퍼 메모리(415)가 요구될 수 있고, 버퍼는 비교적 클 수 있으며 편리하게는 적응형 크기일 수 있다.
비디오 디코더(310)는 엔트로피 코딩된 비디오 시퀀스로부터 심볼(421)을 재구성하기위한 파서(420)를 포함할 수 있다. 이러한 심볼의 카테고리는 디코더(310)의 동작을 관리하는 데 사용되는 정보와, 디코더의 필수 부분은 아니지만 그에 결합될 수 있는, 도 3에 도시된 대로의, 디스플레이(312)와 같은 렌더링 장치를 제어하기위한 잠재적 정보를 포함한다. 렌더링 장치(들)에 대한 제어 정보는 보충 향상 정보(Supplementary Enhancement Information, SEI) 메시지 또는 비디오 사용성 정보(Video Usability Information, VUI) 파라미터 세트 프래그먼트(fragment)(미도시)의 형태일 수 있다. 파서(420)는 수신된, 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있고, 가변 길이 코딩, Huffman 코딩, 콘텍스트 민감도(context sensitivity)가 있거나 없는 산술 코딩 등을 포함하는, 당업자에게 잘 알려진 원리를 따를 수 있다. 파서(420)는 그룹에 대응하는 적어도 하나의 파라미터에 기반하여, 비디오 디코더 내의 픽셀의 서브 그룹 중 적어도 하나에 대한 서브 그룹 파라미터의 세트를, 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브 그룹은, 픽처 그룹(Group of Pictures GOP), 픽처, 타일, 슬라이스, 매크로 블록, 코딩 단위(Coding Unit, CU), 블록, 전송 단위(Transform Unit, TU), 예측 단위(Prediction Unit, PU) 등을 포함할 수 있다. 엔트로피 디코더/파서는 또한 변환 계수와 같은 코딩된 비디오 시퀀스 정보로부터, 양자화기 파라미터 값, 움직임 벡터 등을 추출할 수 있다.
파서(420)는 버퍼 메모리(415)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행하여서, 심볼(421)을 생성할 수 있다.
심볼의 재구성(421)은 코딩된 비디오 픽처 또는 그것의 일부(예: 인터 픽처 및 인트라 픽처, 인터 블록 및 인트라 블록)의 유형과, 기타 인자에 의존하는 여러 서로 다른 단위를 수반할 수 있다. 어떤 단위가 수반되고, 어떻게 수반되는지는, 파서(420)에 의해 코딩된 비디오 시퀀스로부터 파싱된 서브 그룹 제어 정보에 의해 제어될 수 있다. 파서(420)와 아래의 여러 단위 사이의 그러한 서브 그룹 제어 정보의 흐름은 명확성을 위해 묘사되지 않았다.
이미 언급된 기능 블록을 넘어서, 디코더(310)는 아래에 설명된 대로 개념적으로 다수의 기능 단위로 세분될 수 있다. 상업적 제약 하에서 동작하는 실제 구현에서, 이러한 단위 중 다수는 서로 밀접하게 상호 작용하며, 적어도 부분적으로는, 서로 통합될 수 있다. 하지만, 개시된 주제를 설명하기 위한 목적을 위해, 아래의 기능 단위로의 개념적 세분화가 적절하다.
첫 번째 유닛은 스케일러/역변환 유닛(451)이다. 스케일러/역변환 유닛(451)은, 사용할 변환, 블록 크기, 양자화 인자, 양자화 스케일링 매트릭스 등을 포함하는, 제어 정보뿐만 아니라 양자화된 변환 계수를 파서(420)로부터의 심볼(들)(421)로서, 수신한다. 그것은, 애그리게이터(aggregator)(455)에 입력될 수 있는, 샘플 값을 포함하는 블록을 출력할 수 있다.
일부 경우에, 스케일러/역변환 유닛(451)의 출력 샘플은 인트라 코딩된 블록, 즉, 이전에 재구성된 픽처로부터의 예측 정보를 사용하지 않지만, 현재 픽처의 이전에 재구성된 부분으로부터의 예측 정보를 사용할 수 있는 블록에 부속할 수 있다. 이러한 예측 정보는 인트라 예측 단위(452)에 의해 제공될 수 있다. 일부 경우에, 인트라 픽처 예측 단위(452)는, 현재(부분적으로 재구성된) 픽처(458)로부터 페치된(fetched) 주변에 이미 재구성된 정보를 사용하여, 재구성 중인 블록과 동일한 크기 및 모양의 블록을 생성한다. 애그리게이터(455)는, 몇몇 경우에, 샘플 기반으로, 인트라 예측 단위(452)가 생성한 예측 정보를 스케일러/역변환 유닛(451)에 의해 제공되는 대로의 출력 샘플 정보에 추가한다.
다른 경우에, 스케일러/역변환 유닛(451)의 출력 샘플은 인터 코딩된, 잠재적으로 움직임 보상된 블록에 부속할 수 있다. 이러한 경우, 움직임 보상 예측 단위(453)는 예측에 사용되는 샘플을 페치하기 위해 참조 픽처 버퍼(457)에 액세스할 수 있다. 블록에 부속된 심볼(421)에 따라 페치된 샘플을 움직임 보상한 후, 이러한 샘플은 출력 샘플 정보를 생성하기 위해, 애그리게이터(455)에 의해 스케일러/역변환 유닛(이 경우 잔여 샘플(residual sample) 또는 잔여 신호(residual signal)라고 함)의 출력에 추가될 수 있다. 움직임 보상 단위가 예측 샘플을 페치하는 참조 픽처 메모리 형태 내의 주소는 움직임 벡터에 의해 제어될 수 있고, 예를 들어, X, Y 및 참조 픽처 구성요소를 가질 수 있는 심볼(421)의 형태로 움직임 보상 단위에서 사용할 수 있다. 움직임 보상은 또한, 서브-샘플 정밀 움직임 벡터가 사용 중일 때 참조 픽처 메모리로부터 페치된 대로의 샘플 값의 보간(interpolation), 움직임 벡터 예측 메커니즘 등을 포함할 수 있다.
애그리게이터(455)의 출력 샘플은 루프 필터 단위(456) 내에서 다양한 루프 필터링 기술의 대상이 될 수 있다. 비디오 압축 기술은 코딩된 비디오 비트스트림 내에 포함된 파라미터에 의해 제어되고 파서(420)로부터의 심볼(421)로서 루프 필터 단위(456)에 이용 가능하게 되는 루프 내(in-loop) 필터 기술을 포함할 수 있지만, 코딩된 픽처 또는 코딩된 비디오 시퀀스의 이전(디코딩 순서로) 부분을 디코딩하는 동안 획득되는 메타 정보는 물론이고 이전에 재구성되고 루프 필터링된 샘플 값에 응답하는 것일 수 있다.
루프 필터 단위(456)의 출력은 렌더 장치(312)로 출력될 수 있을 뿐만 아니라 향후의 픽처 간(inter-picture) 예측에 사용하기 위해 참조 픽처 메모리내에 저장될 수 있는 샘플 스트림일 수 있다.
완전히 재구성된, 특정한 코딩된 픽처는 향후 예측을 위한 참조 픽처로 사용될 수 있다. 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가 참조 픽처로서 식별되면(예를 들어, 파서(420)에 의해), 현재 참조 픽처(458)는 참조 픽처 버퍼(457)의 일부가 될 수 있고, 새로운 현재 픽처 메모리는 다음 코딩된 픽처의 재구성을 개시하기 전에 재할당될 수 있다.
비디오 디코더(310)는 ITU-T Rec. H.265. 와 같은, 표준으로 문서화될 수 있는 미리 결정된 비디오 압축 기술에 따라 디코딩 동작을 수행할 수 있다. 코딩된 비디오 시퀀스는 비디오 압축 기술 문서 또는 표준에, 특히 그 안의 프로파일 문서에 의해 지정된 대로, 그것이 비디오 압축 기술 또는 표준의 신택스를 고수한다는 의미에서, 사용 중인 비디오 압축 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다. 또한 준수(compliance)에 필요한 것은 코딩된 비디오 시퀀스의 복잡성이 비디오 압축 기술 또는 표준의 레벨에 정의된 범위 내에 있다는 것이다. 몇몇 경우에, 레벨은 최대 픽처 크기, 최대 프레임 레이트, 최대 재구성 샘플 레이트(예를 들어 초당 메가 샘플로 측정됨), 최대 참조 픽처 크기 등을 제한한다. 레벨 별로 설정된 제한은, 몇몇 경우에, 가상 참조 디코더(Hypothetical Reference Decoder, HRD) 사양 및 코딩된 비디오 시퀀스 내에서 시그널링된 HRD 버퍼 관리를 위한 메타 데이터를 통해 추가로 제한될 수 있다.
일 실시예에서, 수신기(410)는 인코딩된 비디오와 함께 추가(중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로서 포함될 수 있다. 추가 데이터는 데이터를 적절하게 디코딩하고 및/또는 원본 비디오 데이터를 더 정확하게 재구성하기 위해 비디오 디코더(310)에 의해 사용될 수 있다. 추가 데이터는, 예를 들어, 시간적, 공간적인 형태이거나, 또는 SNR 향상 계층, 중복 슬라이스, 중복 픽처, 순방향 오류 정정 코드 등일 수 있다.
도 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)는 미리 준비된 비디오를 저장하는 저장 장치일 수 있다. 화상 회의 시스템에서, 비디오 소스(301)는 로컬 이미지 정보를 비디오 시퀀스로서 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 볼 때 움직임을 전하는 복수의 개별 픽처로서 제공될 수 있다. 픽처 자체는 픽셀의 공간 어레이로서 구성될 수 있고, 여기서 각 픽셀은 사용 중인 샘플링 구조, 색 공간 등에 의존하여 하나 이상의 샘플을 포함할 수 있다. 당업자는 픽셀과 샘플 사이의 관계를 쉽게 이해할 수 있다. 아래 설명은 샘플에 중점을 둔다.
일 실시예에 따르면, 인코더(303)는 소스 비디오 시퀀스의 픽처를 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약 하에, 코딩된 비디오 시퀀스(543)로 코딩하고 압축할 수 있다. 적절한 코딩 속도를 집행하는 것은 제어기(550)의 기능 중 하나이다. 제어기는 아래 설명된 대로 다른 기능 유닛을 제어하고 이들 유닛에 기능적으로 커플링된다. 커플링은 명확성을 위해 도시되지 않았다. 제어기에 의해 설정된 파라미터는, 레이트 제어 관련 파라미터(픽처 스킵, 양자화기, 레이트 왜곡 최적화 기술의 람다 값 등), 픽처 크기, 픽처 그룹(GOP) 레이아웃, 최대 움직임 벡터 검색 범위 등을 포함할 수 있다. 당업자는 제어기(550)의 다른 기능이 특정한 시스템 설계를 위해 최적화된 비디오 인코더(303)에 부속할 수 있으므로 제어기(550)의 다른 기능을 쉽게 식별할 수 있다.
일부 비디오 인코더는 당업자가 "코딩 루프(coding loop)"로서 쉽게 인식하는 방식으로 작동한다. 지나치게 단순화된 설명으로서, 코딩 루프는 인코더(530)의 인코딩 부분(이하 "소스 코더")(코딩될 입력 픽처에 기반한 심볼 및 참조 픽처(들)를 생성할 책임이 있음), 샘플 데이터를 생성하기 위해 심볼을 재구성하는 인코더(303) 내에 내장된 (로컬) 디코더(533), 및 역시 생성할 (원격) 디코더(심볼 및 코딩된 비디오 비트스트림 간의 임의의 압축은 개시된 주제에서 고려되는 비디오 압축 기술에서 무손실이기 때문임)으로 구성될 수 있다. 그 재구성된 샘플 스트림은 참조 픽처 메모리에 입력된다(534). 심볼 스트림의 디코딩이 디코더 위치(로컬 또는 원격)와 독립적으로 비트 단위로 정확한 결과로 이어지므로, 참조 픽처 버퍼 콘텐츠는 로컬 인코더와 원격 인코더 사이에서 비트 단위로 정확하다. 달리 말하면, 인코더의 예측 부분은, 디코딩 중에 예측을 사용할 때 디코더가 "보는" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플로 "본다". 참조 픽처 동기성의 이러한 기본 원리(동기성이, 예를 들어, 채널 오류 때문에 유지될 수 없는 경우로의 드리프트(drift)를 초래하는)는 당업자에게 잘 알려져있다.
"로컬" 디코더(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) 내의 엔트로피 코딩의 대상이 될 수 있다. 엔트로피 코더는, 예를 들어 Huffman 코딩, 가변 길이 코딩, 산술 코딩과 같이 당업자에게 알려진 기술에 따라 심볼을 무손실 압축함으로써, 다양한 기능 유닛에 의해 생성된 대로의 심볼을 코딩된 비디오 시퀀스로 변환한다.
송신기(540)는 엔트로피 코더(545)에 의해 생성된 코딩된 비디오 시퀀스(들)를 버퍼링하여 통신 채널(560)을 통한 전송을 위해 그것을 준비시킬 수 있고, 이는 인코딩된 비디오 데이터를 저장하는 저장 장치에 대한 하드웨어/소프트웨어 링크일 수 있다. 송신기(540)는 비디오 코더(530)로부터의 코딩된 비디오 데이터를 전송될 다른 데이터, 예를 들어, 코딩된 오디오 데이터 및/또는 보조 데이터 스트림(소스는 미도시)과 병합할 수 있다.
제어기(550)는 인코더(303)의 동작을 관리할 수 있다. 코딩 동안, 제어기(550)는 각 코딩된 픽처에 특정 코딩된 픽처 유형을 할당할 수 있고, 이는 각 픽처에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있다. 예를 들어, 픽처는 종종 다음 프레임 유형 중 하나로 지정될 수 있다.
인트라 픽처(Intra Picture, I 픽처)는 시퀀스 내의 다른 프레임의 사용 없이 예측의 소스로서 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱은, 예를 들어, 독립 디코더 리프레시 픽처(Independent Decoder Refresh Pictures)를 포함하여, 다양한 유형의 인트라 픽처를 허용한다. 당업자는 I 픽처의 이러한 변형 및 각각의 응용 및 특징을 알고 있다.
예측 픽처(Predictive Picture, P 픽처)는 각 블록의 샘플 값을 예측하기 위해 최대 하나의 움직임 벡터와 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양방향 예측 픽처(Bi-directionally Predictive Picture, B 픽처)는 각 블록의 샘플 값을 예측하기 위해 최대 두 개의 움직임 벡터와 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다중 예측(multiple-predictive) 픽처는 단일 블록의 재구성을 위해 두 개 이상의 참조 픽처 및 연관 메타 데이터를 사용할 수 있다.
소스 픽처(source picture)는 일반적으로 공간적으로 복수의 샘플 블록(예를 들어, 각각 4x4, 8x8, 4x8 또는 16x16 샘플의 블록)으로 세분화되고 블록 대 블록 기반(block-by-block basis)으로 코딩될 수 있다. 블록은 블록의 각각의 픽처에 적용되는 코딩 할당에 의해 결정된 대로 다른(이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비예측 적으로 코딩될 수 있거나 또는 동일한 픽처의 이미 코딩된 블록을 참조하여 예측적으로 코딩될 수 있다(공간 예측 또는 인트라 예측). P 픽처의 픽셀 블록은 하나의 이전에 코딩된 참조 픽처를 참조하여 공간 예측 또는 시간 예측을 거쳐, 비예측적으로 코딩될 수 있다. B 픽처의 블록은 하나 또는 두 개의 이전에 코딩된 참조 픽처를 참조하여 공간 예측 또는 시간 예측을 거쳐, 비예측적으로 코딩될 수 있다.
비디오 인코더(303)는 ITU-T Rec와 같은, 미리 결정된 비디오 코딩 기술 또는 표준에 따라 코딩 동작을 수행할 수 있다. H.265. 그 동작에서, 비디오 인코더(303)는, 입력 비디오 시퀀스 내의 시간적 및 공간적 중복성을 활용하는 예측 코딩 동작을 포함하는, 다양한 압축 동작을 수행할 수 있다. 코딩된 비디오 데이터는, 그러므로, 사용되는 비디오 코딩 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다.
일 실시예에서, 송신기(540)는 인코딩된 비디오와 함께 추가 데이터를 전송할 수 있다. 비디오 코더(530)는 코딩된 비디오 시퀀스의 일부로서 이러한 데이터를 포함시킬 수 있다. 추가 데이터는 시간적/공간적/SNR 향상 계층, 중복 픽처 및 슬라이스와 같은 다른 형태의 중복 데이터, 보조 향상 정보(SEI) 메시지, 시각 사용성 정보(Visual Usability Information) 파라미터 집합 프래그먼트 등을 포함할 수 있다.
도 7은 다양한 유형의 랜덤 액세스 메커니즘 및 관련 픽처 유형을 도시한다. 특히, 클린 랜덤 액세스(Clean Random Access) 픽처(701), 랜덤 액세스 스킵 리딩(Random Access Skipped Leading) 픽처(702), 및 랜덤 액세스 디코딩 가능 리딩(Random Access Decodable Leading) 픽처(703)가 보여진다. 또한 다양한 랜덤 액세스 픽처 유형들로부터의 비-랜덤 액세스 픽처에 대한 가능한 예측 관계도 보여진다. 예시로서, RASL 픽처(701)는 B15, B16, 및 B17로 라벨링될 수 있고, RADL 픽처(703)는 B18 및 B19로 라벨링될 수 있고, CRA 픽처(701)는 I20 및 B21로 라벨링될 수 있다. 이 예시에서, 명칭 B는 이전에 복호화된 픽처에 대한 움직임 보상된 차이 정보를 포함하는 B 픽처를 지시할 수 있고, 명칭 I은 다른 픽처와 독립적으로 코딩된 I 픽처를 지시할 수 있다. 이 명칭에 뒤따르는 번호는 픽처 순서를 지시할 수 있다.
순간 디코딩 리프레시(Instantaneous Decoding Refresh, IDR) 픽처(미도시)은 랜덤 액세스에 사용될 수 있다. 디코딩 순서에서 IDR에 뒤따르는 픽처는 IDR 픽처에 선행하여 디코딩된 픽처를 참조하지 않을 수 있다. 제한으로 인해 코딩 효율성이 낮아질 수 있다.
CRA(Clean Random Access) 픽처(701)는 디코딩 순서에서 CRA 픽처에 뒤따르는 픽처를 허용하지만 CRA 픽처 이전에 디코딩된 참조 픽처를 출력 순서로 선행함으로써 랜덤 액세스에 사용될 수 있다. CRA는, 그것이 인터 예측(inter-prediction)을 위해 개방형 GOP 구조를 활용할 수 있기 때문에, IDR보다 더 나은 코딩 효율성을 제공할 수 있다. 깨진 링크 액세스(Broken Link Access BLA) 픽처(미도시)는 깨진 링크를 갖는 CRA 픽처일 수 있고, 이는 디코딩 순서의 몇몇 이어지는 픽처가 비트림의 생성에서 수행되는 지정되지 않은 동작으로 인한 심각한 시각적 부작용(artefacts)을 포함할 수 있음을 지시하는, 비트스트림 내의 위치이다.
랜덤 액세스 스킵 리딩(Random Access Skipped Leading, RASL) 픽처(702)는 이 CRA 픽처로부터의 랜덤 액세스가 발생할 때 정확하게 디코딩되지 않을 수 있고, 이는 일부 연관된 참조 픽처가 비트스트림 내에 없을 수 있기 때문이다. 랜덤 액세스 디코딩 가능 리딩(Random Access Decodeable Leading, RADL) 픽처(703)는 이 CRA 픽처로부터의 랜덤 액세스가 발생할 때 정확하게 디코딩될 수 있고, 이는 CRA 픽처에 선행하는 임의의 참조 픽처를 참조로 사용하지 않을 수 있기 때문이다.
위에서 설명한 대로, 특정 비디오 코딩 기술 또는 표준은 적어도 다섯 개 이상의 서로 다른 유형의 액세스 메커니즘 및 관련 픽처 유형을 포함한다. H.265와 같은 특정 관련 기술에 따르면, 이러한 픽처 유형 각각은 아래에서 설명되는,NAL 단위 유형 필드 내 넘버링 공간(numbering space)을 요구할 수 있다. 이 필드 내의 넘버링 공간은 코딩 효율성의 측면에서 비싸고 비용이 많이 든다. 넘버링 공간의 사용의 감소는, 그러므로, 코딩 효율의 관점에서 바람직하다.
도 6을 참조하면, 일 실시예에서, NAL 단위 헤더(601)의 예시가 보여진다. NAL 단위 유형(602)의 미리 정의된 값은 NAL 단위 내에 담겨진 현재 픽처가 랜덤 액세스 포인트 픽처 또는 리딩 픽처로 식별된다는 것을 지시할 수 있다. NAL 단위 유형 값은, 예를 들어, 특정 길이의 부호없는 정수(unsigned integer)로 코딩될 수 있다. 여기서 5 비트(603)이다. 이 5비트의 단일 조합은 비디오 압축 기술 또는 표준에서 IRAP_NUT(IRAP Nal Unit Type 용)로 표시될 수 있다.
NAL 단위 유형 필드 내의 필요한 넘버링 공간은, 그럼에 따라, 예를 들어 5개의 엔트리(H.265에서와 같이)에서 2개의 엔트리로 감소될 수 있고, 하나는 IDR을 위한 것이고 다른 하나는 IRAP_NUT를 위한 것이다.
도 8을 참조하면, 일 실시예에서, 시퀀스 파라미터 세트와 같은 적절히 고수준의 신택스 구조 내의 플래그 RA-유도-플래그(flag RA-derivation-flag)는 인트라 랜덤 액세스 포인트(IRAP) 유형(IDR, CRA, 또는 BLA) 또는 리딩 픽처 유형(RASL 또는 RADL)이, 아래에서 설명되는 대로, NAL 단위 헤더, 또는 타일 그룹 헤더 또는 슬라이스 헤더의 명시적 시그널링에 의해, 또는 설명 코딩된 비디오 시퀀스 시작 지시 또는 픽처 순서 카운트(Picture Order Count, POC)를 포함하는 다른 정보로부터인 암시적인 유도에 의해 지시되는지 여부를 지시할 수 있다. 예시로서, 플래그(802)는 디코딩 파라미터 세트(801) 또는 시퀀스 파라미터 세트 내에 포함될 수 있다. ra_derivation-flag가 암시적 유도를 시그널링하면, NUT 값은 다른 목적으로 재사용될 수 있다.
일 실시예에서, 파라미터 세트와 같은 적절한 고수준 신택스 구조 내의 플래그 리딩_pic_유형_유도_플래그(flag leading_pic_type_derivation_flag)(803)는, 리딩 픽처 타입(RASL 또는 RADL)이, 슬라이스 헤더 또는 타일 그룹 헤더 내에서와 같이, 픽처 또는 그 일부와 연관된 적절히 고수준의 신택스 구조 내에 존재할 수 있는 플래그에 의해 명시적으로 식별되는지, 또는 연관된 IRAP 유형, 픽처 순서 카운트(Picture Order Count, POC) 값 또는 참조 픽처 세트(reference picture set, RPS) 정보에 의해 암시적으로 식별되는지 여부를 지시할 수 있다.
아래에, 경우에 따라 위 플래그의 하나 또는 둘 모두가 인에이블(enable)을 시그널링할 때 또는 위 플래그가 존재하지 않고 플래그의 값이 미리 정의된 값으로 암시적으로 추론될 때 사용될 수 있는 특정한 유도/함축 메커니즘이 설명되어 있다.
일 실시예에서, IRAP NAL 단위 이전에 디코딩된 NAL 단위가 코딩된 비디오 시퀀스의 끝을 식별하면(예를 들어, EOS NAL 단위에 의해), IRAP 픽처(IRAP_NUT와 동일한 NUT를 갖는 NAL 단위에 의해 지시됨)는 IDR 픽처 또는 BLA 픽처로서 다뤄질 수 있다. IRAP NAL 단위 이전에 디코딩된 NAL 단위가 코딩된 비디오 시퀀스의 끝과 동일하지 않으면, IRAP 픽처는 CRA 픽처로 다뤄질 수 있다. 이것은 CRA와 IDR/BLA를 다르게 하기 위한 코드 포인트를 낭비할 필요가 없음을 의미하고, 상기 차이가 CVS의 끝으로부터 내포될 수 있기 때문이다.
일 실시예에서, NAL 단위 유형(예를 들어, IRAP_NUT)의 값은 NAL 단위에 담긴 현재 픽처가 리딩 픽처로서 식별된다는 것을 지시할 수 있다. 리딩 픽처는 랜덤 액세스 픽처 이후에 디코딩될 수 있지만, 랜덤 액세스 픽처 이전에 디스플레이될 수 있다. (필수적으로 신규한 것은 아님) (not necessarily novel)
일 실시예에서, 리딩 픽처 유형(RASL 또는 RADL)은 연관된 IRAP 유형을 해석함으로써 암시적으로 식별될 수 있다. 예를 들어, 연관된 IRAP 유형이 CRA 또는 BLA이면, 리딩 픽처는 RASL 픽처로으로 다뤄질 수 있지만, 연관된 IRAP 유형이 IDR이면, 리딩 픽처는 RADL로 다뤄질 수 있다. 이는 디코더에게 상태를 유지할 것을 요구할 수 있고, 특히, 이전에 디코딩된 IRAP 픽처가 필요하다.
일 실시예에서, 리딩 픽처 유형(RASL 또는 RADL)은, NAL 단위 헤더, 슬라이스 헤더, 타일 그룹 헤더, 파라미터 세트 또는 임의의 다른 적절히 고수준인 신택스 구조 내에 존재할 수 있는, 추가 플래그에 의해 지시될 수 있다. 리딩 픽처와 그 유형의 식별은 다음 경우에 필요하거나 유용한 것으로 식별되었다. (a) 비트스트림은 CRA 픽처로 시작한다. (b) CRA 픽처는 랜덤 액세스된다, 즉, 디코딩은 CRA 픽처에서 시작된다. (c) CRA 픽처로 시작하는 픽처의 시퀀스는 코딩된 픽처의 또 다른 시퀀스의 이후에 슬라이스되고, EOS NAL 단위는 이 두 개의 시퀀스 사이에 삽입된다. (d) 파일 작성자(file writer)는 CRA 픽처를 입력으로 포함하는 비트스트림을 가져오고 동기화 샘플 지시(sync sample indications), SAP 샘플 그룹핑(SAP sample grouping), 및/또는 is_leading 지시(is_leading indications)를 갖는 ISOBMFF 파일을 작성한다.
일 실시예에서, 리딩 픽처 유형을 지시하기 위해 NUT의 넘버링 공간 내에 할당된 리딩 픽처 유형은 없다. 대신, 리딩 픽처 유형은 디코딩 순서에에서 연관된 IRAP 픽처와 이어지는 픽처 간의 POC 값에서 유도될 수 있다. 구체적으로, IRAP 픽처 이후에 복호화되고 또한 IRAP 픽처의 POC 값보다 작은 POC 값을 갖는 non-IRAP 픽처는, 리딩 픽처로 식별될 수 있다. IRAP 픽처 이후에 복호화되고 또한 IRAP 픽처의 POC 값보다 큰 POC 값을 갖는 non-IRAP 픽처는 트레일링 픽처(trailing picture)로 식별될 수 있다.
일 실시예에서, IRAP NAL 단위 이전에 디코딩된 NAL 단위가 코딩된 비디오 시퀀스의 끝과 동일하면, 디코더 내부 상태 CvsStartFlag는 1로 설정될 수 있다. CvsStartFlag가 1이면, IRAP 픽처는 IDR 또는 BLA 픽처로 다뤄질 수 있고 IRAP 픽처와 연관된 모든 리딩 픽처는 RADL 픽처로 다뤄질 수 있다. CvsStartFlag가 1과 같을 때 IRAP NAL 단위의 NAL 단위 유형이 CRA와 같으면 HandleCraAsCvsStartFlag는 1로 설정될 수 있다.
일 실시예에서, 특정 외부 수단이, 변수 HandleCraAsCvsStartFlag를 현재 픽처에 대한 값으로 설정하기 위해 비트스트림 디코딩없이 디코더 상태를 변경하는 데 이용 가능하다면, 변수 HandleCraAsCvsStartFlag는 외부 수단에 의해 제공되는 값과 동일하게 설정될 수 있고 변수 NoIncorrectPicOutputFlag(NoRaslOutputFlag라고도 함)는 HandleCraAsCvsStartFlag와 동일하게 설정될 수 있다.
일 실시예에서, 변수 HandleCraAsCvsStartFlag가 1과 같을 수 있다면, CRA 픽처와 연관된 모든 리딩 픽처는 디코딩없이 폐기될 수 있다.
일 실시예에서, 변수 NoIncorrectPicOutputFlag가 1과 같으면, CRA 픽처와 연관된 모든 RASL 픽처는 디코딩없이 폐기될 수 있다.
도 9는 비디오 디코딩을 위해 현재 NAL(Network Abstraction Layer) 단위를 재구성하기위한 예시적인 프로세스(900)의 흐름도이다. 일부 구현예에서, 도 9의 하나 이상의 프로세스 블록은 디코더(310)에 의해 수행될 수 있다. 일부 구현예에서, 도 9의 하나 이상의 프로세스 블록은 인코더(303)와 같은 디코더(310)로부터 분리되거나 이를 포함하는 다른 디바이스 또는 디바이스 그룹에 의해 수행될 수 있다.
도 9에 도시된 대로, 프로세스(900)는 현재 NAL 단위를 인트라 랜덤 액세스 픽처(Intra Random Access Picture, IRAP) NAL 단위로 결정하는 단계를 포함할 수 있다(블록 910).
도 9에 또한 도시된 대로, 프로세스(900)는 현재 NAL 단위 바로 전에 디코딩된 이전 NAL 단위가 코딩된 비디오 시퀀스(CVS)의 끝을 지시하는지 여부를 결정하는 단계를 포함할 수 있다(블록 920).
도 9에 또한 도시된 대로, 프로세스(900)는 이전 NAL 단위가 CVS의 끝을 지시한다는 결정에 기반하여, 현재 NAL 단위를 순간 디코더 리프레시(Instantaneous Decoder Refresh, IDR) NAL 단위 또는 깨진 링크 액세스(Broken Link Access, BLA) NAL 단위 중 하나로서 디코딩하는 단계 및 디코딩된 현재 NAL 단위를 재구성하는 단계를 포함할 수 있다(블록 930).
도 9에 또한 도시된 대로, 프로세스(900)는 이전 NAL 단위가 CVS의 끝을 지시하지 않는다는 결정에 기반하여, 현재 NAL 단위를 클린 랜덤 액세스(CRA) NAL 단위로 디코딩하는 단계, 및 디코딩된 현재 NAL 단위를 재구성하는 단계를 포함할 수 있다(블록 940).
일 실시예에서, 프로세스(900)는 현재 NAL 단위의 헤더에 기반하여 현재 NAL 단위를 IDR NAL 단위 또는 BLA NAL 단위로 디코딩할지 여부를 결정하는 단계를 더 포함할 수 있다.
일 실시예에서, 현재 NAL 단위의 NAL 단위 유형은 IRAP NAL 단위 유형일 수 있다.
일 실시예에서, 이전 NAL 단위의 NAL 단위 유형은 CVS 스트림 끝(End of Stream, EOS) NAL 단위 유형일 수 있다.
일 실시예에서, 프로세스(900)는 이전 NAL 단위가 CVS의 끝을 지시한다는 결정에 기반하여, 제1 플래그를 설정하는 단계를 더 포함할 수 있다.
일 실시예에서, 프로세스(900)는 제1 플래그가 설정되는 것에 기반하여, 현재 NAL 단위와 연관된 리딩 픽처를 랜덤 액세스 디코딩 가능 리딩(Random Access Decodable Leading, RADL) 픽처로서 처리하는 단계를 더 포함할 수 있다.
일 실시예에서, 프로세스(900)는 제1 플래그가 설정되는 동안 현재 NAL 단위의 NAL 단위 유형이 CRA NAL 단위 유형인 것에 기반하여, 제2 플래그를 설정하는 단계를 더 포함할 수 있다.
일 실시예에서, 프로세스(900)는 외부 신호에 기반하여 제2 플래그를 설정하고, 제2 플래그에 대응하는 제3 플래그를 설정하는 단계를 더 포함할 수 있다.
일 실시예에서, 프로세스(900)는 제3 플래그가 설정되는 것에 기반하여, 현재 NAL 단위와 연관된 랜덤 액세스 스킵 리딩(Random Access Skipped Leading, RASL) 픽처를 디코딩하지 않고 상기 RASL픽처를 폐기하는 단계를 더 포함할 수 있다.
일 실시예에서, 프로세스(900)는 제2 플래그가 설정되는 것에 기반하여, 현재 NAL 단위와 연관된 리딩 픽처를 디코딩하지 않고 상기 리딩 픽처를 폐기하는 단계를 더 포함할 수 있다.
비록 FIG. 도 9는 프로세스(900)의 예시 블록을 도시하고, 일부 구현에서, 프로세스(900)는 도 9에 도시된 것에 추가 블록, 또는 더 적은 블록, 또는 서로 다른 블록, 또는 다르게 배열된 블록을 포함할 수 있다. 추가로 또는 대안으로, 프로세스(900)의 블록들 중 둘 이상이 병렬로 수행될 수 있다.
더 나아가, 제안된 방법은 처리 회로(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일례에서, 하나 이상의 프로세서는 제안된 방법 중 하나 이상을 수행하기 위해 컴퓨터가 판독 가능한 비일시적 매체에 저장된 프로그램을 실행한다.
전술한 네트워크 추상화 단위 헤더 내의 픽처 참조를 위한 기술은, 컴퓨터가 판독 가능한 명령어를 사용하여 컴퓨터 소프트웨어로 구현될 수 있고 하나 이상의 컴퓨터가 판독 가능한 매체 내에 물리적으로 저장될 수 있다. 예를 들어, 도 10은 개시된 주제의 특정 실시예를 구현하기에 적합한 컴퓨터 시스템(1000)을 도시한다.
컴퓨터 소프트웨어는, 어셈블리, 또는 컴파일, 또는 링크, 또는 직접 또는 해석, 마이크로 코드 실행 등을 통해, 컴퓨터 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU) 등에 의해 실행될 수 있는 명령어를 포함하는 코드를 만들어 내기 위한 유사한 메커니즘의 대상이 될 수 있는, 임의의 적절한 기계어 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령어는, 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게임 장치, 사물 인터넷 장치 등을 포함하는, 다양한 유형의 컴퓨터 또는 그 구성 요소 상에서 실행될 수 있다.
컴퓨터 시스템(1000)을 위해 도 10에 도시된 구성 요소는 본질적으로 예시이며, 본 개시의 실시예들을 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 제한을 제안하려 의도되지 않았다. 구성 요소의 구성은 컴퓨터 시스템(1000)의 예시적 실시예에 예시된 구성 요소의 임의의 하나 또는 조합과 관련된 임의의 종속성 또는 요구 사항을 갖는 것으로 해석되어서는 안된다.
컴퓨터 시스템(1000)은 특정 휴먼 인터페이스 입력 장치를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 장치는, 예를 들어, 촉각 입력(키 스트로크, 스와이프, 데이터 장갑 움직임과 같은), 오디오 입력(음성, 박수와 같은), 시각 입력(제스처와 같은), 후각 입력(미도시)을 통해 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 장치는 오디오(말소리, 음악, 주변 소리와 같은), 이미지(스캔된 이미지, 정지 이미지 카메라로부터 획득된 포토그래픽 이미지와 같은), 비디오(2차원 비디오, 입체 비디오를 포함한 3차원 비디오와 같은)와 같은, 사람에 의한 의식적인 입력과 직접 관련이 없는 특정 미디어를 캡처하는 데도 사용될 수 있다.
입력 휴먼 인터페이스 장치는 키보드(1001), 마우스(1002), 트랙 패드(1003), 터치 스크린(1010), 데이터 장갑(1204), 조이스틱(1005), 마이크(1006), 스캐너(1007), 카메라(1008) 중 하나 이상(도시된 각각에서 하나)을 포함할 수 있다.
컴퓨터 시스템(1000)은 또한 특정 인간 인터페이스 출력 장치를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 장치는, 예를 들어, 촉각 출력, 소리, 빛, 및 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 장치는, 촉각 출력 장치(예를 들어, 터치 스크린(1010), 또는 데이터 장갑(1204), 또는 조이스틱(1005)에 의한 촉각 피드백이지만 입력 장치 역할을 하지 않는 촉각 피드백 장치도 있을 수 있음), 오디오 출력 장치(예를 들어, 스피커(1009), 헤드폰(미도시)), 시각 출력 장치(각각이 터치 스크린 입력 기능을 갖거나 갖지 않고, 각각이 촉각 피드백 기능을 갖거나 갖지 않으며 - 일부는 이차원 시각 출력 또는 입체 출력과 같은 수단을 통한 삼차원 이상의 출력을 출력할 수 있는, 음극선 관(CRT) 스크린, 액정 디스플레이(LCD) 스크린, 플라즈마 스크린, 유기 발광 다이오드(OLED) 스크린을 포함하는 스크린(1010), 가상 현실 안경(미도시), 홀로그램 디스플레이 및 연기 탱크(미도시)), 및 프린터(미도시)를 포함할 수 있다.
컴퓨터 시스템(1000)은 또한 인간이 접근할 수 있는 저장 장치와, CD/DVD를 갖는 CD/DVD ROM/RW(1020) 또는 유사한 매체(1021)를 포함하는 광학 매체, 썸드라이브(1022), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(1023), 테이프 및 플로피 디스크(미도시)와 같은 레거시 자기 매체, 보안 동글(미도시)과 같은 특수 ROM/ASIC/PLD 기반 장치 등과 같은 관련 미디어를 포함할 수 있다.
당업자는 또한 현재 개시된 주제와 관련하여 사용되는 용어 "컴퓨터가 판독 가능한 매체"가 전송 매체, 또는 캐리어 파형, 또는 다른 일시적인 신호를 포괄하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(1000)은 또한 하나 이상의 통신 네트워크에 대한 인터페이스(들)를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 옵티컬일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등이 될 수 있다. 네트워크의 예시는, 이더넷과 같은 로컬 영역 네트워크, 무선 LAN, 이동 통신용 글로벌 시스템(GSM), 3세대(3G), 4세대(4G), 5세대(5G), 장기 진화(Long-Term Evolution, LTE) 등의 셀룰러 네트워크, 케이블 TV, 위성 TV, 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus 등을 포함하는 차량 및 산업용을 포함한다. 특정 네트워크는 일반적으로 특정 범용 데이터 포트 또는 주변 장치 버스(1049)(예를 들어, 컴퓨터 시스템 1000의 범용 직렬 버스(USB) 포트; 다른 것들은 일반적으로 후술하는 대로 시스템 버스에의 부착에 의해 컴퓨터 시스템(1000)의 코어로 통합된다(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스)에 부착된 외부 네트워크 인터페이스 어댑터를 필요로 한다. 예시로서, 네트워크(1055)는 네트워크 인터페이스(1054)를 사용하여 주변 버스(1049)에 연결될 수 있다. 이들 네트워크 중 임의의 것을 사용하여, 컴퓨터 시스템(1000)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 단방향, 또는 수신 전용(예를 들어, 방송 TV), 또는 단방향 전송 전용(예를 들어, CANbus에서 특정 CANbus 장치로), 또는 양방향(예를 들어, 로컬 또는 광역 디지털 네트워크를 사용하여 다른 컴퓨터 시스템으로)일 수 있다. 특정 프로토콜 및 프로토콜 스택은 위에서 설명한 것처럼 각 네트워크 및 네트워크 인터페이스 상에서 사용될 수 있다.
전술한 휴먼 인터페이스 장치, 휴먼 액세스 가능 저장 장치, 및 네트워크 인터페이스는 컴퓨터 시스템(1000)의 코어(1040)에 부착될 수 있다.
코어(1040)는 하나 이상의 중앙 처리 장치(CPU)(1041), 그래픽 처리 장치(GPU)(1042), FPGA(Field Programmable Gate Areas)(1043)의 형태인 전문화된 프로그램 가능한 처리 장치, 특정 작업을 위한 하드웨어 가속기(1044) 등을 포함할 수 있다. 앞으로. 이러한 장치는, 읽기 전용 메모리(Read-only memory, ROM)(1045), 랜덤 액세스 메모리(Random-Access Memory, RAM)(1046), 내부 비-사용자 액세스 가능 하드 드라이브, SSD(Solid-State Drive) 등과 같은 내부 대용량 저장장치(1047)와 함께, 시스템 버스 1248을 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(1248)는 추가 CPU, GPU 등에 의한 확장을 가능하게 하는 하나 이상의 물리적 플러그의 형태로 액세스 가능할 수 있다. 주변 장치는 코어의 시스템 버스(1248)에 직접 연결되거나 또는 주변 장치 버스(1049)를 통해 연결될 수 있다. 주변 장치 버스를 위한 아키텍처는 PCI(Peripheral Component Interconnect), USB 등을 포함한다.
CPU(1041), GPU(1042), FPGA(1043), 및 가속기(1044)는 조합하여 전술한 컴퓨터 코드를 구성할 수 있는, 특정 명령어를 실행할 수 있다. 그 컴퓨터 코드는 ROM(1045) 또는 RAM(1046) 내에 저장될 수 있다. 과도기 데이터는 RAM(1046)에 저장될 수 있고, 반면 영구 데이터는, 예를 들어 내부 대용량 저장장치(1047) 내에 저장될 수 있다. 하나 이상의 CPU(1041), GPU(1042), 대용량 저장 장치(1047), ROM(1045), RAM(1046) 등과 밀접하게 연관될 수 있는, 캐시 메모리의 사용을 통해 임의의 메모리 장치에 대한 빠른 저장 및 검색이 가능하다.
컴퓨터가 판독 가능한 매체는 다양한 컴퓨터 구현 동작을 수행하기 위해 그들 상에 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구성된 것일 수 있고, 또는 컴퓨터 소프트웨어 분야의 숙련자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
예시로서 그리고 제한없이, 아키텍처(1000)를 갖는 컴퓨터 시스템, 특히 코어(1040)는 하나 이상의 형태가 있는, 컴퓨터가 판독 가능한 매체 내에 구현된 소프트웨어를 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등 포함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터가 판독 가능한 매체는 위에서 소개한 대로 사용자가 액세스할 수 있는 대용량 저장 장치와 연관된 매체일 수 있고, 그 뿐만 아니라, 코어 내부 대용량 저장 장치(1047) 또는 ROM(1045)과 같은 비일시적 특성의 코어(1040)의 특정 저장 장치일 수 있다. 본 발명의 다양한 실시예를 구현하는 소프트웨어는 이러한 장치 내에 저장되고 코어(1040)에 의해 실행될 수 있다. 컴퓨터가 판독 가능한 매체는 특정 요구에 따라 하나 이상의 메모리 장치 또는 칩을 포함할 수 있다. 소프트웨어는 코어(1040) 및 특히 그 내부의 프로세서(CPU, GPU, FPGA 등을 포함)로 하여금, RAM(1046) 내에 저장된 데이터 구조를 정의하고 소프트웨어에 의해 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하여, 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하게 할 수 있다. 추가로 또는 대안으로, 컴퓨터 시스템은 특정 프로세스 또는 여기에 설명된 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 동작할 수 있는, 회로(예를 들어, 가속기(1044)) 내에 고정되거나 다른 방식으로 구현된 로직의 결과로서 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 포함할 수 있으며, 해당되는 경우 그 반대의 경우도 마찬가지이다. 컴퓨터가 판독 가능한 매체에 대한 참조는 실행을 위한 소프트웨어를 저장하는 회로(집적 회로(IC)와 같은), 또는 실행을 위한 로직을 구현하는 회로, 또는 적절한 경우 둘 다를 포괄할 수 있다. 본 개시는 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포함한다.
본 개시가 여러 예시적인 실시예를 설명했지만, 본 개시의 범위 내로 되어야 하는, 변경, 치환, 및 다양한 대체 등가물이 있다. 그러므로, 당업자는 본 명세서에 명시적으로 도시되거나 설명되지 않았지만, 본 개시 내용의 원리를 구현하고 따라서 그 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있다는 것이 이해될 것이다.

Claims (20)

  1. 적어도 하나의 프로세서를 사용하여 비디오 디코딩을 위한 현재 네트워크 추상화 계층(Network Abstraction Layer, NAL) 단위를 재구성하는 방법으로서,
    상기 현재 NAL 단위를 인트라 랜덤 액세스 픽처(Intra Random Access Picture, IRAP) NAL 단위로 결정하는 단계;
    상기 현재 NAL 단위의 바로 전에 디코딩된 이전 NAL 단위가 코딩된 비디오 시퀀스(coded video sequence, CVS)의 끝을 지시하는지 여부를 결정하는 단계;
    상기 이전 NAL 단위가 상기 CVS의 상기 끝을 지시한다는 결정에 기반하여, 상기 현재 NAL 단위를 순간 디코더 리프레시(Instantaneous Decoder Refresh, IDR) NAL 단위 또는 깨진 링크 액세스(Broken Link Access, BLA) NAL 단위 중 하나로서 디코딩하는 단계; 및
    상기 이전 NAL 단위가 상기 CVS의 상기 끝을 지시하지 않는다는 결정에 기반하여, 상기 현재 NAL 단위를 클린 랜덤 액세스(Clean Random Access, CRA) NAL 단위로 디코딩하는 단계, 및
    상기 디코딩된 현재 NAL 단위를 재구성하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 현재 NAL 단위의 헤더에 기반하여 상기 현재 NAL 단위를 상기 IDR NAL 단위 또는 BLA NAL 단위로 디코딩할지 여부를 결정하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 현재 NAL 단위의 NAL 단위 유형은 IRAP NAL 단위 유형인, 방법.
  4. 제1항에 있어서,
    상기 이전 NAL 단위의 NAL 단위 유형은 CVS 스트림 끝(End of Stream, EOS) NAL 단위 유형인, 방법.
  5. 제1항에 있어서,
    상기 이전 NAL 단위가 상기 CVS의 상기 끝을 지시한다는 결정에 기반하여, 상기 방법은 제1 플래그를 설정하는 단계
    를 더 포함하는 방법.
  6. 제5항에 있어서,
    상기 제1 플래그가 설정되는 것에 기반하여, 상기 방법은 상기 현재 NAL 단위와 연관된 리딩 픽처를 랜덤 액세스 디코딩 가능 리딩(Random Access Decodable Leading, RADL) 픽처로서 처리하는 단계
    를 더 포함하는 방법.
  7. 제5항에 있어서,
    상기 제1 플래그가 설정되는 동안 상기 현재 NAL 단위의 NAL 단위 유형이 CRA NAL 단위 유형인 것에 기반하여, 상기 방법은 제2 플래그를 설정하는 단계
    를 더 포함하는 방법.
  8. 제7항에 있어서,
    외부 신호에 기반하여 상기 제2 플래그를 설정하고, 상기 제2 플래그에 대응하는 제3 플래그를 설정하는 단계
    를 더 포함하는 방법.
  9. 제8항에 있어서,
    상기 제3 플래그가 설정되는 것에 기반하여, 상기 방법은 상기 현재 NAL 단위와 연관된 랜덤 액세스 스킵 리딩(Random Access Skipped Leading, RASL) 픽처를 디코딩하지 않고 상기 RASL 픽처를 폐기하는 단계
    를 더 포함하는 방법.
  10. 제7항에 있어서,
    상기 제2 플래그가 설정되는 것에 기반하여, 상기 방법은 상기 현재 NAL 단위와 연관된 리딩 픽처를 디코딩하지 않고 상기 리딩 픽처를 폐기하는 단계
    를 더 포함하는 방법.
  11. 제1항에 있어서,
    상기 현재 NAL 단위를 상기 IRAP NAL 단위로 결정하는 단계는 제1 결정을 포함하고;
    상기 이전 NAL 단위가 상기 CVS의 상기 끝을 지시하는지 여부를 결정하는 것은 제2 결정을 포함하며,
    상기 방법은 상기 제1 결정 및 상기 제2 결정에 기반하여 상기 현재 NAL 단위가 상기 CRA NAL 단위인지 여부를 결정하는 단계
    를 더 포함하는 방법.
  12. 적어도 하나의 프로세서를 사용하여 현재 네트워크 추상화 계층(Network Abstraction Layer, NAL) 단위를 인코딩하는 방법으로서,
    상기 현재 NAL 단위를 인트라 랜덤 액세스 픽처(Intra Random Access Picture, IRAP) NAL 단위로 결정하는 단계;
    상기 현재 NAL 단위의 바로 전에 인코딩된 이전 NAL 단위가 코딩된 비디오 시퀀스(coded video sequence, CVS)의 끝을 지시하는지 여부를 결정하는 단계;
    상기 이전 NAL 단위가 상기 CVS의 상기 끝을 지시한다는 결정에 기반하여, 상기 현재 NAL 단위를 순간 디코더 리프레시(Instantaneous Decoder Refresh, IDR) NAL 단위 또는 깨진 링크 액세스(Broken Link Access, BLA) NAL 단위 중 하나로서 인코딩하는 단계; 및
    상기 이전 NAL 단위가 상기 CVS의 상기 끝을 지시하지 않는다는 결정에 기반하여, 상기 현재 NAL 단위를 클린 랜덤 액세스(Clean Random Access, CRA) NAL 단위로 인코딩하는 단계, 및
    상기 현재 NAL 단위를 인코딩하는 단계
    를 포함하는 방법.
  13. 비디오 디코딩을 위해 현재 네트워크 추상화 계층(Network Abstraction Layer, NAL) 단위를 재구성하는 장치로서,
    프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 프로그램 코드를 읽고 청구항 제1항 내지 제11항 중 어느 하나의 상기 방법을 수행하기 위해 상기 프로그램 코드에 의해 지시된 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하는 장치.
  14. 명령어를 저장하는 컴퓨터가 판독 가능한 비일시적 매체로서,
    상기 명령어는, 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 청구항 제1항 내지 제12항 중 어느 하나의 상기 방법을 수행하게 하는 하나 이상의 명령어를 포함하는, 컴퓨터가 판독 가능한 비일시적 매체.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020217023885A 2018-12-28 2019-12-26 랜덤 액세스 포인트 및 픽처 유형의 식별 방법 KR102648248B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247008286A KR20240040121A (ko) 2018-12-28 2019-12-26 랜덤 액세스 포인트 및 픽처 유형의 식별 방법

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862786306P 2018-12-28 2018-12-28
US62/786,306 2018-12-28
US16/541,693 2019-08-15
US16/541,693 US10999590B2 (en) 2018-12-28 2019-08-15 Method for identification of random access point and picture types
PCT/US2019/068540 WO2020139921A1 (en) 2018-12-28 2019-12-26 Method for identification of random access point and picture types

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247008286A Division KR20240040121A (ko) 2018-12-28 2019-12-26 랜덤 액세스 포인트 및 픽처 유형의 식별 방법

Publications (2)

Publication Number Publication Date
KR20210102451A KR20210102451A (ko) 2021-08-19
KR102648248B1 true KR102648248B1 (ko) 2024-03-14

Family

ID=71121913

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020247008286A KR20240040121A (ko) 2018-12-28 2019-12-26 랜덤 액세스 포인트 및 픽처 유형의 식별 방법
KR1020217023885A KR102648248B1 (ko) 2018-12-28 2019-12-26 랜덤 액세스 포인트 및 픽처 유형의 식별 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020247008286A KR20240040121A (ko) 2018-12-28 2019-12-26 랜덤 액세스 포인트 및 픽처 유형의 식별 방법

Country Status (6)

Country Link
US (3) US10999590B2 (ko)
EP (1) EP3903481A4 (ko)
JP (3) JP7108138B2 (ko)
KR (2) KR20240040121A (ko)
CN (1) CN113892260A (ko)
WO (1) WO2020139921A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7368477B2 (ja) * 2018-12-31 2023-10-24 華為技術有限公司 ビデオエンコーダ、ビデオデコーダ、及び対応する方法
ES2967911T3 (es) * 2019-04-03 2024-05-06 Huawei Tech Co Ltd Codificación de vídeo entrelazado con imágenes principales
CN112532569B (zh) * 2019-09-19 2022-05-31 澜至电子科技(成都)有限公司 视频码流保护装置、方法以及存储介质
US11399188B2 (en) * 2020-01-01 2022-07-26 Tencent America LLC Method for mixed NAL unit type support in a coded picture
WO2021237184A1 (en) * 2020-05-22 2021-11-25 Bytedance Inc. Signaling of display information in video bitstreams
US20230199198A1 (en) * 2021-12-17 2023-06-22 Lenovo (Singapore) Pte. Ltd. Video codec importance indication and radio access network awareness configuration
US11824653B2 (en) 2021-12-17 2023-11-21 Lenovo (Singapore) Pte. Ltd. Radio access network configuration for video approximate semantic communications
US11917206B2 (en) 2021-12-17 2024-02-27 Lenovo (Singapore) Pte. Ltd. Video codec aware radio access network configuration and unequal error protection coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150373345A1 (en) * 2014-06-20 2015-12-24 Qualcomm Incorporated Video coding using end of sequence network abstraction layer units
JP2017522793A (ja) 2014-06-20 2017-08-10 クゥアルコム・インコーポレイテッドQualcomm Incorporated マルチレイヤコーデックのためのピクチャ順序カウントリセット

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9351016B2 (en) 2012-04-13 2016-05-24 Sharp Kabushiki Kaisha Devices for identifying a leading picture
US20140098868A1 (en) * 2012-10-04 2014-04-10 Qualcomm Incorporated File format for video data
KR101825575B1 (ko) 2013-01-07 2018-02-05 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩 방법 및 장치
US9674533B2 (en) * 2013-04-05 2017-06-06 Qualcomm Incorporated Picture alignments in multi-layer video coding
EP3457700A1 (en) * 2013-04-07 2019-03-20 Dolby International AB Signaling coded picture buffer removal delay
US9525883B2 (en) * 2013-07-15 2016-12-20 Qualcomm Incorporated Cross-layer alignment of intra random access point pictures
CN104754341B (zh) * 2013-12-31 2019-02-26 华为技术有限公司 一种视频数据编码、解码的方法和装置
WO2015125494A1 (en) * 2014-02-21 2015-08-27 Sharp Kabushiki Kaisha System for temporal identifier handling for hybrid scalability
US11388441B2 (en) * 2014-03-18 2022-07-12 Qualcomm Incorporated Derivation of SPS temporal ID nesting information for multi-layer bitstreams
US10623755B2 (en) * 2016-05-23 2020-04-14 Qualcomm Incorporated End of sequence and end of bitstream NAL units in separate file tracks
US10855988B2 (en) * 2018-12-19 2020-12-01 Qualcomm Incorporated Adaptive prediction structures

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150373345A1 (en) * 2014-06-20 2015-12-24 Qualcomm Incorporated Video coding using end of sequence network abstraction layer units
JP2017522793A (ja) 2014-06-20 2017-08-10 クゥアルコム・インコーポレイテッドQualcomm Incorporated マルチレイヤコーデックのためのピクチャ順序カウントリセット

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Benjamin Bross, et al., Versatile Video Coding (Draft 3), JVET-L1001-v7, 2018.12.20.

Also Published As

Publication number Publication date
JP2023162379A (ja) 2023-11-08
EP3903481A1 (en) 2021-11-03
US20210227239A1 (en) 2021-07-22
JP2022137216A (ja) 2022-09-21
US20230336757A1 (en) 2023-10-19
WO2020139921A1 (en) 2020-07-02
US11758165B2 (en) 2023-09-12
KR20240040121A (ko) 2024-03-27
EP3903481A4 (en) 2022-10-12
US10999590B2 (en) 2021-05-04
US20200213604A1 (en) 2020-07-02
JP7108138B2 (ja) 2022-07-27
KR20210102451A (ko) 2021-08-19
JP7343663B2 (ja) 2023-09-12
JP2022507669A (ja) 2022-01-18
CN113892260A (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
KR102648248B1 (ko) 랜덤 액세스 포인트 및 픽처 유형의 식별 방법
KR102656160B1 (ko) 전방향 미디어 코딩을 위한 랩-어라운드 패딩 방법, 디바이스, 및 컴퓨터 판독가능 매체
JP7177270B2 (ja) ネットワーク抽象化ユニットヘッダからのタイルの識別化
KR20200128146A (ko) 디코딩에서 대역외 스트림 종료 nal 유닛을 사용하는 방법 및 디바이스
JP7297089B2 (ja) コード化ピクチャにおける混合nalユニット・タイプをサポートする方法、システム及びコンピュータ・プログラム
JP7254188B2 (ja) 点群符号化のためのパラメータセット設計の方法並びにその装置及びプログラム
US20230075516A1 (en) System and method for decoding including network abstraction layer unit structure with picture header
JP7237410B2 (ja) ビデオビットストリームにおけるピクチャサイズおよび分割情報の効率的なシグナリングのための方法、装置、およびコンピュータプログラム
CN113491128B (zh) 已解码图片存储器管理的方法和相关装置
EP3854086A1 (en) Network abstraction layer unit header

Legal Events

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