KR20210146879A - 스케일러블 비디오 코딩 및 전송을 위한 방법, 장치, 컴퓨터 프로그램 및 컴퓨터 판독 가능한 매체 - Google Patents

스케일러블 비디오 코딩 및 전송을 위한 방법, 장치, 컴퓨터 프로그램 및 컴퓨터 판독 가능한 매체 Download PDF

Info

Publication number
KR20210146879A
KR20210146879A KR1020217016144A KR20217016144A KR20210146879A KR 20210146879 A KR20210146879 A KR 20210146879A KR 1020217016144 A KR1020217016144 A KR 1020217016144A KR 20217016144 A KR20217016144 A KR 20217016144A KR 20210146879 A KR20210146879 A KR 20210146879A
Authority
KR
South Korea
Prior art keywords
payload
data
configuration data
configuration
representation
Prior art date
Application number
KR1020217016144A
Other languages
English (en)
Inventor
로버트 존슨
Original Assignee
브이-노바 인터내셔널 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 브이-노바 인터내셔널 리미티드 filed Critical 브이-노바 인터내셔널 리미티드
Publication of KR20210146879A publication Critical patent/KR20210146879A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

제1 품질 수준에서의 이미지의 제1 및 제2 표현들에 기초하여 잔차 데이터(residual data)가 획득된다. 제2 표현은 보다 낮은 제2 품질 수준에서의 이미지의 표현에 기초한다. 잔차 데이터는 제2 표현을 사용하여 제1 표현을 재구성하기 위해 디코더에 의해 사용 가능하다. 헤더부(310) 및 페이로드부(320)을 포함하는 구성 메시지(300)가 생성되고 디코더에 의한 처리를 위해 출력된다. 페이로드부(320)는 잔차 데이터의 처리에 관한 획득된 구성 데이터(350)를 포함한다. 헤더부(310)는: (i) 구성 메시지 유형을 특정하고 페이로드부(320)의 소정의 페이로드 포맷을 나타내는 메시지 유형 파라미터(312) - 상기 페이로드 포맷을 갖는 페이로드부(320)의 포맷 크기는 미리 결정되거나 페이로드부의 콘텐츠로부터 결정될 수 있음 -, 및 (ii) 페이로드부(320)의 실제 크기를 특정하는 페이로드 크기 파라미터(314)를 포함한다.

Description

스케일러블 비디오 코딩 및 전송을 위한 방법, 장치, 컴퓨터 프로그램 및 컴퓨터 판독 가능한 매체
본 발명은 방법들, 장치들, 컴퓨터 프로그램들 및 컴퓨터 판독 가능한 매체들에 관한 것이다. 전적으로는 아니지만, 특히, 본 발명은 상대적으로 높은 품질의 수준으로 이미지의 표현을 재구성하는 데 사용 가능한 잔차 데이터(residual data)에 관한 구성 정보(configuration information)의 처리에 사용하기 위한 방법들, 장치들, 컴퓨터 프로그램들 및 컴퓨터 판독 가능한 매체들에 관한 것이다.
신호들의 압축 및 압축 해제는 많은 공지된 시스템들에서 고려된다. 많은 유형들의 신호, 예를 들어 비디오는 예를 들어 데이터 통신 네트워크를 통한, 전송을 위해 압축되고 인코딩될 수 있다. 이러한 신호가 디코딩될 때, 신호의 품질 수준을 증가시키고/거나 원래의 신호에 포함된 정보를 가능한 많이 복원하는 것이 바람직할 수 있다.
일부 공지된 시스템들은 스케일러블 인코딩(scalable encoding) 기술들을 활용한다. 스케일러블 인코딩은 예를 들어 디코더의 성능 및 이용 가능한 대역폭에 따라, 하나 이상의 상이한 품질 수준들에서의 신호의 재구성을 가능하게 하기 위해 정보와 함께 신호를 인코딩하는 것을 수반한다.
스케일러블 인코딩 시스템에서 신호들의 재구성에 관한 몇 가지 고려 사항들이 있다. 하나의 이러한 고려 사항은 저장, 사용 및/또는 송신되는 정보의 양이다. 정보의 양은 예를 들어 재구성된 신호의 원하는 품질의 수준, 재구성에 사용되는 정보의 특성, 및/또는 이러한 정보가 어떻게 구성되는지에 따라, 달라질 수 있다. 또 다른 고려 사항은 수신된 정보를 신뢰할 수 있도록 처리하는 디코더의 능력이다. 디코더의 신뢰성에 영향을 미칠 수 있는 하나의 요인은 오차들을 핸들링하고/거나 디코더에 의해 예상되지 않고/거나 수정되고/거나 인식되지 않는 수신된 정보를 핸들링하는 디코더의 능력이다.
본 발명의 다양한 양태들이 첨부된 청구항들에 제시된다.
추가 특징들 및 이점들은 단지 예로서 주어지는, 바람직한 실시 예들에 대한 다음의 설명으로부터 명백해질 것이며, 이는 첨부한 도면들을 참조하여 이루어진다.
도 1은 본 발명의 일 실시 예에 따른 신호 처리 시스템의 일 예의 개략적인 블록도를 도시한다;
도 2a 및 도 2b는 본 발명의 일 실시 예에 따른 신호 처리 시스템의 다른 예의 개략적인 블록도를 도시한다;
도 3은 본 발명의 일 실시 예에 따른 구성 메시지의 일 예의 개략도를 도시한다;
도 4는 본 발명의 일 실시 예에 따른 방법의 일 예를 도시한 흐름도이다;
도 5는 본 발명의 일 실시 예에 따른 구성 메시지의 또 다른 예의 개략도를 도시한다;
도 6은 본 발명의 일 실시 예에 따른 방법의 또 다른 예를 도시한 흐름도이다; 그리고
도 7은 본 발명의 일 실시 예에 따른 장치의 일 예의 개략적인 블록도를 도시한다.
도 1을 참조하면, 신호 처리 시스템(100)의 일 예가 도시되어 있다. 신호 처리 시스템(100)은 신호들을 처리하는 데 사용된다. 신호의 유형들의 예들은 의료, 과학 또는 홀로그래픽 이미징에서 사용되는 것들과 같은 비디오 신호들, 이미지 신호들, 오디오 신호들, 체적 신호들, 또는 다른 다차원 신호들을 포함하지만, 이에 제한되지는 않는다.
신호 처리 시스템(100)은 제1 장치(102) 및 제2 장치(104)를 포함한다. 제1 장치(102) 및 제2 장치(104)는 제1 장치(102)가 서버 디바이스의 기능들을 수행하고 제2 장치(104)가 클라이언트 디바이스의 기능들을 수행하는 클라이언트-서버 관계를 가질 수 있다. 신호 처리 시스템(100)은 적어도 하나의 추가 장치(도시되지 않음)를 포함할 수 있다. 제1 장치(102) 및/또는 제2 장치(104)는 하나 이상의 구성요소를 포함할 수 있다. 하나 이상의 구성요소는 하드웨어 및/또는 소프트웨어로 구현될 수 있다. 하나 이상의 구성요소는 신호 처리 시스템(100)에 함께 위치될 수 있거나 서로 원격으로 위치될 수 있다. 장치의 유형들의 예들은 컴퓨터화된 디바이스들, 핸드헬드 또는 랩톱 컴퓨터들, 태블릿들, 모바일 디바이스들, 게임 콘솔들, 스마트 텔레비전들, 셋톱 박스들, 증강 및/또는 가상 현실 헤드셋들 등을 포함하지만, 이에 제한되지는 않는다.
제1 장치(102)는 데이터 통신 네트워크(106)를 통해 제2 장치(104)에 통신 가능하게 결합된다. 데이터 통신 네트워크(106)의 예들은 인터넷, 근거리 네트워크(Local Area Network; LAN) 및 광역 네트워크(Wide Area Network; WAN)를 포함하지만, 이에 제한되지는 않는다. 제1 및/또는 제2 장치(102, 104)는 데이터 통신 네트워크(106)에 대한 유선 및/또는 무선 연결부를 가질 수 있다.
제1 장치(102)는 인코더(108)를 포함한다. 인코더(108)는 이하에서 "신호 데이터(signal data)"라고 지칭되는, 신호에 포함되는 데이터를 인코딩하도록 구성된다. 예를 들어, 신호가 비디오 신호인 경우, 인코더(108)는 비디오 데이터를 인코딩하도록 구성된다. 비디오 데이터는 다수의 이미지들 또는 프레임들의 시퀀스를 포함한다. 인코더(108)는 신호 데이터를 인코딩하는 것 외에 하나 이상의 추가 기능을 수행할 수 있다. 인코더(108)는 다양한 상이한 방식들로 구현될 수 있다. 예를 들어, 인코더(108)는 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
이 예에서는 제1 장치(102)가 인코더(108)를 포함하지만, 다른 예들에서 제1 장치(102)는 인코더(108)와 별개이다. 이러한 예들에서, 제1 장치(102)는 인코더(108)에 통신 가능하게 결합된다. 제1 장치(102)는 하나 이상의 소프트웨어 기능 및/또는 하드웨어 모듈로서 구현될 수 있다.
제2 장치(104)는 디코더(110)를 포함한다. 디코더(110)는 신호 데이터를 디코딩하도록 구성된다. 디코더(110)는 신호 데이터를 디코딩하는 것 외에 하나 이상의 추가 기능을 수행할 수 있다. 디코더(110)는 다양한 상이한 방식들로 구현될 수 있다. 예를 들어, 디코더(110)는 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
이 예에서는 제2 장치(104)가 디코더(110)를 포함하지만, 다른 예들에서 제2 장치(104)는 디코더(110)와 별개이다. 이러한 예들에서, 제2 장치(104)는 디코더(110)에 통신 가능하게 결합된다. 제2 장치(104)는 하나 이상의 소프트웨어 기능 및/또는 하드웨어 모듈로서 구현될 수 있다.
인코더(108)는 신호 데이터를 인코딩하고 인코딩된 신호 데이터를 데이터 통신 네트워크(106)를 통해 디코더(110)에 전송한다. 디코더(110)는 수신된, 인코딩된 신호 데이터를 디코딩하고 디코딩된 신호 데이터를 생성한다. 디코더(110)는 디코딩된 신호 데이터, 또는 디코딩된 신호 데이터를 사용하여 도출된 데이터를 출력할 수 있다. 예를 들어, 디코더(110)는 제2 장치(104)와 연관된 하나 이상의 디스플레이 디바이스 상에서의 디스플레이를 위해 이러한 데이터를 출력할 수 있다.
본 명세서에서 설명되는 일부 예들에서, 인코더(108)는 소정의 품질 수준에서의 신호의 표현, 및 디코더(110)가 하나 이상의 보다 높은 품질 수준에서 신호의 표현을 재구성하는 데 사용할 수 있는 정보를 디코더(110)에 전송한다. 이러한 정보는 "재구성 데이터(reconstruction data)"라고 지칭될 수 있다. 일부 예들에서, 표현의 "재구성"은 원래의 표현의 정확한 복제가 아닌 표현을 획득하는 것을 수반한다. 표현이 원래의 표현과 동일한 정도는 양자화 수준들을 포함하지만 이에 제한되지 않는 다양한 요인들에 의존할 수 있다. 소정의 품질 수준에서의 신호의 표현은 소정의 품질 수준에서의 신호에 포함되는 데이터의 렌디션, 버전 또는 묘사인 것으로 고려될 수 있다. 일부 예들에서, 재구성 데이터는 인코더(108)에 의해 인코딩되고 디코더(110)에 전송되는 신호 데이터에 포함된다. 예를 들어, 재구성 데이터는 메타 데이터의 형태일 수 있다. 일부 예들에서, 재구성 데이터는 신호 데이터와 별개로 인코딩되고 전송된다.
디코더(110)가 하나 이상의 보다 높은 품질 수준에서의 신호의 표현을 재구성하는 데 사용하는 정보는 아래에서 보다 상세히 설명될 바와 같이, 잔차 데이터를 포함할 수 있다. 잔차 데이터는 재구성 데이터의 일 예이다. 디코더(110)가 하나 이상의 보다 높은 품질 수준에서의 신호의 표현을 재구성하는 데 사용하는 정보는 또한 잔차 데이터의 처리에 관한 구성 데이터를 포함할 수 있다. 구성 데이터는 잔차 데이터가 인코더(108)에 의해 어떻게 처리되었는지 그리고/또는 잔차 데이터가 디코더(110)에 의해 어떻게 처리될지를 나타낼 수 있다. 구성 데이터는 예를 들어 메타 데이터의 형태로, 디코더(110)에 시그널링될 수 있다.
도 2a 및 도 2b를 참조하면, 신호 처리 시스템(200)의 일 예가 개략적으로 도시되어 있다. 신호 처리 시스템(200)은 인코더를 포함하는 제1 장치(202) 및 디코더를 포함하는 제2 장치(204)를 포함한다. 제1 장치(202) 및 제2 장치(204) 각각에서, 항목들은 두 개의 논리 수준들 상에 도시된다. 두 개의 수준들은 점선으로 분리된다. 가장 높은 제1 수준 상의 항목들은 상대적으로 높은 품질 수준에서의 데이터에 관한 것이다. 가장 낮은 제2 수준 상의 항목들은 상대적으로 낮은 품질 수준에서의 데이터에 관한 것이다. 상대적으로 높은 품질 수준 및 상대적으로 낮은 품질 수준은 다수의 품질 수준들을 갖는 계층화된 계층 구조(tiered hierarchy)에 관련된다. 일부 예들에서, 계층화된 계층 구조는 두 개보다 많은 품질 수준들을 포함한다. 이러한 예들에서, 제1 장치(202) 및 제2 장치(204)는 두 개보다 많은 상이한 수준들을 포함할 수도 있다. 도 2a 및 도 2b에 도시된 것들의 위 그리고/또는 아래에 하나 이상의 다른 수준이 있을 수 있다.
먼저 도 2a를 참조하면, 제1 장치(202)는 상대적으로 높은 품질 수준(206)에서의 이미지의 제1 표현을 획득한다. 소정의 이미지의 표현은 이미지에 포함된 데이터의 표현이다. 이미지는 비디오의 소정의 프레임일 수 있다. 상대적으로 높은 품질 수준(206)에서의 이미지의 제1 표현은 이하에서 "입력 데이터"로서 지칭될 것이며, 이는 이 예에서, 이것이 제1 장치(202)에서의 인코더에 대한 입력으로서 제공되는 데이터이기 때문이다. 제1 장치(202)는 입력 데이터(206)를 수신할 수 있다. 예를 들어, 제1 장치(202)는 적어도 하나의 다른 장치로부터 입력 데이터(206)를 수신할 수 있다. 제1 장치(202)는 입력 데이터(206)의 연속적인 부분들, 예를 들어 비디오의 연속적인 프레임들을 수신하도록, 그리고 각 연속적인 프레임에 대해 본 명세서에서 설명된 동작들을 수행하도록 구성될 수 있다. 예를 들어, 비디오는 프레임들(F1, F2, ... FT)를 포함할 수 있고, 제1 장치(202)는 이들 각각을 차례로 처리할 수 있다.
제1 장치(202)는 입력 데이터(206)에 기초하여 데이터(212)를 도출한다. 이 예에서, 입력 데이터(206)에 기초한 데이터(212)는 상대적으로 낮은 품질 수준에서의 이미지의 표현(212)이다. 이 예에서, 데이터(212)는 입력 데이터(206)에 대해 다운 샘플링 동작을 수행함으로써 도출되고 이에 따라 이하에서 "다운 샘플링된 데이터"라고 지칭될 것이다. 다른 예들에서, 데이터(212)는 입력 데이터(206)에 대해 다운 샘플링 동작 이외의 동작을 수행함으로써 도출된다.
이 예에서, 다운 샘플링된 데이터(212)는 상대적으로 낮은 품질 수준으로 처리된 데이터(213)를 생성하도록 처리된다. 다른 예들에서, 다운 샘플링된 데이터(212)는 상대적으로 낮은 품질 수준으로 처리되지 않는다. 이와 같이, 제1 장치(202)는 상대적으로 낮은 품질 수준으로 데이터를 생성할 수 있으며, 여기서 상대적으로 낮은 품질 수준에서의 데이터는 다운 샘플링된 데이터(212) 또는 처리된 데이터(213)를 포함한다.
일부 예들에서, 처리된 데이터(213)를 생성하는 것은 다운 샘플링된 데이터(212)를 인코딩하는 것을 수반한다. 다운 샘플링된 데이터(212)를 인코딩하는 것은 상대적으로 낮은 품질 수준으로 인코딩된 이미지를 생성한다. 제1 장치(202)는 예를 들어 제2 장치(204)로의 전송을 위해, 인코딩된 이미지를 출력할 수 있다. 제2 장치(204)로의 전송을 위한 출력으로서, 예를 들어 인코딩된 비디오를 형성하는, 일련의 인코딩된 이미지들은 "베이스(base)" 스트림이라고 지칭될 수 있다. 제1 장치(202)에서 생성되는 대신에, 인코딩된 이미지는 제1 장치(202)와 별개인 인코딩 디바이스에 의해 생성될 수 있다. 인코딩된 이미지는 H.264 인코딩된 비디오의 일부일 수 있다. 처리된 데이터(213)를 생성하는 것은 예를 들어, H.264 비디오 인코더와 같은 별개의 인코딩 디바이스에 의한 출력으로서 비디오의 연속적인 프레임들을 생성하는 것을 포함할 수 있다. 처리된 데이터(213)의 생성을 위한 데이터의 중간 세트는 별도의 인코딩 디바이스에 의해 생성된 임의의 중간 데이터와는 대조적으로, 이러한 인코더의 출력을 포함할 수 있다.
상대적으로 낮은 품질 수준으로 처리된 데이터(213)를 생성하는 것은 또한 상대적으로 낮은 품질 수준으로 인코딩된 이미지를 디코딩하는 것을 수반할 수 있다. 디코딩 동작은 아래에서 명백해질 바와 같이, 제2 장치(204)에서 디코딩 동작을 에뮬레이트하기 위해 수행될 수 있다. 인코딩된 이미지를 디코딩하는 것은 상대적으로 낮은 품질 수준으로 디코딩된 이미지를 생성한다. 일부 예들에서, 제1 장치(202)는 상대적으로 낮은 품질 수준으로 인코딩된 이미지를 디코딩하여 상대적으로 낮은 품질 수준으로 디코딩된 이미지를 생성한다. 다른 예들에서, 제1 장치(202)는 예를 들어 제1 장치(202)와 별개인 인코딩 및/또는 디코딩 디바이스로부터, 상대적으로 낮은 품질 수준으로 디코딩된 이미지를 수신한다. 인코딩된 이미지는 H.264 디코더를 사용하여 디코딩될 수 있다. 별개의 디코딩 디바이스에 의한 디코딩은 원격 디코딩 디바이스로의 전송을 위해 구성된 인코딩된 데이터 스트림과 같은 인코딩된 비디오를 비디오의 연속적인 디코딩된 프레임들을 생성하기 위해 제1 장치(202)와 함께 구현된 별개의 블랙 박스 디코더로 입력하는 것을 포함할 수 있다. 이에 따라, 처리된 데이터(213)는 복합 비선형 인코딩 및 디코딩 프로세스를 통해 생성되는 비디오 데이터의 프레임을 포함할 수 있으며, 여기서 인코딩 및 디코딩 프로세스는 H.264와 같은 특정 인코딩 표준에 따라 시공간적 상관 관계들을 모델링하는 것을 수반할 수 있다. 그러나, 임의의 인코더의 출력이 대응하는 디코더로 공급되기 때문에, 이러한 복합성은 제1 장치(202)로부터 효과적으로 숨겨진다.
일 예에서, 상대적으로 낮은 품질 수준으로 처리된 데이터(213)를 생성하는 것은 또한 예를 들어, 제1 장치(202)에 의해 획득된 다운 샘플링된 데이터(212)와 디코딩된 이미지와 간의 비교에 기초하여, 예를 들어 다운 샘플링된 데이터(212)와 디코딩된 이미지 간의 차이에 기초하여, 교정 데이터를 획득하는 것을 수반한다. 교정 데이터는 다운 샘플링된 데이터(212)를 인코딩 및 디코딩하는 데 도입된 오차들을 교정하는 데 사용될 수 있다. 일부 예들에서, 제1 장치(202)는 예를 들어 제2 장치(204)로의 전송을 위해, 인코딩된 신호뿐만 아니라 교정 데이터를 출력한다. 이는 수신자가 다운 샘플링된 데이터(212)를 인코딩 및 디코딩하는 데 도입된 오차들을 교정할 수 있게 한다. 이러한 교정 데이터는 또한 "제1 개선(enhancement)" 스트림이라고 지칭될 수도 있다. 교정 데이터는 다운 샘플링된 데이터(212)와 디코딩된 이미지 사이의 차이에 기초할 수 있기 때문에, 이는 (예를 들어, 아래에서 추후에 설명될 잔차 데이터의 다른 세트와 상이한) 잔차 데이터의 형태로서 보여질 수 있다.
일부 예들에서, 상대적으로 낮은 품질 수준으로 처리된 데이터(213)를 생성하는 것은 또한 교정 데이터를 사용하여 디코딩된 이미지를 교정하는 것을 수반한다. 예를 들어, 전송을 위한 출력으로서의 교정 데이터는 디코딩된 이미지와의 조합에 적합한 형태로 된 다음, 디코딩된 이미지에 추가될 수 있다. 이는 프레임 단위로 수행될 수 있다. 다른 예들에서, 제1 장치(202)는 교정 데이터를 사용하여 디코딩된 이미지를 교정하는 것이 아니라, 다운 샘플링된 데이터(212)를 사용한다. 예를 들어, 특정 경우들에서, 인코딩된 다음 디코딩된 데이터만이 사용될 수 있고, 다른 경우들에서, 인코딩 및 디코딩은 다른 처리로 대체될 수 있다.
일부 예들에서, 처리된 데이터(213)를 생성하는 것은 위에서 설명된 인코딩, 디코딩, 획득 및 교정 동작들 이외의 하나 이상의 동작을 수행하는 것을 수반한다.
제1 장치(202)는 상대적으로 낮은 품질 수준에서의 데이터에 기초하여 데이터(214)를 획득한다. 상술한 바와 같이, 상대적으로 낮은 품질 수준에서의 데이터는 처리된 데이터(213), 또는 다운 샘플링된 데이터(212) - 여기서 다운 샘플링된 데이터(212)는 보다 낮은 수준으로 처리되지 않음 - 를 포함할 수 있다. 위에서 설명된 바와 같이, 특정 경우들에서, 처리된 데이터(213)는 교정 데이터를 사용하여 교정되는 (예를 들어, 인코딩-디코딩 동작으로부터의) 재구성된 비디오 스트림을 포함할 수 있다. 도 2a 및 도 2b의 예에서, 데이터(214)는 상대적으로 높은 품질 수준에서의 이미지의 제2 표현이며, 상대적으로 높은 수준 품질에서의 이미지의 제1 표현은 입력 데이터(206)이다. 상대적으로 높은 품질 수준에서의 제2 표현은 상대적으로 높은 수준 품질에서의 이미지의 예비 또는 예측된 표현인 것으로 고려될 수 있다. 이 예에서, 제1 장치(202)는 상대적으로 낮은 품질 수준에서의 데이터에 대해 업 샘플링 동작을 수행함으로써 데이터(214)를 도출한다. 데이터(214)는 이하에서 "업 샘플링된 데이터(upsampled data)"라고 지칭될 것이다. 그러나, 다른 예들에서, 예를 들어 데이터(212)가 입력 데이터(206)를 다운 샘플링함으로써 도출되지 않는 경우, 하나 이상의 다른 동작이 데이터(214)를 도출하기 위해 사용될 수 있다. 상대적으로 높은 및 상대적으로 낮은 품질 수준들에 대한 참조들은 제1 및 제2 품질 수준에 대한 참조들 - 여기서 제2 수준 품질은 제1 수준 품질보다 높음 - 에 대응할 수 있다는 점에 유념해야 한다. 본 명세서에서 설명되는 바와 같이, 특정 경우들에서, 품질 수준들은 상이한 공간 해상도들에 대응할 수 있다.
입력 데이터(206) 및 업 샘플링된 데이터(214)가 사용되어 잔차 데이터(216)가 획득된다. 잔차 데이터(216)는 이미지와 연관된다. 잔차 데이터(216)는 잔차 요소들의 세트의 형태일 수 있다. 잔차 요소들의 세트(216)에서의 잔차 요소는 입력 데이터(206)에서의 각각의 이미지 요소와 연관될 수 있다. 이미지 요소의 일 예는 픽셀이다.
이러한 예에서, 소정의 잔차 요소는 입력 데이터(206)에서의 대응하는 이미지 요소의 값으로부터 업 샘플링된 데이터(214)에서의 이미지 요소의 값을 감산함으로써 획득된다. 이에 따라, 입력 데이터(206)를 재구성하기 위해 업 샘플링된 데이터(214)와 조합하여 잔차 데이터(216)가 사용 가능하다. 잔차 데이터(216)는 또한 "재구성 데이터" 또는 "개선 데이터"라고 지칭될 수도 있다. 하나의 경우에, 잔차 데이터(216)는 "제2 개선" 스트림의 일부를 형성할 수 있다.
제1 장치(202)는 잔차 데이터(216)의 처리에 관한 구성 데이터를 획득한다. 구성 데이터는 잔차 데이터(216)가 제1 장치(202)에 의해 어떻게 처리되고/거나 생성되었는지 그리고/또는 잔차 데이터(216)가 제2 장치(204)에 의해 어떻게 처리될지를 나타낸다. 구성 데이터는 구성 파라미터들의 세트를 포함할 수 있다. 구성 데이터는 제2 장치(204)가 데이터를 처리하고/거나 잔차 데이터(216)를 사용하여 입력 데이터(206)를 재구성하는 방법을 제어하는 데 사용 가능할 수 있다. 구성 데이터는 잔차 데이터(216)의 하나 이상의 특성과 관련될 수 있다. 상이한 구성 데이터는 잔류 데이터(216)에 대해 수행되고/거나 이를 사용하는 상이한 처리를 초래할 수 있다. 이에 따라, 구성 데이터는 잔차 데이터(216)를 사용하여 입력 데이터(206)를 재구성하는 데 사용 가능하다.
이러한 예에서, 제1 장치(202)는 제2 장치(204)가 입력 데이터(206)를 재구성할 수 있게 하기 위해, 다운 샘플링된 데이터(212)에 기초한 데이터, 잔차 데이터(216)에 기초한 데이터, 및 구성 데이터를 제2 장치(204)에 송신한다.
이제 도 2b를 참조하면, 제2 장치(204)는 다운 샘플링된 데이터(212)에 기초한(예를 들어, 이로부터 도출되는) 데이터(220)를 수신한다. 제2 장치(204)는 또한 잔차 데이터(216)에 기초한 데이터를 수신한다. 예를 들어, 제2 장치(204)는 "베이스" 스트림(데이터(220)), "제1 개선 스트림"(임의의 교정 데이터) 및 "제2 개선 스트림"(잔차 데이터(216))을 수신할 수 있다. 제2 장치(204)는 또한 잔차 데이터(216)의 처리에 관한 구성 데이터를 수신한다. 다운 샘플링된 데이터(212)에 기초한 데이터(220)는 다운 샘플링된 정보(212) 자체, 처리된 정보(213), 또는 다운 샘플링된 데이터(212) 또는 처리된 데이터(213)로부터 도출되는 데이터일 수 있다. 잔차 데이터(216) 에 기초한 데이터는 잔차 데이터(216) 자체, 또는 잔차 데이터(216)로부터 도출된 데이터일 수 있다.
일부 예들에서, 수신된 데이터(220)는 상대적으로 낮은 품질 수준로 인코딩된 이미지 및/또는 교정 데이터를 포함할 수 있는 처리된 데이터(213)를 포함한다. 예를 들어 제1 장치(202)가 다운 샘플링된 데이터(212)를 처리하여 처리된 데이터(213)를 생성하는 일부 예들에서, 제2 장치(204)는 수신된 데이터(220)를 처리하여 처리된 데이터(222)를 생성한다. 제2 장치(204)에 의한 이러한 처리는 상대적으로 낮은 품질 수준으로 디코딩된 이미지를 생성하기 위해 (예를 들어, "베이스" 인코딩된 비디오 스트림의 일부를 형성하는) 인코딩된 이미지를 디코딩하는 것을 포함할 수 있다. 일부 예들에서, 제2 장치(204)에 의한 처리는 획득된 교정 데이터를 사용하여 디코딩된 이미지를 교정하는 것을 포함한다. 이로 인해, 처리된 데이터(222)는 제1 또는 상대적으로 낮은 품질 수준으로 교정된 데이터의 프레임을 포함할 수 있다. 일부 예들에서, 상대적으로 낮은 품질 수준으로 인코딩된 이미지는 제2 장치(204)와 별개인 디코딩 디바이스에 의해 디코딩된다. 상대적으로 낮은 품질 수준으로 인코딩된 이미지는 H.264 디코더를 사용하여 디코딩될 수 있다.
다른 예들에서, 수신된 데이터(220)는 다운 샘플링된 데이터(212)를 포함하고 처리된 데이터(213)는 포함하지 않는다. 일부 이러한 예들에서, 제2 장치(204)는 처리된 데이터(222)를 생성하기 위해 수신된 데이터(220)를 처리하지 않는다.
제2 장치(204)는 상대적으로 낮은 품질 수준에서의 데이터를 사용하여 업 샘플링된 데이터(214)를 도출한다. 상술한 바와 같이, 상대적으로 낮은 품질 수준에서의 데이터는 처리된 데이터(222), 또는 수신된 데이터(220) - 여기서 제2 장치(204)는 수신된 데이터(220)를 상대적으로 낮은 품질 수준으로 처리하지 않음 - 를 포함할 수 있다. 업 샘플링된 데이터(214)는 상대적으로 높은 품질 수준에서의 이미지의 예비 표현이다. 업 샘플링된 데이터(214)는 상대적으로 낮은 품질 수준에서의 데이터에 대해 업 샘플링 동작을 수행함으로써 도출될 수 있다.
제2 장치(204)는 잔차 데이터(216)를 획득한다. 입력 데이터(206)를 재구성하기 위해 업 샘플링된 데이터(214)와 잔차 데이터(216)가 사용 가능하다. 잔차 데이터(216)는 입력 데이터(206)와 업 샘플링된 데이터(214)간의 비교를 나타낸다.
제2 장치(204)는 또한 잔차 데이터(216)의 처리에 관련된 구성 데이터를 획득한다. 구성 데이터는 입력 데이터(206)를 재구성하기 위해 제2 장치(204)에 의해 사용 가능하다. 예를 들어, 구성 데이터는 잔차 데이터(216)가 어떻게 사용되고/거나 처리될지, 또는 적어도 잔차 데이터(216)가 사용될지 여부에 영향을 미치는 잔차 데이터(216)에 관한 특성 또는 속성을 나타낼 수 있다. 일부 예들에서, 구성 데이터는 잔차 데이터(216)를 포함한다.
이러한 구성 데이터의 사용에 관한 몇 가지 고려 사항이 있다. 하나의 이러한 고려 사항은 생성, 저장, 송신 및/또는 처리되는 정보의 양이다. 사용되는 정보가 많을수록, 이러한 정보를 핸들링하는 데 수반될 수 있는 자원들의 양이 더 많아진다. 이러한 자원들의 예들은 송신 자원들, 저장 자원들 및 처리 자원들을 포함한다. 일부 공지된 기술들과 비교하여, 본 명세서에서 설명된 예들은 상대적으로 적은 양의 정보가 사용될 수 있게 한다. 이는 데이터 통신 네트워크(106)를 통해 송신되는 데이터의 양을 감소시킬 수 있다. 이러한 절감은 데이터가 공지된 시스템들에서 전송되는 정보의 양이 특히 높을 수 있는 고품질 비디오 데이터에 관한 것일 경우에 특히 적절할 수 있다.
이러한 구성 데이터의 사용에 관한 또 다른 고려 사항은 상이한 유형들의 디코딩 디바이스에 적응하는 능력이다. 예를 들어, 소정의 인코더는 처리 및/또는 저장 성능들과 같은 상이한 특성들을 각각 갖는 복수의 디코더들에 정보를 전송할 수 있다. 이미지 재구성에서 구성 데이터의 사용은 재구성을 수행하는 데 사용되는 디코더 디바이스의 유형 및/또는 성능에 대해 애그노스틱(agnostic)인 것이 바람직하다. 일부 공지된 기술들과 비교하여, 본 명세서에서 설명된 예들은 상이한 작동 특성들을 갖는 상이한 유형들의 디코더들이 구성 데이터를 신뢰할 수 있도록 처리할 수 있게 한다.
이러한 구성 데이터의 사용에 관한 추가 고려 사항은 구성 데이터를 처리하기 위해 디코더에서 수반되는 처리의 양 및/또는 복합성이다. 일부 공지된 기술들과 비교하여, 본 명세서에서 설명된 예들은 구성 데이터를 획득 및/또는 처리하기 위해 디코더에 의해 수행되는 처리의 양을 감소시킨다.
오차 핸들링이 또한 고려된다. 예를 들어, 구성 데이터의 처리에서 잠재적인 오차들을 핸들링하는 디코더의 능력은 디코더의 신뢰도에서의 요인이 될 수 있다. 일부 공지된 기술들과 비교하여, 본 명세서에서 설명된 예들은 디코더가 예상되지 않거나 인식되지 않는 데이터의 수신뿐만 아니라 잠재적인 오차들도 핸들링할 수 있게 한다. 이는 디코더의 신뢰성을 효과적으로 증가시킬 수 있다.
도 3을 참조하면, 구성 메시지(300)의 일 예가 도시되어 있다. 장치, 예를 들어 인코더(108)를 포함하는 제1 장치(102)는 구성 메시지(300)를 생성하고, 추가 장치, 예를 들어 디코더(110)를 포함하는 제2 장치(104)에 의한 처리를 위해 구성 메시지(300)를 출력한다.
구성 메시지(300)는 헤더부(310) 및 페이로드부(320)를 포함한다. 페이로드부(320)는 구성 데이터(350)를 포함한다. 구성 데이터(350)는 잔차 데이터, 예를 들어 위에서 설명된 바와 같은 잔차 데이터(216)의 처리와 관련된다. 일부 예들에서, 구성 메시지(300)는 정수의 바이트 길이이다.
헤더부(310)는 메시지 유형 파라미터(312)를 포함한다. 메시지 유형 파라미터(312)는 구성 메시지(300)의 메시지 유형을 특정한다. 메시지 유형 파라미터(312)에 의해 특정된 메시지 유형은 구성 메시지(300)가 어떻게 처리될지를 나타낼 수 있다. 예시적인 메시지 유형은 이미지 세트 구성 메시지이다. 이미지 세트 구성 메시지는 이미지들의 세트에서의 다수의 이미지들에 대응할 수 있다. 또 다른 예시적인 메시지 유형은 이미지 구성 메시지이다. 이미지 구성 메시지는 이미지들의 세트에서의 소정의 이미지에만 대응할 수 있다. 떠 다른 예시적인 메시지 유형은 인코딩된 데이터 메시지이다. 인코딩된 데이터 메시지는 소정의 이미지에 대한 인코딩된 잔차 데이터를 포함하도록 배열될 수 있다. 떠 다른 예시적인 메시지 유형은 인코더 메타 데이터 메시지이다. 인코더 메타 데이터 메시지는 하나 이상의 인코더 특성에 관한 메타 데이터를 포함할 수 있다. 또 다른 예시적인 메시지 유형은 디코더 제어 메시지이다. 디코더 제어 메시지는 디코더를 제어하기 위한 명령어들을 포함할 수 있다.
메시지 유형 파라미터(312)는 소정의 페이로드 포맷을 갖는 페이로드부(320)를 나타낸다. 페이로드부(320)의 페이로드 포맷은 구성 메시지(300)의 메시지 유형에 기초하여 결정될 수 있다. 페이로드 포맷은 페이로드부(320)에 포함되는 구성 데이터(350)의 구성 파라미터들의 세트를 정의할 수 있다. 일부 예들에서, 페이로드부(320)의 페이로드 포맷은 페이로드부(320)의 콘텐츠가 어떻게 처리될지를 특정하는 특정 처리 로직을 정의한다. 페이로드부(320)는 포맷 크기를 가진다. 페이로드부(320)의 포맷 크기는 페이로드부(320)의 페이로드 포맷에 대응한다. 소정의 페이로드 포맷을 갖는 페이로드부의 포맷 크기는 미리 결정되거나 페이로드부의 콘텐츠로부터 결정될 수 있다. 예를 들어, 포맷 크기는 페이로드 포맷에 의해 정의되는 개별 구성 파라미터들의 조합된 크기에 기초하여 결정될 수 있다. 포맷 크기는 페이로드부(320)의 가능한 크기 또는 제안된 크기로 고려될 수 있다.
헤더부(310)는 또한 페이로드 크기 파라미터(314)를 포함한다. 페이로드 크기 파라미터(314)는 페이로드부(320)의 실제 크기를 특정한다. 페이로드부(320)의 실제 크기는 정수의 바이트일 수 있다.
일부 예들에서, 페이로드 크기 파라미터(314)의 값은 고정 길이 요소에 저장된다. 페이로드 크기 파라미터(314)의 값을 저장하는 고정 길이 요소는 헤더부(310)의 소정의 바이트에서의 미리 결정된 수의 비트를 포함할 수 있다. 예를 들어, 페이로드 크기 파라미터(314)의 값은 1 바이트 헤더부에서의 3 비트를 포함하는 고정 길이 요소에 저장될 수 있다.
일부 예들에서, 페이로드 크기 파라미터(314)는 페이로드부(320)의 실제 크기의 가능한 값들을 저장하는 페이로드 크기 룩업 테이블에 대한 참조를 포함한다. 예를 들어, 페이로드 크기 파라미터(314)는 페이로드 크기 룩업 테이블로부터 페이로드부(320)의 실제 크기를 획득하는 데 사용 가능한 값을 포함할 수 있다.
일부 예들에서, 페이로드 크기 파라미터(314)의 값은 가변 길이 요소에 저장된다. 이는 예를 들어, 페이로드부(310)의 실제 크기가 페이로드 크기 룩업 테이블에서 특정된 값들 중 하나가 아닌 경우일 수 있다. 페이로드 크기 파라미터(314)에 의해 특정된 페이로드부(310)의 실제 크기는 가변 비트 길이를 가질 수 있다. 가변 길이 요소는 정수의 바이트를 포함한다. 일부 예들에서, 가변 길이 요소의 적어도 1 바이트는 가변 길이 요소가 소정의 적어도 1 바이트에 1 이상의 추가 바이트를 포함하는지 여부를 나타내도록 배열된 1 이상의 미리 결정된 비트를 가진다. 예를 들어, 가변 길이 요소의 소정의 바이트는 페이로드 크기 파라미터(314)를 저장하도록 배열된 7 비트, 및 가변 길이 요소에 소정의 바이트 다음에 추가 바이트가 존재하는지 여부를 나타내는 데 사용되는 1 비트를 포함할 수 있다. 이와 같이, 페이로드 크기 파라미터(314)는 페이로드 크기 파라미터(314)의 비트 길이에 관계 없이 가변 길이 요소를 사용하여 표현될 수 있다. 가변 길이 요소는 페이로드 크기 파라미터(314)의 값을 저장하는 데 사용 가능한 최소 수의 바이트를 포함한다.
일부 예들에서, 페이로드 크기 파라미터(314)의 값이 가변 길이 요소에 저장됨을 나타내는 데이터가 고정 길이 요소에 저장된다. 예를 들어, 페이로드 크기 파라미터(314)의 값이 미리 결정된 값들의 세트 중 하나인 것으로 결정되는 경우, 값은 고정 길이 요소에 저장될 수 있고/거나 고정 길이 요소는 페이로드 크기 룩업 테이블에 대한 참조를 포함할 수 있다. 한편, 페이로드 크기 파라미터(314)의 값이 미리 결정된 값들의 세트 중 하나가 아니라고 결정되는 경우, 가변 길이 요소는 값을 저장하는 데 사용될 수 있고, 고정 길이 요소는 예를 들어 고정 길이 요소에 포함되는 플래그를 통해, 가변 길이 요소가 값을 저장하는 데 사용되고 있음을 나타내도록 배열될 수 있다.
이러한 예에서, 헤더부(310)는 메시지 유형 파라미터(312) 및 페이로드 크기 파라미터(314)만을 포함한다. 다른 예들에서, 헤더부(310)는 하나 이상의 추가 파라미터를 포함한다. 일부 예들에서, 헤더부(310)는 1 바이트 길이이다. 예를 들어, 메시지 유형 파라미터(312)는 5 비트로 표현될 수 있고, 페이로드 크기 파라미터(314)는 1 바이트 헤더부(310)의 나머지 3비트로 표현될 수 있다. 예를 들어 가변 길이 요소가 페이로드부(320)의 실제 크기를 표현하는 데 사용되는 다른 예들에서, 헤더부(310)는 1 초과 바이트를 포함한다.
페이로드부(320)의 실제 크기는 페이로드부(320)의 포맷 크기와 동일하거나 상이할 수 있다. 실제 크기와 포맷 크기가 동일한지 여부에 관계 없이, 실제 크기를 특정하는 페이로드 크기 파라미터(314)는 구성 메시지(300)의 헤더부(310)에 포함된다.
페이로드부(320)의 가능한 크기, 즉 포맷 크기가 메시지 유형 파라미터(312)로부터 추론될 수 있을 때 페이로드부(320)의 실제 크기를 특정하는 페이로드 크기 파라미터(314)를 포함시키는 것은 특히 포맷 크기와 실제 크기가 동일할 때, 비효율적인 것으로 보일 수 있고/거나 정보의 중복인 것으로 보일 수 있다. 구성 메시지(300)에 페이로드 크기 파라미터(314)를 포함시키는 것은 이러한 파라미터가 포함되지 않은 경우에 비해 구성 메시지(300)를 위해 사용되는 보다 많은 양의 데이터를 수반한다. 그러나, 구성 메시지(300)에 페이로드 크기 파라미터(314)를 포함시키는 것은 아래에서 보다 상세히 설명될 바와 같이, 디코더(110)의 보다 효율적이고 신뢰할 수 있는 처리 및/또는 이러한 파라미터가 사용되지 않는 경우에 비해 개선된 오차 핸들링을 가능하게 한다.
도 4를 참조하면, 구성 데이터를 처리하는 방법(400)의 일 예가 도시되어 있다. 방법(400)은 위에서 설명된 제2 장치(104)와 같은 디코더를 포함하는 장치에 의해 수행될 수 있다.
일부 예들에서, 잔차 데이터가 수신된다. 이 예에서, 수신된 잔차 데이터는 위에서 설명된 잔차 데이터(216)이다. 잔차 데이터(216)는 인코더(108)와 같은 인코더로부터 수신될 수 있다. 잔차 데이터(216)는 상대적으로 높은 품질 수준에서의 이미지의 제2 표현(214)을 사용하여 계층화된 계층에서의 상대적으로 높은 품질 수준에서의 이미지의 제1 표현(206)을 재구성하는 데 사용 가능하다. 제2 표현(214)은 계층화된 계층에서의 상대적으로 낮은 품질 수준에서의 이미지의 표현(222)에 기초한다. 일부 예들에서, 상대적으로 낮은 품질 수준에서의 표현(222)을 도출하는 데 사용 가능한 데이터가 인코더(108)로부터 수신된다.
항목(410)에서, 구성 메시지가 수신된다.
이 예에서, 수신된 구성 메시지는 위에서 설명된 구성 메시지(300)이다. 구성 메시지(300)는 인코더(108)로부터 수신될 수 있다.
항목(420)에서, 수신된 구성 메시지(300)는 메시지 유형 파라미터(312) 및 페이로드 크기 파라미터(314)를 사용하여 처리된다. 구성 메시지(300)는 구성 메시지(300)의 페이로드부(320)에 저장된 구성 데이터(350)를 획득하도록 처리된다.
일부 예들에서, 구성 메시지(300)를 처리하는 것은 메시지 유형 파라미터(312) 및 페이로드 크기 파라미터(312)를 획득하기 위해 구성 메세지(300)의 헤더부(310)을 파싱하는 것을 포함한다. 페이로드 크기 파라미터(314)에 기초하여, 페이로드부(320)의 실제 크기가 결정된다. 메시지 유형 파라미터(312)에 기초하여, 구성 메시지(300)의 메시지 유형이 결정된다. 구성 메시지(300)는 결정된 메시지 유형 및 페이로드부(320)의 결정된 실제 크기에 따라 처리될 수 있다.
구성 메시지(300)를 처리하는 것은 구성 데이터(350)를 획득하기 위해 페이로드부(320)을 파싱하는 것을 포함할 수 있다. 일부 예들에서, 구성 메시지(300)를 처리하는 것은 페이로드부(320)가 파싱됨에 따라 판독되었던 구성 메시지(300)의 바이트 수를 추적하는 것을 포함한다. 디코더(110)는 페이로드 크기 파라미터(314)에 의해 특정된 바와 같이 페이로드부(320)를 파싱할 때 판독된 바이트 수와 페이로드부(320)의 실제 크기 사이에 결정된 불일치가 존재하는 경우 언더 판독의 발생을 검출할 수 있다. 언더 판독은 구성 메시지들을 처리할 때 잠재적인 오차원일 수 있다.
일부 예들에서, 페이로드 크기 파라미터(314)는 다음 구성 메시지의 시작을 결정하는 데 사용된다. 다음 구성 메시지는 디코더(110)에 의해 수신된 구성 메시지들의 시퀀스에서 구성 메시지(300)에 대한 다음의 연속적인 구성 메시지일 수 있다. 구성 메시지들의 시퀀스는 구성 데이터의 일부를 형성할 수 있다. 구성 메시지(300) 및 다음 구성 메시지는 동일한 이미지 또는 상이한 이미지들에 대응할 수 있다. 예를 들어, 구성 메시지(300)는 이미지 시퀀스에서의 제1 이미지에 대응할 수 있고, 다음 구성 메시지는 이미지 시퀀스에서의 상이한 제2 이미지에 대응할 수 있다.
일부 예들에서, 구성 메시지(300)를 처리하는 것은 페이로드부(320)의 콘텐츠의 적어도 일부를 폐기하는 것을 포함한다. 페이로드부(320)의 콘텐츠의 적어도 일부는 페이로드 크기 파라미터(314)를 사용하여 폐기될 수 있다. 예를 들어, 디코더(110)는 다음 구성 메시지 - 다음 구성 메시지의 시작은 페이로드부(320)의 콘텐츠의 적어도 일부를 처리하지 않고 페이로드 크기 파라미터(314)를 사용하여 결정됨 - 로 스킵할 수 있다.
이에 따라, 페이로드 크기 파라미터(314)를 사용하는 것은 디코더(110)가 가능한 언더 판독들을 효율적인 방식으로 처리할 수 있게 한다. 페이로드 크기 파라미터(314)를 사용하여 다음 메시지의 시작 위치를 찾는 것은 또한 디코더(110)가 다수의 구성 메시지들을 포함하는 바이트스트림과의 정확한 정렬 또는 동기화를 유지할 수 있게 한다. 예를 들어, 소정의 구성 메시지의 콘텐츠 및/또는 포맷이 디코더(110)의 지식 없이 업데이트되었고/거나 예상하지 못하고/거나 인식되지 않더라도, 디코더(110)는 여전히 다음 구성 메시지의 시작을 위치를 찾을 수 있고 이에 따라 바이트스트림과 동기화되어 유지될 수 있다. 뿐만 아니라, 바이트스트림이 기형(malformed)으로 되는 경우, 디코더(110)는 오버 판독이 발생하려고 할 때를 검출하고 이에 따라 응답할 수 있다. 예를 들어, 디코더(110)는 현재 구성 메시지의 처리를 중단하고 바이트스트림을 다음 구성 메시지의 시작의 결정된 위치로 리셋할 수 있다. 이에 따라, 페이로드 크기 파라미터(314)를 사용하여 구성 메시지(300)를 처리하는 것은 디코더(110)가 수정되었고/거나 인식되지 않고/거나 예상하지 못한 구성 메시지들을 핸들링할 수 있다는 점에서, 이러한 파라미터가 사용되지 않는 경우에 비해 디코더(110)의 신뢰성 및/또는 적응성을 개선한다. 디코더(110)는 또한 바이트스트림과 동기화되지 않은 잠재적인 언더 판독들 및 오버 판독들을 핸들링할 수 있음으로써, 잠재적인 오차들을 핸들링하는 디코더(110)의 능력을 개선한다.
일부 예들에서, 구성 메시지(300)를 처리하는 것은 페이로드부(320)의 제1 콘텐츠를 파싱하는 것을 포함한다. 제1 콘텐츠는 페이로드부(320)의 포맷 크기에 대응한다. 제1 콘텐츠는 구성 데이터(350)를 포함할 수 있다. 제1 콘텐츠는 구성 파라미터들의 제1 세트를 포함할 수 있다. 구성 메시지(300)를 처리하는 것은 페이로드 크기 파라미터(314)를 사용하여 페이로드부(320)의 나머지 콘텐츠를 폐기하는 것을 더 포함할 수 있다. 페이로드부(320)의 나머지 콘텐츠는 제1 콘텐츠에 포함되지 않은 페이로드부(320)의 콘텐츠를 포함한다. 나머지 콘텐츠는 추가 구성 데이터를 포함한다. 나머지 콘텐츠는 구성 파라미터들의 추가 세트를 포함할 수 있다. 나머지 콘텐츠의 존재는 페이로드부(320)의 포맷 크기와 실제 크기 간의 불일치를 검출함으로써 결정될 수 있다. 즉, 실제 크기가 포맷 크기보다 크다고 결정되는 경우, 포맷 크기에 기초하여 예상되는 콘텐츠 외에, 추가 콘텐츠가 페이로드부(320)에 존재한다고 결정된다.
항목(430)에서, 제1 표현(206)은 획득된 구성 데이터(350)를 사용하여 재구성된다. 제1 표현(206)은 획득된 구성 데이터(350)에 따라 잔차 데이터(216)를 사용함으로써 재구성될 수 있다.
도 5를 참조하면, 구성 메시지(500)의 일 예가 개략적으로 도시되어 있다. 장치, 예를 들어, 인코더(108)를 포함하는 제1 장치(102)는 구성 메시지(500)를 생성하고, 추가 장치, 예를 들어 디코더(110)를 포함하는 제2 장치(104)에 의한 처리를 위해 구성 메시지(500)를 출력할 수 있다. 도 5에 도시된 일부 항목들은 도 3에 도시된 항목들과 유사하다. 이에 따라, 유사한 항목들에 대해 200씩 증분된 대응하는 참조 부호들이 사용되었다.
구성 메시지(500)는 헤더부(510) 및 페이로드부(520)를 포함한다. 헤더부(510)는 메시지 유형 파라미터(512)를 포함한다. 메시지 유형 파라미터(512)는 구성 메시지(500)의 메시지 유형을 특정한다. 메시지 유형은 구성 메시지(500)가 어떻게 처리될지를 나타낸다. 헤더부(510)은 또한 페이로드 크기 파라미터(514)를 포함한다. 페이로드 크기 파라미터(514)는 페이로드부(520)의 실제 크기를 특정한다.
이러한 예에서, 페이로드부(520)은 제1 페이로드부(522)를 포함한다. 제1 페이로드부(522)는 잔차 데이터(216)의 처리에 관한 제1 구성 데이터(552)를 포함한다. 페이로드부(520)는 또한 제2 페이로드부(524)를 포함한다. 이러한 예에서, 제2 페이로드부(524)는 페이로드부(520)에서 제1 페이로드부(522)에 대해 후속하여 배열된다. 제1 페이로드부(522)에 대해 후속하여, 제2 페이로드부(524)를 배열하는 것은 제2 페이로드부(524)가 수신, 처리 및/또는 파싱되기 전에 제1 페이로드부(522)가 디코더(110)에 의해 수신, 처리 및/ 또는 파싱될 수 있게 할 수 있다. 제2 페이로드부(524)는 잔차 데이터(216)의 처리에 관한 제2 구성 데이터(554)를 포함한다.
제1 및 제2 페이로드부들(522, 524)은 함께 구성 메시지(500)의 페이로드부(520)를 형성한다. 이에 따라, 페이로드 크기 파라미터(514)는 제1 및 제2 페이로드부들(522, 524)의 전체 크기를 나타낸다.
일부 예들에서, 제1 페이로드부(522)는 제1 구성 데이터(552) 모두를 포함한다. 일부 예들에서, 제2 페이로드부(524)는 제2 구성 데이터(554) 모두를 포함한다. 이와 같이, 제1 및 제2 구성 데이터(552, 554)는 구성 메시지(500)의 페이로드부(520)의 별개의 부분들에 저장될 수 있다. 제2 구성 데이터(554)에 대해 페이로드부(520)의 별개의 부분에 제1 구성 데이터(552)를 저장하는 것은 특히 제1 및 제2구성 데이터(552, 554)중 하나를 사용 및/또는 처리하지 않도록 구성되는 디코더에 대해, 디코더에 의한 페이로드부(520)의 콘텐츠의 효율적인 핸들링을 가능하게 한다.
일부 예들에서, 헤더부(510)는 제1 페이로드부(522)의 크기 및/또는 제2 페이로드부(524)의 크기를 특정하지 않는다. 일부 예들에서, 제1 페이로드부(522)의 크기는 메시지 유형 파라미터(512)에 의해 나타내어지는 포맷 크기에 기초하여 결정될 수 있다. 이에 따라, 메시지 유형 파라미터(512)에 의해 나타내어지는 포맷 크기는 제1 페이로드부(522)의 콘텐츠를 반영할 수 있지만 제2 페이로드부(524)의 콘텐츠는 반영하지 않을 수 있다.
제1 구성 데이터(552) 및 제2 구성 데이터(554) 중 하나 또는 둘 모두는 잔차 데이터(216)를 사용하여 입력 데이터(206)를 재구성하는 데 사용 가능할 수 있다. 일부 예들에서, 제2 구성 데이터(554)는 보충 구성 데이터를 포함한다. 보충 구성 데이터는 제1 구성 데이터(552)를 보충하도록 배열된다.
제1 구성 데이터(552)는 하나 이상의 디코더의 제1 세트에 관련된다. 하나 이상의 디코더의 제1 세트는 제1 작동 특성을 가진다. 작동 특성의 일 예는 처리 성능이다. 제2 구성 데이터(554)는 하나 이상의 디코더의 제2 세트에 관련된다. 하나 이상의 디코더의 제2 세트는 제2 작동 특성을 가진다. 구성 메시지(500)가 전송되는 디코더(110)는 제1 세트 또는 제2 세트에 포함될 수 있다. 구성 메시지(500)를 생성하는 인코더(108)는 디코더(110)가 어느 디코더들의 세트에 포함되는지를 알지 못할 수 있다. 인코더(108)는 디코더들의 두 세트들에 걸쳐 다수의 디코더들에 구성 메시지(500)를 전송할 수 있다.
일부 예들에서, 제1 작동 특성은 하나 이상의 디코더의 제1 세트가 작동되도록 구성되는 제1 버전에 대응하고, 제2 작동 특성은 하나 이상의 디코더의 제2 세트가 작동되도록 구성되는 상이한 제2 버전에 대응한다. 제2 버전은 제1 버전에 비해 보다 최신 버전일 수 있다. 제1 및 제2 버전들은 구성 메시지들이 어떻게 처리될지를 정의하고/거나 이러한 구성 메시지들의 콘텐츠를 정의하는 신택스 프레임워크의 상이한 버전들일 수 있다. 이에 따라, 신택스가 제1 버전으로부터 제2 버전으로 업데이트될 때, 제2 구성 데이터(554)가 제1 버전으로부터의 제1 구성 데이터(552)를 포함하는 구성 메시지에 추가된다. 제2 구성 데이터(554)는 예를 들어, 제1 구성 데이터(552)에 첨부될 수 있다.
제2 구성 데이터(554)를 수용하기 위해 새로운 메시지 유형을 생성하는 대신에 기존 메시지 유형의 구성 메시지에 제2 설정 데이터(554)를 추가하는 것은 새로운 메시지 유형들이 생성되는 경우에 비해 저장, 전송 및/또는 처리되는 데이터의 양을 감소시킨다. 새로운 메시지 유형들을 정의하는 대신에 기존 메시지 유형들의 구성을 수정함으로써, 모든 관련 구성 데이터를 전달하는 데 사용되는 총 구성 메시지 수가 감소될 수 있다. 각 구성 메시지는 예를 들어, 적어도 1 바이트 길이일 수 있는 대응하는 헤더를 가진다. 이에 따라, 전체 구성 메시지 수를 감소시킴으로써, 저장, 전송 및/또는 처리되는 데이터의 양이 감소될 수 있다.
일부 예들에서, 디코더(110)는 제1 및 제2 페이로드부(522, 524) 둘 모두를 처리할 수 없다. 하나의 경우에, 인코더(108)는 제2 구성 데이터(554)가 구성 메시지(500)에 포함되는 업데이트를 겪을 수 있지만, 디코더(110)는 이러한 업데이트를 겪지 않을 수 있다. 즉, 인코더(108) 및 디코더(110)는 신택스의 상이한 버전들에 따라 작동될 수 있다. 이러한 예들에서, 인코더(108)에 의해 해석되고 디코더(110)에 의해 해석되는 바와 같은 페이로드부(520)의 포맷 크기에 불일치가 있을 수 있다. 예를 들어, 디코더(110)가 추가 콘텐츠 및 업데이트된 페이로드 포맷을 알지 못하고 이전 버전에 따라 작동되기 때문에, 페이로드부(520)의 추가 콘텐츠 및 버전 업데이트 다음의 업데이트된 페이로드 포맷을 인식하는 인코더(108)에 따른 포맷 크기는 디코더(110)에 따른 포맷 크기와 상이하다. 인코더(108)에 대해, 포맷 크기는 업데이트된 페이로드부(520)의 실제 크기와 동일하지만, 디코더(110)에 대해서는 그렇지 않다. 이에 따라, 포맷 크기 단독은 페이로드부(520)의 실제 크기의 신뢰할 수 없는 표시자일 수 있다. 이에 따라, 페이로드부(520)의 실제 크기를 특정하는 페이로드 크기 파라미터(514)를 포함하는 것은 아래에서 보다 상세히 설명될 바와 같이, 디코더(110)의 보다 신뢰할 수 있는 처리를 가능하게 한다.
도 6을 참조하면, 구성 데이터를 처리하기 위한 방법(600)의 일 예가 도시되어 있다. 방법(600)은 위에서 설명된 제2 장치(104)와 같은 디코더를 포함하는 장치에 의해 수행될 수 있다.
항목(610)에서, 구성 메시지(500)가 수신된다.
항목(620)에서, 구성 메시지(500)는 제1 구성 데이터(552) 및 제2 구성 데이터(554) 중 하나 또는 둘 모두를 획득하도록 처리된다.
일부 예들에서, 예를 들어 디코더(110)가 디코더들의 제1 세트에 있는 경우, 제1 페이로드부(522)는 디코더(110)에 의해 파싱되고 제2 페이로드부(524)는 디코더(110)에 의해 파싱되지 않는다. 제1 페이로드부(522)를 파싱하지만 제2 페이로드부(524)는 파싱하지 않는 것은 디코더(110)가 제1 구성 데이터(552)를 획득할 수 있게 하지만 제2 구성 데이터(554)는 획득할 수 없게 한다. 일부 예들에서, 예를 들어 디코더(110)가 디코더들의 제2 세트에 있는 경우, 제2 페이로드부(524)는 디코더(110)에 의해 파싱되고 제1 페이로드부(522)는 디코더(110)에 의해 파싱되지 않는다. 제2 페이로드부(524)를 파싱하지만 제1 페이로드부(522)는 파싱하지 않는 것은 디코더(110)가 제2 구성 데이터(554)를 획득할 수 있게 하지만 제1구성 데이터(552)는 획득할 수 없게 한다. 일부 예들에서, 예를 들어 디코더(110)가 디코더들의 제2 세트에 있는 경우, 제1 페이로드부(522) 및 제2 페이로드부(524) 둘 모두가 제1 구성 데이터(552) 및 제2 구성 데이터(554) 둘 모두를 획득하도록 파싱된다.
페이로드 크기 파라미터(514)는 다음 구성 메시지의 시작을 결정하는 데 사용될 수 있다. 일부 예들에서, 예를 들어 디코더(110)가 디코더들의 제1 세트에 있는 경우, 제2 페이로드부(524)의 콘텐츠는 폐기된다. 제2 페이로드부(524)의 콘텐츠는 제2 구성 데이터(554)를 포함한다. 제2 페이로드부(524)의 콘텐츠는 페이로드 크기 파라미터(514)에서 특정된 페이로드부(520)의 전체 크기를 사용함으로써 폐기될 수 있다. 예를 들어, 디코더(110)는 제1 페이로드부(522)의 콘텐츠를 판독하고, 이어서 시작 위치가 제2 페이로드부(524)의 콘텐츠를 판독하지 않고 페이로드 크기 파라미터(514)를 사용하여 찾아진 다음 구성 메시지로 스킵할 수 있다.
페이로드 크기 파라미터(514)를 사용하여 다음 메시지의 시작 위치를 찾는 것은 디코더(110)가 다수의 구성 메시지들을 포함하는 바이트스트림과 동기화된 채로 유지될 수 있게 한다. 이에 따라, 디코더(110)는 구성 메시지(500)를 처리할 수 있고 디코더(110)가 디코더들의 제1 세트에 있든 디코더들의 제2 세트에 있든 관계 없이 다음 구성 메시지의 시작 위치를 찾을 수 있다.
항목(630)에서, 상대적으로 높은 품질 수준에서의 이미지의 제1 표현(206)이 재구성된다. 제1 표현(206)은 항목(620)에서 획득된 제1 구성 데이터(552) 및 제2 구성 데이터(554) 중 하나 또는 둘 모두를 사용하여 재구성된다. 디코더(110)가 제1 및 제2 구성 데이터(552, 554) 둘 모두를 획득하는 경우에, 이미지의 제1 표현(206)은 제1 및 제2 구성 데이터(552, 554) 둘 모두를 사용하여 재구성된다. 디코더(110)가 제1 및 제2 페이로드부들(522, 524) 중 하나를 처리하지만 제1 및 제2 페이로드부들(522, 524) 중 다른 하나는 처리하지 않는 경우에, 이미지의 제1 표현(206)은 제1 및 제2 구성 데이터(552, 554) 중 획득된 것을 사용하여 재구성될 수 있다. 이에 따라, 제1 표현(206)을 재구성하기 위한 구성 메시지(500)의 사용은 디코더의 유형 및/또는 디코더(110)가 작동되도록 구성되는 버전 번호에 대해 애그노스틱일 수 있다.
일부 예들에서, 구성 메시지(500)에 대해 바이트별 처리가 수행된다. 바이트별 처리에서, 데이터는 바이트 단위로 처리된다. 구성 데이터를 바이트별 방식으로 처리하는 것은 구성 데이터를 비트별 방식으로 처리하는 것보다 효율적일 수 있다. 비트별 처리는 소정의 바이트 내의 어느 비트가 판독 또는 기록될 다음 비트인지 추적하는 것을 수반할 수 있다. 소정의 파라미터를 나타내는 비트들의 그룹이 바이트 경계에 걸쳐 있을 때, 비트들의 그룹을 판독하고 소정의 파라미터를 획득하기 위해 추가적인 처리가 수행될 수 있다. 이러한 처리는 바이트별 처리가 수행되는 경우에 감소될 수 있다. 일부 예들에서, 비트별 방식에 비해 바이트별 방식으로 데이터를 처리할 때 실행 사이클 수가 감소될 수 있다.
일부 예들에서, 구성 데이터는 메모리에 기입된다. 구성 데이터가 비트 단위로 핸들되는 경우에 비해 구성 데이터가 바이트 단위로 핸들링되는 경우 구성 데이터를 메모리에 저장하는 것 그리고/또는 메모리로부터 구성 데이터를 검색하는 것에 보다 적은 처리가 수반될 수 있다. 어드레스 가능 메모리의 최소 단위는 1 바이트를 포함할 수 있다. 이와 같이, 정보는 바이트별 방식으로 메모리에 저장될 수 있다. 이에 따라, 구성 데이터가 바이트들의 시퀀스로 패키징되는 경우 구성 데이터를 메모리에 저장하는 것 및/또는 구성 데이터를 메모리로부터 검색하는 것에 보다 적은 단계들이 수반될 수 있다. 구성 데이터를 어드레스 가능한 메모리 유닛들로 패키징하는 데 사용되는 패딩의 양 또한 구성 데이터를 바이트별 형태로 메모리에 제공함으로써 감소될 수 있다.
뿐만 아니라, 인터넷과 같은 네트워크를 통한 구성 데이터의 전송도 구성 데이터가 바이트들의 시퀀스로 배열되는 경우에 보다 효율적으로 수행될 수 있다. 데이터는 전송 제어 프로토콜(Transmission Control Protocol; TCP)을 통하여 인터넷을 통해 전송될 수 있다. TCP는 프로토콜 스택의 전송 계층에서 동작한다. TCP는 스트림으로부터 데이터를 획득하고, 데이터를 TCP 세그먼트로 패키징하며, 인터넷 모듈, 예를 들어 인터넷 프로토콜(IP)을 사용하여, 각 TCP 세그먼트를 인터넷을 통해 수신자에게 전송한다. 데이터 스트림은 메모리로부터 획득될 수 있다. TCP 세그먼트는 정수의 바이트를 포함할 수 있다. 이에 따라, TCP가 비트별 스트림으로부터보다 바이트별 스트림으로부터 TCP 세그먼트들로 패키징될 데이터를 획득하는 경우 보다 적은 처리가 수반될 수 있다. 데이터를 TCP 세그먼트들로 패키징하는 데 사용되는 패딩의 양 또한 데이터를 바이트별 형태로 TCP에 제공함으로써 감소될 수 있다.
도 7을 참조하면, 장치(700)의 일 예의 개략적인 블록도가 도시되어 있다.
일 예에서, 장치(700)는 인코더를 포함한다. 또 다른 예에서, 장치(700)는 디코더를 포함한다.
장치(700)의 예들은 모바일 컴퓨터, 개인용 컴퓨터 시스템, 무선 디바이스, 기지국, 전화 디바이스, 데스크톱 컴퓨터, 랩톱, 노트북, 넷북 컴퓨터, 메인프레임 컴퓨터 시스템, 핸드헬드 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 애플리케이션 서버, 저장 디바이스, 카메라, 캠코더, 모바일 디바이스, 비디오 게임 콘솔, 핸드헬드 비디오 게임 디바이스와 같은 소비자 전자 디바이스, 또는 일반적으로 임의의 유형의 컴퓨팅 또는 전자 디바이스를 포함하지만, 이에 제한되지는 않는다.
이러한 예에서, 장치(700)는 정보 및/또는 명령어들을 처리하도록 구성된 하나 이상의 처리기(701)를 포함한다. 하나 이상의 처리기(701)는 중앙 처리 유닛(central processing unit; CPU)을 포함할 수 있다. 하나 이상의 처리기(701)는 버스(702)와 결합된다. 하나 이상의 처리기(701)에 의해 수행되는 동작들은 하드웨어 및/또는 소프트웨어에 의해 수행될 수 있다. 하나 이상의 처리기(701)는 다수의 동일 위치의 처리기들 또는 다수의 다른 위치의 처리기들을 포함할 수 있다.
이러한 예에서, 장치(700)는 하나 이상의 처리기(701)에 대한 정보 및/또는 명령어들을 저장하도록 구성된 컴퓨터 사용 가능한 휘발성 메모리(703)를 포함한다. 컴퓨터 사용 가능한 휘발성 메모리(703)는 버스(702)와 결합된다. 컴퓨터 사용 가능한 휘발성 메모리(703)는 랜덤 액세스 메모리(random access memory; RAM)를 포함할 수 있다.
이러한 예에서, 장치(700)는 하나 이상의 처리기(701)에 대한 정보 및/또는 명령어들을 저장하도록 구성된 컴퓨터 사용 가능한 비휘발성 메모리(704)를 포함한다. 컴퓨터 사용 가능한 비휘발성 메모리(704)는 버스(702)와 결합된다. 컴퓨터 사용 가능한 비휘발성 메모리(704)는 판독 전용 메모리(read-only memory; ROM)를 포함할 수 있다.
이러한 예에서, 장치(700)는 정보 및/또는 명령어들을 저장하도록 구성된 하나 이상의 데이터 저장 유닛(705)을 포함한다. 하나 이상의 데이터 저장 유닛(705)은 버스(702)와 결합된다. 하나 이상의 데이터 저장 유닛(705)은 예를 들어 자기 또는 광 디스크 및 디스크 드라이브 또는 고체 상태 드라이브(solid-state drive; SSD)를 포함할 수 있다.
이러한 예에서, 장치(700)는 하나 이상의 처리기(701)로 및/또는 이로부터 정보를 통신하도록 구성된 하나 이상의 입력/출력(I/O) 디바이스(706)를 포함한다. 하나 이상의 I/O 디바이스(706)는 버스(702)와 결합된다. 하나 이상의 I/O 디바이스(706)는 적어도 하나의 네트워크 인터페이스를 포함할 수 있다. 적어도 하나의 네트워크 인터페이스는 장치(700)가 하나 이상의 데이터 통신 네트워크를 통해 통신할 수 있게 할 수 있다. 데이터 통신 네트워크들의 예들은 인터넷 및 근거리 네트워크(LAN)를 포함하지만, 이에 제한되지는 않는다. 하나 이상의 I/O 디바이스(706)는 사용자가 하나 이상의 입력 디바이스(도시되지 않음)를 통해 장치(700)에 입력을 제공할 수 있게 할 수 있다. 하나 이상의 입력 디바이스는 예를 들어 원격 제어, 하나 이상의 물리적 버튼 등을 포함할 수 있다. 하나 이상의 I/O 디바이스(706)는 정보가 하나 이상의 출력 디바이스(도시되지 않음)를 통해 사용자에게 제공될 수 있게 할 수 있다. 하나 이상의 출력 디바이스는 예를 들어 디스플레이 스크린을 포함할 수 있다.
장치(700)에 대해 다양한 다른 엔티티들이 도시된다. 예를 들어, 존재할 때, 운영 체제(707), 데이터 신호 처리 모듈(708), 하나 이상의 추가 모듈(709), 및 데이터(710)가 컴퓨터 사용 가능한 휘발성 메모리(703), 컴퓨터 사용 가능한 비휘발성 메모리(704) 및 하나 이상의 데이터 저장 유닛(705) 중 하나, 또는 이들의 조합에 상주하는 것으로서 도시된다. 데이터 신호 처리 모듈(708)은 컴퓨터 사용 가능한 비휘발성 메모리(704) 내의 메모리 위치들, 하나 이상의 데이터 저장 유닛(705) 내의 컴퓨터 판독 가능 저장 매체들 및/또는 다른 유형적인 컴퓨터 판독 가능한 저장 매체들에 저장된 컴퓨터 프로그램 코드에 의해 구현될 수 있다. 유형적인 컴퓨터 판독 가능한 저장 매체들의 예들은 광학 매체(예를 들어, CD-ROM, DVD-ROM 또는 Blu-ray), 플래시 메모리 카드, 플로피 또는 하드 디스크 또는 적어도 하나의 ROM 또는 RAM 또는 프로그래밍 가능한 ROM(Programmable ROM; PROM) 칩들에 또는 주문형 집적 회로(Application Specific Integrated Circuit; ASIC)로서 펌웨어 또는 마이크로 코드와 같은 컴퓨터 판독 가능한 명령어들을 저장할 수 있는 임의의 다른 매체를 포함하지만, 이에 제한되지는 않는다.
이에 따라, 장치(700)는 하나 이상의 처리기(701)에 의해 실행될 수 있는 데이터 신호 처리 모듈(708)을 포함할 수 있다. 데이터 신호 처리 모듈(708)은 본 명세서에서 설명된 동작들 중 적어도 일부를 구현하기 위한 명령어들을 포함하도록 구성될 수 있다. 동작 동안, 하나 이상의 처리기(701)는 신호 처리 모듈(708)에서 명령어들을 론칭, 실행, 수행, 해석 또는 달리 수행한다.
도면들을 참조하여 본 명세서에서 설명된 예들의 적어도 일부 양태들이 처리 시스템들 또는 처리기들에서 수행되는 컴퓨터 프로세스들을 포함하지만, 본 명세서에서 설명된 예들은 또한 예를 들어 예들을 실시하도록 적응된 컴퓨터 프로그램들, 캐리어 상의 또는 캐리어 내의 컴퓨터 프로그램들로 확장된다. 캐리어는 프로그램을 전달할 수 있는 임의의 엔티티 또는 디바이스일 수 있다.
장치(700)는 도 7에 도시된 것들과 보다 많은, 보다 적은 및/또는 상이한 구성요소들을 포함할 수 있다고 이해될 것이다.
장치(700)는 단일 위치에 위치될 수 있거나 다수의 위치들에 분산될 수 있다. 이러한 위치들은 로컬 또는 원격일 수 있다.
본 명세서에서 설명된 기술들은 소프트웨어 또는 하드웨어로 구현될 수 있거나, 소프트웨어 및 하드웨어의 조합을 사용하여 구현될 수 있다. 이것들은 본 명세서에서 설명된 기술들 중 어느 하나 또는 전부를 수행 및/또는 지원하도록 장치를 구성하는 것을 포함할 수 있다.
임의의 일 실시 예와 관련하여 설명된 임의의 특징은 단독으로, 또는 설명된 다른 특징들과 조합하여 사용될 수 있고, 또한 임의의 다른 실시 예들, 또는 임의의 다른 실시 예들의 임의의 조합의 하나 이상의 특징과 조합되어 사용될 수 있다고 이해될 것이다. 뿐만 아니라, 위에서 설명되지 않은 균등물들 및 변형물들 또한 첨부한 청구항들에 정의된 본 발명의 범위로부터 벗어나지 않고 채용될 수 있다.

Claims (39)

  1. 구성 데이터(configuration data)를 처리하는 방법으로서,
    다수의 품질 수준들을 갖는 계층화된 계층 구조(tiered hierarchy)에서의 제1 품질 수준에서의 이미지의 제1 표현 및 상기 제1 품질 수준에서의 상기 이미지의 제2 표현에 기초하여 잔차 데이터(residual data)를 획득하는 단계로서, 상기 제2 표현은 상기 계층화된 계층 구조에서의 보다 낮은 제2 품질 수준에서의 상기 이미지의 표현에 기초하고, 상기 잔차 데이터는 상기 제2 표현을 사용하여 상기 제1 표현을 재구성하기 위해 디코더에 의해 사용 가능한 것인, 상기 잔차 데이터를 획득하는 단계;
    상기 잔차 데이터의 처리에 관한 구성 데이터를 획득하는 단계로서, 상기 구성 데이터는 상기 이미지의 상기 제1 표현을 재구성하기 위해 상기 디코더에 의해 사용 가능한 것인, 상기 구성 데이터를 획득하는 단계;
    헤더부 및 페이로드부를 포함하는 구성 메시지를 생성하는 단계로서, 상기 페이로드부는 상기 구성 데이터를 포함하며, 상기 헤더부는:
    상기 구성 메시지의 메시지 유형을 특정하고, 소정의 페이로드 포맷을 갖는 상기 페이로드부를 나타내는 메시지 유형 파라미터 - 상기 페이로드 포맷을 갖는 페이로드부의 포맷 크기는 미리 결정되거나 상기 페이로드부의 콘텐츠로부터 결정될 수 있음 -; 및
    상기 페이로드부의 실제 크기를 특정하는 페이로드 크기 파라미터를 포함하는 것인, 상기 구성 메시지를 생성하는 단계; 및
    상기 디코더가 상기 구성 데이터를 사용하여 상기 제1 표현을 재구성할 수 있게 하기 위해 상기 디코더에 의한 처리를 위해 상기 구성 메시지를 출력하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 포맷 크기와 상기 실제 크기는 동일한 것인, 방법.
  3. 제1항에 있어서,
    상기 포맷 크기와 상기 실제 크기는 상이한 것인, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 메시지 유형 파라미터에 의해 특정되는 상기 메시지 유형은 상기 구성 메시지가 어떻게 처리될지를 나타내는 것인, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 구성 메시지는 정수의 바이트 길이인 것인, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 페이로드부의 상기 실제 크기는 정수의 바이트인 것인, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 페이로드 크기 파라미터의 값은 고정 길이 요소에 저장되는 것인, 방법.
  8. 제7항에 있어서,
    상기 페이로드 크기 파라미터의 상기 값은 1 바이트 헤더부에서의 3 비트를 포함하는 상기 고정 길이 요소에 저장되는 것인, 방법.
  9. 제7항 또는 제8항에 있어서,
    상기 페이로드 크기 파라미터는 상기 페이로드부의 상기 실제 크기의 가능한 값들을 저장하는 페이로드 크기 룩업 테이블에 대한 참조를 포함하는 것인, 방법.
  10. 제9항에 있어서,
    상기 값은 상기 페이로드 크기 룩업 테이블로부터 상기 페이로드부의 상기 실제 크기를 획득하는 데 사용가능한 것인, 방법.
  11. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 페이로드 크기 파라미터의 값은 가변 비트 길이를 갖고,
    상기 페이로드 크기 파라미터의 상기 값은 정수의 바이트를 포함하는 가변 길이 요소에 저장되는 것인, 방법.
  12. 제11항에 있어서,
    상기 가변 길이 요소는 1 이상의 미리 결정된 비트를 갖는 소정의 적어도 1 바이트를 포함하는 것인 - 상기 1 이상의 미리 결정된 비트는 상기 가변 길이 요소가 상기 소정의 적어도 1 바이트에 1 이상의 추가 바이트를 포함하는지 여부를 나타내도록 배열됨 -, 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 값은 페이로드 크기 룩업 테이블에 특정된 다수의 값들 중 하나가 아닌 것인, 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 헤더부는 단지 상기 메시지 유형 파라미터 및 상기 페이로드 크기 파라미터만을 포함하는 것인, 방법.
  15. 구성 데이터를 처리하는 방법으로서,
    헤더부 및 페이로드부를 포함하는 구성 메시지를 수신하는 단계로서, 상기 페이로드부는 다수의 품질 수준들을 갖는 계층화된 계층 구조에서의 제1 품질 수준에서의 이미지의 제1 표현을, 상기 제1 품질 수준에서의 상기 이미지의 제2 표현을 사용하여 재구성하는 데 사용 가능한 잔차 데이터의 처리에 관한 구성 데이터를 포함하고, 상기 제2 표현은 상기 계층화된 계층 구조에서의 보다 낮은 제2 품질 수준에서의 상기 이미지의 표현에 기초하며, 상기 헤더부는:
    상기 구성 메시지의 메시지 유형을 특정하고, 소정의 페이로드 포맷을 갖는 상기 페이로드부를 나타내는 메시지 유형 파라미터 - 상기 페이로드 포맷을 갖는 페이로드부의 포맷 크기는 미리 결정되거나 상기 페이로드부의 콘텐츠로부터 결정될 수 있음 -; 및
    상기 페이로드부의 실제 크기를 특정하는 페이로드 크기 파라미터를 포함하는 것인, 상기 구성 메시지를 수신하는 단계;
    상기 구성 데이터를 획득하기 위해 상기 메시지 유형 파라미터 및 상기 페이로드 크기 파라미터를 사용하여 상기 구성 메시지를 처리하는 단계; 및
    획득된 상기 구성 데이터를 사용하여 상기 제1 표현을 재구성하는 단계를 포함하는, 방법.
  16. 제15항에 있어서,
    상기 구성 메시지를 처리하는 단계는:
    상기 페이로드 크기 파라미터에 기초하여 상기 페이로드부의 상기 실제 크기를 결정하는 단계;
    상기 메시지 유형 파라미터에 기초하여 상기 메시지의 상기 메시지 유형을 결정하는 단계; 및
    결정된 상기 메시지 유형 및 상기 페이로드부의 결정된 상기 실제 크기에 따라 상기 구성 메시지를 처리하는 단계를 포함하는 것인, 방법.
  17. 제15항 또는 제16항에 있어서,
    상기 포맷 크기와 상기 실제 크기는 동일한 것인, 방법.
  18. 제15항 또는 제16항에 있어서,
    상기 포맷 크기와 상기 실제 크기는 상이한 것인, 방법.
  19. 제15항 내지 제18항 중 어느 한 항에 있어서,
    상기 잔차 데이터를 수신하는 단계; 및
    상기 구성 데이터에 따라 상기 잔차 데이터를 사용하여 상기 제1 표현을 재구성하는 단계를 포함하는 것인, 방법.
  20. 구성 데이터를 처리하는 방법으로서,
    다수의 품질 수준들을 갖는 계층화된 계층 구조에서의 제1 품질 수준에서의 이미지의 제1 표현 및 상기 제1 품질 수준에서의 상기 이미지의 제2 표현에 기초하여 잔차 데이터를 획득하는 단계로서, 상기 제2 표현은 상기 계층화된 계층 구조에서의 보다 낮은 제2 품질 수준에서의 상기 이미지의 표현에 기초하며, 상기 잔차 데이터는 상기 제2 표현을 사용하여 상기 제1 표현을 재구성하기 위해 디코더에 의해 사용 가능한 것인, 상기 잔차 데이터를 획득하는 단계;
    상기 잔차 데이터의 처리에 관한 제1 구성 데이터 및 제2 구성 데이터를 획득하는 단계로서, 상기 제1 구성 데이터는 제1 작동 특성을 갖는 하나 이상의 디코더의 제1 세트에 관한 것이고, 상기 제2 구성 데이터는 제2 작동 특성을 갖는 하나 이상의 디코더의 제2 세트에 관한 것인, 상기 제1 구성 데이터 및 제2 구성 데이터를 획득하는 단계;
    헤더부 및 페이로드부를 포함하는 구성 메시지를 생성하는 단계로서, 상기 페이로드부는 제1 페이로드부 및 후속하는 제2 페이로드부를 포함하고, 상기 제1 페이로드부는 상기 제1 구성 데이터를 포함하고 상기 제2 페이로드부는 상기 제2 구성 데이터를 포함하며, 상기 헤더부는 상기 제1 페이로드부 및 상기 제2 페이로드부의 전체 크기를 나타내는 페이로드 크기 파라미터를 포함하는 것인, 상기 구성 메시지를 생성하는 단계; 및
    상기 디코더가 상기 제1 구성 데이터 및 상기 제2 구성 데이터 중 하나 또는 둘 모두를 사용하여 상기 제1 표현을 재구성할 수 있게 하기 위해 상기 디코더에 의한 처리를 위해 상기 구성 메시지를 출력하는 단계를 포함하는, 방법.
  21. 제20항에 있어서,
    상기 헤더부는 상기 제1 페이로드부의 크기를 특정하지 않는 것인, 방법.
  22. 제20항 또는 제21항에 있어서,
    상기 제1 페이로드부는 상기 제1 구성 데이터 전부를 포함하고, 상기 제2 페이로드부는 상기 제2 구성 데이터 전부를 포함하는 것인, 방법.
  23. 제20항 내지 제22항 중 어느 한 항에 있어서,
    상기 제2 구성 데이터는 상기 제1 구성 데이터를 보충하도록 배열된 보충 구성 데이터인 것인, 방법.
  24. 제20항 내지 제23항 중 어느 한 항에 있어서,
    상기 제1 작동 특성은 상기 하나 이상의 디코더의 제1 세트가 작동되도록 구성되는 제1 버전에 대응하고, 상기 제2 작동 특성은 상기 하나 이상의 디코더의 제2 세트가 작동되도록 구성되는 상이한 제2 버전에 대응하는 것인, 방법.
  25. 제24항에 있어서,
    상기 제2 버전은 상기 제1 버전에 비해 보다 최신 버전인 것인, 방법.
  26. 제20항 내지 제25항 중 어느 한 항에 있어서,
    상기 제1 작동 특성은 상기 하나 이상의 디코더의 제1 세트의 처리 성능에 관한 것이고, 상기 제2 작동 특성은 상기 하나 이상의 디코더의 제2 세트의 처리 성능에 관한 것인, 방법.
  27. 제20항 내지 제26항 중 어느 한 항에 있어서,
    상기 헤더부는 상기 구성 메시지의 메시지 유형을 특정하는 메시지 유형 파라미터를 포함하며, 상기 메시지 유형은 상기 구성 메시지가 어떻게 처리될지를 나타내는 것인, 방법.
  28. 제27항에 있어서,
    상기 메시지 유형 파라미터는 소정의 페이로드 포맷을 갖는 상기 페이로드부를 나타내는 것인 - 상기 페이로드 포맷을 갖는 페이로드부의 포맷 크기는 미리 결정되거나 상기 페이로드부의 콘텐츠로부터 결정될 수 있음 -, 방법.
  29. 제28항에 있어서,
    상기 포맷 크기는 상기 제1 페이로드부 및 상기 제2 페이로드부의 상기 전체 크기와 동일한 것인, 방법.
  30. 제20항 내지 제29항 중 어느 한 항에 있어서,
    상기 구성 데이터에 대해 바이트별 처리를 수행하는 단계를 포함하는, 방법.
  31. 구성 데이터를 처리하는 방법으로서,
    헤더부 및 페이로드부를 포함하는 구성 메시지를 수신하는 단계로서, 상기 페이로드부는 제1 페이로드부 및 후속하는 제2 페이로드부를 포함하고, 상기 제1 페이로드부는 제1 구성 데이터를 포함하고 상기 제2 페이로드부는 제2 구성 데이터를 포함하고, 상기 제1 구성 데이터 및 상기 제2 구성 데이터는 다수의 품질 수준들을 갖는 계층화된 계층 구조에서의 제1 품질 수준에서의 이미지의 제1 표현을, 상기 제1 품질 수준에서의 상기 이미지의 제2 표현을 사용하여 재구성하는 데 사용 가능한 잔차 데이터의 처리에 관한 것이고, 상기 제2 표현은 상기 계층화된 계층 구조에서의 보다 낮은 제2 품질 수준에서의 상기 이미지의 표현에 기초하며, 상기 제1 구성 데이터는 제1 작동 특성을 갖는 디코더들의 제1 세트에 관한 것이고 상기 제2 구성 데이터는 제2 작동 특성을 갖는 디코더들의 제2 세트에 관한 것이되, 상기 헤더부는 상기 제1 페이로드부 및 상기 제2 페이로드부의 전체 크기를 나타내는 페이로드 크기 파라미터를 포함하는 것인, 상기 구성 메시지를 수신하는 단계;
    상기 구성 메시지를 처리하여 상기 제1 구성 데이터 및 상기 제2 구성 데이터 중 하나 또는 둘 모두를 획득하는 단계; 및
    상기 제1 구성 데이터 및 상기 제2 구성 데이터 중 상기 하나 또는 둘 모두를 사용하여 상기 제1 표현을 재구성하는 단계를 포함하는, 방법.
  32. 제31항에 있어서,
    상기 제1 페이로드부 및 상기 제2 페이로드부를 처리하여 각각, 상기 제1 구성 데이터 및 상기 제2 구성 데이터를 획득하는 단계; 및
    상기 제1 구성 데이터 및 상기 제2 구성 데이터를 사용하여 상기 제1 표현을 재구성하는 단계를 포함하는, 방법.
  33. 제31항에 있어서,
    상기 제2 페이로드부는 처리하지 않고 상기 제1 페이로드부를 처리하여 상기 제2 구성 데이터는 획득하지 않고 상기 제1 구성 데이터를 획득하는 단계; 및
    상기 제2 구성 데이터는 사용하지 않고 상기 제1 구성 데이터를 사용하여 상기 제1 표현을 재구성하는 단계를 포함하는, 방법.
  34. 제33항에 있어서,
    상기 제2 페이로드부의 콘텐츠를 폐기하는 단계를 포함하는, 방법.
  35. 제31항 내지 제34항 중 어느 한 항에 있어서,
    상기 페이로드 크기 파라미터를 사용하여 다음 구성 메시지의 시작을 결정하는 단계를 포함하는, 방법.
  36. 제31항 내지 제35항 중 어느 한 항에 있어서,
    상기 헤더부는 상기 구성 메시지의 메시지 유형을 특정하고 소정의 페이로드 포맷을 갖는 상기 페이로드부 - 상기 페이로드 포맷을 갖는 페이로드부의 포맷 크기는 미리 결정되거나 상기 페이로드부의 콘텐츠로부터 결정될 수 있음 - 를 나타내는 메시지 유형 파라미터를 포함하는 것인, 방법.
  37. 제1항 내지 제36항 중 어느 한 항에 따른 방법을 수행하도록 구성된 장치.
  38. 실행될 때, 장치로 하여금 제1항 내지 제36항 중 어느 한 항에 따른 방법을 수행하게 하는 명령어들을 포함하는, 컴퓨터 프로그램.
  39. 제38항에 따른 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능한 매체.
KR1020217016144A 2018-10-31 2019-10-30 스케일러블 비디오 코딩 및 전송을 위한 방법, 장치, 컴퓨터 프로그램 및 컴퓨터 판독 가능한 매체 KR20210146879A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1817781.6 2018-10-31
GBGB1817781.6A GB201817781D0 (en) 2018-10-31 2018-10-31 Mehods, apparatuses, computer programs and computer-readable media
PCT/GB2019/053067 WO2020089615A1 (en) 2018-10-31 2019-10-30 Methods, apparatuses, computer programs and computer-readable media for scalable video coding and transmission

Publications (1)

Publication Number Publication Date
KR20210146879A true KR20210146879A (ko) 2021-12-06

Family

ID=64655663

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217016144A KR20210146879A (ko) 2018-10-31 2019-10-30 스케일러블 비디오 코딩 및 전송을 위한 방법, 장치, 컴퓨터 프로그램 및 컴퓨터 판독 가능한 매체

Country Status (12)

Country Link
US (2) US11496757B2 (ko)
EP (1) EP3874752A1 (ko)
JP (1) JP7421552B2 (ko)
KR (1) KR20210146879A (ko)
CN (1) CN113228662A (ko)
AU (1) AU2019370804B2 (ko)
BR (1) BR112021008173A2 (ko)
CA (1) CA3118185A1 (ko)
EA (1) EA202191197A1 (ko)
GB (1) GB201817781D0 (ko)
MX (1) MX2021005065A (ko)
WO (1) WO2020089615A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB202205928D0 (en) 2022-04-22 2022-06-08 V Nova Int Ltd Methods, bitstreams, apparatuses, computer programs and computer-readable media

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6873797B2 (en) 2001-01-30 2005-03-29 The Regents Of The University Of California Optical layer multicasting
CN101543018B (zh) * 2007-01-12 2012-12-26 庆熙大学校产学协力团 网络提取层单元的分组格式、使用该格式的视频编解码算法和装置以及使用该格式进行IPv6标签交换的QoS控制算法和装置
EP2304955B1 (en) * 2008-07-26 2017-03-29 Thomson Licensing A real-time transport protocol (rtp) packetization method for fast channel change applications using scalable video coding (svc)
TWI556629B (zh) * 2012-01-03 2016-11-01 杜比實驗室特許公司 規定視覺動態範圍編碼操作及參數
KR101893833B1 (ko) * 2012-02-01 2018-09-03 삼성전자주식회사 방송 시스템에서 패킷 송수신 방법 및 장치
CA3095638C (en) * 2012-06-29 2023-11-14 Ge Video Compression, Llc Video data stream concept
CN103780954B (zh) * 2012-10-22 2017-05-10 上海贝尔股份有限公司 一种组合使用流媒体裁剪技术和显性拥塞通知技术的方法
US9723091B1 (en) * 2012-11-09 2017-08-01 Noble Systems Corporation Variable length protocol using serialized payload with compression support
CN116320392A (zh) * 2013-01-04 2023-06-23 Ge视频压缩有限责任公司 高效可伸缩编码概念
EP3092806A4 (en) * 2014-01-07 2017-08-23 Nokia Technologies Oy Method and apparatus for video coding and decoding
US9832353B2 (en) * 2014-01-31 2017-11-28 Digimarc Corporation Methods for encoding, decoding and interpreting auxiliary data in media signals
US20150264404A1 (en) 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
US10178397B2 (en) * 2014-03-24 2019-01-08 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
WO2016204481A1 (ko) * 2015-06-16 2016-12-22 엘지전자 주식회사 미디어 데이터 전송 장치, 미디어 데이터 수신 장치, 미디어 데이터 전송 방법, 및 미디어 데이터 수신 방법
EP3131296A1 (en) * 2015-08-13 2017-02-15 Thomson Licensing Color remapping information payload size compression

Also Published As

Publication number Publication date
EP3874752A1 (en) 2021-09-08
US20230232024A1 (en) 2023-07-20
AU2019370804B2 (en) 2023-08-03
US11496757B2 (en) 2022-11-08
JP2022507027A (ja) 2022-01-18
US11889093B2 (en) 2024-01-30
AU2019370804A1 (en) 2021-06-10
CA3118185A1 (en) 2020-05-07
WO2020089615A1 (en) 2020-05-07
US20210409735A1 (en) 2021-12-30
JP7421552B2 (ja) 2024-01-24
MX2021005065A (es) 2021-07-02
EA202191197A1 (ru) 2021-07-26
BR112021008173A2 (pt) 2021-08-03
CN113228662A (zh) 2021-08-06
GB201817781D0 (en) 2018-12-19

Similar Documents

Publication Publication Date Title
US12003742B2 (en) Methods, apparatuses, computer programs and computer-readable media for scalable image coding
KR20190117675A (ko) 생성된 콘텐츠를 포함하는 미디어 데이터를 인코딩하기 위한 방법 및 장치
US10805605B2 (en) Multi-layer video stream encoding and decoding
US20240048738A1 (en) Methods, apparatuses, computer programs and computer-readable media for processing configuration data
US11889093B2 (en) Methods, apparatuses, computer programs and computer-readable media for scalable video coding and transmission
US11831886B2 (en) Methods, apparatuses, computer programs and computer-readable media for processing configuration data
EA045133B1 (ru) Способ, устройство и машиночитаемый носитель, содержащий компьютерную программу для формирования конфигурационного сообщения для обеспечения возможности декодеру восстанавливать первое представление изображения с первым уровнем качества с помощью данных конфигурации
WO2023203353A1 (en) Methods, bitstreams, apparatuses, computer programs and computer-readable media
US20230239508A1 (en) Methods and apparatus to identify a video decoding error
KR20230124552A (ko) 클라이언트 장치에서의 비디오 스트림의 디코딩
JPWO2020089615A5 (ko)