KR102243696B1 - 비디오 컨텐츠의 하드웨어 기반 또는 소프트웨어 기반 디코딩을 검출하기 위한 구성 - Google Patents

비디오 컨텐츠의 하드웨어 기반 또는 소프트웨어 기반 디코딩을 검출하기 위한 구성 Download PDF

Info

Publication number
KR102243696B1
KR102243696B1 KR1020190098990A KR20190098990A KR102243696B1 KR 102243696 B1 KR102243696 B1 KR 102243696B1 KR 1020190098990 A KR1020190098990 A KR 1020190098990A KR 20190098990 A KR20190098990 A KR 20190098990A KR 102243696 B1 KR102243696 B1 KR 102243696B1
Authority
KR
South Korea
Prior art keywords
media
media content
codec format
processor
readable storage
Prior art date
Application number
KR1020190098990A
Other languages
English (en)
Other versions
KR20200029347A (ko
Inventor
엘. 프레스터가드 데렉
라이스 조셉
아라나 마크
Original Assignee
디즈니엔터프라이지즈,인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디즈니엔터프라이지즈,인크. filed Critical 디즈니엔터프라이지즈,인크.
Publication of KR20200029347A publication Critical patent/KR20200029347A/ko
Application granted granted Critical
Publication of KR102243696B1 publication Critical patent/KR102243696B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4382Demodulation or channel decoding, e.g. QPSK demodulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4436Power management, e.g. shutting down unused components of the receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • 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/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • 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/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

프로세서는 미디어 컨텐츠 서버로부터 미디어 컨텐츠를 수신한다. 또한, 프로세스는 미디어 재생 장치에서 프로세서로 미디어 컨텐츠에 대응하는 하나 이상의 샘플 파일의 제1 재생을 수행한다. 하나 이상의 샘플 파일 각각은 별개의 코덱 포맷에 대응한다. 또한, 프로세스는 미디어 재생 장치에서 프로세서로 하나 이상의 샘플 파일 각각에 대한 신뢰도 점수를 결정한다. 신뢰도 점수는 소프트웨어 기반 또는 하드웨어 기반인 별개의 코덱 포맷을 나타내는 하나 이상의 요소와 관련된다. 마지막으로, 프로세스는 미디어 재생 장치에서 프로세서로 하드웨어 기반인 별개의 코덱 포맷에 따른 미디어 컨텐츠의 적어도 상당 부분의 제2 재생을 수행한다.

Description

비디오 컨텐츠의 하드웨어 기반 또는 소프트웨어 기반 디코딩을 검출하기 위한 구성{CONFIGURATION FOR DETECTING HARDWARE-BASED OR SOFTWARE-BASED DECODING OF VIDEO CONTENT}
본 발명은 일반적으로 비디오 컨텐츠의 분야에 관한 것이다.
재생을 위해 비디오 컨텐츠를 수신할 때(스트리밍, 다운로드 등을 통해), 재생 장치는 일반적으로 인코딩된 포맷으로 비디오 컨텐츠를 수신한다. 또한, 재생 장치는 재생을 위해 비디오 컨텐츠를 디코딩하도록 코덱을 실행한다. 고해상도 디스플레이 장치(예를 들어, 4K 텔레비전)의 출현으로, 비디오 컨텐츠 개발자는 종종 재생 장치를 통해 사용자에게 전송되는 비디오 컨텐츠를 인코딩하기 위해 어떤 코덱 포맷을 사용해야하는지 궁금해한다. 결과적으로, 현재의 재생 장치는 개발자에 의해 선택된 코덱에 따라 디코딩을 수행할 수 있으며, 이는 특정 재생 장치에 대한 최적의 코덱과 일치하지 않을 수 있다. 따라서, 현재 재생 장치는 비디오 컨텐츠의 최적의 재생을 수행하도록 구성되지 않는다.
일 양태에서, 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 프로그램이 저장된 비 일시적 컴퓨터 판독 저장 장치를 포함한다. 컴퓨터에서 실행될 때 컴퓨터 판독 가능 프로그램은 컴퓨터로 하여금 미디어 컨텐츠 서버로부터 미디어 컨텐츠를 수신하게 한다. 또한, 컴퓨터는 미디어 재생 장치의 프로세서로 미디어 컨텐츠에 대응하는 하나 이상의 샘플 파일의 제1 재생을 수행하게 된다. 하나 이상의 샘플 파일은 각각 별개의 코덱 포맷(distinct codec format)에 대응한다. 또한, 컴퓨터는 미디어 재생 장치의 프로세서로 하나 이상의 샘플 파일 각각에 대한 신뢰도 점수를 결정하게 된다. 신뢰도 점수는 소프트웨어 기반 또는 하드웨어 기반의 별개의 코덱 포맷을 나타내는 하나 이상의 요소와 관련이 있다. 마지막으로, 컴퓨터는 하드웨어 기반인 별개의 코덱 포맷에 따라 미디어 재생 장치의 프로세서로 미디어 컨텐츠의 적어도 상당 부분(substantial portion)의 제2 재생을 수행하게 된다. 대안적인 양태에서, 별개의 코덱 포맷에 따라 제2 재생을 수행하기 전에 프로세서로 제1 재생이 중단될 수 있다.
다른 양태에서, 컴퓨터 판독 가능 프로그램에 의해 수행되는 기능은 장치에 의해 구현될 수 있다. 또 다른 양태에서, 컴퓨터 판독 가능 프로그램에 의해 수행되는 기능은 프로세스에 의해 구현될 수 있다.
본 발명의 상술한 특징은 첨부된 도면과 함께 나타낸 하기 상세한 설명을 참고하면 보다 자명하게 될 것이며, 여기서 유사한 도면 부호는 유사한 성분을 나타낸다. 도면에서:
도 1은 컨텐츠의 재생을 위한 최적의 상태를 결정하는 미디어 재생 장치의 내부 구성성분의 블록도를 도시한다.
도 2는 미디어 컨텐츠를 디코딩하도록 도 1에 도시된 미디어 재생 장치를 사용하는 시스템을 도시한다.
도 3a는 상태를 결정하도록 미디어 재생 장치에 의해 재생된 도 1에 도시된 샘플 미디어 파일 중 하나의 예를 도시한다.
도 3b는 샘플 미디어 파일의 재생 동안 도 3a에 도시된 샘플 미디어 파일 위에 위치될 수 있는 오버레이(overlay)를 도시한다
도 4는 도 1에 도시된 하나 이상의 샘플 미디어 파일에 대한 신뢰도 점수를 결정하는데 사용될 수 있는 프로세스를 도시한다.
도 5는 도 1에 도시된 하나 이상의 샘플 미디어 파일에 대한 신뢰도 점수를 결정하는데 사용될 수 있는 다른 프로세스를 도시한다.
구성은 미디어 플레이어가 비디오 컨텐츠의 하드웨어 기반 네이티브 디코딩(장치 칩셋에 설치된 하드웨어를 통해) 또는 소프트웨어 기반 디코딩을 수행하는지 검출한다. 대응하는 미디어 재생 장치(예를 들어, 모바일 장치, 연결된 TV, Blu-Ray 플레이어, 퍼스널 컴퓨터, 가상 현실 장치, 증강 현실 장치 등)의 하드웨어 기반 용량을 결정함으로써, 미디어 플레이어는 뷰어 경험(view experience) 및 재생 장치의 기능을 최적화하도록 하드웨어 기반 디코딩 또는 소프트웨어 기반 디코딩을 사용할지 결정할 수 있다.
도 1은 컨텐츠의 재생을 위한 최적의 상태(예를 들어, 하드웨어 기반 또는 소프트웨어 기반 디코딩)를 결정하는 미디어 재생 장치(100)의 내부 구성성분의 블록도를 도시한다. 미디어 재생 장치(100)는 중앙 처리 유닛(“CPU”)(101), 그래픽 처리 유닛(“GPU”)(108), 메모리 장치(102), 트랜시버(transceiver)(104), 입력/출력(“I/O”) 장치(103)(예를 들어, 원격 제어, 마우스, 조이스틱, 키보드 등) 및 데이터 저장 장치(105)를 가질 수 있다.
또한, 데이터 저장 장치(105)는 미디어 컨텐츠(106), 미디어 플레이어(107), 상태 검출 코드(108) 및/또는 샘플 미디어 파일(109)를 저장할 수 있다. 미디어 컨텐츠(106)의 예로 영화, 텔레비전 쇼, 다큐맨터리, 비디오 게임, 음악, 광고 등을 포함하지만 이에 제한되지 않는다. 또한, 각각 특정 코덱 포맷(예를 들어, HEVC(High Efficiency Video Coding), MPEG-4 AVC(Advanced Video Coding), AV1(AOMedia Video 1) 등)에 대응하는 하나 이상의 샘플 미디어 파일(109)은 미디어 컨텐츠(106)일부이거나 이와 별개일 수 있다. 하나 이상의 샘플 파일(109)은 재생을 위한 특정 미디어 컨텐츠와 관련될 수 있다. 또한, 하나 이상의 샘플 파일(109)은 단지 대응하는 미디어 컨텐츠(106)의 작은 부분(a fraction of the size of the corresponding media content)일 수 있다. 미디어 플레이어(107)는 미디어 컨텐츠(106) 또는 대응하는 샘플 미디어 파일(109)의 재생을 수행하도록 CPU(101)에 의해 실행될 수 있다.
또한, 상태 검출 코드(108)는 특정 미디어 컨텐츠(106)의 재생을 위한 최적의 상태(즉, 특정 코드 포맷)를 결정하도록 CPU(101)에 의해 실행될 수 있다. 예를 들어, CPU(101)는 다양한 코덱 포맷으로 하나 이상의 샘플 파일(109)을 분석하도록 상태 검출 코드(108)를 실행할 수 있다. 결과적으로, CPU(101)는 특정 미디어 플레이어(107) 및 미디어 재생 장치(100)에 대한 최적의 코드 포맷(즉, 네이티브 하드웨어 기반 또는 스프트웨어 기반)을 결정할 수 있다. 예를 들어, CPU(101)는 AVC가 미디어 플레이어(107) 및 미디어 재생 장치(100)에 대한 네이티브 하드웨어 기반 코덱 포맷인 반면 HEVC는 소프트웨어 기반 코덱 포맷이라는 것을 결정할 수 있다. 또한, CPU(101)는 소프트웨어 기반 디코딩이 하드웨어 기반 디코딩보다 종종 더 배터리가 소모되기 때문에 비디오 컨텐츠 디코딩을 수행하기 위해 HEVC를 사용하는 것이 AVC보다 미디어 재생 장치(100)의 상당히 많은 배터리의 소모가 될 것이라는 것을 결정할 수 있다. 따라서, CPU(101)는 미디어 플레이어(107) 및 미디어 재생 장치(100)의 기능을 향상시키도록 소프트웨어 기반 코덱(예를 들어, HEVC)보다 저해상도에서 하드웨어 기반 코덱(예를 들어, AVC)을 통해 미디어 플레이어(107)를 실행할 수 있다.
대조적으로, 이전의 미디어 플레이어는 어떤 코덱이 소프트웨어 기반이었는지와 반대로 하드웨어에 별개의 코덱의 유형을 결정하도록 구성되지 않았다. 이전 미디어 플레이어가 인식하지 못한 이유는 동일한 재생 장치 중 두 개의 칩셋이 상이한 코덱 포맷을 갖도록 구성될 수 있기 때문이었다. 예를 들어, 하드웨어 제조업자는 재생 장치의 제1 배치(first batch)에서 네이티브 하드웨어 기반 코덱 포맷으로서 HEVC를 구현한 다음 재생 장치의 제2 배치에서 네이티브 하드웨어 기반 코덱 포맷으로서 AVC를 구현할 수 있었다. 따라서, 이전 미디어 플레이어는 종종 이전 재생 장치의 하드웨어에 고유한 특정 코덱 포맷을 인식하지 못한 채 남겨졌다. 그 결과, 이전 미디어 플레이어는 종종 에너지 비효율적이고 메모리 비효율적인 방식으로 작동했다.
반면에, 도 1에 도시된 미디어 플레이어(107)는 최적의 코덱 포맷을 결정함으로써 CPU(101) 및 메모리 장치(102)의 기능을 향상시킨다. 예를 들어, CPU(101)는 하나 이상의 샘플 미디어 파일(109)의 재생 동안 미디어 재생 장치(100)에 의해 사용되는 시스템 리소스(예를 들어, CPU 사용률, 메모리 제한 등)에 대한 다양한 쿼리/폴링을 실행하도록 상태 검출 코드(108)를 실행할 수 있다. 일 양태에서, CPU(101)는 하나 이상의 샘플 미디어 파일(109)의 재생 동안 영향을 받는 하나 이상의 요소(예를 들어, 시스템 리소스)에 기초하여 점수를 계산하도록 상태 검출 코드(108)를 실행한다.
하나 이상의 샘플 미디어 파일(109)은 미디어 컨텐츠(106)의 길이에 비해 짧은 지속 시간(duration of time) 동안 계산 강도의 실질적인 레벨을 제공하도록 구성될 수 있다. 예를 들어, 하나 이상의 샘플 미디어 파일(109)은 하드웨어 기반이 아니라 소프트웨어 기반 코덱에 의한 리소스의 실행의 차이가 명백해 지도록 고해상도 파일(예를 들어, 4K, 1080i, 720p 등)일 수 있다.
하나 이상의 요소의 예로 CPU 이용률, 메모리 제한, 미디어 재생 장치(100)의 동작 시스템으로부터 수신된 데이터, 동작 시스템의 버전, 미디어 재생 장치(100)의 모델 번호, 카나리아 프로세스(즉, 수차를 결정하는 기능의 최소 테스트), 열 센서로부터 수신된 데이터(예를 들어, CPU 온도), 미디어 컨텐츠(106)의 유형(예를 들어, 메인 컨텐츠 또는 엑스트라) 및/또는 미디어 컨텐츠(106)의 길이를 포함하지만 이에 제한되지 않는다. 예를 들어, 네이티브 하드웨어 기반과 달리 스프트웨어 기반 코덱의 실행은 종종 CPU 스파이크(spike)와 관련이 있다. 따라서, CPU(101)는 다양한 샘플 미디어 파일(109)에 대한 상태 검출 코드(108)를 실행할 때 샘플 미디어 파일(109) 중 어느 것이 CPU 스파이크를 일으키는지 아닌지를 결정할 수 있다. 하나 이상의 다른 요소에 더하여 이 요소는 신뢰도 점수(즉, 특정 샘플 미디어 파일(109)이 네이티브 하드웨어 기반 또는 소프트웨어 기반 코덱에 따라 인코딩되는 신뢰도의 레벨)를 생성하는데 사용될 수 있다.
일 양태에서, 신뢰도 점수는 각각의 요소와 관련된 서브-점수를 표로 만듦으로써 결정될 수 있다. 다른 양태에서, 서브-점수는 가중치가 매겨질 수 있다. 예를 들어, CPU 이용률 요소는 미디어 재생 장치(100)의 모델 번호보다 높은 가중치가 할당될 수 있다. 또한, 신뢰도 점수(즉, 가중치가 매겨지거나 매겨지지 않은 서브-점수의 총계)에 대해 미리 결정된 공차 임계값이 설정될 수 있다. 샘플 미디어 파일(109)이 미리 결정된 공차 임계값을 초과하는 신뢰도 점수를 갖는 경우, 샘플 미디어 파일(109)에 대한 코덱 포맷은, 사전 결정된 공차 임계값 미만인 경우 하드웨어 베이스인 것과 반대로 소프트웨어 기반인 것으로 간주될 수 있다.
일 양태에서, CPU(101)는 미디어 컨텐츠(106) 또는 미디어 컨텐츠의 적어도 상당 부분의 재생 이전의 상태를 결정하도록 상태 검출 코드(108)를 실행한다. 다른 양태에서, CPU(101)는 미디어 컨텐츠(106)의 재생 동안 상태 검출 코드(108)를 계속 실행할 수 있다. 예를 들어, 미디어 컨텐츠(106)는 제2 부분이 AVC에 따라 인코딩되는 반면 제1 부분이 HEVC에 따라 인코딩되도록 미디어 재생 장치(100)로 스트리밍될 수 있다. CPU(101)는 신뢰도 점수가 미리 결정된 공차 임계값을 초과하는지 결정하도록 미디어 컨텐츠(106)의 재생을 모니터링할 수 있다. 예를 들어, 네이티브 하드웨어 기반 코덱 포맷으로부터의 미드 스트림이 HEVC에서 AVC로 변경된 후 CPU의 사용률 급등이 일어날 수 있다. 예를 들어, 샘플 미디어 파일(109) 분석에 의해 결정된 바와 같이, 미디어 플레이어(107)는 배터리 소모를 피하기 위해 HEVC 코덱을 사용할 수 있기 때문에, 미디어 플레이어(107)는 요소가 미드 스트림에서 변화할 때, 여전히 HEVC 코덱을 사용할 수 잇다. 따라서, CPU(101)는 지속적인 모니터링을 통해 이러한 변경을 결정하고 상태를 수정할 수 있다.
도 2는 미디어 컨텐츠(106)를 디코딩하도록 도 1에 도시된 미디어 재생 장치(100)를 사용하는 시스템(200)을 도시한다. 일 양태에서, 미디어 재생 장치(100)는 컴퓨터 네트워크(202)를 통해 원격 미디어 컨텐츠 서버(201)로부터 인코딩된 미디어 컨텐츠(106)를 수신한다. 또한, 미디어 재생 장치(100)는 미디어 재생 장치(100)와 동작 가능한 통신으로 디스플레이 장치(204)(예를 들어, 텔레비전) 상에 디스플레이하기 위해 인코딩된 미디어 컨텐츠(106)를 디코딩한다. 예를 들어, 디스플레이 장치(204)는 (예를 들어, 유선 또는 무선 연결을 통해) 디코딩된 미디어 컨텐츠의 출력을 제공하는 미디어 재생 장치(100)와는 별개의 장치일 수 있다. 대안적으로, 디스플레이 장치(204)는 미디어 재생 장치(100) 내에 통합될 수 있다. 다른 양태에서, 미디어 재생 장치(100)는 인코딩된 미디어 컨텐츠를 로컬로(예를 들어, DVD 삽입, USB 연결 등을 통해) 수신한다.
도 3a는 상태를 결정하도록 미디어 재생 장치(100)에 의해 재생된 도 1에 도시된 샘플 미디어 파일(109) 중 하나의 예를 도시한다. 예를 들어, 샘플 미디어 파일(109)은 고해상도이거나 미디어 컨텐츠(106)의 다른 리소스 집약적인(resource intensive) 부분일 수 있다.
또한, 도 3b는 샘플 미디어 파일(109)의 재생 동안 도 3a에 도시된 샘플 미디어 파일(109) 위에 위치될 수 있는 오버레이(301)를 도시한다. 다시 말해, 미디어 재생 장치(100)는 오버레이(301)를 통해 샘플 미디어 파일(109)의 재생을 숨길 수 있어서, 사용자(203)(도 2)는 미디어 재생 장치(100)에 의한 상태의 결정 동안 샘플 미디어 파일(109)을 볼 필요가 없다. 예를 들어, 오버레이(301)는 로그인 스크린, 진단 이미지, 미디어 컨텐츠에 대응하는 그래픽(예를 들어, 문자 이미지) 등일 수 있다.
도 4는 도 1에 도시된 하나 이상의 샘플 미디어 파일(109)에 대한 신뢰도 점수를 결정하는데 사용될 수 있는 프로세스(400)를 도시한다. 프로세스 블록(401)에서, 프로세스(400)는 미디어 컨텐츠 서버(201)(도 2)로부터 미디어 컨텐츠(106)(도 1)를 수신한다. 또한, 프로세스 블록(402)에서, 프로세스(400)는 미디어 재생 장치(100)에서 프로세스(101)로 미디어 컨텐츠(106)에 대응하는 하나 이상의 샘플 파일(109)의 제1 재생을 수행한다. 하나 이상의 샘플 파일은 각각 별개의 코덱 포맷에 대응한다. 또한, 프로세스 블록(403)에서, 프로세스(400)는 미디어 재생 장치(100)에서 프로세서(101)로 하나 이상의 샘플 파일(109) 각각에 대한 신뢰도 점수를 결정한다. 신뢰도 점수는 소프트웨어 기반 또는 하드웨어 기반의 별개의 코덱 포맷을 나타내는 하나 이상의 요소와 관련된다. 마지막으로, 프로세스 블록(404)에서, 프로세스(400)는 하드웨어 기반인 별개의 코덱 포맷에 따라 미디어 재생 장치(100)에서 프로세서(101)로 미디어 컨텐츠(106)의 적어도 상당 부분의 제2 재생을 수행한다.
도 5는 도 1에 도시된 하나 이상의 샘플 미디어 파일(109)에 대한 신뢰도 점수를 결정하는데 사용될 수 있는 다른 프로세스(500)를 도시한다. 프로세스 블록(501)에서, 프로세스(500)는 미디어 컨텐츠 서버(201)(도 2)로부터 미디어 컨텐츠를 수신한다. 또한, 프로세스 블록(502)에서, 프로세스(500)는 미디어 재생 장치(100)에서 프로세서(101)로 미디어 컨텐츠의 제1 부분의 제1 재생을 수행한다. 미디어 컨텐츠(106)의 제1 부분은 제1 코덱 포맷에 대응한다. 또한, 프로세스 블록(503)에서, 프로세스(500)는 제1 재생의 개시 후에 미디어 재생 장치(100)에서 프로세스(101)로 미디어 컨텐츠(106)의 제2 부분의 신뢰도 점수를 결정한다. 신뢰도 점수는 소프트웨어 기반 또는 하드웨어 기반인 제2 코덱 포맷에 대응하는 제2 부분을 나타내는 하나 이상의 요소와 관련된다. 제2 코덱 포맷은 제1 코덱 포맷과 구별된다.
또한, 프로세스 블록(504)에서, 프로세스(500)는 프로세서(101)로 제1 재생을 중단한다. 마지막으로, 프로세스 블록(505)에서, 프로세스(500)는 미디어 재생 장치(100)에서 프로세서(101)로 제2 코덱 포맷에 따른 미디어 컨텐츠의 제2 부분의 제2 재생을 수행한다.
본 명세서에 기술된 프로세스는 특화된, 범용, 다목적 또는 단일 목적 프로세스로 구현될 수 있다. 이러한 프로세서는 프로세스를 수행하도록 조립, 컴파일 또는 머신 레벨에서 명령을 수행할 것이다. 이들 명령은 프로세스에 대응하는 도면의 설명에 따라 당업자에 의해 작성될 수 있고 컴퓨터 판독 가능 마체에 저장되거나 전송될 수 있다. 이들 명령은 소스 코드 또는 기타 알려진 컴퓨터 설계 도구를 이용하여 생성될 수 있다. 컴퓨터 판독 가능 매체는 이러한 명령을 수애할 수 있는 임의의 매체, 예를 들어 컴퓨터 판독 가능 저장 장치일 수 있으며, CD-ROM, DVD, 자기 또는 다른 광 디스크, 테이프, 실리콘 메모리(예를 들어, 이동식, 비이동식,휘발성 또는 비휘발성), 네트워크를 통해 로컬 또는 원격으로 유선 또는 무선 전송을 통한 패킷화 또는 비패킷화 데이터를 포함한다. 본 명세서에서 컴퓨터는 상술한 바와 같이 범용, 다목적 또는 단일 목적 프로세서를 갖는 임의의 장치를 포함하도록 의도된다. 예를 들어, 컴퓨터는 데스크톱 컴퓨터, 랩톱(laptop), 스마트폰, 태블릿 장치, 셋톱 박스(set top box) 등일 수 있다.
본 명세서에서 기술된 장치, 시스템, 컴퓨터 프로그램 제품 및 프로세스는 또한 다른 유형의 장치, 시스템, 컴퓨터 프로그램 제품 및 프로세스에 적용될 수 있는 것으로 이해된다. 당업자는 본 명세서에 기술된 장치, 시스템, 컴퓨터 프로그램 제품 및 프로세스의 양태의 다양한 적응 및 수정이 본 장치, 시스템, 컴퓨터 프로그램 제품 및 프로세스의 범위 및 사상을 벗어나지 않고 구성될 수 있음을 이해할 것이다. 따라서, 첨부된 청구항의 범위 내에서 본 장치, 시스템, 컴퓨터 프로그램 제품 및 프로세스는 본 명세서에서 구체적으로 기술된 것과 다르게 실시될 수 있음을 이해해야 한다.

Claims (21)

  1. 컴퓨터 판독 가능 프로그램이 저장된 비휘발성 컴퓨터 판독 가능 저장 매체로서,
    상기 컴퓨터 판독 가능 프로그램은 미디어 재생 장치에서 실행될 때 미디어 재생 장치로 하여금:
    미디어 컨텐츠 서버로부터 미디어 컨텐츠를 수신하고;
    상기 미디어 컨텐츠가 인코딩된 코덱 포맷을 식별하고;
    상기 미디어 재생 장치에서 프로세서로 미디어 컨텐츠에 대응하는 복수의 샘플 파일의 제1 재생을 수행하고 ― 복수의 샘플 파일에서의 적어도 하나의 상기 샘플 파일은 코덱 포맷에 대응하며, 복수의 샘플 파일에서의 하나 이상의 나머지 샘플 파일은 하나 이상의 추가 코덱 포맷에 대응하며, 하나 이상의 추가 코덱 포맷은 코덱 포맷과 별개임 ―;
    상기 미디어 재생 장치에서 상기 프로세서로 복수의 상기 샘플 파일 각각에 대한 신뢰도 점수를 결정하고 ― 상기 신뢰도 점수는 소프트웨어 기반 또는 하드웨어 기반인 대응하는 코덱 포맷 각각을 나타내는 하나 이상의 요소와 관련됨 ―; 그리고
    상기 코덱 포맷에 대응하는 복수의 샘플 파일에서의 적어도 하나의 샘플 파일에 대한 신뢰도 점수에 따라 적어도 하나의 샘플 파일이 하드웨어 기반임을 결정 시에, 상기 미디어 재생 장치에서 상기 프로세서로 미디어 컨텐츠의 적어도 상당 부분(substantial portion)의 제2 재생을 수행하도록; 초래하는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  2. 제1항에 있어서,
    상기 제1 재생은 상기 제2 재생 이전에 발생하는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  3. 제1항에 있어서,
    하나 이상의 상기 요소는 상기 프로세서에 의한 리소스의 사용률을 포함하는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  4. 제3항에 있어서,
    상기 신뢰도 점수는, 상기 코덱 포맷에 대응하는 복수의 샘플 파일에서의 적어도 하나의 샘플 파일에 대한 상기 프로세서에 의한 리소스의 사용률에 따라 가중치가 매겨지는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  5. 제1항에 있어서,
    하나 이상의 상기 요소는 메모리 제한을 포함하는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  6. 제1항에 있어서,
    복수의 상기 샘플 파일 각각은 지속 시간이 상기 미디어 컨텐츠의 지속 시간보다 짧은,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  7. 제1항에 있어서,
    복수의 상기 샘플 파일 각각은 고해상도를 갖는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  8. 제1항에 있어서,
    상기 코덱 포맷은 HEVC, AVC 및 AV1으로 구성되는 군으로부터 선택되는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  9. 제1항에 있어서,
    상기 제1 재생은, 상기 제1 재생 동안 상기 미디어 재생 장치와 동작가능하게 통신하여 디스플레이 장치를 보고 있는 사용자에게는 보이지 않는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  10. 제9항에 있어서,
    상기 미디어 재생 장치는 상기 제1 재생이 보이지 않도록 상기 제1 재생 위에 오버레이를 랜더링하도록 추가로 초래되는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  11. 제10항에 있어서,
    상기 오버레이는 로그인 화면, 진단 화면 및 상기 미디어 컨텐츠와 관련된 이미지를 포함하는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  12. 컴퓨터 판독 가능 프로그램이 저장된 비휘발성 컴퓨터 판독 가능 저장 매체로서,
    상기 컴퓨터 판독 가능 프로그램은 미디어 재생 장치에서 실행될 때 상기 미디어 재생 장치가:
    미디어 컨텐츠 서버로부터 미디어 컨텐츠를 수신하고;
    상기 미디어 컨텐츠가 인코딩된 코덱 포맷을 식별하고;
    상기 미디어 재생 장치에서 프로세서로 상기 미디어 컨텐츠의 제1 부분의 제1 재생을 수행하고 ― 상기 미디어 컨텐츠의 제1 부분은 제1 코덱 포맷에 대응함 ―;
    상기 미디어 재생 장치에서 상기 프로세서로 상기 제1 재생의 개시 후에 상기 미디어 컨텐츠의 제2 부분에 대한 신뢰도 점수를 결정하고 ― 상기 신뢰도 점수는 소프트웨어 기반 또는 하드웨어 기반인 제2 코덱 포맷에 대응하는 상기 제2 부분을 나타내는 하나 이상의 요소와 관련되며, 상기 제2 코덱 포맷은 상기 제1 코덱 포맷과 별개임 ―;
    상기 제2 코덱 포맷이 하드웨어 기반임을 결정 시에, 상기 미디어 재생 장치에서 상기 프로세서로 상기 제1 재생을 중단하고; 그리고
    상기 제1 재생의 중단에 이어서, 상기 미디어 재생 장치에서 상기 프로세서로 상기 제2 코덱 포맷에 따른 상기 미디어 컨텐츠의 제2 부분의 제2 재생을 수행하도록; 초래하는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  13. 제12항에 있어서,
    상기 제1 재생은 상기 제2 재생 이전에 발생하는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  14. 제12항에 있어서,
    하나 이상의 상기 요소는 상기 프로세서에 의한 리소스의 사용률을 포함하는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  15. 제14항에 있어서,
    상기 신뢰도 점수는 상기 프로세서에 의한 리소스의 사용률에 따라 가중치가 매겨지는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  16. 제12항에 있어서,
    하나 이상의 상기 요소는 메모리 제한을 포함하는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  17. 장치로서,
    프로세서를 포함하며,
    상기 프로세서는:
    미디어 컨텐츠 서버로부터 미디어 컨텐츠를 수신하고;
    상기 미디어 컨텐츠가 인코딩된 코덱 포맷을 식별하고;
    상기 미디어 컨텐츠에 대응하는 복수의 샘플 파일의 제1 재생을 수행하고 ― 복수의 샘플 파일에서의 적어도 하나의 샘플 파일은 상기 코덱 포맷에 대응하며, 복수의 샘플 파일에서의 하나 이상의 나머지 샘플 파일은 하나 이상의 추가 코덱 포맷에 대응하며, 하나 이상의 추가 코덱 포맷은 코덱 포맷과 별개임 ―;
    복수의 샘플 파일 각각에 대한 신뢰도 점수를 결정하고 ― 상기 신뢰도 점수는 소프트웨어 기반 또는 하드웨어 기반인 대응하는 코덱 포맷 각각을 나타내는 하나 이상의 요소와 관련됨 ―; 그리고
    상기 코덱 포맷에 대응하는 복수의 샘플 파일에서의 적어도 하나의 샘플 파일에 대한 신뢰도 점수에 따라 적어도 하나의 샘플 파일이 하드웨어 기반임을 결정 시에, 코덱 포맷에 따른 미디어 컨텐츠의 적어도 상당 부분의 제2 재생을 수행하도록; 프로그래밍되는,
    장치.
  18. 제17항에 있어서,
    상기 프로세서는 미디어 재생 장치 내에 위치되는,
    장치.
  19. 제17항에 있어서,
    상기 코덱 포맷은 HEVC, AVC 및 AV1으로 구성되는 군으로부터 선택되는,
    장치.
  20. 제17항에 있어서,
    하나 이상의 상기 요소는 상기 프로세서에 의한 리소스의 사용률을 포함하는,
    장치.
  21. 제1항에 있어서,
    상기 미디어 재생 장치는:
    하나 이상의 추가 코덱 포맷에 대응하는 복수의 샘플 파일에서의 하나 이상의 나머지 샘플 파일 중 적어도 하나에 대한 신뢰도 점수에 따라 하나 이상의 나머지 샘플 파일 중 적어도 하나가 하드웨어 기반임을 결정할 때,
    상기 미디어 컨텐츠 서버로부터 하나 이상의 나머지 샘플 파일 중 적어도 하나에 대응하는 추가 코덱 포맷에 따라 미디어 컨텐츠의 적어도 상당 부분을 요청하고;
    상기 미디어 컨텐츠 서버로부터 추가 코덱 포맷에 따른 미디어 컨텐츠의 상당 부분을 수신하고; 그리고
    상기 미디어 재생 장치에서 상기 프로세서로 추가 코덱 포맷에 따른 미디어 컨텐츠의 적어도 상당 부분의 제2 재생을 수행하도록; 추가로 초래되는,
    비휘발성 컴퓨터 판독 가능 저장 매체.
KR1020190098990A 2018-09-07 2019-08-13 비디오 컨텐츠의 하드웨어 기반 또는 소프트웨어 기반 디코딩을 검출하기 위한 구성 KR102243696B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/125,250 US10735806B2 (en) 2018-09-07 2018-09-07 Configuration for detecting hardware-based or software-based decoding of video content
US16/125,250 2018-09-07

Publications (2)

Publication Number Publication Date
KR20200029347A KR20200029347A (ko) 2020-03-18
KR102243696B1 true KR102243696B1 (ko) 2021-04-23

Family

ID=69720260

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190098990A KR102243696B1 (ko) 2018-09-07 2019-08-13 비디오 컨텐츠의 하드웨어 기반 또는 소프트웨어 기반 디코딩을 검출하기 위한 구성

Country Status (3)

Country Link
US (1) US10735806B2 (ko)
KR (1) KR102243696B1 (ko)
CN (1) CN110891189B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11871082B2 (en) * 2019-12-30 2024-01-09 MyFitnessPal, Inc. Methods and apparatus for media playback based on cue points

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080141317A1 (en) * 2006-12-06 2008-06-12 Guideworks, Llc Systems and methods for media source selection and toggling
US20090028182A1 (en) * 2007-07-24 2009-01-29 Brooks Paul D Methods and apparatus for format selection for network optimization
US20120203796A1 (en) * 2011-02-08 2012-08-09 Microsoft Corporation Media content location awareness and decision making

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129374A1 (en) * 1991-11-25 2002-09-12 Michael J. Freeman Compressed digital-data seamless video switching system
US8713105B2 (en) * 2006-01-03 2014-04-29 Cisco Technology, Inc. Method and apparatus for transcoding and transrating in distributed video systems
NZ599303A (en) * 2009-10-20 2014-06-27 Ericsson Telefon Ab L M Provision of supplemental processing information
CN102143388B (zh) * 2011-04-22 2013-12-18 赛特斯信息科技股份有限公司 Iptv用户体验质量评估装置及评估方法
US9247448B2 (en) * 2012-08-27 2016-01-26 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
CN103533367B (zh) * 2013-10-23 2015-08-19 传线网络科技(上海)有限公司 一种无参考视频质量评价方法及装置
WO2017222778A1 (en) * 2016-06-24 2017-12-28 Flir Systems, Inc. Thermal-image based video compression systems and methods
CN106791546B (zh) * 2017-01-04 2019-08-23 腾讯科技(深圳)有限公司 媒体数据播放方法和装置
CN107493509A (zh) * 2017-09-25 2017-12-19 中国联合网络通信集团有限公司 视频质量监测方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080141317A1 (en) * 2006-12-06 2008-06-12 Guideworks, Llc Systems and methods for media source selection and toggling
US20090028182A1 (en) * 2007-07-24 2009-01-29 Brooks Paul D Methods and apparatus for format selection for network optimization
US20120203796A1 (en) * 2011-02-08 2012-08-09 Microsoft Corporation Media content location awareness and decision making

Also Published As

Publication number Publication date
US10735806B2 (en) 2020-08-04
US20200084507A1 (en) 2020-03-12
CN110891189B (zh) 2021-12-24
KR20200029347A (ko) 2020-03-18
CN110891189A (zh) 2020-03-17

Similar Documents

Publication Publication Date Title
AU2010282800B2 (en) Systems, methods, and program applications for selectively restricting the placeshifting of copy protected digital media content
CN106657257B (zh) 产生用于交互式多媒体应用程序的音视频的方法和装置
JP6466574B2 (ja) クラウドストリーミングサービスシステム、最適gpuを利用したクラウドストリーミングサービス方法及びそのための装置
US10271105B2 (en) Method for playing video, client, and computer storage medium
CN101330621A (zh) 统一的视频解码和显示
US20130311548A1 (en) Virtualized graphics processing for remote display
KR102110195B1 (ko) 응용 프로그램의 스트리밍 영상 제공 장치 및 방법
US10983903B1 (en) Enhanced automated protocol for secure application testing
WO2019071678A1 (zh) 一种直播的方法和装置
US9858247B2 (en) Runtime resolution of content references
KR102243696B1 (ko) 비디오 컨텐츠의 하드웨어 기반 또는 소프트웨어 기반 디코딩을 검출하기 위한 구성
US20180192121A1 (en) System and methods thereof for displaying video content
US20140184638A1 (en) Adaptively scaling a video frame/image element rendered on a data processing device
JP2017527872A (ja) クラウドストリーミングサービス提供方法、そのための装置及びシステム、並びにそのためのクラウドストリーミング用スクリプトコードを記録したコンピュータ読み取り可能な記録媒体
CN111124824A (zh) 一种手机游戏帧率推荐方法、装置和移动终端
US20160155477A1 (en) Identifying Media Types
KR20210136122A (ko) 비디오 타임 앵커
US11301904B2 (en) Companion content on remote control devices
EP3189666B1 (en) Partial headers for system set-up
US20230209136A1 (en) Method and system for displaying video content
US20120278322A1 (en) Method, Apparatus and Program Product for Personalized Video Selection
US20240022774A1 (en) Smart automatic skip mode
CN113490031B (zh) 一种显示设备及多窗口视频播放方法
US20220248074A1 (en) Systems and methods for improving video, search, and cloud applications
KR20220031871A (ko) 원격 접속을 위한 장치 및 방법

Legal Events

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