KR101248371B1 - 비디오 프로세싱에서의 전력 및 연산 부하 관리 기술 - Google Patents

비디오 프로세싱에서의 전력 및 연산 부하 관리 기술 Download PDF

Info

Publication number
KR101248371B1
KR101248371B1 KR1020117006387A KR20117006387A KR101248371B1 KR 101248371 B1 KR101248371 B1 KR 101248371B1 KR 1020117006387 A KR1020117006387 A KR 1020117006387A KR 20117006387 A KR20117006387 A KR 20117006387A KR 101248371 B1 KR101248371 B1 KR 101248371B1
Authority
KR
South Korea
Prior art keywords
parsing
decoding
operations
data stream
sequence
Prior art date
Application number
KR1020117006387A
Other languages
English (en)
Other versions
KR20110055679A (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 KR20110055679A publication Critical patent/KR20110055679A/ko
Application granted granted Critical
Publication of KR101248371B1 publication Critical patent/KR101248371B1/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/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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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/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
    • 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/4432Powering on the client, e.g. bootstrap loading using setup parameters being stored locally or received from the server
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Picture Signal Circuits (AREA)
  • Power Sources (AREA)

Abstract

비디오 프로세싱 및 디코딩 동안 프로세서 상의 전력 소모 및 연산 부하를 관리하는 기술이 제공된다. 하나의 예시적인 실시형태는, 비디오 데이터를 포함하는 데이터 스트림을 프로세싱하는 방법을 개시한다. 이 방법에 따르면, 데이터 스트림을 생성하는데 이용되는 하나 이상의 프로토콜이 식별된다. 이 프로토콜에 의해 요구되는 다양한 파싱 및 디코딩 동작들은 가용 전기 전력 또는 가용 프로세싱 전력에 기초하여 식별 및 관리된다. 다른 예시적인 실시형태는, 비디오 데이터를 포함하는 데이터 스트림을 프로세싱하는 방법을 개시한다. 이 방법에 따르면, 데이터 스트림을 생성하는데 이용되는 하나 이상의 프로토콜이 식별된다. 그 후, 이 프로토콜에 의해 요구되는 다양한 파싱 및 디코딩 동작들은 비디오의 시각적 품질 또는 체감 품질에 기초하여 식별 및 관리된다.

Description

비디오 프로세싱에서의 전력 및 연산 부하 관리 기술{POWER AND COMPUTATIONAL LOAD MANAGEMENT TECHNIQUES IN VIDEO PROCESSING}
본 출원은, (일시적으로 대리인 열람번호 제 IDF 071979U2 으로 참조되는) 발명의 명칭이 POWER AND COMPUTATIONAL LOAD MANAGEMENT TECHNIQUES IN VIDEO PROCESSING 이고 본 출원과 동일자로 출원된 미국 특허 출원과 관련되고; 2008 년 8 월 19 일자로 출원된 미국 가특허출원 제 61/090,176 호 및 2008 년 11 월 14 일자로 출원된 61/114,985 호에 대해 우선권을 주장하고, 이 출원들은 본 양수인에게 양도되고, 각각 그 전체가 참조로 본 명세서에 명백하게 포함되었다.
본 출원은 일반적으로 비디오 프로세싱 분야에 관한 것이고, 더 상세하게는, 비디오 프로세싱 및 디코딩에서 전력 및 연산 (computational) 부하 관리를 위한 기술에 관한 것이다.
비디오 데이터에 포함된 디지털 정보의 양은 방대하고, 비디오 카메라의 성능에서의 진보와 함께 증가하는 경향이 있다. 비디오 데이터의 프로세싱은 비디오-인에이블 디바이스, 더 상세하게는, 셀룰러 폰, 개인 휴대 정보 단말기 (PDA), 랩탑 컴퓨터 등과 같은 무선 통신 디바이스들의 전력 및 연산 리소스를 대량으로 요구한다.
비디오 압축이 공간 및 시간 리던던시를 주로 감소시키지만, 소스 비디오가 캡쳐된 이후 (또는 경우에 따라 스토리지로부터 추출된 이후), 및 재구성된 비디오가 디스플레이에 렌더링되기 (표시되기) 이전에 요구되는 다수의 전처리 및 후처리 동작들이 존재한다. 비디오 프로세싱은, 전력 요건 (배터리, 대화 시간 등) 에 직접 비례하는 요구된 산술 동작에 주로 기인하여 메모리 (저장 및 데이터 전송) 및 연산 부하를 대량으로 요구한다.
비디오에서 리던던시의 양이 주어지면, 이러한 동작의 양에서의 비례하는 감소가 예측되어야 한다. 압축 비율이 매우 큰 차수의 크기이기 때문에 (100:1 내지 1000:1), 구현 오버헤드에도 불구하고 프로세싱될 비디오 데이터의 양에서의 현저한 감소가 달성될 수 있다. 공간-시간 리던던시는 압축 메타데이터를 이용하여 식별될 수 있고, 리던던시 동작에서의 감소에 대응하고, 이는 전력을 절약한다. 상이한 레벨의 리던던시는 프로세서 상에서 상이한 레벨의 소모되는 전력 및 연산 로딩으로 해석된다.
따라서, 비디오 프로세싱 및 디코딩에서 전력 및 연산 부하 관리를 위한 기술이 요구된다.
비디오 프로세싱 및 디코딩에서 전력 및 연산 부하 관리를 위한 기술이 개시된다. 일 구성에서는, 비디오 데이터를 포함하는 비트스트림으로부터 정보를 추출 및 컴파일하도록 동작하는 일 세트의 명령들을 갖는 프로세서를 포함하는 장치가 제공된다. 이 프로세서는, 비트스트림을 생성하는데 이용되는 하나 이상의 프로토콜을 식별하고, 그 후, 그 프로토콜에 의해 요구되는 다양한 파싱 및 디코딩 동작들을 식별하도록 동작한다. 식별되면, 비트스트림에 대한 파싱 및 디코딩 동작들은 그 장치에 대해 가용인 전기 전력의 양에 기초하여, 또는 가용 프로세싱 전력에 기초하여 관리될 수 있다. 일 예에 따르면, 비트스트림의 식별된 파싱 동작들 및 디코딩 동작들은 전체로 수행되지 않을 수도 있고, 그 대신에, 전기 전력 또는 프로세싱 전력의 가용량에 기초하여 선택적으로 수행될 수도 있다.
다른 구성에 따르면, 비디오 데이터를 포함하는 비트스트림으로부터 정보를 추출 및 컴파일하도록 동작하는 일 세트의 명령들을 갖는 프로세서를 포함하는 장치가 제공된다. 이 프로세서는, 비트스트림을 생성하는데 이용되는 하나 이상의 프로토콜을 식별하고, 그 후, 그 프로토콜에 의해 요구되는 다양한 파싱 및 디코딩 동작들을 식별하도록 동작한다. 식별되면, 비트스트림에 대한 파싱 및 디코딩 동작들은 비디오의 시각적 품질 또는 사용자의 체감 품질에 기초하여 관리된다. 이 장치는 또한 프로세서에 커플링된 메모리를 포함한다.
다른 양태에서는, 비디오를 갖는 비트스트림으로부터 명령을 추출 및 컴파일하도록 동작하는 일 세트의 명령들을 갖는 프로세서를 포함하는 집적 회로 (IC) 가 제공된다. 이 프로세서는, 비트스트림을 생성하는데 이용되는 하나 이상의 프로토콜을 식별하고, 그 프로토콜에 의해 요구되는 다양한 파싱 및 디코딩 동작들을 식별하고, 그 후, 가용인 전력 전력의 양 또는 가용 프로세싱 전력에 기초하여 비트스트림에 대한 파싱 및 디코딩 동작들을 관리하도록 동작한다. 다른 구성에 따르면, 이 파싱 및 디코딩 동작들은, 비디오의 시각적 품질 또는 사용자의 체감 품질에 기초하여 관리된다. 이 집적 회로는 또한 프로세서에 커플링된 메모리를 포함한다.
다른 구성에서는, 프로세서로 하여금, 비디오 데이터를 포함하는 비트스트림으로부터 정보를 추출 및 컴파일하게 하는 명령들을 갖는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다. 이 명령들은 또한 프로세서로 하여금, 비트스트림을 생성하는데 이용되는 하나 이상의 프로토콜을 식별하게 하고, 그 프로토콜에 의해 요구되는 다양한 파싱 및 디코딩 동작들을 식별하게 하고, 그 후, 가용인 전기 전력의 양 또는 가용 프로세싱 전력에 기초하여 파싱 및 디코딩 동작들을 관리하게 한다. 다른 구성에 따르면, 이 파싱 및 디코딩 동작들은 비디오의 시각적 품질 또는 사용자의 체감 품질에 기초하여 관리된다.
다른 양태의 구성은, 다양한 파싱 및 디코딩 동작들을 그룹으로 조직화하는 프로세서를 포함하고, 각각의 그룹은 프로젝팅된 전기 전력 요건 또는 프로젝팅된 프로세싱 전력 요건을 갖는다. 프로세서는 일 그룹을 선택하여, 그 그룹의 프로젝팅된 전기 전력 또는 프로세싱 전력 요건이 가용 전기 전력 또는 가용 프로세싱 전력을 충족하거나 초과하지 않게 한다. 대안적으로, 다양한 파싱 및 디코딩 동작들은, 그 그룹과 연관된 파싱 및 디코딩 동작들에 의해 제공되는 비디오의 시각적 품질 또는 사용자의 체감 품질에 기초하여 그룹들로 조직화될 수 있다.
이 개요는 본 출원의 전체 범위 및 사상을 나타내는 것이 아니고, 본 출원의 전체 범위 및 사상으로 해석되어서는 안되며, 이 양태들 및 추가적 양태들은, 특히 첨부된 도면과 함께 참조되는 상세한 설명으로부터 보다 명백해질 것이다.
도 1 은 무선 디바이스의 일반적인 블록도를 도시한다.
도 2a 는 데이터 스트림을 도시한다.
도 2b 는 비디오 계층 데이터를 도시한다.
도 2c 는 일반적인 MPEG 포맷을 도시한다.
도 2d 는 디코딩가능한 유닛들을 갖는 일반적인 MPEG 비트스트림을 도시한다.
도 3a 는 전력 관리 모듈, 및 비디오 인코더 및 디코더 엔진의 블록도를 도시한다.
도 3b 는 전력 관리 모듈에 이용하기 위한 디코더 엔진의 블록도를 도시한다.
도 4 는 디코딩가능한 유닛들의 우선순위화된 전력 관리 (PM) 시퀀스를 디코딩하기 위한 전력 및 연산 부하를 프로젝팅하는 프로세스의 흐름도를 도시한다.
도 5 는 전송 계층 (TL) 파서 및 프로세싱 유닛을 도시한다.
도 6 은 TL 정보 추출기 및 컴파일러를 도시한다.
도 7 은 수신된 시간 슬라이스를 도시한다.
도 8 은 디코딩가능한 유닛 발생기의 TL 우선순위화된 PM 시퀀스를 도시한다.
도 9 는 TL 디코딩 MIPS 및 전력 프로젝터를 도시한다.
도 10 은 전력 및 연산 부하 관리에 의한 디코딩 프로세스를 도시한다.
도 11 은 TL 모드 동안 다중층 저전력 모드 세트 발생기를 도시한다.
도 12 는 비디오 시퀀스/영상 계층 (VS/PL) 파서 및 프로세싱 유닛을 도시한다.
도 13 은 VS/PL 추출기 및 컴파일러를 도시한다.
도 14 는 수신된 시간 슬라이스에서의 VS/PL 정보를 도시한다.
도 15 는 발생기를 디코딩하기 위한 VS/PL 우선순위화된 시퀀스를 도시한다.
도 16 은 VS/PL 디코딩 MIPS 및 전력 프로젝터에 의해 MIPS 를 추정하기 위한 프로세스의 흐름도를 도시한다.
도 17 은 VS/PL 디코딩 MIPS 및 전력 프로젝터를 도시한다.
도 18 은 VS/PL 모드 동안 다중층 저전력 모드 세트 발생기를 도시한다.
도 19 는 슬라이스/매크로블록 계층 (S/MBL) 파서 및 프로세싱 유닛을 도시한다.
도 20 은 S/MBL 추출기 및 컴파일러를 도시한다.
도 21 은 발생기를 디코딩하기 위한 S/MBL 우선순위화된 시퀀스를 도시한다.
도 22 는 S/MBL 모드 동안 다중층 저전력 모드 세트 발생기를 도시한다.
도 23 은 전력 관리 동작의 하이 레벨 블록도를 도시한다.
도 24 는 시퀀스 순서로 프로세스를 디코딩하는 예시적인 표준 (정규) 을 도시한다.
도 25 는 전력 관리 동작에 의한 TL 디코딩 프로세스의 흐름도를 도시한다.
도 26 은 전력 관리 동작에 의한 VS/PL 디코딩 프로세스의 흐름도를 도시한다.
도 27 은 VS/PL 정보 추출 프로토콜의 블록도를 도시한다.
도 28 은 VS/PL 정보 추출 프로토콜에 따른 비트스트림으로부터의 VS/PL 디코딩된 유닛의 블록도를 도시한다.
도 29 는 전력 관리 동작에 의한 S/MBL 디코딩 프로세스의 흐름도를 도시한다.
도 30 은 S/MBL 정보 추출 프로토콜의 블록도를 도시한다.
도 31 은 S/MBL 정보 추출 프로토콜에 따른 비트스트림으로부터의 S/MBL 디코딩된 유닛들의 블록도를 도시한다.
도 32 는 선택된 전력 관리 모드에 따른 최종 슬라이스 및 매크로블록 디코딩의 블록도를 도시한다.
도 33 은 다중층 전력 관리 모드의 계층적 배열의 블록도를 도시한다.
이해를 용이하게 하기 위해, 가능한 곳에서는 동일한 참조 부호가 사용되어, 도면들에 공통된 동일한 엘리먼트를 지정하며, 적절한 경우 첨자가 추가되어 이러한 엘리먼트들을 구별할 수도 있다. 도면의 이미지는 설명을 위해 단순화되고 축척에 맞게 도시되지 않았다. 구성의 특성들은 추가적 인용없이 다른 구성에 유리하게 통합될 수도 있음을 고려한다.
첨부된 도면들은 본 출원의 예시적인 구성을 도시하며, 이와 같이, 본 출원의 범주를 제한하는 것으로 고려되지 않아서, 다른 동등하게 효과적인 구성을 허용할 수도 있다.
용어 "예시적인" 은 본 명세서에서 "예, 예시 또는 예증으로 기능하는" 을 의미하도록 사용된다. 본 명세서에서 "예시적인" 것으로 사용되는 임의의 구성 또는 설계는 다른 구성 또는 설계에 비해 바람직하거나 유리한 것으로 해석될 필요는 없으며, 용어 "코어", "엔진", "머신", 프로세서" 및 "프로세싱 유닛" 은 상호교환적으로 사용된다.
본 명세서에 설명된 기술들은 무선 통신, 연산, 개인용 일렉트로닉스, 핸드셋 등에 이용될 수도 있다. 이하, 무선 통신을 위한 기술의 예시적인 이용을 설명한다.
도 1 은 무선 통신 시스템에서 무선 디바이스 (10) 의 구성의 블록도를 도시한다. 무선 디바이스 (10) 는 핸드셋일 수도 있다. 무선 디바이스 (10) 또는 핸드셋은 셀룰러 또는 카메라 폰, 단말기, 무선-장착 개인 휴대 정보 단말기 (PDA), 무선 통신 디바이스, 비디오 게임 콘솔, 랩탑 컴퓨터, 비디오-인에이블드 디바이스 또는 몇몇 다른 무선-장착 디바이스일 수도 있다. 무선 통신 시스템은 코드 분할 다중 접속 (CDMA) 시스템, GSM 시스템, 또는 몇몇 다른 시스템일 수도 있다.
무선 디바이스 (10) 는 수신 경로 및 송신 경로를 통해 양방향 통신을 제공할 수 있다. 수신 경로 상에서, 기지국에 의해 송신된 신호들은 안테나 (12) 에 의해 수신되고, 수신기 (RCVR; 14) 에 제공된다. 수신기 (14) 는 수신된 신호를 컨디셔닝 및 디지털화하고, 추가적 프로세싱을 위해 디지털 섹션 (20) 에 샘플들을 제공한다. 송신 경로 상에서, 송신기 (TMTR; 16) 는 디지털 섹션 (20) 으로부터 송신될 데이터를 수신하고, 그 데이터를 프로세싱 및 컨디셔닝하고, 안테나 (12) 를 통해 기지국으로 송신되는 변조된 신호를 발생시킨다.
디지털 섹션 (20) 은, 예를 들어, 모뎀 프로세서 (22), 비디오 프로세서 (24), 제어기/프로세서 (26), 디스플레이 프로세서 (28), ARM/DSP (32), 그래픽 프로세싱 유닛 (GPU; 34), 내부 메모리 (36) 및 외부 버스 인터페이스 (EBI; 38) 와 같은 다양한 프로세싱 인터페이스 및 메모리 유닛들을 포함한다. 모뎀 프로세서 (22) 는 데이터 송신 및 수신을 위한 프로세싱 (예를 들어, 변조 및 복조) 을 수행한다. 비디오 프로세서 (24) 는 캠코더, 비디오 재생 및 비디오 화상회의와 같은 비디오 애플리케이션을 위한 비디오 컨텐츠 (예를 들어, 정지 이미지, 동영상 비디오, 무빙 텍스트) 에 대한 프로세싱을 수행한다. 비디오 프로세서 (24) 는 비디오 인코딩 및 디코딩 또는 코덱 동작을 수행한다. 비디오 인코딩 및 디코딩 동작은 다른 프로세서에 의해 수행될 수도 있고, 또는 디지털 섹션 (20) 에서 다양한 프로세서에 걸쳐 공유될 수도 있다. 제어기/프로세서 (26) 는 디지털 섹션 (20) 내의 다양한 프로세싱 및 인터페이스 유닛들의 동작을 명령할 수도 있다. 디스플레이 프로세서 (28) 는 디스플레이 유닛 (30) 상의 비디오, 그래픽 및 텍스트의 디스플레이를 용이하게 하기 위한 프로세싱을 수행한다. ARM/DSP (32) 는 무선 디바이스 (10) 에 대한 다양한 타입의 프로세싱을 수행할 수도 있다. 그래픽 프로세싱 유닛 (34) 은 그래픽 프로세싱을 수행한다.
GPU (34) 는, 예를 들어, 공개적으로 입수가능한, 2005 년 7 월 28 일, "OpenGL Specification, Version 1.0" 문헌에 부합할 수도 있다. 이 문헌은, 셀룰러 폰 및 전술한 무선 통신 장치 등과 같은 핸드헬드 및 이동 디바이스에 적합한 2D 벡터 그래픽을 위한 표준이다. 추가적으로, GPU (34) 는 또한 OpenGL2.0, OpenGL ES2.0 또는 D3D9.0 그래픽 표준에 부합할 수도 있다.
본 명세서에 개시된 기술들은, 예를 들어, 비디오 프로세서 (24) 와 같은 디지털 섹션 (20) 내의 임의의 프로세서에 이용될 수도 있다. 내부 메모리 (36) 는 디지털 섹션 (20) 내의 다양한 유닛들에 대한 데이터 및/또는 명령들을 저장한다. EBI (38) 는 버스 또는 데이터 라인 DL 을 따라 디지털 섹션 (20) (예를 들어, 내부 메모리 (36)) 과 메인 메모리 (40) 사이의 데이터 전송을 용이하게 한다.
디지털 섹션 (20) 은 하나 이상의 DSP, 마이크로프로세서, RISC 등으로 구현될 수도 있다. 디지털 섹션 (20) 은 또한 하나 이상의 주문형 집적 회로 (ASIC) 또는 몇몇 다른 타입의 집적 회로 (IC) 상에 제조될 수도 있다.
본 명세서에서 설명하는 기술들은 다양한 하드웨어 유닛으로 구현될 수도 있다. 예를 들어, 이 기술들은 ASIC, DSP, RISC, ARM, 디지털 신호 프로세싱 디바이스 (DSPD), 프로그램머블 로직 디바이스 (PLD), 필드 프로그래머블 게이트 어레이 (FPGA), 프로세서, 제어기, 마이크로제어기, 마이크로프로세서 및 다른 일렉트로닉 유닛으로 구현될 수도 있다.
미처리 비디오 데이터는, 무선 디바이스 (10) 또는 다른 비디오-인에이블드 디바이스로 송신되거나 그에 의해 프로세싱되어야 하는 정보의 양을 감소시키기 위해 압축될 수도 있다. 압축은, 예를 들어, ISO/IEC 의 동영상 전문가 그룹 MPEG-2 및 MPEG-4, ITU-T 의 H.264/AVC 등 (AVC 는 어드밴스드 비디오 코딩을 지칭함) 에 의한 표준을 포함하는 산업-적응 비디오 압축 및 통신 표준 중 하나 이상에 부합하는 비디오 코딩 기술을 이용하여 수행될 수도 있다. 아도비 플래시 플레이어에 이용되는 VP6 과 같은 비표준 압축 방법에 부합하는 비디오 코딩 기술이 또한 이용되어 압축된 비디오 데이터를 발생시킬 수도 있다. 이 구성들에서, 미처리 및 압축된 비디오 데이터는 무선 또는 유선 인터페이스 또는 이들의 조합을 이용하여, 무선 디바이스 (10) 또는 다른 비디오-인에이블드 디바이스로, 로부터 또는 그 안에서 송신될 수도 있다. 대안적으로, 압축된 데이터는 DVD 와 같은 미디어 내에 저장될 수도 있다.
압축된 비디오 데이터는, 예를 들어, 실시간 전송 프로토콜 사양의 IETF 에 의해 정의되는 인터넷 프로토콜 (IP) 을 이용하는 전송 프로토콜을 이용한 송신을 위해 페이로드 포맷으로 캡슐화된다.
도 2a 는 무선 디바이스 (10) 또는 다른 비디오-인에이블드 디바이스에 의해 송신 또는 프로세싱되어야 하는 데이터 스트림 및 대응 프로토콜의 블록도를 도시한다. 데이터 스트림 (2141) 은, 예를 들어, 전송 프로토콜 사양 (2145) 에 의해 특정된 캡슐화와 같은 전송 계층 데이터 (2142), 및 비디오 계층 데이터 (2143) 로 구성된다. 전송 계층 데이터는 대응하는 전송 프로토콜에 특정된 데이터 표현의 포맷 또는 신택스 또는 시멘틱스를 따르고, 비디오 계층 데이터는, 압축 표준과 같은 비디오 코딩 프로토콜 (2144) 에 특정된 비디오 데이터의 표현에 대한 포맷 또는 신택스 또는 시멘틱스를 따른다.
전송 프로토콜 (2145) 은 예를 들어, RTP 또는 UDP 또는 IP 와 같은 전송 포맷 또는 MP4 와 같은 파일 포맷과 같이, 송신 또는 저장을 위해 비디오 계층 데이터를 캡슐화한다. 비디오 코딩 프로토콜 (2144) 은 MPEG-2 또는 MPEG-4 또는 H.264/AVC 또는 Real Video 또는 Windows Media 등과 같은 임의의 다른 비디오 코덱과 같은 비디오 코딩 표준일 수 있다. 전송 계층 데이터의 신택스 및 시멘틱스는 전송 프로토콜에 의해 지배 또는 특정되고, 비디오 계층 데이터의 신택스 및 시멘틱스는 비디오 코딩 프로토콜에 의해 지배 또는 특정된다.
도 2b 는 비디오 계층 데이터 (2143) 의 포맷을 도시한다. 비디오 계층 데이터는 시퀀스 또는 영상 그룹 (GOP) 또는 영상 계층 데이터 (2243), 슬라이스 또는 매크로블록 (MB) 계층 데이터 (2254), 및 블록 계층 데이터 (2247) 를 포함한다.
수신기에서 데이터 스트림이 수신되는 경우, 종래의 시스템에서는, 비디오 프로세서가 대응 전송 프로토콜 사양 및 비디오 코딩 프로토콜 또는 표준 사양에 의해 특정된 순서로 데이터 스트림을 파싱 및 디코딩한다. 전송 파서는, 여기서는 정규의 파싱 동작으로 지칭되는, 전송 프로토콜 사양에 대응하는 순서로 캡슐화를 해제한다. 비디오 디코더는 여기서는 정규의 디코딩 동작으로 지칭되는, 비디오 코딩 프로토콜 또는 표준 사양에 의해 특정된 순서로 비디오 계층 데이터를 파싱 및 디코딩한다.
이하 설명되는 시스템 및 방법에서는, 비디오 프로세서가 데이터 스트림의 일부를 선택적으로 파싱 및/또는 디코딩 또는 프로세싱하고, 파싱 및/또는 디코딩 및 프로세싱 동작의 순서는 가용 전력 또는 가용 연산 프로세싱 전력 또는 시각적 품질에 기초한다.
도 2c 는 일반적인 MPEG 패킷 포맷 (50) 을 도시한다. MPEG 패킷 포맷은 데이터 스트림 (2141) 의 일예이다. MPEG 패킷 포맷 (50) 은 복수의 MPEG 계층 (52, 54, 56, 58, 60, 62 및 64) 을 포함한다. MPEG 계층은 전송 계층 (52), 시퀀스 계층 (54), 영상 그룹 (GOP) 계층 (56), 영상 계층 (58), 슬라이스 계층 (60), 매크로블록 (MB) 계층 (62) 및 블록 계층 (64) 을 포함한다. 도 2a 에서, 계층들은 디코딩 및 프로세싱을 요구하는 계층들의 계층적 순서를 나타내도록 적층되어 도시되어 있다. 여기서는 설명을 위해, 시퀀스 및 영상 계층 (54 및 58) 이 함께 그룹화되어 있고, 여기서 설명하는 전력 부하 관리를 위해 비디오 시퀀스/영상 계층 (VS/PL; 70) 으로 지칭된다. 몇몇 표준에서는, 오직 시퀀스 계층만 존재할 수도 있고, 또는 영상 계층 또는 계층들의 결합이 존재할 수도 있다. 또한, 슬라이스 및 매크로블록 (MB) 계층 (60 및 62) 이 함께 그룹화되어, 여기서 설명하는 전력 부하 관리를 위한 슬라이스/MB 계층 (S/MBL; 72) 을 형성한다. 몇몇 표준에서는, 이 계층들 중 하나 이상이 생략되거나 결합될 수도 있다.
MPEG 압축에서, 비디오 프레임들은, 인트라-코딩된 (I) 프레임, 예측-코딩된 (P) 프레임, 및 양방향 예측-코딩된 (B) 프레임 중 하나 이상을 포함할 수도 있는 영상 그룹 (GOP) 으로 코딩 및 포맷팅될 수도 있다. 몇몇 B 프레임들은 기준 프레임일 수도 있다. 비-기준 B 프레임들은 b 프레임으로 지정될 수도 있다. 인식할 수 있는 바와 같이, 이 표준에서 모든 프레임들 및 프레임의 배열을 규정하는 것은 금지된다.
도 2d 는 디코딩가능한 유닛들을 갖는 일반적인 MPEG 비트스트림을 도시한다. 비트스트림은, 시퀀스 계층 (54) 에서, 시퀀스 데이터 (54B) 가 후속하는 시퀀스 헤더 (54A) 를 포함한다. 시퀀스 계층 (54) 은 디코딩가능한 유닛이다. 시퀀스 데이터 (54B) 는, 영상 1, 영상 2, 영상 3, ..., 영상 (N-1) 및 영상 N 으로 표시된 복수의 영상들을 포함하는 영상 계층 (58) 을 포함한다. 각각의 영상은 디코딩가능한 유닛이다. 각각의 영상은 영상 헤더 (58A) 및 영상 데이터 (58B) 를 포함한다. 영상 데이터 (58B) 는 슬라이스 계층 (60) 을 포함한다. 슬라이스 계층 (60) 은 슬라이스 1, 슬라이스 2, 슬라이스 3, ..., 슬라이스 (M-1) 및 슬라이스 M 으로 표시된 복수의 슬라이스들을 포함한다. 각각의 슬라이스는 디코딩가능한 유닛이다. 슬라이스는 슬라이스 데이터 (60B) 가 후속하는 슬라이스 헤더 (60A) 를 포함한다. 슬라이스의 슬라이스 데이터 (60B) 는 매크로블록 계층 (62) 을 포함한다. 매크로블록 계층 (62) 은 MB 1, MB 2, MB 3, ..., MB (P-1) 및 MB P 로 표시된 복수의 매크로블록을 포함한다. 각각의 매크로블록은 디코딩가능한 유닛이다. 각각의 매크로블록은 MB 헤더 (62A) 및 MB 데이터 (62B) 를 포함한다. 몇몇 디코딩가능한 유닛들은 다른 디코딩가능한 유닛에 의존한다. 따라서, 우선순위화는 의존적 디코딩가능한 유닛을 고려할 것이다. 또한, 각각의 계층 내의 디코딩가능한 유닛의 하나 이상은 분할가능하다.
도 3a 는 전력 관리 모듈 (100), 및 비디오 인코더 및 디코더 엔진 (102 및 104) 의 블록도를 도시한다. 전력 관리 모듈 (100) 은 멀티-레벨 저전력 모드 세트 발생기 (114) 를 갖는다. 멀티-레벨 모드 세트 발생기 (114) 는 MPEG 포맷의 계층적 (계층화된) 층에 따라 배열된 복수의 저전력 모드들을 갖는다. 복수의 저전력 모드는, 각각의 계층에서 개선된 입도 (granularity) 및/또는 시각적 품질을 위해 선택적으로 디코딩될 수도 있는 디코딩가능한 유닛의 우선순위화된 전력 관리 (PM) 에 기초한다. 입도는, 소정의 전력 소모 목표에 대한 결과적 시각 품질을 최대화하기 위해 실행될 수 있는 파싱 또는 디코딩 동작의 범위를 지칭할 수도 있다. PM 시퀀스는 전력 관리를 용이하게 하는 디코딩 또는 파싱 동작의 시퀀스이다. PM 시퀀스는 선택적인 디코딩 및/또는 파싱 동작의 룩-어헤드 (look-ahead) 프로세싱을 통해 소정의 전력에 대한 시각적 품질을 최대화하려 시도한다. 멀티-레벨 저전력 모드 세트 발생기 (114) 는 복수의 계층 모드들을 갖는다. 이 구성에서, 복수의 계층 모드는 TL 모드, VS/PL 모드 및 S/MBL 모드를 포함한다. 인식할 수 있는 바와 같이, 여기서 설명하는 기술들은 MPEG 포맷에 한정되지 않으며, 다른 비디오 압축 및/또는 전송 프로토콜 포맷에 이용될 수도 있다.
일 실시형태에서, 비디오 데이터를 포함하는 데이터 스트리밍으로부터의 정보가 이 정보에 기초하여 추출 및 컴파일되고, 전력 관리 (PM 시퀀스) 를 용이하게 하는 데이터 스트림에 대한 디코딩 및 파싱 동작의 시퀀스가 우선순위화된다.
다른 실시형태에서, 우선순위화는 디코딩 및 파싱 동작 중 적어도 하나의 룩-어헤드 프로세싱에 기초한다. 다른 실시형태에서, 우선순위화된 PM 시퀀스 각각에 대한 전력 및 연산 로딩 중 적어도 하나의 프로젝션이 계산된다. 다른 실시형태에서, 전력 관리 시퀀스의 우선순위화는 시각적 품질 및 입도 중 적어도 하나에 기초한다.
실시형태들은 또한 우선순위에 기초하여, 우선순위화된 전력 관리 시퀀스를 선택적으로 디코딩하기 위한 저전력 모드 또는 품질 모드의 계층적 리스트를 발생시키는 것을 포함한다. 상이한 저전력 모드 또는 품질 모드는 시각적 품질의 상이한 정도에 대응한다. 저전력 모드의 선택은 가용 전력 또는 연산 로딩에 응답할 수도 있다. 또한, 우선순위화된 전력 관리 시퀀스 중 하나 이상의 선택적 디코딩은 선택된 저전력 모드에 응답할 수도 있다. 다른 실시형태에서, 선택적 디코딩은 우선순위화된 전력 관리 시퀀스에 대한 전력 및 연산 로딩 중 적어도 하나의 프로젝션을 계산하는 것에 기초할 수도 있다.
예시적인 구성에서, 예를 들어, 예측 모드에 의해 표시된 리던던시의 정도는 계층의 그레듀에이티드 (graduated) 세트를 생성하고, 이것은 낮은/감소된 전력 동작 모드의 그레듀에이티드 세트로 매핑될 수 있다. H.264 예측 모드를 이용하는 하나의 포맷은, 인터 및 인트라 예측 모드에 대응하는 내림차순인 비디오에서의 리던던시 레벨이: 스킵, 다이렉트, 인터, 및 인트라 예측 모드를 포함한다는 사실에 기초한다. 모드의 순서는 또한 손상된 경우 (이 모드에 대응하는 MB 의 디코딩 및 재구성에 부정확도가 도입된 경우) 의 시각적 품질의 상이한 정도에 대응한다. 이 개념들은 다른 비디오 코딩 표준 및 포맷에 확장될 수 있다.
비디오에서의 리던던시를 전력 최적화 비디오 프로세싱에 이용하기 위해, 디코더 엔진 (104) 전용 양태, 인코더 엔진 (102) 전용 양태 또는 인코더와 디코더 엔진을 조정하는 양태를 포함하는 다수의 양태들이 전력 부하 관리를 위해 이용될 수도 있다. 디코더 엔진 전용 (DO) 솔루션의 경우, DO 솔루션은 디바이스 (10) 에서의 디코딩 또는 렌더링 동안 적용될 수도 있고, 인코더는 불문한다. 이 솔루션들은 일치형 및 비일치형 카테고리로 분할될 수도 있다. 일치형 카테고리의 솔루션은, 표준 일치를 유지하는 비디오 스트림을 출력할 것이다. 여기서, 엄격한 일치 요건이 충족되어야 한다. 비일치형 솔루션에서, 이 솔루션의 이점은, 시각적 품질에의 최소한의 영향을 위한 복잡도에서의 대량의 (일치형에 비해) 감소 및 융통성이다.
인코더 엔진 (102) 전용 (EO) 솔루션의 경우, 모든 복잡도 감소 방법은 인코딩 동안 통합되고, 디코더는 불문한다. EO 솔루션에서, 모든 인코딩 기능들은 프로세싱 전력의 관점에서 바이어싱된다. 선택적으로, 프로세싱 전력을 위한 비용 기능이, RD 전력 최적화로 지칭되는 레이트-왜곡 (RD) 최적화에 포함된다.
조인트 인코더-디코더 엔진 (JED) 솔루션의 경우, 전력 감소 방법은 인코딩 동안 통합 또는 채택되고, 디코더 엔진은 적절한 반대 동작을 수행하여 (전력/부하/비용에서) 증가된 감소를 제공한다. JED 솔루션에서, 인코더 엔진은 디코더 엔진의 성능을 인식하여, 전술한 DO 솔루션 방법을 적용하고, 디코더 엔진에 이용하기 위한 사이드 채널 또는 비트스트림 (사용자 필드 또는 보충 향상 정보 (SEI) 메시지) 에서의 적절한 동작을 위한 표시자들을 통합한다. 전력 감소의 세트에 기초하여 미리 동의된 프로토콜이 전력/부하/비용에서의 증가된 감소를 위해 인코더 및 디코더 모두에 의해 채택될 수도 있다.
DO 솔루션은, 디코더 엔진이 인코딩 프로세스를 인식하지 못하는 오픈 엔디드 애플리케이션에 적용된다. 실시예들은 모바일 TV, 비디오-온-디맨드 (VOD), PMP 등을 포함할 것이다. EO 솔루션은, 저전력 디바이스를 구동하기 위해 전력 친화적 비트스트림이 요구되는 비디오 서버에서의 애플리케이션을 발견할 것이다. EO 솔루션은 또한, 소스의 다중 코딩된 버젼이 발생되고 네트워크 서버가 네트워크/채널 조건에 기초하여 그 버젼들 사이에서 적응적으로 선택/스위칭하는 시나리오에서 유용하다. JED 솔루션은 DO 또는 EO 솔루션 방법에 비해 소정의 품질에 대한 전력 감소의 측면에서 최대 이득을 제공한다. JED 솔루션은, 통신/제어 경로 (실시간 또는 선험적) 가 가능한 폐쇄형 또는 대화형 애플리케이션에 적용된다.
아래의 설명은 DO 솔루션을 의도하고, 다중층 프레임워크 구성을 제공하여, 비디오 디코딩에서의 구현 및 동작 복잡도를 조정한다. 비디오 디코딩 및 렌더링 동작에서의 부하 관리는, 모바일 TV, 휴대용 멀티미디어 플레이어 (PMP), (영화/DVD 플레이어) 등과 같은 다양한 애플리케이션에 의해 확장된 비디오 재생이 요구되는 경우 가능하다. 다중층 프레임워크 구성에서 구현되는, 여기서 설명된 기술들은 임의의 비디오 또는 멀티미디어 애플리케이션에 확장될 수도 있다.
부하 또는 전력 관리는, 지연, 전력 소모 및 초 당 수백만개의 명령들, 또는 프로세서 사이클 (MIPS) 가용성을 포함하지만 이에 한정되지는 않는 런-타임 복잡도의 조정을 지칭한다. 조정은 사용자 경험의 최적화를 포함하고, 더 상세하게는, 가용 프로세싱, 전력 및 시간 리소스가 주어진 경우, 비디오 품질의 최적화를 포함한다. 조정은 또한 사용자의 체감 품질 (QoE) 을 최적화하기 위해 행해질 수도 있으며, 사용자의 체감 품질은, 예를 들어, 오디오 품질, 응답 시간, 그래픽 품질 등과 같이, 비디오 품질 이외의 다른 성능 팩터들을 포함할 수도 있다. 다중층 프레임워크 구성은, 이러한 조정을, 애플리케이션(들)에 의한 비디오 디코더 구현에 대한 일시적 요구에 대한 예방적 응답 및 반응적 응답 모두에 대해 다양한 입도 레벨로 허용한다. 교번적인 실행 또는 제어/데이터 플로우 경로들이, 가용 정보 및 전력 (배터리) 레벨 또는 원하는 시각적 품질에 기초하여 프로세서 스톨링을 방지하기 위해 추천된다. 전술한 관점에서, 여기에 제공된 설명은 주로, 디코더 엔진 (104) 에 의해 수행되는 DO 동작에 대한 것이다. 디코더 엔진 (104) 에 의한 비디오 디코딩 이후, 디스플레이 프로세서 (28) 의 렌더링 스테이지 (28A; 도 23) 에 의해 수행되는 렌더링이 후속할 수도 있다. 디코딩/렌더링은 직렬 프로세스일 필요는 없다. 예를 들어, 다수의 슬라이스들이 병렬로 디코딩될 수 있고, 이미지의 행들이 병렬로 렌더링될 수도 있고, 또는 직렬로 고려되지 않는 파형 방식으로 렌더링될 수도 있다. 그럼에도 불구하고, 직렬 순서로 렌더링되는 것이 후속하는 디코딩이 정상적이고, 일 구성에서, 이 동작들은 병렬화된다. 렌더링은 통상적으로, 디스플레이될 이미지 및 디스플레이 프로세스 (디스플레이 버퍼로 전송하는 것, 이 버퍼로부터 판독하는 것 및 디스플레이에 기록하는 것) 의 합성이 후속하는 후처리 (컬러-공간 변환, 스케일링 등) 를 포함한다. 예를 들어, 디코딩은 직렬 프로세스에서 렌더링에 의해 후속되고, 순서대로 발생한다 (타이밍은 디코딩을 위한 디코딩 시간 스탬프 및 렌더링/디스플레이를 위한 프리젠테이션 시간 스탬프에 기초한다). 그러나, 이 프로세스 (디코딩 및 렌더링) 로의 입력은, 시각적 품질의 관점에서 중요성 순서에 의해 우선순위화될 필요가 없는 비디오 스트림이다 (즉, 일시적 디코더 리프레시 (IDR), 인트라프레임 (I) 및 예측된 (P) 프레임이 개재됨). 또한, 비디오 비트스트림을 디코더 엔진 (104) 에 전달하는 전송 계층 프로토콜은, 패킷/시퀀스 번호의 순서로 디코더 엔진 (104) 에 제공된 패킷에서 행해진다. 수신된 순서로 비트스트림을 프로세싱하는 것은 프레임 드롭을 유발할 수도 있고, (가용 또는 할당된 전력에 기초하여 시스템에 의해 변조되거나 배터리를 보존하기 위해 사용자가 개시하는) 저전력 동작을 위한 출력 비디오의 품질을 스로틀하는 것을 허용하지 않는다. 프로세서 사이클의 부족, MIPS 및/또는 누산된 지연 및 레이턴시는, 통상적으로 사이즈에서 더 큰 키 프레임들을 생성할 수도 있어서 장기간 동안 비디오가 중지되도록 드롭될 수도 있다.
엔코더 엔진 (102) 은 MPEG 표준, H.264 또는 다른 표준에 부합하도록 비디오 데이터를 획득 또는 발생시키고 압축한다. 비디오 데이터는, 그 인코딩이 이미지 품질, 전력 및/또는 디바이스 (10) 의 연산 부하 요건 및/또는 출력 비디오 인터페이스의 송신 능력, 디바이스 (10) 또는 비디오-인에이블드 디바이스 (예를 들어, 무선 또는 유선 인터페이스) 의 대역폭 또는 다른 특성을 충족하도록 비디오 정보의 선택된 부분을 추출하도록 프로세싱된다. 또한, 인코딩은, (수신인에 의한) 디코딩이 품질, 전력 및/또는 수신인의 디코더 엔진 또는 수신기 (14) 의 연산 요건 및 능력을 충족하게 할 수도 있다.
도 3b 는 전력 관리 모듈 (100) 에 이용되는 디코더 엔진 (104) 의 블록도를 도시한다. 디코더 엔진 (104) 은, 전력 관리 또는 저전력 모드가 불필요한 경우 비트스트림을 디코딩하는 표준 (정규의) 시퀀스 디코딩 프로세싱 유닛 (105) 을 포함한다. 디코더 엔진 (104) 은 또한 전송 계층 (TL) 파서 및 프로세싱 유닛 (106), 비디오 시퀀스/영상 계층 (VS/PL) 파서 및 프로세싱 유닛 (108), 슬라이스/MB 계층 (S/MBL) 파서 및 프로세싱 유닛 (110), 블록 계층 파서 및 프로세싱 유닛 (112) 을 포함한다. 예시적인 구성에서, 블록 계층 (64) 에서의 전력 및 연산 부하 관리는 설명되지 않는다.
후술하는 설명에서 알 수 있는 바와 같이, TL 파서 및 프로세싱 유닛 (106) 은 전송 계층 (52) 을 파싱 및 프로세싱한다. VS/PL 파서 및 프로세싱 유닛 (108) 은 적어도 시퀀스 계층 (54) 및 영상 계층 (58) 을 파싱 및 프로세싱한다. 시퀀스 계층 (54) 및 영상 계층 (58) 의 결합은, 이하, 비디오 시퀀스/영상 계층 (VS/PL; 70) 으로 지칭된다. 그러나, VS/PL 파서 및 프로세싱 유닛 (108) 은 또한 GOP 계층 (56) 또는 몇몇 다른 파서를 파싱 및 프로세싱하고, 프로세싱 유닛은 GOP 계층 (56) 에 이용될 수도 있다. 따라서, 참조번호 70 부터 GOP 계층 (56) 까지의 라인은 점선으로 도시되어 있다. S/MBL 파서 및 프로세싱 유닛 (110) 은 슬라이스 계층 (60) 및 매크로블록 (MB) 계층 (62) 을 파싱 및 프로세싱한다. 블록 계층 파서 및 프로세싱 유닛 (112) 은 MPEG 포맷의 비디오 또는 프로그래밍을 디코딩하기 위해 블록 계층 (64) 을 파싱 및 프로세싱한다.
파서 및 프로세싱 유닛 (106, 108, 110 및 112) 중 하나 이상은 병렬적으로 동작되거나, 개별적으로 동작되거나, 여기서 설명하는 전력 및 연산 부하 관리 기능을 수행하기 위한 결합된 관계로 동작되도록 이용될 수도 있다. 또한, 파서 및 프로세싱 유닛 (106, 108, 110 및 112) 의 전력 및 연산 부하 관리 기능 중 하나 이상은 생략될 수도 있다. 그럼에도 불구하고, 예시적인 구성에서, 파서 및 프로세싱 유닛 (106, 108 및 110) 은, 전력을 효율적으로 이용하면서 사용자의 경험을 유지 또는 향상시키기 위해, 계층 중 임의의 하나에서 시각적 품질, 전력 로딩 및 입도에 대한 트레이딩 시각적 품질을 제어하는 연결된 전력 및 연산 부하 관리 기능을 제공하도록 필요에 따라 선택적으로 작동된다.
도 4 는 디코딩가능한 유닛들의 우선순위화된 전력 관리 (PM) 시퀀스들을 디코딩하기 위한 전력 및 연산 부하를 프로젝팅하는 프로세스 (120) 의 흐름도를 도시한다. 선택적 디코딩을 위한 디코딩가능한 유닛의 비트스트림 및 결과적 전력 관리 (PM) 시퀀스들을 우선순위화하기 위해, 3 개 위상의 (3-위상) 프로세스 (120) 가 각각의 계층적 (계층화된) 층에 제공되어, 계층적으로 정렬된 저전력 동작 모드를 제공한다. 프로세스 (120) 는 비디오 스트림의 비-인과성에 의존하고, 그 효율은 룩-어헤드의 양 (디코더 엔진의 입력 버퍼 깊이) 에 의존한다.
프로세스 (120) 는, 계층 정보의 파싱 및 추출이 발생하는 블록 (122) 에서 시작한다. 블록 (122) 에 블록 (124) 이 후속하여, 디코딩을 요구하는 디코딩가능한 유닛의 (시퀀스 계층과 혼동되지 않아야 하는) PM 시퀀스가 우선순위화된다. 예시의 목적으로, 디코딩가능한 유닛의 우선순위화된 PM 시퀀스는, 이하 상세히 설명하는 바와 같이 리스트의 형태로 도시되어 있다. 용어 "디코딩가능한 유닛의 우선순위화된 PM 시퀀스" 는 이하 때때로, "우선순위화된 PM 시퀀스들" 로 지칭될 것이다. 그러나, 각각의 시퀀스는 하나 이상의 분할가능한 디코딩가능한 유닛을 포함한다. 디코딩가능한 유닛은, 다음의 설명에서 알 수 있는 바와 같이, 영상, 슬라이스 및 매크로블록 중 하나 이상 또는 이들의 그룹을 포함한다.
블록 (124) 에 블록 (126) 이 후속되어, 우선순위화된 PM 시퀀스에 대해 전력 및 연산 부하가 프로젝팅된다. 예시적인 구성에서, 연산 부하는 MIPS (million instructions per second) 의 수의 함수로 프로젝팅된다. 대응하는 MIPS 는 프로젝팅되거나 미리 결정된 전력을 요구한다.
블록 (126) 에서, 우선순위화된 PM 시퀀스의 대응 MIPS 로의 상관, 및 후속적으로, PM 시퀀스들의 하나 이상을 디코딩하는데 요구되는 전력으로의 상관이 존재한다. 블록 (122 및 124) 은, 이하 H.264 표준에 대해 설명된다. 블록 (126) 은 통상적인 시나리오에 대응하는 전력 분석으로부터의 결과 (예를 들어, 테스트 비트스트림) 를 이용할 수도 있고, 선택적으로, 구동된 트레이닝 또는 프로젝션에 이용할 런타임 업데이트를 피드백할 수도 있다. 비트스트림이 기지이면, 전력 및 연산 부하 (프로세싱 전력) 가 프로젝팅되어, 디바이스 (10) 내에 비트스트림을 디코딩하여 완료할 충분한 전력이 존재하지 않음을 사용자에게 통지할 수도 있다. 따라서, (예를 들어, 재생 동안에) 비트스트림이 완전히 디코딩되기 전에 전력 (배터리 또는 전기 전력) 이 고갈되면, 사용자는, 그 비트스트림이 완료되도록 허용하는 전력 모드를 선택하는 옵션을 갖는다.
전술한 바와 같이, 3-위상 프로세스 (120) 는 압축 데이터 포맷으로 상이한 계층에 대해 반복될 수 있다. (상이한 계층에 대응하는) 각각의 블록 (126) 이후, 저전력 모드의 계층적 세트가 디코더 엔진 (104) 에 대해 발생되어, 디코딩 동작들의 전력 및 연산 로딩 관리에 이용된다. 이것은, 온더플라이로 발생할 수 있고, 실시간 동작 이전에 미리 교정/프로그래밍된 적절히 선택된 비트스트림 및 디코더의 세트에 대해 미리 결정될 수도 있다.
도 5 는 전송 계층 (TL) 파서 및 프로세싱 유닛 (106) 을 도시한다. TL 파서 및 프로세싱 유닛 (106) 은 TL 정보 추출기 및 컴파일러 (150; 도 6), TL 우선순위화된 PM 시퀀스 발생기 (152; 도 8) 및 TL 디코딩 MIPS 및 전력 프로젝터 (154; 도 9) 를 포함한다. 전송 계층 (TL) 파서 및 프로세싱 유닛 (106) 은 전송 계층 (52) 에 대한 디코딩 동작의 전력 및 연산 로딩 관리에 이용할 3-위상 프로세스 (120) 를 수행할 것이다.
도 6 은 TL 정보 추출기 및 컴파일러 (150) 를 도시한다. TL 정보 추출기 및 컴파일러 (150) 는, 비디오 비트스트림이 수신되는 전송 프로토콜에 의존한다. 수신된 시간 슬라이스 (190) 의 일부의 일예는 도 7 에 도시되어 있다. 예시적인 구성에서, 비트스트림의 다양한 정보가 TL 정보 추출기 및 컴파일러 (150) 에 의해 추출 및 컴파일될 수 있다. TL 정보 추출기 및 컴파일러 (150) 는 도 7 에 도시된 수신된 시간 슬라이스 (190) 를 파싱할 것이다. TL 정보 추출기 및 컴파일러 (150) 는 랜덤 액세스 포인트 (RAP) 추출기 (160), 상태 정보 추출기 (166), 비트스트림 특성 추출기 (176) 및 전송 계층 정보 컴파일러 (186) 를 포함한다. RAP 추출기 (160) 는, 획득으로 플래깅되는 패킷/슬라이스의 위치, 사이즈, 프리젠테이션 시간 스탬프 (PTS) 등을 갖는 정보 (162) 를 추출할 수도 있다. RAP 추출기 (160) 는 또한 전송 헤더 (예를 들어, 실시간 전송 프로토콜 (RTP) 페이로드 포맷인 엔트리-포인트 헤더) 에서 RAP (164) 의 시퀀스를 추출할 수도 있다. 예시적인 구성에서, 상태 정보 추출기 (166) 에 의한 추출된 상태 정보는 (예를 들어, 브로드캐스트 또는 모바일 TV 애플리케이션에서) 채널 변경 (170) 및 사용자 뷰잉 선호도 (172) 에 관한 정보를 포함한다. 추출된 상태 정보 (166) 는 또한 애플리케이션 (174) (예를 들어, 해상도/프리뷰 모드 또는 PIP (picture-in-picture) 모드) 등에서의 변경을 포함할 수도 있다.
비트스트림 특성 추출기 (176) 는 비트레이트 (178), 프레임 레이트 (180), 해상도 (182), (저장된 대 스트리밍되는) 애플리케이션 (184) 등을 추출한다. 비트레이트 (178) 의 경우, 몇몇 경우 값들이 용이하게 사용가능하다 (예를 들어, MPEG 파일 포맷). 다른 경우, 비트스트림은, 전송 헤더 및 패딩이 제거된 후, 시간 스탬프에 의해 표시된 초 동안의 비트스트림의 사이즈에 기초하여, 예를 들어, 전송 계층 정보 컴파일러 (186) 에 의해 연산된다. TL 계층 정보 추출기 및 컴파일러 (150) 는, 수신된 시간 슬라이스의 전송 계층으로부터 직접 추출될 수 없는 정보를 연산하기 위한 TL 정보 컴파일러 (186) 를 포함한다. 패킷 사이즈 및 비트레이트에 대한 예시적인 계산이 도 9 와 관련하여 설명된다.
도 7 은, 이 예에서는, 수신된 데이터 내에 RAP1 (191), RAP2 (196), ...RAPN (198) 을 갖는 수신된 시간 슬라이스 (190) 를 도시한다. (이것은 선택적으로, 저장된 파일로부터 추출된 비트스트림의 일부일 수 있다). RAP1 (191) 과 같은 각각의 RAP 는 헤더 (192) 를 갖고, 그에 후속하여, I-프레임과 같은 랜덤 액세스 포인트인 코딩된 프레임과 관련된 데이터를 갖는 페이로드 (193) 를 갖는다. 헤더는 복수의 필드를 포함하고, 이 필드 중 하나는 PTS1 간격 (194) 이다. (예를 들어, RTP 에서, 랜덤 액세스 (RA) 카운트 및 기준 시간 및 PTS 오프셋으로부터 유도된) 각각의 RAP 에 대한 PTS1 간격 (194) 으로부터 절대 RAP 위치 (패킷) 및 PTS 값이 연산된다. RAP2 (196) 는 헤더를 갖고, 그에 후속하여, I-프레임과 같은 랜덤 액세스 포인트인 코딩된 프레임에 관련된 데이터를 갖는 페이로드를 갖는다. 헤더는 복수의 필드를 포함하고, 그 필드 중 하나는 PTS2 간격이다.
RAP--GOP 로 표시된 간격은, 다음 RAP 프레임까지 RAP 에 의해 시작하는 영상의 그룹으로 정의된다. 전송 계층에서, RAP 는 디코딩가능한 유닛이다. 또한, RAP--GOP 는 전송 계층에 대한 디코딩가능한 유닛일 수도 있다. 애플리케이션에 기초하여, 필요하다면, 더 많은 데이터가 검색 또는 요청된다. 예를 들어, 저장된 비디오의 재생 동안, 비트레이트 및 프레임 레이트를 평가할 만큼의 데이터를 파일 포맷 헤더를 통해 몇초 (2 내지 5 초) 동안 탐색할 수도 있다. 그 후, 가용 전력에 기초하여, 모든 데이터를 디코딩할 것을 결정하거나, 감소된 프레임 레이트로 디코딩한다.
수신된 시간 슬라이스 (190) 는, DVB-H (여기서 H 는 핸드헬드를 나타냄) 와 같은 디지털 비디오 브로드캐스트 (DVB) 에 대한 시간 슬라이스 또는 MediaFLO™ 에 대한 수퍼프레임일 수 있다.
도 8 은 TL 우선순위화된 PM 시퀀스 발생기 (152) 를 도시한다. 위에서 추출된 정보가 프로세싱되어, 디코딩가능한 유닛 (200) 의 TL 우선순위화된 PM 시퀀스의 리스트를 생성한다. TL 우선순위화된 PM 시퀀스 발생기 (152) 는 절대 파라미터 값을 유도한다. 전송 계층 (52) 에서, 대응하는 GOP 를 갖는 복수의 패킷 RAP1, RAP2,... RAPN (191, 196 및 198) 이 수신된 것으로 가정한다. 따라서, 디코더 엔진 (104) 에 의해 디코딩될 디코딩가능한 유닛들의 TL 우선순위화된 PM 시퀀스는 블록 (202) 에서 시작한다. 여기서, 디코딩가능한 유닛들은 블록 (202) 에서는 RAP1, 블록 (204) 에서는 RAP--GOP1 의 나머지, 블록 (206) 에서는 RAP2, 블록 (208) 에서는 RAP-GOP2 의 나머지이다. TL 우선순위화된 PM 시퀀스의 우선순위화는 블록 (210) 에서의 디코딩가능한 유닛 RAPN 및 블록 (212) 에서의 RAP--GOPN 의 나머지까지 계속된다. 디코딩가능한 유닛의 TL 우선순위화된 PM 시퀀스의 전술한 설명은 시퀀스 정렬의 오직 일예이다.
도 9 는 TL 디코딩 MIPS 및 전력 프로젝터 (154) 를 도시한다. 전송 레벨 (52) 에서는, 전력/연산 부하 감소의 제 1 레벨이 가능하다. 이 레벨은 대략적 전력/연산 부하 감소를 제공할 수도 있다. 예를 들어, 최소 전력 모드 세팅 동안 또는 디바이스 (10) 의 배터리 레벨이 <10% 로 고갈된 경우, (블록 202, 206 및 210 으로 표시된) RAP 패킷들이 디코딩되고, 렌더링 스테이지 (28A) 에 의해 렌더링되면서, 선택적으로, 그래픽 프로세싱 유닛 (34) 이 트리거링되어 I-프레임들 사이의 전이 효과를 생성할 수도 있다. 전이 효과는 슬라이드 쇼 효과 대신에 저 비용 "비디오" 를 제공한다. 저전력 모드에 기초하여, 스킵된 디코딩가능 유닛을 보상하기 위해 다른 비디오 보상이 이용될 수도 있다. 예를 들어, 이미지 모핑 (morphing) 이 이용될 수도 있다. 보상의 다른 예는 광학 플로우를 이용할 수도 있다.
TL 디코딩 MIPS 및 전력 프로젝터 (154) 는 MIPS 에 대한 프로젝션 (제 4 열) 을 나타내는 데이터를 발생시켜, TL 우선순위화된 PM 시퀀스 (200) 의 리스트에서 디코딩가능한 유닛의 PM 시퀀스 중 하나, 또는 그 이상, 또는 그 전부를 디코딩한다. 오직 예시적이고 설명을 위한 목적으로, MIPS 프로젝션 테이블 (230) 이 도시되어 있다. 이 테이블은 복수의 열을 갖는다. 열 C1 에는, 디코딩가능한 유닛의 전송 계층 정보 또는 TL 우선순위화된 PM 시퀀스가 항목화되어 있다. 제 2 열에서는, 디코딩가능한 유닛의 일부 또는 전부를 디코딩하기 위한 패킷 사이즈가 식별된다. 열 C3 에서는, 비트레이트 계산이 식별된다. 열 C4 에서는, 디코딩가능한 유닛들을 디코딩하는 프로젝팅된 MIPS 가 제공된다. 인식될 수 있는 바와 같이, 열 C3 의 비트레이트 및 열 C2 의 패킷 사이즈는 패킷화 위상 동안 유도될 수도 있다.
이 예에서, 행 R1 은 디코딩가능한 유닛 (200) 의 TL 우선순위화된 PM 시퀀스의 리스트에서 제 1 디코딩가능한 유닛을 식별한다. 이 예에서, 제 1 디코딩가능한 유닛은 RAP1 이다. RAP1 의 패킷 사이즈는 TL 추출기 및 컴파일러 (150) 로부터 추출 및 컴파일된 정보에 기초하여 계산될 수 있다. 예시적인 구성에서, RAP1 에 대한 디코딩 패킷 사이즈는 RAP1 에 대한 전송 패킷의 사이즈 - (전송 헤더 (192) 플러스 페이로드 (193)) 의 사이즈에 대응한다. RAP2 에 대한 디코딩 패킷 사이즈는 RAP2 에 대한 전송 패킷의 사이즈 - (전송 헤더 플러스 페이로드) 의 사이즈에 대응한다. 유사하게, RAPN 에 대한 디코딩 패킷은 RAPN 에 대한 전송 패킷의 사이즈 - (전송 헤더 플러스 페이로드) 의 사이즈에 대응한다. 행 RN+1 (최종 행) 은 슬라이스 (190) 와 같은 전체의 수신된 시간 슬라이스에 대응한다. 따라서, MIPS 의 프로젝션은 수신된 시간 슬라이스 (190) 의 전체 전송 계층 (52) 에 대한 행 RN+1 에서 각각의 디코딩가능한 유닛 및 모든 디코딩가능한 유닛에 대해 계산된다.
제 3 열에서, 비트 레이트가 계산 또는 추출된다. 이 경우, 비트레이트는 간격 (PTS2 - PTS1) 즉 (PTS2 마이너스 PTS1) 의 사이즈에 의해 제산된 간격 (RAP--GOP1) 의 사이즈에 따라 RAP, GOP1, PTS2, PTS1 의 사이즈에 기초하여 계산된다. RAP2, ... RAPN 에 대한 비트레이트는 RAP1 과 유사한 방식으로 계산된다. 행 RN+1 에서, 비트레이트는 수신된 시간 슬라이스/간격 (PTS2 - PTS1) 의 사이즈이다.
제 4 열, R1 행에서, RAP1 을 디코딩하기 위해 프로젝팅된 MIPS 는 2 개의 값을 갖는다. 제 1 값은 RAP1 에 대한 I-프레임 사이즈의 함수이다. 제 2 값은 소정의 코덱에 대한 사이즈 (RAP--GOP1) 의 비트스트림의 일부의 함수이다. MIP 의 프로젝션에 대한 정보는 전송 헤더 (RAP 및 대응하는 PTS) 로부터 이용가능하다. 따라서, 디코딩가능한 유닛은 분할가능하고, MIPS 를 프로젝팅하는 경우 완전하게 디코딩되지 않는다. 대신에, 이하 더 상세히 설명하는 바와 같이, 오직 헤더 또는 헤더의 일부가 디코딩되어 필요한 정보를 추출할 필요가 있다. 행 RN+1 에서, 전체 시간 슬라이스를 디코딩하기 위해 프로젝팅된 MIPS 는 소정의 코덱에 대한 (시간 슬라이스에 대한) 비트스트림 사이즈에 따라 프로젝팅된다. 특정한 양에 대해 디코딩하기 위한 MIPS 프로젝션은 전력 프로파일링 및 분석의 함수임을 유의해야 한다.
열 C4 의 MIPS 프로젝션 각각에 대해, 대응하는 전력 요건이 결정될 수 있다. 대응하는 전력은 필요에 따라 계산될 수 있고, 또는 룩업 테이블에 미리 저장될 수도 있다. 이것은 일반적으로 3-위상 프로세스 (120) 의 제 3 위상을 완료시킬 것이다.
도 10 은 전력 및 연산 부하 관리에 의한 디코딩을 위한 프로세스 (240) 를 도시한다. 소정의 인스턴트에, 디코딩가능한 유닛 중 하나 이상을 디코딩할 MIPS 요건 및 가용 MIPS (또는 전력 요건 대 가용 전력/amps) 가 주어지면, 수신된 시간 슬라이스 (190) 의 전부 또는 일부를 디코딩하기 위한 판정이 행해질 수 있다. 프로세스 (240) 는 점선으로 도시된 프로세스 (120) 의 제 3 위상으로 도시되어 있다. 프로세스 (120) 의 제 3 위상은, 전송 계층 (52) 을 디코딩하는데 필요한 연산 부하 및/또는 전력에 대한 필요한 프로젝션을 제공한다. 따라서, 블록 (242) 에서, MIPS 가 프로젝팅된다. 블록 (244) 에서, 프로젝팅된 MIPS 에 대응하는 전력이 결정된다. 예시적인 구성은 MIP 와 전력의 관계를 제공하지만, 전력 및 연산 부하에 영향을 주는 다른 값들이 이용될 수도 있다.
블록 (244) 는 제 3 위상을 종료한다. 블록 (244) 에 후속하여 블록 (246) 에서는 소정의 인스턴트에 대한 가용 MIP (연산 부하) 가 결정된다. 블록 (244) 에 후속하여 블록 (248) 에서는 소정의 인스턴트에 대한 가용 전력이 결정된다. 블록 (246 및 248) 은 병렬적으로 도시되어 있다. 그럼에도 불구하고, 다양한 구성에서, 프로세스 (240) 의 블록들 및 여기서 설명한 다른 프로세스들은 도시된 순서로 수행되거나, 이 단계들 또는 그 일부 중 적어도 2 개는 동시에 수행되거나, 병렬로 수행되거나 또는 상이한 순서로 수행될 수도 있다.
블록 (246) 에 후속하여 블록 (250) 에서는, 프로젝팅된 MIPS 가 가용 MIPS 보다 큰지 여부에 대한 결정이 행해진다. 이 결정이, 그 인스턴트에서 가용 연산 부하가 충분함을 의미하는 "아니오" 이면, 블록 (254) 에서 모든 전송 계층 (52) 이 디코딩될 수 있다. 그러나, 블록 (250) 에서의 결정이, 가용 연산 부하가 불충분함을 의미하는 "예" 이면, 블록 (256) 에서 전송 계층 (52) 의 일부는 저전력 모드 세팅 (260; 도 11) 의 리스트에 식별된 모드들 중 임의의 모드에 따라 디코딩될 수 있다.
블록 (248) 에 후속하여 블록 (252) 에서는, 프로젝팅된 전력이 가용 전력에 비교될지 여부가 결정된다. 블록 (252) 에서의 결정이, 가용 전력이 충분함을 의미하는 "아니오" 이면, 전송 계층 (52) 전부가 디코딩될 수도 있다. 그러나, 블록 (252) 에서의 결정이, 가용 전력이 불충분함을 의미하는 "예" 이면, 블록 (256) 에서 전송 계층 (52) 의 일부는 저전력 모드 세팅 (260; 도 11) 의 리스트에 식별된 모드들 중 임의의 모드에 따라 디코딩될 수 있다. 전송 계층 (52) 전부는, 블록 (250 및 252) 으로부터의 조건들 모두가 아니오이면 디코딩될 것이다. 전송 계층 (52) 은 모든 다른 경우에 부분적으로 디코딩될 것이다. 블록 (248, 252) 은 점선으로 도시되어, 이들이 또한 선택적임을 나타낸다.
도 11 은 TL 모드 동안 다중층 저전력 모드 세트 발생기 (114) 를 도시한다. 다중층 저전력 모드 세트 발생기 (114) 는 선택가능한 저전력 모드 세팅 (260) 의 리스트를 발생시킨다. 도 11 의 예시적인 구성에서는, 행 R1 의 모드 1, 제 2 행의 모드 1A 및 제 3 행의 모드 2 로 표시된 복수의 전송 계층 저전력 모드들이 존재한다. 전송 계층 모드 1 은, 예를 들어, 모든 RAP 를 이용하는 슬라이드쇼 (이하, "SS-RAP" 라 함) 에 대응한다. 전송 계층 모드 1A 는 렌더링 스테이지 28A 에 의한 전이 효과를 갖는 SS-RAP 에 대응한다. 따라서, 모드 1A 는, 모드 1A 가 모드 1 에 비해 향상된 시각적 품질을 제공한다는 점에서 모드 1 과 상이하다. 전송 계층 모드 2 는 가용 전력에 기초한 RAP--GOP 의 선택적 디코딩에 대응한다. 열 C2 의 리스트는, 디코더 엔진 (104) 으로 하여금 전송 계층 (52) 에서 디코딩가능한 유닛 중 하나 이상을 선택적으로 디코딩하게 하는 필요한 명령을 제공할 것이다.
TL 모드 동안 전력 관리 모듈 (100) 은, 프로젝팅된 MIPS 및/또는 전력에 기초하여, 저전력 모드 1, 1A 또는 2 중 어느 모드가 비트스트림의 디코딩을 위해 사용자에게 제공될 수 있는지에 대해 결정한다. 비디오 시퀀스/영상 계층과 관련하여 설명하는 바와 같이, 디코딩가능한 유닛의 다른 계층의 전력을 관리하는 것에 기초하여 추가적으로 보존될 수도 있는 가용 전력이 존재하면, 모드 2 가 선택될 수도 있다.
TL 모드 1A 가 선택되면, 전이 영향에 의한 SS-RAP (I-프레임) 의 정규의 디코딩이 발생한다. 그러나, TL 모드 1 이 선택되면, 전력 관리 모듈 (100) 은 시각적 품질에서의 추가적 업데이트를 위해 VS/PL 모드 3 으로 진행할 수도 있다.
시퀀스/영상 계층
도 12 는 비디오 시퀀스/영상 계층 (VS/PL) 파서 및 프로세싱 유닛 (108) 을 도시한다. VS/PL 파서 및 프로세싱 유닛 (108) 은 VS/PL 정보 추출기 및 컴파일러 (280; 도 13), VS/PL 우선순위화된 PM 시퀀스 발생기 (282; 도 15), 및 VS/PL 디코딩 MIPS 및 전력 프로젝터 (284; 도 17) 를 포함한다. VS/PL 파서 및 프로세싱 유닛 (108) 은 VS/PL (70) 에 대한 디코딩 동작의 전력/연산 부하 관리에 이용하기 위한 3-위상 프로세스 (120) 를 수행할 것이다.
도 13 은 VS/PL 정보 추출기 및 컴파일러 (282) 를 도시한다. VS/PL 정보 추출기 및 컴파일러 (282) 는 비디오 스트림의 VS/PL 포맷에 의존한다. VS/PL (70) 에 따른 수신된 시간 슬라이스 (330) 의 일예는 도 14 에 도시되어 있다. 비디오 코덱 (인코더 엔진 및 디코더 엔진) 에 기초하여, 시퀀스 계층 (54) 에서 정보가 추출된다. MPEG-2 및 MPEG-4 의 경우, 비디오 시퀀스 계층 파라미터들이 추출된다. 이것은 비디오 디코더 엔진 (104) 으로의 인터페이스를 요구한다. 이 추출은 도 27 및 도 28 과 관련하여 후술할 것이다.
전송 계층 (52) 에 리스팅된 몇몇 파라미터들이 검색될 수 없으면 (예를 들어, I-프레임 위치 또는 패킷 ID), 이러한 정보는 시퀀스 계층 (54) 에서 추출될 것이다. VS/PL 정보 추출기 및 컴파일러 (280) 는 I-프레임 위치 (284) 및 패킷 ID (286) 를 추출한다. VS/PL 정보 추출기 및 컴파일러 (282) 는 또한 H.264 표준 또는 시퀀스 계층 (54) 과 같은 시퀀스 파라미터 세트 (SPS) 로부터 프로파일 (290), 레벨 (292), 및 파라미터 제약 (constrained_set_flags; 294) 을 추출한다. 영상 파라미터 세트 (PPS) 가 또한 이용될 수도 있다.
VS/PL 정보 추출기 및 컴파일러 (282) 는 또한 영상 정보 (296) 를 추출 또는 컴파일할 수도 있다. 영상 정보는 다수의 기준 프레임 (298), 해상도 (300), (미리 검색되지 않았다면) 프레임 레이트 (302), 디스플레이 파라미터들 (VUI) 등을 포함하여, 데이터를 디코딩/프로세싱하는데 요구되는 연산 부하에 액세스할 수도 있다. 추가적 정보는 정보 관련 기준 위치 (304), 기준 영상 사이즈 (306), PTS 및 기준 영상 정보 (308) 를 포함한다. 비-기준 영상 위치 (310), 비-기준 영상 사이즈 (312), 비-기준 영상 정보 (314) 및 PTS 가 또한 추출 또는 컴파일될 수도 있다. 컴파일된 정보는 정보 컴파일러 (316) 에 의해 컴파일된다. VS/PL 정보를 추출하기 위해, 시퀀스 헤더 및 모든 영상 헤더들만이 디코딩된다. 영상의 페이로드는, 도 27 및 도 28 에서 상세히 설명할 바와 같이, 디코딩되지 않고 남겨진다.
도 15 는 VS/PL 우선순위화된 PM 시퀀스 발생기 (282) 를 도시한다. VS/PL 우선순위화된 PM 시퀀스 발생기 (282) 에서, 추출된 정보로부터 절대 파라미터 값들이 유도된다. 디코딩가능한 유닛 (360) 의 VS/PL 우선순위화된 PM 시퀀스의 리스트는 개선된 입도를 위해 더 상세히 파퓰레이팅된다. 우선순위화는 도 8 과 관련하여 설명된 것과 유사하다. 그러나, 이 레벨 또는 계층에서, 전송 계층 (52) 에서 식별된 패킷 RAP1, RAP2, ..., RAPN (블록 362, 382, 388) 은 H.264 의 경우의 IDR 및 I-프레임과 같은 I-프레임의 타입에 기초하여 더 분류 및 우선순위화된다. 대안적으로, 모든 I-프레임들은 영상 헤더 정보를 이용하여 식별되고, 그 후 우선순위화된다.
예시적인 구성에서, 블록 또는 간격 RAP--GOP1 (364) 는 다른 VS/PL 디코딩가능한 유닛들로 더 세분화된다. 이 VS/PL 디코딩가능한 유닛은, 넌-IDR I-프레임 (개방 GOP) 이 IDR (또는 MPEG-2 의 폐쇄 GOP 의 시작시의 I-프레임) 에 후속하도록, 우선순위화된다. 따라서, 우선순위화는, I-프레임 (368) 이 IDR-프레임 (366) 에 후속하도록 설정될 수도 있다. I-프레임 (366) 에 P-프레임 (370) 이 후속하고, 기준 B-프레임 (372) 이 그에 후속한다. 그 후, 기준 B-프레임 (372) 에, b-프레임 (374) 로 표시된 비-기준 B-프레임들이 후속한다. 도 14 는 프레임 타입 (P, B 및 b) 을 나타내는 수신된 시간 슬라이스 (330) 를 도시한다.
따라서, 디코더 엔진 (104) 에 의해 디코딩될 VS/PL 우선순위화된 PM 시퀀스는, 블록 (362) 에서의 RAP1 에서 시작하고, 블록 (364) 에서의 RAP--GOP1 가 후속한다. RAP--GOP1 는 블록 (366, 368, 370, 372 및 374) 에 따라 우선순위화된다. RAP--GOP1 에 대응하는 간격은 b-프레임에 기초하여 더 우선순위화될 수 있다. 예시적인 구성에서, VS/PL 우선순위화된 PM 시퀀스는 블록 (376 내지 380) 에서의 b-프레임에 대한 사이즈 정보를 이용하여 더 우선순위화된다. 예를 들어, FRUC_THR 로 표시된 FRUC 임계값보다 큰 사이즈 정보를 갖는 b-프레임 (블록 376) 은, FRUC 임계값보다 작은 사이즈를 갖는 b-프레임보다 높은 우선순위를 가질 수도 있다. 또한, DROP_THR 로 표시된 Drop 임계값 보다 작은 b-프레임이 플래깅될 수도 있고, FRUC 없이 완전히 드롭될 수도 있다. 따라서, 블록 (378) 에서, 우선순위화된 기준은 DROP_THR < b < FRUC_THR 로 설정될 수도 있다. 블록 (380) 에서, 우선순위화 기준은 b < FRUC_TH 로 설정될 수도 있다. 이 임계값들은 프로세싱 사이클/요구된 전력에서의 퍼센티지 감소로 맵핑될 수 있다.
블록 (382) 은 RAP2 를 디코딩하기 위한 우선순위를 설정한다. RAP--GOP2 의 나머지에 대한 우선순위화가 전술한 블록 (366, 368, 370, 374, 376, 378 및 380) 과 유사하게 우선순위화되는 블록 (384) 이 블록 (382) 에 후속한다. VS/PL 우선순위화된 PM 시퀀스의 우선순위화는, RAPN 의 디코딩을 우선순위화하기 위한 블록 (388) 까지 블록 (386) 에서 계속된다. RAP--GOP2 의 나머지가 디코딩을 위해 우선순위화되는 블록 (390) 이 블록 (388) 에 후속한다.
연산 부하의 상태에 따라, 디코딩 동작의 시퀀스는 적절한 수의 낮은 우선순위 시퀀스 또는 선택가능한 디코딩가능 유닛들의 제거를 통해 감소 또는 변형될 수도 있다.
도 16 은 VS/PL 디코딩 MIPS 및 전력 프로젝터 (284) 에 의해 MIPS 를 VS/PL 에 대해 프로젝팅하는 프로세스 (400) 의 흐름도를 도시한다. 프로세스 (400) 는, IDR-프레임 사이즈를 디코딩하기 위해 MIPS 가 결정되는 블록 (402) 에서 시작한다. 모든 I-프레임 사이즈를 디코딩하기 위한 MIPS 가 결정되는 블록 (404) 이 블록 (402) 에 후속한다. 모든 P-프레임 사이즈를 디코딩하기 위한 MIPS 가 결정되는 블록 (406) 이 블록 (404) 에 후속한다. 모든 B-프레임을 디코딩하기 위한 MIPS 가 결정되는 블록 (408) 이 블록 (406) 에 후속한다. 모든 b-프레임 사이즈를 디코딩하기 위한 MIPS 가 다양한 조건에 의해 결정되는 블록 (410) 이 블록 (408) 에 후속한다. 예를 들어, b-프레임들 중 일부 (예를 들어, b1 프레임 및 b2 프레임) 가 드롭되면, 디코딩을 위해 프로젝팅된 MIPS 는 0 으로 설정된다.
도 17 은 VS/PL 디코딩 MIPS 및 전력 프로젝터 (284) 를 도시한다. 프레임 레벨에서, (IDR, I, P, B, b ... 와 같은) 프레임 타입, 사이즈 (306 또는 312) 및 프레임 레이트 (302) 가, 이들을 디코딩하는데 요구되는 프로세서 사이클의 양 또는 일부에 액세스하는데 이용될 수 있는 주요 팩터 (다른 분류자 (qualifier) 가 포함될 수도 있음) 이다. 특정 테스트 비트스트림을 이용하는 전력 프로파일링 및 분석이 이용되어, 프레임 타입 (IDR, I, P, B, b ...) 에 기초하여 프로세싱 사이클의 양과 프레임 사이즈 사이의 관계를 유도하는데 이용될 수 있다. 이 관계는 추후 MIPS 및 전력 프로젝션에 이용하기 위해 룩업 테이블에 정렬될 수도 있다. 다른 조건들은 분석 및 추후 외삽 동안 고정될 수도 있다. 예를 들어, 맵핑은 1-기준 영상 시나리오에 대해 유도될 수도 있고, 상대적 복잡도 대 5-기준 영상들이 독립 분석에 기초하여 외삽될 수도 있다. H.264 의 경우, 프레임 레벨 정보는 슬라이스 헤더가 파싱될 때까지 이용될 수 없다.
도 17 에서, VS/PL 디코딩 MIPS 및 전력 프로젝터 (284) 는 디코딩을 위해 프로젝팅된 MIPS (440) 의 리스트를 발생시킨다. 이 리스트는 예시 및 설명을 위해 발생된다. 행 R1 에서, VS/PL 디코딩 MIPS 및 전력 프로젝터 (284) 가 각각의 IDR 의 사이즈 (IDR) 에 기초하여 IDR-프레임에 대해 프로젝팅한다. 행 R2 에서, VS/PL 디코딩 MIPS 및 전력 프로젝터 (284) 는 I-프레임 사이즈 (size(I1), size(I2),...) 의 시퀀스에 기초하여 모든 I-프레임에 대한 프로젝팅된 MIPS 를 발생시킨다. 행 R3 에서, VS/PL 디코딩 MIPS 및 전력 프로젝터 (284) 는 P-프레임 사이즈 (size(P1), size(P2),...) 에 기초하여 모든 P-프레임에 대한 프로젝팅된 MIPS 를 발생시킨다. 행 R4 에서, VS/PL 디코딩 MIPS 및 전력 프로젝터 (284) 는 B-프레임 사이즈 (size(B1), size(B2),...) 에 기초하여 모든 B-프레임에 대한 프로젝팅된 MIPS 를 발생시킨다. 행 R5 에서, VS/PL 디코딩 MIPS 및 전력 프로젝터 (284) 는 B-프레임 사이즈 (size(b1), size(b2),...) 에 기초하여 모든 B-프레임 (비-기준 B-프레임) 에 대한 프로젝팅된 MIPS 를 발생시킨다. 모든 b-프레임에 대한 MIPS 를 프로젝팅하는 경우, b1 및 b2 가 드롭되는지 여부가 결정된다. 드롭되면, 프로젝팅된 MIPS 는 제로 (0) 로 설정된다. 또한, b1, b2 등을 대신하여 FRUC 와 관련한 프로젝션이 존재한다.
도 10 및 도 17 과 관련하여, 디코딩을 위해 프로젝팅된 MIPS (450) 의 리스트에서의 MIPS 프로젝션 각각에 대해, 대응하는 전력 요건이 적용된다. 소정의 인스턴스에서 MIPS 요건 및 가용 MIPS (또는 전력 요건 대 가용 전력/amps) 가 주어지면, 모든 프레임 또는 디코딩가능한 유닛인 선택된 프레임 (일부) 을 디코딩할지에 대한 판단이 도 10 과 관련하여 전술한 바와 유사한 방식으로 행해질 수 있다.
시퀀스/영상 레벨 프로세싱의 종료 시에는, 중간 입도 전력 감소 모드가 가능하다 (I-프레임이 통상적으로 GOP 의 비트의 30% 를 구성하고, 비트의 수가 MIPS 요건에 비례하는 것으로 가정하면, ~5% 의 단계들로 0 내지 60% 의 감소가 가능하다). 프로세서 부하 및 전력 레벨의 현재 상태에 대한 피드백에 따라, 동작의 시퀀스가 낮은 우선순위 엔티티의 적절한 수의 제거를 통해 단축된다. 시퀀스/영상 계층에서 가능한 모드들이 전력 요건을 증가시키기 위해 도 18 에 리스트되어 있다.
도 18 은 VS/PL 모드 동안 다중층 저전력 모드 세트 발생기 (114) 를 도시한다. 다중층 저전력 모드 세트 발생기 (114) 는 저전력 모드 (450) 의 리스트를 발생시킨다. 이 리스트는 예시의 목적으로 발생된다. 이 리스트는 RAP 및 모든 I-프레임들 이용하여 슬라이드쇼를 디코딩하기 위한 명령들에 대응하는 VS/PL 계층 모드 3 을 포함한다. 따라서, 모드 1A 가 선택되면, I-프레임들 전부가 개선된 시각적 품질 또는 입도에 대해 디코딩될 수도 있도록, 전력 관리 모듈 (100) 은 추가적 MIPS 가 가용인지 여부를 평가할 것이다. 모든 I-프레임들 및 P-프레임들만을 이용하여 감소된 프레임 레이트에 기초하여 디코딩하기 위한 명령들에 대응하는 VS/PL 계층 모드 4A 가 VS/PL 계층 모드 3 에 후속한다. B-(및 b) 프레임을 대신하여 선택적인 FRUC 만에 의해 모든 I-프레임들 및 P-프레임들을 이용하여 감소된 프레임 레이트에 기초하여 디코딩하기 위한 명령들에 대응하는 VS/PL 계층 모드 4B 가 VS/PL 계층 모드 4A 에 후속한다. 모드 4B 에서, I 및 P-프레임들이 정규의 디코딩을 이용하여 디코딩된다. 그러나, B-프레임들은 디코딩되지 않는다. 대신에, 선택적인 FRUC 가 모든 B 또는 b-프레임들에 대해 각각의 B 또는 b-프레임을 대신하여 대체된다. 전술한 I-프레임들 및 P-프레임들과 같은 가용 전력에 기초하여 RAP--GOP 를 선택적으로 디코딩하기 위한 명령들에 대응하는 VS/PL 계층 모드 4C 가 VS/PL 계층 모드 4B 에 후속한다. 그러나, 대안적 동작으로서, 선택적인 FRUC 는 B 또는 b-프레임의 선택적인 수에 대해 각각의 B 또는 b-프레임을 대신하여 이용된다. 모든 I 및 P- 프레임들을 이용하여 (모드 4C 보다 높은) 감소된 프레임 레이트에 기초하여 디코딩하기 위한 명령에 대응하는 VS/PL 계층 모드 4D 가 VS/PL 계층 모드 4C 에 후속한다. 모든 B-프레임들이 또한 포함될 수도 있다. 대안적으로, 선택적인 FRUC 가 각각의 B-프레임을 대신하여 (선택적으로는 B-프레임의 선택적인 수에 대해) 이용되고, b-프레임에 대해 어떠한 동작도 이용되지 않는다. 대안적으로, b-프레임들은 스킵되거나 우회될 수도 있다. 모든 수신된 프레임들 (I, P, B 및 b) 를 디코딩하기 위한 명령들에 대응하는 VS/PL 계층 모드 5 가 VS/PL 계층 모드 4D 에 후속한다.
VS/PL 계층 모드 3 또는 5 가 선택되었다면, 추가적인 대안적 동작이 스킵 매크로블록 (MB) 을 대체할 것이다. 또한, 모드 2 로부터, 추가적으로 향상된 시각적 품질 또는 입도가 모드 4A-4D 및 5 에 의해 부여된 개선에 의해 달성될 수도 있다.
슬라이스/MB 계층
도 19 는 슬라이스/매크로블록 계층 (S/MBL) 파서 및 프로세싱 유닛 (110) 을 도시한다. S/MBL 파서 및 프로세싱 유닛 (110) 은 S/MBL 정보 추출기 및 컴파일러 (460; 도 20), S/MBL 우선순위화된 PM 시퀀스 발생기 (462; 도 21) 및 S/MBL 디코딩 MIPS 및 전력 추정기 (464) 를 포함한다. S/MBL 파서 및 프로세싱 유닛 (110) 은, S/MBL (72) 에 대한 디코딩 동작의 전력/부하 관리에 이용하기 위해 3-위상 프로세서 (120) 를 수행할 것이다.
도 20 은 S/MBL 정보 추출기 및 컴파일러 (460) 를 도시한다. S/MBL 정보 추출기 및 컴파일러 (460) 는, 비디오 비트스트림이 압축되었던 프로토콜 또는 표준에 의존한다. 여기서, S/MBL 정보 추출기 및 컴파일러 (460) 는 슬라이스 정보 (470) 및 MB 정보 (472) 를 추출한다. 슬라이스 정보 (470) 및 MB 헤더는 도 15 로부터 우선순위화된 시퀀스에서 식별되는 영상에 대응하는 영상에 대해 파싱된다. 이전의 계층 VS/PL (70) 에서 우선순위화된 시퀀스 (도 15) 로부터의 프레임들의 선택 부분은 디코딩되기 위해 플래깅될 수도 있다. 디코딩은, 더 정교한 입도의 전력 관리가 요구되면 모든 영상에 대해 계속될 수도 있음을 유의해야 한다. 따라서, 오직 슬라이스 헤더 및 MB 헤더가 디코딩된다.
헤더가 에러인 것으로 검출되면, MB 또는 전체 슬라이스에 대한 계수/MB 데이터가 폐기될 수도 있다. 선택적으로, 제로 MV 은닉이 적용될 수도 있고, 더 정교한 에러 정정 (EC) 에 의해 추후 개선될 수도 있다. MB 정보 (472) 는 MB 타입 (474), 모션 벡터 (MV; 476), 모드 (478), 사이즈 (480), 다른 정보 (482) 및 프레임 당 MB 맵 (484) 을 포함한다.
예시적인 프레임 당 MB 맵은, 본 출원과 동시에 출원되고 대리인 열람번호 제 071445 호이며, 이하 상세히 설명하는 바와 같이 참조로 본 명세서에 통합된 미국 가출원 제 12/145,900 호에 개시되어 있다.
도 21 은 S/MBL 우선순위화된 PM 시퀀스 발생기 (462) 를 도시한다. S/MBL 우선순위화된 PM 시퀀스 (490) 의 리스트는 슬라이스 정보 및 MP 맵을 이용하여, 도 15 의 우선순위화된 리스트의 각각의 프레임의 복잡도를 추정한다. 일 구성에서, 오직 블록 (492) 에서의 P-프레임 슬라이스 및 블록 (502) 에서의 B-프레임 슬라이스만이 더 우선순위화된다. 이전의 계층에서, 모든 I-프레임은 VS/PL 의 임의의 선택된 모드에 대해 디코딩될 것이다. P-프레임 슬라이스는 블록 (494) 에서의 슬라이스 당 ROI MB 및 블록 (496) 에서의 모드 평활화를 갖는 넌-ROI MB 에 기초하여 더 우선순위화된다. 모드 평활화는 블록 (498) 에서의 강제된 균일 모션 및 블록 (500) 에서의 강제된 P 스킵에 따라 더 우선순위화된다. B-프레임 슬라이스는 블록 (504) 에서의 슬라이스 당 ROI MB 및 블록 (506) 에서의 모드 평활화를 갖는 넌-ROI MB 에 기초하여 더 우선순위화된다. 모드 평활화는 블록 (507) 에서의 강제된 균일 모션 및 블록 (508) 에서의 강제된 B 스킵에 따라 더 우선순위화된다.
모드 평활화는 MB 를 유사한 특성으로 그룹화하도록 적용될 수도 있다. MB 의 모든 3×3 또는 5×5 윈도우에 있어서, MB 의 윈도우가 모드의 균일성을 위해 액세스된다. 윈도우 내의 아웃라이어 (나머지 MB 와는 상이한 모드를 갖는 MB) 가 식별된다. 아웃라이어가 약간 상이하면, 이들은 윈도우 모드로 강제된다. 그렇지 않으면, 아웃아이어에 대한 모드가 유지된다. 예를 들어, 3×3 MB 윈도우에서, 하나의 MB 가 인터 모드이고 나머지 MB 들이 스킵되면, 그리고 그 인터 MB 중 (CBP 또는 MB 사이즈로 표시되는) 잔여물이 Skip_threshold 보다 작으면, 그 MB 는 모드를 스킵하도록 강제된다. 모드 평활화 후, 스킵 대 다이렉트/인터 모드 MB 의 비율이 연산되고, 복잡도의 팩터로서 포함된다. 또한, 스킵 MB 의 접속된 영역들이 (대리인 열람번호 제 071445 호를 갖는 특허 출원 번호 제 12/145,900 호에서와 같이) MB 확장 (dilation) 및 MB 침식을 통해 타일로 결합될 수도 있다. 그 후, 타일은 스킵/정적, 비-정적, 균일 모션, 관심 영역 (ROI, 상대 MB/타일 사이즈에 기초) 등으로 분류될 수 있다. 균일 모션 타일의 경우, MB 의 MV 는 정량화될 수도 있고, 타일은 하나의 MV 상에 강제될 수도 있다 (이것은 이 MB 들의 잔여물/CBP 가 제로 또는 거의 제로이면 행해질 수도 있음을 유의한다). 다른 옵션은, 오직 비-정적 또는 ROI 타일들이 디코딩되고 나머지가 스킵되도록 강제되는 경우이다. 이 경우, 넌-ROI MB 의 일부는 스킵 이외의 모드일 수도 있지만, 블록 (500 및 508) 에서와 같이 스킵되도록 강제될 것이다.
도 22 는 S/MBL 모드 동안 다중층 저전력 모드 세트 발생기 (114) 를 도시한다. 다중층 저전력 모드 세트 발생기 (114) 는 저전력 모드 (650) 의 계층적 리스트를 발생시킨다. 프레임 내의 MB 중 어떤 MB 및 수신된 프레임 중 어떤 프레임이 프로세싱될지를 조작할 능력은 디코딩 및 렌더링 프로세스를 관리하는데 있어서 상당한 레벨의 입도를 제공한다. 또한, 전술한 MB 레벨의 전력 최적화는 디코딩 동안 (온더플라이로) 수행될 수도 있다. 또한, 상세한 프로파일링 및 전력 분석이 요구되어, 전력에서의 감소 비율을 대응하는 저전력 모드에 맵핑하도록 요구된다.
예시적인 모드들은 S/MBL 모드 6A, 6B, 6C, 7A, 7B, 7C 및 8 로서 개시된다. 모드 6A 에서, I-프레임은 I-프레임의 정규의 디코딩마다 디코딩된다. 그러나, 추가적인 대안적 동작들이 발생하여, 전력이 허용하는 시각적 품질 또는 입도를 개선한다. 예를 들어, 모드 6A 에서, 넌-ROI MB 를 갖는 P-프레임은 P_Skips 로 강제될 수도 있고, B- 및 b-프레임은 선택적 FRUC 로 강제될 수도 있다. 모드 6B 에서, I-프레임은 I-프레임의 정규의 디코딩마다 디코딩된다. 모드 6B 에서의 대안적 동작은 모드 평활화를 갖는 P-프레임을 P_Skips 로 강제하고, B- 및 b-프레임을 선택적 FRUC 로 강제하는 것을 포함할 수도 있다. 모드 6C 에서, I-프레임들은 정규의 디코딩 프로세스를 따라 디코딩된다. 그러나, 대안적 동작으로서, 모드 평활화를 갖는 P-프레임들은 균일 모션으로 강제될 수도 있고, B- 및 b-프레임들은 선택적 FRUC 로 강제될 수도 있다. 모드 7A 에서, I 및 P-프레임들은 정규의 디코딩 프로세스에 따라 디코딩된다. 그러나, 대안적 동작으로서, 넌-ROI MB 를 갖는 B-프레임들은 Skips 로 강제된다. 모드 7B 에서, I 및 P-프레임들은 정규의 디코딩 프로세스에 따라 디코딩된다. 그러나, 대안적 동작으로서, 모드 평활화를 갖는 B-프레임들은 Skips 로 강제된다. 모드 7C 에서, I 및 P-프레임들은 정규의 디코딩 프로세스에 따라 디코딩된다. 그러나, 대안적 동작으로서, 모드 평활화를 갖는 B-프레임들은 균일한 모션으로 강제된다. 모드 8 에서, 모든 수신된 프레임들 (I, P, B 및 b) 이 디코딩된다.
도 23 은 전력 관리 동작의 하이 레벨 블록도를 도시한다. 블록도는 디스플레이 프로세서 (28) 의 렌더링 스테이지 (28A) 와 통신하는 디코더 엔진 (104) 을 포함한다. 따라서, 전력 관리 (PM) 모듈 (100) 은 TL 모드, VS/PL 모드 및 S/MBL 모드에서 비트스트림들을 프로세싱한다. PM 모드 (100) 는 디코더 엔진 (104) 을 제어하여, 선택된 저전력 모드에 따라 디코딩가능한 유닛을 디코딩한다. 렌더링 동안 요구되는 전력은 또한 전술한 저전력 동작 모드 중 임의의 모드에서 프레임워크로부터의 우선순위화된 동작의 시퀀스로부터 유도된다. 또한, 디코더 엔진 (114) 의 출력은 다른 디바이스, 메모리 또는 장치로 전송될 수도 있다. 디코더로부터의 출력은 궁극적 저장 또는 소모 (디스플레이) 를 위한 다른 비디오 인에이블된 장치로 포워딩될 수도 있다. 그래픽 프로세싱 유닛 (34) 은 또한 디스플레이 프로세서 (28) 와 통신한다.
도 24 는 예시적인 표준 (정규의) 디코딩 프로세스 (700) 를 시퀀스 순서로 도시한다. 프로세스 (700) 는 또한 도 2d 와 관련하여 설명된다. 비디오 시퀀스 및 영상 계층에서 시작하여, 표준 (정규의) 디코딩 프로세스 (700) 는 블록 (704) 에서 시퀀스 헤더 (54A) 를 디코딩할 것이고, 이에 후속하여 블록 (704) 에서 영상 1 의 영상 헤더 (58A) 를 디코딩한다. 영상 1 의 영상 헤더를 디코딩한 후, 슬라이스 및 매크로블록 정보를 포함하는 영상 데이터 (58B) 가 디코딩된다. 그 후, 영상 1 데이터가 디코딩된 후, 모든 슬라이스 유닛이 디코딩되고 슬라이스 1-M 로 표시된다. 각각의 슬라이스가 유사하게 디코딩되기 때문에, 오직 하나의 슬라이스만 상세히 설명한다.
슬라이스 1 이 디코딩된 경우, 영상 1 의 슬라이스 1 의 슬라이스 헤더 (60A) 가 블록 (706) 에서 디코딩된다. 그 후, 영상 1 의 슬라이스 1 의 매크로블록 (MB) 1 의 MB 헤더 (62A) 가 블록 (708) 에서 디코딩된다. MB1 의 MB 헤더 (62A) 가 디코딩된 후, 영상 1 의 슬라이스 1 의 MB1 에 대한 관련 MB 데이터가 블록 (710) 에서 디코딩된다. 그 후, 다음 매크로블록이 획득된다. 따라서, 영상 1 의 슬라이스 1 의 매크로블록 (MB) 2 의 MB 헤더 (62A) 가 블록 (712) 에서 디코딩된다. MB2 의 MB 헤더가 디코딩된 후, 영상 1 의 슬라이스 1 의 MB2 에 대한 관련 MB 데이터 (62B) 가 블록 (714) 에서 디코딩된다. MB 데이터 (62B) 가 후속하는 매크로블록 헤더의 디코딩은 슬라이스 내의 모든 나머지 MB 들에 대해 계속된다. 이 예에서, N 개의 MB 들이 존재한다. 따라서, 영상 1 의 슬라이스 1 의 디코딩은, 블록 (716) 에서 영상 1 의 슬라이스 1 의 MB N 에 대한 MB 헤더를 디코딩하고, 그에 후속하여, 블록 (718) 에서 영상 1 의 슬라이스 1 의 MB N 의 관련 MB 데이터 (62B) 를 디코딩함으로써 종료될 것이다.
따라서, 프로세스 (700) 은 전술한 슬라이스 1 에 대한 것과 유사한 방식으로 나머지 슬라이스들 각각을 디코딩함으로써 영상 1 정보의 디코딩을 계속할 것이다. 이 예에서, M 개의 슬라이스들이 존재한다. 따라서, 블록 (720) 에서, 슬라이스 M 은 블록 (706 내지 718) 과 관련하여 전술한 방식으로 디코딩된다.
다음으로, 프로세스 (700) 는 영상 2 와 같은 다음 영상 프레임을 디코딩할 것이다. 영상 2 를 디코딩하기 위해, 프로세스 (700) 는 블록 (722) 에서 영상 2 의 영상 헤더 (58A) 를 디코딩하여 슬라이스 1-M 에 대한 위치를 유도할 것이다. 따라서, 블록 (724) 에서, 슬라이스 1 은 블록 (706 내지 718) 과 관련하여 전술한 방식으로 디코딩된다. 영상 2 의 모든 나머지 슬라이스들은 유사하게 디코딩된다. 따라서, 블록 (726) 에서, 슬라이스 M 은 블록 (706 내지 718) 과 관련하여 전술한 방식으로 디코딩되어 영상 2 의 디코딩을 완료한다.
프로세스 (700) 는 최종 영상 Z 까지 유사한 방식으로 순차적으로 모든 영상 프레임들의 디코딩을 반복한다. 이 예에서, 영상 1-Z 가 존재한다. 따라서, 최종 영상인 영상 Z 를 디코딩하기 위해, 프로세스 (700) 는 블록 (728) 에서의 영상 Z 의 영상 헤더 (58A) 를 디코딩한 후 블록 (730) 에서 슬라이스 1 을 디코딩할 것이다. 각각의 슬라이스는 블록 (732) 에서 슬라이스 M 까지 영상 Z 에서 디코딩된다.
도 25 는 전력 관리 동작을 갖는 TL 디코딩 프로세스 (800) 의 흐름도를 도시한다. 프로세스 (800) 은 도 6 및 8 과 관련하여 설명한 바와 같이, 디코딩가능한 유닛의 PM 시퀀스의 TL 정보 추출 및 TL 우선순위화가 발생하는 블록 (802) 에서 시작한다. 블록 (802) 에 후속하여 블록 (804) 에서는, MIPS 및/또는 전력 로딩이 TL 우선순위화된 PM 시퀀스에 대해 프로젝팅된다. 블록 (804) 에 후속하여 블록 (806) 에서는, TL 저전력 모드 세트에 대한 MIPS 가 프로젝팅된다. 블록 (806) 에 후속하여 블록 (808) 에서는, 비트스트림을 디코딩하기 위한 충분한 전력이 존재하는지 여부에 대한 결정이 행해진다. 결정이 "예" 이면, 정규의 디코딩 프로세스 (700) 가 도 24 와 관련하여 설명한 과정에 따라 블록 (810) 에서 발생할 수도 있다. 그러나, 결정이 "아니오" 이면, 옵션으로서, 사용자는, 블록 (812) 에서, 예를 들어, 비디오 재생을 위해 전력이 불충분함을 통지받을 수도 있다. 사용자에게는 선택할 수 있는 모드 1, 1A 및 2 에 대응하는 저전력 모드 옵션이 주어질 것이다. 대안적으로, 저전력 모드가 자동으로 선택될 수도 있다. 블록 (812) 에 후속하여, TL 저전력 모드가 사용자에 의해 또는 자동으로 선택되는 블록 (814) 가 후속한다. 도 25 의 흐름도는 도 26 으로 진행한다.
도 26 은 전력 관리 동작을 갖는 VS/PL 디코딩 프로세스 (900) 의 흐름도를 도시한다. 프로세스 (900) 는, 도 13 및 도 15 에 도시된 바와 같이, 블록 (902) 에서 VS/PL 정보 추출 및 PM 시퀀스의 VS/PL 우선순위화를 수행한다. 블록 (904) 에서, 모든 프레임 타입 (디코딩가능한 유닛) 에 대한 MIPS 가 도 16 및 17 과 관련하여 설명된 바와 같이 프로젝팅된다. 블록 (906) 에서는, 도 18 에 도시된 바와 같이 각각의 VS/PL 저전력 모드 세트에 대한 MIPS 및/또는 전력 로딩이 VS/PL 우선순위화된 PM 시퀀스에 기초하여 프로젝팅된다. 프로젝팅된 MIPS 에 기초하여, PM 시퀀스는 시각적 품질 및 입도에 기초하여 함께 그룹화된다. (모든 시퀀스와 같은) 시퀀스의 일부는 불충분한 전력 때문에 디코딩되지 않을 수도 있다. 따라서, 블록 (908) 에서, 최대 가용 전력 아래인 VS/PL 저전력 모드 세트로부터의 저전력 모드들의 랭킹된 서브세트가 발생될 수도 있다. 랭킹은 개선된 시각적 품질 및/또는 입도의 함수이다. 블록 (910) 에서는, 선택적으로, 사용자에게 한정된 전력이 통지될 수도 있고, 저전력 모드 옵션의 선택이 제공될 수도 있다. 블록 (912) 에서, 서브세트의 최상으로 랭킹된 저전력 모드가 선택될 수도 있고, 또는 저전력 모드가 사용자에 의해 선택될 수도 있다. 블록 (914) 에서, 선택된 VS/PL 저전력 모드에 기초하여, 디코딩은, 디코딩 동작들을 도 24 의 정규의 디코딩 프로세스 (700) 로 적절하게 다시 삽입함으로써 시작한다.
일 구성에서, 하나의 선택된 저전력 모드에 기초하여 각각의 프레임이 디코딩된 후, MIPS 는 리-프로젝팅될 수도 있다. 그 후, 비트스트림 내의 다음 프레임 또는 다른 디코딩되지 않은 프레임이 상이하게 선택된 모드를 이용하여 디코딩될 수도 있다. 따라서, 저전력 모드는 비트스트림의 디코딩 동안 온더플라이로 동적으로 변경될 또는 발생될 수도 있다.
도 27 은 도 24 의 정규의 디코딩 프로세스 (700) 로부터 분리된 VS/PL 정보 추출 프로토콜 (902A) 의 블록도를 도시한다. 도 27 에서, VS/PL 정보 추출 프로토콜 (92A) 은 블록 (950) 에서 시퀀스 헤더 (54A) 를 디코딩할 것이다. 따라서, 영상 1-N 의 위치는 영상 1-N 에 대해 표시된 각각의 블록 위의 화살표로 표시된 바와 같이 유도된다. 블록 (952) 에서, 영상 1 의 영상 헤더 (58A) 가 디코딩된다. 블록 (954) 에서, 영상 2 의 영상 헤더 (58A) 가 디코딩된다. 모든 영상 헤더들이 디코딩된다. 블록 (956) 에서, 영상 Z (최종 영상) 에 대한 영상 헤더가 디코딩된다. 따라서, 영상 헤더 (58A) 의 디코딩은, 디코딩가능한 유닛의 PM 시퀀스가 특정 비트스트림 및 디코딩가능한 유닛의 PM 시퀀스에 대해 프로젝팅된 MIPS 에 대해 유도되게 허용한다.
도 28 은 VS/PL 정보 추출 프로토콜 (902A) 에 따른 비트스트림으로부터 VS/PL 디코딩된 유닛의 블록도를 도시한다. 시퀀스 헤더 (54A) 는, 그 시퀀스 헤더 (54A) 가 디코딩된 것을 표시하기 위해 빗금으로 표시되어 있다. 또한, 영상 1-N 각각에 대한 영상 헤더 (58A) 는, 그 영상 헤더 (58A) 가 디코딩된 것을 표시하기 위해 빗금으로 표시되어 있다. 영상 데이터 (58B) 는 이 포인트에서 디코딩되지 않고 남아있음을 표시하기 위해 빗금되지 않고 남아있다. 시퀀스 데이터 (54B) 또한 빗금되지 않고 남아있다. 영상 헤더 (58A) 의 디코딩은, 영상 데이터를 디코딩하지 않고, 필요한 슬라이스 위치가 슬라이스 및 매크로블록 계층에 대해 획득되게 허용한다.
도 29 는 전력 관리 동작을 갖는 S/MBL 디코딩 프로세스 (1000) 의 흐름도를 도시한다. 프로세스 (1000) 는, 도 20 및 21 에서 설명된 바와 같이, 디코딩가능한 유닛의 PM 시퀀스의 S/MBL 정보 추출 및 S/MBL 우선순위화를 수행하는 블록 (1002) 에서 시작한다. 일 구성에서, P 및 B-프레임에 대한 정보만이 추출 및 우선순위화된다. 블록 (1004) 에서, S/MBL 저전력 모드들 각각에 대한 MIPS 가 리-프로젝팅된다. 블록 (1006) 에서, 최대 이용가능 전력 아래에 있는 S/MBL 저전력 모드로부터 저전력 모드들의 랭킹된 서브세트가 발생된다. 랭킹은 개선된 시각적 품질 및/또는 입도의 함수이다. 블록 (1008) 에서는, 선택적으로, 사용자에게 한정된 전력이 통지되고, 저전력 모드 옵션의 선택이 제공될 수도 있다. 블록 (1010) 에서, 서브세트의 최상으로 랭킹된 저전력 모드가 선택될 수도 있고, 또는 사용자에 의해 저전력 모드가 선택될 수도 있다. 블록 (1012) 에서, 선택된 S/MBL 저전력 모드에 기초하여, P- 및 B-프레임 슬라이스 및 MB 데이터 디코딩은, 디코딩 동작을 도 24 의 정규의 디코딩 프로세스 (700) 로 적절하게 다시 삽입함으로써 시작한다. 블록 (1012) 이후, MIPS 는, 저전력 모드가 나머지 가용 전력에 따라 업그레이드 또는 다운그래이드될 수 있도록, 하나 이상의 프레임들이 디코딩된 이후 리-프로젝팅될 수도 있다.
도 30 은 도 24 의 정규의 디코딩 프로세스 (700) 로부터 분리된 S/MBL 정보 추출 프로토콜 (1002A) 의 블록도를 도시한다. 도 30 은 도 31 과 관련하여 설명한다. 도 31 은 S/MBL 정보 추출 프로토콜 (1002A) 에 따른 비트스트림으로부터 S/MBL 디코딩된 유닛의 블록도를 도시한다. S/MBL 정보 추출 프로토콜 (1002A) 은 제 1 영상 1 에 대한 영상 데이터 (58B) 를 디코딩할 것이다. 영상 데이터 (58B) 를 디코딩하기 위해, 저전력 모드가 선택될 수 있을 때까지 오직 슬라이스 헤더 (60A) 및 MB 헤더 (62B) 가 디코딩된다. 영상 1-N 에 대한 블록 위의 화살표가 영상의 위치를 나타낸다. 화살표의 흑색 음영은 저전력 모드에 기초한 영상의 선택을 나타낸다. 화살표의 비-음영은 선택되지 않은 영상을 나타낸다. 블록 (1050) 에서, 영상 1 에 대한 슬라이스 헤더 (60A) 가 블록 (1050) 에서 디코딩된다. 블록 (1052) 에서, 영상 1 의 슬라이스 1 의 MB 1 의 MB 헤더 (62A) 가 디코딩된다. 블록 (1054) 에서, 영상 1 의 슬라이스 1 의 MB 2 의 MB 헤더 (62A) 가 디코딩된다. 영상 1 의 슬라이스 1 에 대한 모든 헤더들은, 영상 1 의 슬라이스 1 의 MB N 의 MB 헤더가 디코딩되는 블록 (1056) 에서 디코딩된다. 매크로블록 데이터 (62B) 는 디코딩되지 않는다. 영상 데이터 (58B), 슬라이스 헤더 (60A) 및 MB 헤더 (62A) 의 빗금은 이들이 디코딩된 것을 나타낸다.
각 슬라이스의 슬라이스 헤더 (60A) 가 디코딩된 후 슬라이스의 각각의 MB 의 MB 헤더가 디코딩된다. 블록 (1058) 에서, 영상 1 의 슬라이스 M (최종 슬라이스) 이 블록 (1050 내지 1056) 과 유사한 방식으로 디코딩된다. 모든 나머지 영상들은 유사한 방식으로 디코딩된다. 블록 (1060) 에서, 영상 Z (최종 영상) 가 블록 (1050 내지 1058) 과 관련하여 전술한 바와 같이 디코딩된다. 따라서, 슬라이스 및 매크로블록 헤더의 디코딩은, 디코딩가능한 유닛의 PM 시퀀스가 특정 비트스트림 및 디코딩가능한 유닛의 PM 시퀀스에 대해 프로젝팅된 MIPS 에 대해 유도되도록 서용한다.
도 32 는 선택된 전력 관리 모드에 따른 최종 슬라이스 및 매크로블록 디코딩의 블록도를 도시한다. 슬라이스 데이터 (60B) 및 MB 데이터 (62B) 는 (모드 6A 내지 6C 및 7A 내지 7C 와 같은) 선택된 저전력 모드에 대해 디코딩될 PM 시퀀스에 따라 디코딩된다. 슬라이스 데이터 (60B) 및 MB 데이터 (62B) 는 이들이 디코딩된 것을 나타내도록 빗금으로 도시되어 있다.
도 33 은 다중층 전력 관리 모드의 계층적 배열에 대한 블록도를 도시한다. TL PM 프로세싱 (1200) 은 전송 계층 (52) 에서 전력 관리의 제 1 티어에서 시작한다. TL PM 프로세싱 (1200) 의 결과로서, 복수의 저전력 모드가 프로젝팅된 MIPS 에 기초하여 확립된다. 일 구성에서는, 모드 1, 1A 및 2 가 제안된다. 전력 관리 동작은 VS/PL PM 프로세싱 (1202) 에서 제 2 티어로 계속된다. 전력 관리의 제 2 티어는 시퀀스 및 영상 계층 (70) 에서 수행된다. VS/PL PM 프로세싱 (1202) 은 프로젝팅된 MIPS 및 시각적 품질 및/또는 입도의 함수로서 복수의 저전력 모드를 생성한다. 일 구성에서, 모드 3, 4A 내지 4D 가 발생된다. 모드 5 는 전력 모드지만, 모든 프레임들이 디코딩되지 않으면 저전력 모드가 아닐 수도 있다. 그럼에도 불구하고, 전력 관리 동작은 S/MBL PM 프로세싱 (1204) 에서 제 3 티어로 계속된다. 전력 관리의 제 3 티어는 슬라이스 및 매크로블록 계층 (1204) 에서 제 3 티어로 계속된다. 전력 관리의 제 3 티어는 슬라이스 매크로블록 계층 (72) 에서 수행된다. S/MBL PM 프로세싱 (1024) 은 프로젝팅된 MIPS 및 시각적 품질 및/또는 입도의 함수로서 복수의 저전력 모드를 생성한다. 일 구성에서는, 모드 6A 내지 6C 및 7A 내지 7C 가 발생된다. 모드 8 은 비트스트림의 일부가 디코딩된 후에 이용될 수도 있고, MIPS 의 리-프로젝션은 모든 나머지 프레임들이 디코딩될 수도 있음을 나타낸다.
하나 이상의 예시적인 실시형태에서, 설명된 기능들은 하드웨어, 소프트웨어 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 기능들은 컴퓨터-판독가능 매체 상에서 하나 이상의 명령들 또는 코드로 저장될 수도 있고 이를 통해 송신될 수도 있다. 컴퓨터-판독가능 매체는 컴퓨터 저장 매체, 및 하나의 장소로부터 다른 장소로 컴퓨터 프로그램의 이송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 한정이 아닌 예시로서, 이러한 컴퓨터-판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광학 디스크 저장 매체, 자기 디스크 저장 매체 또는 기타 자기 저장 디바이스, 또는 원하는 프로그램 코드를 컴퓨터에 의해 액세스가능한 명령들 또는 데이터 구조들의 형태로 반송하거나 저장하는데 이용될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터-판독가능 매체로 적절하게 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 쌍, 디지털 가입자 라인 (DSL), 또는 적외선, 무선 및 전자파와 같은 무선 기술을 이용하여 소프트웨어가 웹사이트, 서버 또는 기타 원격 소스로부터 송신되면, 그 동축 케이블, 광섬유 케이블, 트위스트 쌍, DSL, 또는 적외선, 무선 및 전자파와 같은 무선 기술이 매체의 정의에 포함된다. 여기서 사용되는 바와 같이, 디스크 (Disk 및 disc) 는 컴팩트 디스크 (CD), 레이져 디스크, 광 디스크, DVD, 플로피 디스크 및 통상적으로 데이터를 자기적으로 재생성하는 블루 레이 디스크를 포함하며, 디스크는 레이져를 이용하여 데이터를 광학적으로 재생성한다. 또한, 전술한 매체들의 조합이 컴퓨터-판독가능 매체의 범주 내에 포함될 것이다.
개시되어 있는 실시형태들에 대한 이전의 설명은 당업자로 하여금 본 발명을 제조 또는 이용할 수 있도록 제공된다. 당업자는 이들 실시형태에 대한 다양한 변형들을 명백히 알 수 있으며, 여기에서 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고도 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 여기에서 설명된 실시형태들에 제한되는 것이 아니라, 여기에서 개시된 원리 및 신규한 특징들과 부합하는 최광의 범위를 부여하려는 것이다.

Claims (48)

  1. 비디오 데이터를 포함하는 데이터 스트림을 수신하는 단계;
    상기 데이터 스트림을 생성하는데 이용되는 전송 프로토콜 및 비디오 코딩 프로토콜을 식별하는 단계;
    상기 전송 프로토콜 및 상기 비디오 코딩 프로토콜에 의해 요구되는 다양한 파싱 동작들 및 디코딩 동작들을 식별하는 단계;
    상기 식별된 파싱 동작들 및 디코딩 동작들에 기초하여 선택적 파싱 또는 선택적 디코딩 중 적어도 하나를 위하여 상기 데이터 스트림으로부터 디코딩가능 유닛들의 복수의 시퀀스들을 우선순위화하는 단계;
    가용 전기 전력의 양 및 가용 프로세싱 전력의 양을 평가하는 단계; 및
    상기 가용 전기 전력의 양 및 상기 가용 프로세싱 전력의 양에 기초하여 상기 데이터 스트림에 대한 상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 단계를 포함하고,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 단계는, 상기 데이터 스트림에 대하여 상기 파싱 동작들 및 디코딩 동작들을 선택적으로 수행하는 단계를 포함하고,
    상기 선택적 파싱 또는 선택적 디코딩은, 낮은 우선순위의 시퀀스보다 더 높은 우선순위의 적어도 하나의 시퀀스에서의 파싱 또는 디코딩을 포함하고, 상기 더 높은 우선순위의 적어도 하나의 시퀀스는 낮은 우선순위의 시퀀스보다 더 높은 입도 (granularity) 또는 시각적 품질을 갖는, 데이터 스트림을 프로세싱하는 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 그룹들로 연관시키는 단계를 더 포함하고,
    상기 그룹 각각은 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나를 갖는, 데이터 스트림을 프로세싱하는 방법.
  4. 제 3 항에 있어서,
    상기 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나에 기초하여 상기 그룹들을 저전력 모드들의 계층적 리스트로 우선순위화하는 단계를 더 포함하는, 데이터 스트림을 프로세싱하는 방법.
  5. 제 3 항에 있어서,
    일 그룹을 선택하여, 상기 선택된 그룹의 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나가 각각 상기 가용 전기 전력 및 가용 프로세싱 전력을 충족하게 하거나 초과하지 않게 하는 단계를 더 포함하는, 데이터 스트림을 프로세싱하는 방법.
  6. 제 4 항에 있어서,
    상기 저전력 모드들의 계층적 리스트를 사용자에게 제공하는 단계;
    상기 사용자에 의해 선택된 저전력 모드를 나타내는 입력을 수신하는 단계; 및
    상기 입력에 응답하여 일 그룹의 파싱 동작들 및 디코딩 동작들을 선택하는 단계를 더 포함하는, 데이터 스트림을 프로세싱하는 방법.
  7. 비디오 데이터를 포함하는 데이터 스트림을 수신하는 단계;
    상기 데이터 스트림을 생성하는데 이용되는 전송 프로토콜 및 비디오 코딩 프로토콜을 식별하는 단계;
    상기 전송 프로토콜 및 상기 비디오 코딩 프로토콜에 의해 요구되는 다양한 파싱 동작들 및 디코딩 동작들을 식별하는 단계;
    상기 식별된 파싱 동작들 및 디코딩 동작들에 기초하여 선택적 파싱 또는 선택적 디코딩 중 적어도 하나를 위하여 상기 데이터 스트림으로부터 디코딩가능 유닛들의 복수의 시퀀스들을 우선순위화하는 단계; 및
    상기 비디오 데이터의 시각적 품질 및 체감 품질 (quality of experience; QoE) 중 적어도 하나에 기초하여 상기 데이터 스트림에 대한 상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 단계를 포함하고,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 단계는, 상기 데이터 스트림에 대하여 상기 파싱 동작들 및 디코딩 동작들을 선택적으로 수행하는 단계를 포함하고,
    상기 선택적 파싱 또는 선택적 디코딩은, 낮은 우선순위의 시퀀스보다 더 높은 우선순위의 적어도 하나의 시퀀스에서의 파싱 또는 디코딩을 포함하고, 상기 더 높은 우선순위의 적어도 하나의 시퀀스는 낮은 우선순위의 시퀀스보다 더 높은 입도 (granularity) 또는 시각적 품질을 갖는, 데이터 스트림을 프로세싱하는 방법.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 그룹들로 연관시키는 단계를 더 포함하고,
    상기 그룹 각각은 상기 비디오 데이터의 시각적 품질의 정도 또는 체감 품질의 정도에 대응하는, 데이터 스트림을 프로세싱하는 방법.
  10. 제 9 항에 있어서,
    상기 비디오 데이터의 시각적 품질의 정도 및 체감 품질의 정도 중 적어도 하나에 기초하여 상기 그룹들을 품질 모드들의 계층적 리스트로 우선순위화하는 단계를 더 포함하는, 데이터 스트림을 프로세싱하는 방법.
  11. 제 9 항에 있어서,
    일 그룹을 선택하여, 상기 선택된 그룹의 상기 비디오 데이터의 시각적 품질 및 체감 품질 중 적어도 하나가 각각 상기 비디오 데이터의 시각적 품질의 원하는 정도 및 체감 품질의 원하는 정도를 충족하게 하는 단계를 더 포함하는, 데이터 스트림을 프로세싱하는 방법.
  12. 제 10 항에 있어서,
    상기 품질 모드들의 계층적 리스트를 사용자에게 제공하는 단계;
    상기 사용자에 의해 선택된 품질 모드를 나타내는 입력을 수신하는 단계; 및
    상기 입력에 응답하여 일 그룹의 파싱 동작들 및 디코딩 동작들을 선택하는 단계를 더 포함하는, 데이터 스트림을 프로세싱하는 방법.
  13. 비디오 데이터를 포함하는 데이터 스트림을 수신하고;
    상기 데이터 스트림을 생성하는데 이용되는 전송 프로토콜 및 비디오 코딩 프로토콜을 식별하고;
    상기 전송 프로토콜 및 상기 비디오 코딩 프로토콜에 의해 요구되는 다양한 파싱 동작들 및 디코딩 동작들을 식별하고;
    상기 식별된 파싱 동작들 및 디코딩 동작들에 기초하여 선택적 파싱 또는 선택적 디코딩 중 적어도 하나를 위하여 상기 데이터 스트림으로부터 디코딩가능 유닛들의 복수의 시퀀스들을 우선순위화하고;
    가용 전기 전력 의 양 및 가용 프로세싱 전력의 양을 평가하고;
    상기 가용 전기 전력의 양 및 상기 가용 프로세싱 전력의 양에 기초하여 상기 데이터 스트림에 대한 상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하도록
    동작할 수 있는 일 세트의 명령들을 실행하도록 구성되는 프로세서를 포함하고,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 것은, 상기 데이터 스트림에 대하여 상기 파싱 동작들 및 디코딩 동작들을 선택적으로 수행하는 것을 포함하고,
    상기 선택적 파싱 또는 선택적 디코딩은, 낮은 우선순위의 시퀀스보다 더 높은 우선순위의 적어도 하나의 시퀀스에서의 파싱 또는 디코딩을 포함하고, 상기 더 높은 우선순위의 적어도 하나의 시퀀스는 낮은 우선순위의 시퀀스보다 더 높은 입도 (granularity) 또는 시각적 품질을 갖는, 데이터 스트림을 프로세싱하는 디바이스.
  14. 삭제
  15. 제 13 항에 있어서,
    상기 프로세서는 또한,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 그룹들로 연관시키는 명령들을 실행하도록 구성되고,
    상기 그룹 각각은 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나를 갖는, 데이터 스트림을 프로세싱하는 디바이스.
  16. 제 15 항에 있어서,
    상기 프로세서는 또한,
    상기 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나에 기초하여 상기 그룹들을 저전력 모드들의 계층적 리스트로 우선순위화하는 명령들을 실행하도록 구성되는, 데이터 스트림을 프로세싱하는 디바이스.
  17. 제 15 항에 있어서,
    상기 프로세서는 또한,
    일 그룹을 선택하여, 상기 선택된 그룹의 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나가 각각 상기 가용 전기 전력 및 가용 프로세싱 전력을 충족하게 하거나 초과하지 않게 하는 명령들을 실행하도록 구성되는, 데이터 스트림을 프로세싱하는 디바이스.
  18. 제 16 항에 있어서,
    상기 프로세서는 또한,
    상기 저전력 모드들의 계층적 리스트를 사용자에게 제공하고;
    상기 사용자에 의해 선택된 저전력 모드를 나타내는 입력을 수신하고;
    상기 입력에 응답하여 일 그룹의 파싱 동작들 및 디코딩 동작들을 선택하는 명령들을 실행하도록 구성되는, 데이터 스트림을 프로세싱하는 디바이스.
  19. 비디오 데이터를 포함하는 데이터 스트림을 수신하고;
    상기 데이터 스트림을 생성하는데 이용되는 전송 프로토콜 및 비디오 코딩 프로토콜을 식별하고;
    상기 전송 프로토콜 및 상기 비디오 코딩 프로토콜에 의해 요구되는 다양한 파싱 동작들 및 디코딩 동작들을 식별하고;
    상기 식별된 파싱 동작들 및 디코딩 동작들에 기초하여 선택적 파싱 또는 선택적 디코딩 중 적어도 하나를 위하여 상기 데이터 스트림으로부터 디코딩가능 유닛들의 복수의 시퀀스들을 우선순위화하고;
    상기 비디오 데이터의 시각적 품질 및 체감 품질 (QoE) 중 적어도 하나에 기초하여 상기 데이터 스트림에 대한 상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하도록
    동작할 수 있는 일 세트의 명령들을 실행하도록 구성되는 프로세서를 포함하고,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 것은, 상기 데이터 스트림에 대하여 상기 파싱 동작들 및 디코딩 동작들을 선택적으로 수행하는 것을 포함하고,
    상기 선택적 파싱 또는 선택적 디코딩은, 낮은 우선순위의 시퀀스보다 더 높은 우선순위의 적어도 하나의 시퀀스에서의 파싱 또는 디코딩을 포함하고, 상기 더 높은 우선순위의 적어도 하나의 시퀀스는 낮은 우선순위의 시퀀스보다 더 높은 입도 (granularity) 또는 시각적 품질을 갖는, 데이터 스트림을 프로세싱하는 디바이스.
  20. 삭제
  21. 제 19 항에 있어서,
    상기 프로세서는 또한,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 그룹들로 연관시키는 명령들을 실행하도록 구성되고,
    상기 그룹 각각은 상기 비디오 데이터의 시각적 품질의 정도 또는 체감 품질의 정도에 대응하는, 데이터 스트림을 프로세싱하는 디바이스.
  22. 제 21 항에 있어서,
    상기 프로세서는 또한,
    상기 비디오 데이터의 시각적 품질의 정도 및 체감 품질의 정도 중 적어도 하나에 기초하여 상기 그룹들을 품질 모드들의 계층적 리스트로 우선순위화하는 명령들을 실행하도록 구성되는, 데이터 스트림을 프로세싱하는 디바이스.
  23. 제 21 항에 있어서,
    상기 프로세서는 또한,
    일 그룹을 선택하여, 상기 선택된 그룹의 상기 비디오 데이터의 시각적 품질 및 체감 품질 중 적어도 하나가 각각 상기 비디오 데이터의 시각적 품질의 원하는 정도 및 체감 품질의 원하는 정도를 충족하게 하는 명령들을 실행하도록 구성되는, 데이터 스트림을 프로세싱하는 디바이스.
  24. 제 22 항에 있어서,
    상기 프로세서는 또한,
    상기 품질 모드들의 계층적 리스트를 사용자에게 제공하고;
    상기 사용자에 의해 선택된 품질 모드를 나타내는 입력을 수신하고;
    상기 입력에 응답하여 일 그룹의 파싱 동작들 및 디코딩 동작들을 선택하는 명령들을 실행하도록 구성되는, 데이터 스트림을 프로세싱하는 디바이스.
  25. 비디오 데이터를 포함하는 데이터 스트림을 수신하는 수단;
    상기 데이터 스트림을 생성하는데 이용되는 전송 프로토콜 및 비디오 코딩 프로토콜을 식별하는 수단;
    상기 전송 프로토콜 및 상기 비디오 코딩 프로토콜에 의해 요구되는 다양한 파싱 동작들 및 디코딩 동작들을 식별하는 수단;
    상기 식별된 파싱 동작들 및 디코딩 동작들에 기초하여 선택적 파싱 또는 선택적 디코딩 중 적어도 하나를 위하여 상기 데이터 스트림으로부터 디코딩가능 유닛들의 복수의 시퀀스들을 우선순위화하는 수단;
    가용 전기 전력의 양 및 가용 프로세싱 전력의 양을 평가하는 수단; 및
    상기 가용 전기 전력의 양 및 상기 가용 프로세싱 전력의 양에 기초하여 상기 데이터 스트림에 대한 상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 수단을 포함하고,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 수단은, 상기 데이터 스트림에 대하여 상기 파싱 동작들 및 디코딩 동작들을 선택적으로 수행하는 것을 포함하고,
    상기 선택적 파싱 또는 선택적 디코딩은, 낮은 우선순위의 시퀀스보다 더 높은 우선순위의 적어도 하나의 시퀀스에서의 파싱 또는 디코딩을 포함하고, 상기 더 높은 우선순위의 적어도 하나의 시퀀스는 낮은 우선순위의 시퀀스보다 더 높은 입도 (granularity) 또는 시각적 품질을 갖는, 데이터 스트림을 프로세싱하는 장치.
  26. 삭제
  27. 제 25 항에 있어서,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 그룹들로 연관시키는 수단을 더 포함하고,
    상기 그룹 각각은 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나를 갖는, 데이터 스트림을 프로세싱하는 장치.
  28. 제 27 항에 있어서,
    상기 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나에 기초하여 상기 그룹들을 저전력 모드들의 계층적 리스트로 우선순위화하는 수단을 더 포함하는, 데이터 스트림을 프로세싱하는 장치.
  29. 제 27 항에 있어서,
    일 그룹을 선택하여, 상기 선택된 그룹의 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나가 각각 상기 가용 전기 전력 및 가용 프로세싱 전력을 충족하게 하거나 초과하지 않게 하는 수단을 더 포함하는, 데이터 스트림을 프로세싱하는 장치.
  30. 제 28 항에 있어서,
    상기 저전력 모드들의 계층적 리스트를 사용자에게 제공하는 수단;
    상기 사용자에 의해 선택된 저전력 모드를 나타내는 입력을 수신하는 수단; 및
    상기 입력에 응답하여 일 그룹의 파싱 동작들 및 디코딩 동작들을 선택하는 수단을 더 포함하는, 데이터 스트림을 프로세싱하는 장치.
  31. 비디오 데이터를 포함하는 데이터 스트림을 수신하는 수단;
    상기 데이터 스트림을 생성하는데 이용되는 전송 프로토콜 및 비디오 코딩 프로토콜을 식별하는 수단;
    상기 전송 프로토콜 및 상기 비디오 코딩 프로토콜에 의해 요구되는 다양한 파싱 동작들 및 디코딩 동작들을 식별하는 수단;
    상기 식별된 파싱 동작들 및 디코딩 동작들에 기초하여 선택적 파싱 또는 선택적 디코딩 중 적어도 하나를 위하여 상기 데이터 스트림으로부터 디코딩가능 유닛들의 복수의 시퀀스들을 우선순위화하는 수단; 및
    상기 비디오 데이터의 시각적 품질 및 체감 품질 (QoE) 중 적어도 하나에 기초하여 상기 데이터 스트림에 대한 상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 수단을 포함하고,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하는 수단은, 상기 데이터 스트림에 대하여 상기 파싱 동작들 및 디코딩 동작들을 선택적으로 수행하는 것을 포함하고,
    상기 선택적 파싱 또는 선택적 디코딩은, 낮은 우선순위의 시퀀스보다 더 높은 우선순위의 적어도 하나의 시퀀스에서의 파싱 또는 디코딩을 포함하고, 상기 더 높은 우선순위의 적어도 하나의 시퀀스는 낮은 우선순위의 시퀀스보다 더 높은 입도 (granularity) 또는 시각적 품질을 갖는, 데이터 스트림을 프로세싱하는 장치.
  32. 삭제
  33. 제 31 항에 있어서,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 그룹들로 연관시키는 수단을 더 포함하고,
    상기 그룹 각각은 상기 비디오 데이터의 시각적 품질의 정도 또는 체감 품질의 정도에 대응하는, 데이터 스트림을 프로세싱하는 장치.
  34. 제 33 항에 있어서,
    상기 비디오 데이터의 시각적 품질의 정도 및 체감 품질의 정도 중 적어도 하나에 기초하여 상기 그룹들을 품질 모드들의 계층적 리스트로 우선순위화하는 수단을 더 포함하는, 데이터 스트림을 프로세싱하는 장치.
  35. 제 33 항에 있어서,
    일 그룹을 선택하여, 상기 선택된 그룹의 상기 비디오 데이터의 시각적 품질 및 체감 품질 중 적어도 하나가 각각 상기 비디오 데이터의 시각적 품질의 원하는 정도 및 사용자의 체감 품질의 원하는 정도를 충족하게 하는 수단을 더 포함하는, 데이터 스트림을 프로세싱하는 장치.
  36. 제 34 항에 있어서,
    상기 품질 모드들의 계층적 리스트를 사용자에게 제공하는 수단;
    상기 사용자에 의해 선택된 품질 모드를 나타내는 입력을 수신하는 수단; 및
    상기 입력에 응답하여 일 그룹의 파싱 동작들 및 디코딩 동작들을 선택하는 수단을 더 포함하는, 데이터 스트림을 프로세싱하는 장치.
  37. 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    비디오 데이터를 포함하는 데이터 스트림을 수신하게 하고;
    상기 데이터 스트림을 생성하는데 이용되는 전송 프로토콜 및 비디오 코딩 프로토콜을 식별하게 하고;
    상기 전송 프로토콜 및 상기 비디오 코딩 프로토콜에 의해 요구되는 다양한 파싱 동작들 및 디코딩 동작들을 식별하게 하고;
    상기 식별된 파싱 동작들 및 디코딩 동작들에 기초하여 선택적 파싱 또는 선택적 디코딩 중 적어도 하나를 위하여 상기 데이터 스트림으로부터 디코딩가능 유닛들의 복수의 시퀀스들을 우선순위화하고;
    가용 전기 전력의 양 및 가용 프로세싱 전력의 양을 평가하게 하고;
    상기 가용 전기 전력의 양 및 가용 프로세싱 전력의 양에 기초하여 상기 데이터 스트림에 대한 상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하게 하는 명령들을 포함하고,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하게 하는 것은, 상기 데이터 스트림에 대하여 상기 파싱 동작들 및 디코딩 동작들을 선택적으로 수행하는 것을 포함하고,
    상기 선택적 파싱 또는 선택적 디코딩은, 낮은 우선순위의 시퀀스보다 더 높은 우선순위의 적어도 하나의 시퀀스에서의 파싱 또는 디코딩을 포함하고, 상기 더 높은 우선순위의 적어도 하나의 시퀀스는 낮은 우선순위의 시퀀스보다 더 높은 입도 (granularity) 또는 시각적 품질을 갖는, 컴퓨터 판독가능 매체.
  38. 삭제
  39. 제 37 항에 있어서,
    프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 그룹들로 연관시키게 하는 명령들을 더 포함하고,
    상기 그룹 각각은 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나를 갖는, 컴퓨터 판독가능 매체.
  40. 제 39 항에 있어서,
    프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    상기 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나에 기초하여 상기 그룹들을 저전력 모드들의 계층적 리스트로 우선순위화하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  41. 제 39 항에 있어서,
    프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    일 그룹을 선택하여, 상기 선택된 그룹의 프로젝팅된 전기 전력 요건 및 프로젝팅된 프로세싱 전력 요건 중 적어도 하나가 각각 상기 가용 전기 전력 및 가용 프로세싱 전력을 충족하게 하거나 초과하지 않게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  42. 제 40 항에 있어서,
    프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    상기 저전력 모드들의 계층적 리스트를 사용자에게 제공하게 하고;
    상기 사용자에 의해 선택된 저전력 모드를 나타내는 입력을 수신하게 하고;
    상기 입력에 응답하여 일 그룹의 파싱 동작들 및 디코딩 동작들을 선택하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  43. 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    비디오 데이터를 포함하는 데이터 스트림을 수신하게 하고;
    상기 데이터 스트림을 생성하는데 이용되는 전송 프로토콜 및 비디오 코딩 프로토콜을 식별하게 하고;
    상기 전송 프로토콜 및 상기 비디오 코딩 프로토콜에 의해 요구되는 다양한 파싱 동작들 및 디코딩 동작들을 식별하게 하고;
    상기 식별된 파싱 동작들 및 디코딩 동작들에 기초하여 선택적 파싱 또는 선택적 디코딩 중 적어도 하나를 위하여 상기 데이터 스트림으로부터 디코딩가능 유닛들의 복수의 시퀀스들을 우선순위화하고;
    상기 비디오 데이터의 시각적 품질 및 체감 품질 (QoE) 중 적어도 하나에 기초하여 상기 데이터 스트림에 대한 상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하게 하는 명령들을 포함하고,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 관리하게 하는 것은, 상기 데이터 스트림에 대하여 상기 파싱 동작들 및 디코딩 동작들을 선택적으로 수행하는 것을 포함하고,
    상기 선택적 파싱 또는 선택적 디코딩은, 낮은 우선순위의 시퀀스보다 더 높은 우선순위의 적어도 하나의 시퀀스에서의 파싱 또는 디코딩을 포함하고, 상기 더 높은 우선순위의 적어도 하나의 시퀀스는 낮은 우선순위의 시퀀스보다 더 높은 입도 (granularity) 또는 시각적 품질을 갖는, 컴퓨터 판독가능 매체.
  44. 삭제
  45. 제 43 항에 있어서,
    프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    상기 다양한 파싱 동작들 및 디코딩 동작들을 그룹들로 연관시키게 하는 명령들을 더 포함하고,
    상기 그룹 각각은 상기 비디오 데이터의 시각적 품질의 정도 또는 체감 품질의 정도에 대응하는, 컴퓨터 판독가능 매체.
  46. 제 45 항에 있어서,
    프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    상기 비디오 데이터의 시각적 품질의 정도 및 체감 품질의 정도 중 적어도 하나에 기초하여 상기 그룹들을 품질 모드들의 계층적 리스트로 우선순위화하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  47. 제 45 항에 있어서,
    프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    일 그룹을 선택하여, 상기 선택된 그룹의 상기 비디오 데이터의 시각적 품질 및 체감 품질 중 적어도 하나가 각각 상기 비디오 데이터의 시각적 품질의 원하는 정도 및 체감 품질의 원하는 정도를 충족하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  48. 제 45 항에 있어서,
    프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    품질 모드들의 계층적 리스트를 사용자에게 제공하게 하고;
    상기 사용자에 의해 선택된 품질 모드를 나타내는 입력을 수신하게 하고;
    상기 입력에 응답하여 일 그룹의 파싱 동작들 및 디코딩 동작들을 선택하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
KR1020117006387A 2008-08-19 2009-08-19 비디오 프로세싱에서의 전력 및 연산 부하 관리 기술 KR101248371B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US9017608P 2008-08-19 2008-08-19
US61/090,176 2008-08-19
US11498508P 2008-11-14 2008-11-14
US61/114,985 2008-11-14
US12/336,347 US8964828B2 (en) 2008-08-19 2008-12-16 Power and computational load management techniques in video processing
US12/336,347 2008-12-16
PCT/US2009/054368 WO2010022189A1 (en) 2008-08-19 2009-08-19 Power and computational load management techniques in video processing

Publications (2)

Publication Number Publication Date
KR20110055679A KR20110055679A (ko) 2011-05-25
KR101248371B1 true KR101248371B1 (ko) 2013-04-09

Family

ID=41696376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117006387A KR101248371B1 (ko) 2008-08-19 2009-08-19 비디오 프로세싱에서의 전력 및 연산 부하 관리 기술

Country Status (7)

Country Link
US (2) US8964828B2 (ko)
EP (1) EP2327204A1 (ko)
JP (2) JP5442736B2 (ko)
KR (1) KR101248371B1 (ko)
CN (1) CN102124724B (ko)
TW (1) TW201016007A (ko)
WO (1) WO2010022189A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8908763B2 (en) * 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
US8948270B2 (en) 2008-08-19 2015-02-03 Qualcomm Incorporated Power and computational load management techniques in video processing
US8964828B2 (en) * 2008-08-19 2015-02-24 Qualcomm Incorporated Power and computational load management techniques in video processing
US8457311B1 (en) * 2010-04-27 2013-06-04 Adobe Systems Incorporated Protecting video as it is decoded by a codec
US8964857B2 (en) 2010-10-20 2015-02-24 Lg Electronics Inc. Receiving system and method for processing digital broadcast signal in the receiving system
JP5883500B2 (ja) * 2011-04-20 2016-03-15 エンパイア テクノロジー ディベロップメント エルエルシー モバイルコンテンツのユーザ体感品質のリアルタイムでのフルリファレンス計算
US9414086B2 (en) 2011-06-04 2016-08-09 Apple Inc. Partial frame utilization in video codecs
WO2012169952A2 (en) * 2011-06-10 2012-12-13 Telefonaktiebolaget L M Ericsson (Publ) Signaling of end of slices
US10277915B2 (en) 2011-11-07 2019-04-30 Qualcomm Incorporated Signaling quantization matrices for video coding
WO2013077236A1 (en) * 2011-11-21 2013-05-30 Canon Kabushiki Kaisha Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium
US9241167B2 (en) 2012-02-17 2016-01-19 Microsoft Technology Licensing, Llc Metadata assisted video decoding
US20140078249A1 (en) * 2012-09-20 2014-03-20 Qualcomm Incorporated Indication of frame-packed stereoscopic 3d video data for video coding
TWI584221B (zh) 2012-09-28 2017-05-21 輝達公司 適應性調整圖形處理單元之圖框率的方法及使用該方法的電腦系統
US9128721B2 (en) 2012-12-11 2015-09-08 Apple Inc. Closed loop CPU performance control
US10257523B2 (en) * 2012-12-14 2019-04-09 Avago Technologies International Sales Pte. Limited Adaptive decoding system
GB2519804A (en) * 2013-10-31 2015-05-06 Nec Corp Power saving in mobile radio communications device
US9344340B2 (en) 2013-11-18 2016-05-17 International Business Machines Corporation System and method for notification of QoE issues
US20150228106A1 (en) * 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
FR3017762A1 (fr) * 2014-02-14 2015-08-21 Orange Notification d'une information de consommation de bande passante a un fournisseur de service dans un reseau de telecommunications
US20150237356A1 (en) * 2014-02-18 2015-08-20 Microsoft Corporation Host encoder for hardware-accelerated video encoding
CN111832056B (zh) * 2014-09-28 2024-04-26 伊姆西Ip控股有限责任公司 用于生成二维码的方法和系统
CN105764166A (zh) * 2014-12-17 2016-07-13 联芯科技有限公司 多通终端及其系统mips控制方法和模块
EP3057318A1 (en) * 2015-02-13 2016-08-17 Alcatel Lucent Adapting coding parameters based on viewing experience and system constraints
DE102015207965A1 (de) * 2015-04-29 2016-11-03 Deere & Company Energiemanagementsystem für eine landwirtschaftliche Fahrzeuganordnung
CN113852995A (zh) * 2020-06-28 2021-12-28 中兴通讯股份有限公司 网络切片的分配方法、终端及存储介质
US11947988B1 (en) * 2020-10-19 2024-04-02 Splunk Inc. Load balancer bypass for direct ingestion of data into a data intake and query system
CN116708843B (zh) * 2023-08-03 2023-10-31 清华大学 一种语义通信过程中的用户体验质量反馈调节系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040072030A (ko) * 2003-02-07 2004-08-16 세이코 엡슨 가부시키가이샤 전력 스케일러블 디지털 비디오 복호 방법

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655009A (en) 1992-03-19 1997-08-05 Fujitsu Limited Modem unit
JP2881065B2 (ja) 1992-03-19 1999-04-12 富士通株式会社 モデム装置
EP0650298B1 (en) 1993-03-25 2000-05-31 Sony Corporation Method for coding or decoding time-varying image, and apparatuses for coding/decoding
US5535401A (en) 1994-04-05 1996-07-09 International Business Machines Corporation Method and system of power and thermal management for a data processing system using object-oriented program design
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6633611B2 (en) 1997-04-24 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for region-based moving image encoding and decoding
US7068991B2 (en) 1997-05-09 2006-06-27 Parise Ronald J Remote power recharge for electronic equipment
SG116400A1 (en) 1997-10-24 2005-11-28 Matsushita Electric Ind Co Ltd A method for computational graceful degradation inan audiovisual compression system.
EP1578136A3 (en) 1998-01-27 2005-10-19 AT&T Corp. Method and apparatus for encoding video shape and texture information
EP1096360B1 (en) 1999-10-25 2004-09-22 Texas Instruments Incorporated Intelligent power management for distributed processing systems
JP3957937B2 (ja) 1999-12-21 2007-08-15 キヤノン株式会社 画像処理装置及び方法並びに記憶媒体
US6507618B1 (en) 2000-04-25 2003-01-14 Hewlett-Packard Company Compressed video signal including independently coded regions
JP2004507957A (ja) 2000-08-29 2004-03-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アルゴリズムを実行する方法と、拡張性のあるプログラマブル処理装置
JP4552296B2 (ja) 2000-09-08 2010-09-29 ソニー株式会社 情報処理装置および情報処理方法、並びに記録媒体
KR100830747B1 (ko) 2000-10-25 2008-05-20 텍사스 인스트루먼츠 인코포레이티드 분산된 프로세싱 시스템을 위한 인텔리젼트 전력 관리
US6931520B2 (en) 2001-05-17 2005-08-16 International Business Machines Corporation Power management delay system using mouse pointer indicator to indicate power-up delay during powering up a powered down disk device
US6704362B2 (en) 2001-07-06 2004-03-09 Koninklijke Philips Electronics N.V. Resource scalable decoding
JP3876687B2 (ja) 2001-10-30 2007-02-07 ソニー株式会社 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
US20050012861A1 (en) 2001-12-12 2005-01-20 Christian Hentschel Processing a media signal on a media system
JP3779215B2 (ja) 2002-01-28 2006-05-24 富士通株式会社 携帯型情報処理装置
US6968441B1 (en) 2002-04-12 2005-11-22 Barsa Consulting Group, Llc Method and system for managing interdependent resources of a computer system
US7287170B2 (en) 2002-05-14 2007-10-23 Ati Technologies Inc. Method and apparatus for power management using system and request tokens
US6710578B1 (en) 2002-08-27 2004-03-23 Motorola, Inc. Power resource management in a portable communication device
US7450963B2 (en) 2002-08-27 2008-11-11 Qualcomm Incorporated Low power dual processor architecture for multi mode devices
US9796848B2 (en) 2002-10-25 2017-10-24 Honeywell International Inc. Foaming agents and compositions containing fluorine substituted olefins and methods of foaming
JP3504256B1 (ja) 2002-12-10 2004-03-08 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、及び動画像復号装置
RU2305377C2 (ru) 2003-05-20 2007-08-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ уменьшения искажения сжатого видеоизображения и устройство для его реализации
JP2005031826A (ja) 2003-07-09 2005-02-03 Hitachi Ltd センサデバイスおよびその制御方法
US7366462B2 (en) 2003-10-24 2008-04-29 Qualcomm Incorporated Method and apparatus for seamlessly switching reception between multimedia streams in a wireless communication system
GB2408657B (en) 2003-11-28 2006-04-12 Motorola Inc Radio resource management
US20050136961A1 (en) 2003-12-17 2005-06-23 Telefonaktiebolaget Lm Ericsson (Publ), Power control method
GB0400658D0 (en) 2004-01-13 2004-02-11 Koninkl Philips Electronics Nv Portable device for receiving media content
US7885926B2 (en) 2004-01-21 2011-02-08 GM Global Technology Operations LLC System and apparatus for wireless synchronization of multimedia content
JP2005303738A (ja) 2004-04-13 2005-10-27 Canon Inc 画像処理装置
JP2005300943A (ja) 2004-04-13 2005-10-27 Canon Inc 情報表示位置制御方法及び装置
CN101820537B (zh) 2004-04-23 2013-04-03 住友电气工业株式会社 活动图像数据的编码方法、终端装置以及双向对话型系统
CN100524346C (zh) 2004-06-14 2009-08-05 普瑞科德公司 过滤数字图像的方法和系统、数字图像处理器
JP2006014086A (ja) 2004-06-28 2006-01-12 Canon Inc 動画像符号化装置及び動画像符号化方法
JP2006101322A (ja) 2004-09-30 2006-04-13 Toshiba Corp 情報処理装置および同装置で用いられるプログラム
DE602005015067D1 (de) 2004-09-30 2009-08-06 Toshiba Kk Informationsbearbeitungsgerät und Programm
JP2006113767A (ja) 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
US8356327B2 (en) * 2004-10-30 2013-01-15 Sharp Laboratories Of America, Inc. Wireless video transmission system
US20060133495A1 (en) 2004-12-22 2006-06-22 Yan Ye Temporal error concealment for video communications
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
WO2006109985A1 (en) 2005-04-13 2006-10-19 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video signals in intra-base-layer prediction mode by selectively applying intra-coding
US7920584B2 (en) 2005-05-04 2011-04-05 Arm Limited Data processing system
US7721011B1 (en) 2005-05-09 2010-05-18 Oracle America, Inc. Method and apparatus for reordering memory accesses to reduce power consumption in computer systems
JP2007013315A (ja) 2005-06-28 2007-01-18 Toshiba Corp 情報処理装置および動画像再生方法
CN101223490A (zh) 2005-07-14 2008-07-16 Nxp股份有限公司 使用历史负载简档来动态调整手持多媒体设备处理器内核的工作频率及可用功率
US20070021140A1 (en) 2005-07-22 2007-01-25 Keyes Marion A Iv Wireless power transmission systems and methods
US7529948B2 (en) 2005-08-25 2009-05-05 Apple Inc. Methods and apparatuses for dynamic power estimation
US7337339B1 (en) 2005-09-15 2008-02-26 Azul Systems, Inc. Multi-level power monitoring, filtering and throttling at local blocks and globally
US8780997B2 (en) 2005-11-18 2014-07-15 Apple Inc. Regulation of decode-side processing based on perceptual masking
US8886261B2 (en) * 2005-12-06 2014-11-11 Motorola Mobility Llc Multi-mode methods and devices utilizing battery power level for selection of the modes
WO2007078663A2 (en) 2005-12-16 2007-07-12 Interdigital Technology Corporation Mobility middleware architecture for multiple radio access technology apparatus
JP4654300B2 (ja) 2005-12-16 2011-03-16 インターデイジタル テクノロジー コーポレーション マルチ無線アクセス技術機器用のモビリティミドルウェアアーキテクチャ
TW200805047A (en) 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
US20070192641A1 (en) 2006-02-10 2007-08-16 Intel Corporation Method and apparatus to manage power consumption in a computer
US7484110B2 (en) 2006-03-16 2009-01-27 Microsoft Corporation Adaptive power management
US20070220293A1 (en) 2006-03-16 2007-09-20 Toshiba America Electronic Components Systems and methods for managing power consumption in data processors using execution mode selection
US7770040B2 (en) 2006-03-24 2010-08-03 Qualcomm Incorporated Method and apparatus for reducing power consumption of a co-processor by switching to low power dedicated memory in which image data is periodically updated
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US8750387B2 (en) 2006-04-04 2014-06-10 Qualcomm Incorporated Adaptive encoder-assisted frame rate up conversion
JP5268275B2 (ja) 2006-04-11 2013-08-21 パロ・アルト・リサーチ・センター・インコーポレーテッド 永続的な仮想環境の社会の健全性を監視するための装置
JP2007328461A (ja) 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
US8379723B2 (en) 2006-06-27 2013-02-19 Intel Corporation Chroma motion vector processing apparatus, system, and method
US7827425B2 (en) 2006-06-29 2010-11-02 Intel Corporation Method and apparatus to dynamically adjust resource power usage in a distributed system
US7836320B2 (en) 2006-07-07 2010-11-16 Arm Limited Power management in a data processing apparatus having a plurality of domains in which devices of the data processing apparatus can operate
TWI344793B (en) 2006-07-24 2011-07-01 Ind Tech Res Inst Power aware method and apparatus of video decoder on a multi-core platform
JP2008042566A (ja) 2006-08-07 2008-02-21 Toshiba Corp 情報処理装置および情報処理装置のデコード制御方法
JP2008067194A (ja) 2006-09-08 2008-03-21 Toshiba Corp フレーム補間回路、フレーム補間方法、表示装置
JP4775210B2 (ja) 2006-09-26 2011-09-21 株式会社日立製作所 画像信号処理装置、画像高解像度化方法、画像表示装置、記録再生装置
US9883202B2 (en) 2006-10-06 2018-01-30 Nxp Usa, Inc. Scaling video processing complexity based on power savings factor
US8126461B2 (en) 2006-11-01 2012-02-28 Snrlabs Corporation System, method, and computer-readable medium for user equipment managing multiple radio networks for handover and low-power operations
JP2008124646A (ja) 2006-11-09 2008-05-29 Orion Denki Kk ビデオデコーダ及び該ビデオデコーダを備えた携帯型デジタル放送受信機
JP4201809B2 (ja) 2006-11-13 2008-12-24 三洋電機株式会社 手ぶれ補正装置及び方法並びに撮像装置
US7961756B1 (en) 2006-11-21 2011-06-14 Picomobile Networks, Inc. Integrated multimedia system
US7941677B2 (en) 2007-01-05 2011-05-10 Avaya Inc. Apparatus and methods for managing power distribution over Ethernet
US8125936B2 (en) * 2007-03-08 2012-02-28 Marvell International Ltd. Low power data streaming
EP2135409B1 (en) 2007-03-13 2012-05-16 Marvell International Ltd. Optimized packet processing architecture for battery powered mobile communication device
KR100866230B1 (ko) 2007-04-12 2008-10-30 삼성전자주식회사 파노라마 사진 촬영 방법
US20080307240A1 (en) 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
JP2009033581A (ja) 2007-07-30 2009-02-12 Hitachi Ltd 画像信号記録再生装置
US8089557B2 (en) 2007-10-04 2012-01-03 Hitachi, Ltd. Video signal processing apparatus, video signal processing method and video display apparatus
US8279946B2 (en) * 2007-11-23 2012-10-02 Research In Motion Limited System and method for providing a variable frame rate and adaptive frame skipping on a mobile device
US7795752B2 (en) 2007-11-30 2010-09-14 Caterpillar Inc System and method for integrated power control
US8948822B2 (en) 2008-04-23 2015-02-03 Qualcomm Incorporated Coordinating power management functions in a multi-media device
US8165211B2 (en) 2008-05-30 2012-04-24 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus of de-interlacing video
US8908763B2 (en) 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
US20100011012A1 (en) 2008-07-09 2010-01-14 Rawson Andrew R Selective Compression Based on Data Type and Client Capability
US8159520B1 (en) 2008-07-11 2012-04-17 Sprint Communications Company L.P. Ensuring quality of a video stream through a telecommunications network
US8948270B2 (en) 2008-08-19 2015-02-03 Qualcomm Incorporated Power and computational load management techniques in video processing
US8964828B2 (en) * 2008-08-19 2015-02-24 Qualcomm Incorporated Power and computational load management techniques in video processing
US8181399B2 (en) 2009-07-17 2012-05-22 United Construction Products, Inc. Stability bracing of a support structure for elevating a building structure
CN101958140A (zh) 2009-07-20 2011-01-26 鸿富锦精密工业(深圳)有限公司 硬盘电源控制电路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040072030A (ko) * 2003-02-07 2004-08-16 세이코 엡슨 가부시키가이샤 전력 스케일러블 디지털 비디오 복호 방법

Also Published As

Publication number Publication date
JP5442736B2 (ja) 2014-03-12
US8964828B2 (en) 2015-02-24
KR20110055679A (ko) 2011-05-25
US20100046631A1 (en) 2010-02-25
TW201016007A (en) 2010-04-16
CN102124724A (zh) 2011-07-13
CN102124724B (zh) 2014-03-12
US20120054772A1 (en) 2012-03-01
WO2010022189A1 (en) 2010-02-25
JP2014041628A (ja) 2014-03-06
US9565467B2 (en) 2017-02-07
EP2327204A1 (en) 2011-06-01
JP5738950B2 (ja) 2015-06-24
JP2012500602A (ja) 2012-01-05

Similar Documents

Publication Publication Date Title
KR101248371B1 (ko) 비디오 프로세싱에서의 전력 및 연산 부하 관리 기술
US8948270B2 (en) Power and computational load management techniques in video processing
US11997313B2 (en) Dependent random access point pictures
TWI603609B (zh) 簡化視訊隨機存取之限制及單元類型
KR101944565B1 (ko) 비디오 인코딩 및 디코딩시의 레이턴시 저감 기법
US8804845B2 (en) Non-enhancing media redundancy coding for mitigating transmission impairments
CN105791841B (zh) 用于网络上视频数据的自适应流处理的方法、装置和系统
US9609329B2 (en) Dynamic voltage/frequency scaling for video processing using embedded complexity metrics
US9264658B2 (en) Implementing channel start and file seek for decoder
EP2589222B1 (en) Signaling video samples for trick mode video representations
US20100074341A1 (en) Method and system for multiple resolution video delivery
Slowack et al. Distributed video coding with feedback channel constraints
WO2016093752A1 (en) Stream access for adaptive streaming of video
US9516330B2 (en) Virtual field buffer based decoding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee