KR20160019104A - 저전력 비디오 압축 및 전송을 위한 기술 - Google Patents

저전력 비디오 압축 및 전송을 위한 기술 Download PDF

Info

Publication number
KR20160019104A
KR20160019104A KR1020167000598A KR20167000598A KR20160019104A KR 20160019104 A KR20160019104 A KR 20160019104A KR 1020167000598 A KR1020167000598 A KR 1020167000598A KR 20167000598 A KR20167000598 A KR 20167000598A KR 20160019104 A KR20160019104 A KR 20160019104A
Authority
KR
South Korea
Prior art keywords
frame
compressed
difference
current frame
frames
Prior art date
Application number
KR1020167000598A
Other languages
English (en)
Inventor
지웨이 잉
창리앙 왕
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20160019104A publication Critical patent/KR20160019104A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • G09G2320/103Detection of image changes, e.g. determination of an index representative of the image change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • G09G2330/023Power management, e.g. power saving using energy recovery or conservation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/16Determination of a pixel data signal depending on the signal applied in the previous frame
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Computing Systems (AREA)

Abstract

다양한 실시예는 일반적으로 인접한 프레임들 사이의 차이의 정도를 분석하고 차이의 정도에 따라 프레임당 압축 유형을 동적으로 선택함으로써 비디오를 압축하여 디스플레이 디바이스에 전송하는데 있어서 전력의 소비를 감소시키기 위한 기술에 관한 것이다. 비디오 프레임을 압축하기 위한 디바이스는 프로세서 구성요소, 일련의 프레임의 현재 프레임과 선행 인접 프레임 사이의 차이의 정도에 기초하여 일련의 프레임의 현재 프레임을 위한 압축 유형을 동적으로 선택하기 위해 프로세서 구성요소에 의한 실행을 위한 압축 선택기를 포함한다. 다른 실시예가 설명되고 청구된다.

Description

저전력 비디오 압축 및 전송을 위한 기술 {TECHNIQUES FOR LOW POWER VIDEO COMPRESSION AND TRANSMISSION}
관련 출원의 상호 참조
발명의 명칭이 "저전력 이미지 압축 및 표시를 위한 기술(TECHNIQUES FOR LOW POWER IMAGE COMPRESSION AND DISPLAY)"(대리인 문서 번호 P55778PCT)인 본 명세서에 명명된 발명자에 의해 본 출원과 동시에 출원된 요지 관련 출원을 주목한다.
기술분야
본 명세서에 설명된 실시예는 일반적으로 비디오 압축 및 전송에 있어서의 전력 소비를 감소하는 것에 관한 것이다.
시각적 제시를 위한 디스플레이 디바이스에 비디오를 전송하는데 있어서, 스위스 제네바의 국제 표준화 기구(International Organization for Standardization)에 의해 공표된 광범위하게 사용되는 동영상 전문가 그룹(Motion Picture Experts Group: MPEG)의 다양한 버전을 포함하는 다양한 형태의 비디오 압축이 통상적으로 이용된다. 불행하게도, 이러한 형태의 비디오 압축은 상당한 양의 전력을 소비하는 비디오의 각각의 전송된 프레임에 대한 프로세서 집약적(processor-intensive) 각종의 계산을 이용한다. 이는 전송이 이러한 계산을 수행하기 위해 전력을 위한 배터리에 의존하는 휴대형 컴퓨팅 디바이스로부터 나올 때 상당한 문제가 될 수 있다.
이들 계산은 전송된 비디오가 인접한 프레임들 사이의 비교적 많은 수의 화소를 가로질러 비교적 높은 변화율이 존재하는 모션 비디오(motion video)를 포함한다는 가정에 대부분 기초하여 안출되었다. 이러한 가정은 실세계 화상(imagery)의 캡처를 통해 생성된 전형적인 모션 비디오 내의 물체의 이동의 통계적으로 빈번한 발생으로부터 발생한다. 통상적으로 이러한 모션 비디오에서 발견되는 사람 및 물체의 이동, 뿐만 아니라 팬(pan) 및 줌(zoom) 카메라 모션은 인접한 프레임들 사이의 비교적 많은 수의 화소를 가로지르는 물체의 위치의 시프트를 야기한다. 따라서, 이들 계산은 프레임들 사이의 화소의 비교적 큰 목(Mock)에 대한 화소 컬러값의 이동의 방향 및 범위의 수학적으로 유도된 지시를 포함한다.
이러한 이동의 상당한 인스턴스의 이들 예측이 매우 강하므로, 이들 계산의 적어도 일부는 임의의 이동이 발생되었는지 여부에 관련하지 않고 모든 프레임에 대해 수행된다. 실제로, 이들 계산의 적어도 일부는 정확하게 동일한 이미지를 묘사하는 프레임의 연속체가 존재하는 경우에도 모든 프레임에 대해 수행된다. 이러한 것은 모션 비디오에 대해 적절할 수도 있지만, 결과는 비교적 적은 변화가 발생하거나 또는 어떠한 변화도 발생하지 않은 통상적으로 비교적 장시간 기간이 존재하는 사용자 인터페이스의 비디오 및/또는 다른 컴퓨터 생성된 화상을 전달할 때 전력의 상당한 소비를 초래한다.
도 1은 비디오 제시 시스템의 비디오를 도시한다.
도 2는 비디오 제시 시스템의 대안 실시예를 도시한다.
도 3은 모션 비디오를 포함하는 2개의 인접한 프레임 사이의 차이의 정도를 도시한다.
도 4는 모션 비디오를 포함하지 않는 2개의 인접한 프레임 사이의 차이의 정도를 도시한다.
도 5 내지 도 6은 실시예의 부분을 각각 도시한다.
도 7 내지 도 9는 실시예에 따른 논리 흐름을 각각 도시한다.
도 10은 실시예에 따른 프로세싱 아키텍처를 도시한다.
도 11은 그래픽 프로세싱 시스템의 다른 대안 실시예를 도시한다.
도 12는 디바이스의 실시예를 도시한다.
다양한 실시예는 일반적으로 인접한 프레임들 사이의 차이의 정도를 분석하고 차이의 정도에 따라 프레임당 압축 유형을 동적으로 선택함으로써 비디오를 압축하여 디스플레이 디바이스에 전송하는데 있어서 전력의 소비를 감소시키기 위한 기술에 관한 것이다. 인접한 프레임들 사이의 비교적 높은 차이의 정도는 전력의 더 높은 소비를 필요로 하는 1차 압축 유형이 적절하도록 모션 비디오의 포함을 지시하기 위해 고려될 수 있다. 인접한 프레임들 사이의 비교적 낮은 차이의 정도는 전력의 더 적은 소비를 필요로 하는 2차 압축 유형이 적절하도록 모션 비디오의 포함의 결여를 지시하기 위해 고려될 수 있다.
몇몇 실시예에서, MPEG의 버전이 1차 압축 유형으로서 이용될 수 있다. 이러한 실시예에서, 임의의 다른 프레임과 연계된 데이터의 참조 없이 전체 프레임을 기술하기 위한 데이터를 구비하는 적어도 인트라-프레임(I-프레임)은 비교적 높은 정도로 선행 인접 프레임과는 상이한 현재 프레임에 응답하여 전송된다. 또한, 적어도 하나의 모션 벡터를 포함하는 방식으로 현재 프레임이 어떻게 하나 이상의 다른 프레임과 상이한지를 기술하기 위한 데이터를 구비하는 예측된 프레임(P-프레임) 및/또는 양예측된(bi-predicted) 프레임(B-프레임)이 또한 전송될 수 있다. I-프레임, P-프레임 및/또는 B-프레임의 생성시에, 이산 코사인 변환(discrete cosine transform: DCT), 양자화, 모션 보상 및 다른 프로세서 집약적 계산이 MPEG의 분야의 숙련자들에게 친숙한 바와 같이 이용될 수 있다.
몇몇 실시예에서, 인접한 프레임들 사이의 화소 컬러값의 감산에 실질적으로 기초하는 더 간단한 코딩 기술이 2차 압축 유형으로서 이용될 수 있다. 이러한 실시예에서, 현재 프레임의 화소값이 어떻게 그 선행 인접 프레임의 화소값과 상이한지를 기술하기 위한 데이터를 구비하는 잔류 프레임(R-프레임)이 비교적 낮은 이러한 차이의 정도에 응답하여 전송된다. MPEG으로서 이러한 압축 유형에 비교하여, K-프레임을 유도하기 위한 이러한 감산은 프로세서 구성요소를 증강하는 회로로 구현된 비교적 간단한 감산 논리에 의해 또는 프로세서 구성요소에 의해 비교적 고속으로 수행될 수 있는 매우 더 간단한 계산을 이용한다. 따라서, 이러한 화소간 감산은 실질적으로 덜 프로세서 집약적이고, 이에 의해 MPEG과 연계된 계산보다 프로세서 구성요소에 의해 실질적으로 적은 전력이 소비되도록 요구한다.
R-프레임이 인접한 프레임들 사이의 비교적 낮은 차이의 정도가 존재하는 것에 응답하여 생성되면, R-프레임은 적어도 I-프레임보다 더 작은 데이터 크기를 갖고, P-프레임 및/또는 B-프레임보다 더 작은 일자 데이터 크기를 가질 수 있다. 그 결과, R-프레임은 적은 전력이 발생되도록 요구하는 것에 추가하여, 적은 전력이 디스플레이 디바이스에 전송되는 것을 요구한다. 전송된 각각의 프레임에 대한 프레임의 유형을 지시하여, 이에 의해 전송된 각각의 프레임을 발생하도록 이용되는 압축 유형을 지시하는 프레임당 신호가 또한 디스플레이 디바이스에 전송될 수 있다.
몇몇 실시예에서, 디스플레이 디바이스는 차이가 결여되어 있거나 또는 무시할 수 있는 것으로 간주되는 차이의 정도를 갖는 그 선행 프레임과 프레임 사이의 차이의 정도에 응답하여 이전의 전송된 프레임의 시각적 제시를 반복하도록 시그널링될 수 있다. 이는 적어도 현재 프레임 및 그 사이에 더 큰 차이의 정도를 갖는 그 선행 인접 프레임의 인스턴스가 만나게 될 때까지, 압축된 프레임을 디스플레이 디바이스에 전송하는데 이용된 인터페이스의 전송 구성요소로부터 전력의 순간적인 제거를 가능하게 할 수 있다.
본 명세서에 사용된 표기법 및 명명법을 일반적으로 참조하여, 이어지는 상세한 설명의 부분은 컴퓨터 또는 컴퓨터의 네트워크 상에서 실행되는 프로그램 절차의 견지에서 제시될 수 있다. 이들 절차적 설명 및 표현은 다른 숙련자들에게 이들의 작업의 실체를 가장 효과적으로 전달하기 위해 당 기술 분야의 숙련자에 의해 사용된다. 절차는 여기서 그리고 일반적으로, 원하는 결과를 유도하는 동작의 자기 일관성 시퀀스인 것으로 고려된다. 이들 동작은 물리량의 물리적 조작을 필요로 하는 것들이다. 일반적으로, 필수적인 것은 아니지만, 이들 양은 저장되고, 전송되고, 조합되고, 비교되고, 그리고 다른 방식으로 조작되는 것이 가능한 전기, 자기 또는 광학 신호의 형태를 취한다. 원리적으로 공통 사용의 이유로, 이들 신호를 비트, 값, 요소, 기호, 문자, 항, 숫자 등으로서 칭하는 것이 때때로 편리한 것으로 입증되었다. 그러나, 이들 및 유사한 용어의 모두는 적절한 물리량과 연계되어야 하고, 단지 이들 양에 인가된 편리한 라벨인 것이 주목되어야 한다.
또한, 이들 조작은 인간 조작자에 의해 수행된 정신 동작(mental operation)과 통상적으로 연계되는 추가 또는 비교와 같은 용어를 종종 참조한다. 그러나, 인간 조작자의 어떠한 이러한 능력도, 하나 이상의 실시예의 부분을 형성하는 본 명세서에 설명된 동작의 임의의 하나에서, 대부분의 경우에 필수적이거나 요구되지 않는다. 오히려, 이들 동작은 머신 동작이다. 다양한 실시예의 동작을 수행하기 위한 유용한 머신은 본 명세서의 교시에 따라 기록된 것 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 구성되는 바와 같은 범용 디지털 컴퓨터를 포함하고 그리고/또는 요구된 목적을 위해 특정하게 구성된 장치를 포함한다. 다양한 실시예는 또한 이들 동작을 수행하기 위한 장치 또는 시스템에 관한 것이다. 이들 장치는 요구된 목적으로 특정하게 구성될 수 있고 또는 범용 컴퓨터를 포함할 수 있다. 다양한 이들 머신을 위한 요구된 구조는 제공된 설명으로부터 명백할 것이다.
이제, 유사한 도면 부호가 전체에 걸쳐 유사한 요소를 나타내는데 사용되고 있는 도면을 참조한다. 이하의 설명에서, 설명의 목적으로, 특정 상세가 그 철저한 이해를 제공하기 위해 설명된다. 그러나, 신규한 실시예는 이들 특정 상세 없이 실시될 수 있다는 것이 명백할 수 있다. 다른 경우에, 공지의 구조체 및 디바이스는 그 설명을 용이하게 하기 위해 블록 다이어그램 형태로 도시되어 있다. 의도는 청구범위의 범주 내의 모든 수정, 등가물 및 대안을 커버하는 것이다.
도 1은 소스 디바이스(100), 컴퓨팅 디바이스(300) 및 디스플레이 디바이스(600) 중 하나 이상을 구비하는 비디오 제시 시스템(1000)의 실시예의 블록 다이어그램을 도시한다. 비디오 제시 시스템(1000)에서, 시각적 화상(880)을 표현하는 프레임은 컴퓨팅 디바이스(300)에 의해 압축되고, 이어서 디스플레이(680) 상에 시각적으로 제시되도록 디스플레이 디바이스(600)에 전송된다. 이들 컴퓨팅 디바이스의 각각은 데스크탑 컴퓨터, 데이터 입력 단말, 랩탑 컴퓨터, 넷북 컴퓨터, 태블릿 컴퓨터, 핸드헬드 개인 휴대 정보 단말(handheld personal data assistant), 스마트폰, 디지털 카메라, 의류 내에 합체된 신체 착용식 컴퓨팅 디바이스, 차량(예를 들어, 자동차, 자전거, 휠체어 등) 내에 일체화된 컴퓨팅 디바이스, 서버, 서버의 클러스터, 서버팜 등을 비한정적으로 포함하는 임의의 다양한 유형의 컴퓨팅 디바이스일 수 있다.
도시된 바와 같이, 이들 컴퓨팅 디바이스(100, 300, 600)는 시각적 화상 및/또는 관련 데이터를 표현하는 압축된 프레임을 네트워크(999)를 통해 전달하는 신호를 교환한다. 그러나, 이들 컴퓨팅 디바이스 중 하나 이상은 시각적 화상에 완전히 비관련된 다른 데이터를 서로 그리고/또는 또 다른 컴퓨팅 디바이스(도시 생략)와 네트워크(999)를 거쳐 교환할 수 있다. 다양한 실시예에서, 네트워크는 단일 빌딩 또는 다른 비교적 제한된 영역 내에서 확장에 제한될 수 있는 단일의 네트워크, 상당한 거리 확장될 수 있는 접속된 네트워크의 조합일 수 있고, 그리고/또는 인터넷을 포함할 수 있다. 따라서, 네트워크(999)는 전기적 및/또는 광학적 전도성 케이블링을 이용하는 유선 기술, 및 적외선, 무선 주파수 또는 다른 형태의 무선 전송을 이용하는 무선 기술을 비한정적으로 포함하는, 신호가 교환될 수 있는 임의의 다양한(또는 조합) 통신 기술에 기초할 수 있다.
다양한 실시예에서, 소스 디바이스(100)(존재하면)는 소스 데이터(130)의 시각적 화상의 프레임을 컴퓨팅 디바이스(300)에 제공하기 위해 소스 디바이스(100)를 컴퓨팅 디바이스(300)에 결합하기 위한 인터페이스(190)를 구비한다. 도시된 바와 같이, 인터페이스(190)는 컴퓨팅 디바이스(300)를 디스플레이 디바이스(500)에 결합하는 것과 동일한 네트워크(999)를 통해 소스 디바이스(100)를 컴퓨팅 디바이스(300)에 결합할 수 있다. 그러나, 다른 실시예에서, 소스 디바이스(100)는 완전히 상이한 방식으로 컴퓨팅 디바이스(300)에 결합될 수 있다. 프레임은 물체가 이들 프레임의 적어도 몇몇 인접한 것들 사이의 비교적 높은 차이의 정도를 발생하는 방식으로 이동하는 모션을 합체할 수도 있다. 프레임은 당 기술 분야의 숙련자들에게 친숙한 임의의 다양한 압축 기술을 이용하는 압축 형태로 컴퓨팅 디바이스(300)에 제공될 수 있다.
다양한 실시예에서, 컴퓨팅 디바이스(300)는 프로세서 구성요소(350), 저장 장치(360), 콘트롤러(400) 및 컴퓨팅 디바이스(300)를 네트워크(999)에 결합하기 위한 인터페이스(390) 중 하나 이상을 구비한다. 저장 장치(360)는 소스 데이터(130)와 제어 루틴(340) 중 하나 이상을 저장한다. 콘트롤러(400)는 프로세서 구성요소(450), 저장 장치(460) 및 프레임 감산기(470) 중 하나 이상을 구비한다. 저장 장치(460)는 로컬 버퍼 데이터(330), 압축된 버퍼 데이터(430), 임계 데이터(435) 및 제어 루틴(440) 중 하나 이상을 저장한다.
제어 루틴(340)은 다양한 기능을 수행하기 위한 로직을 구현하기 위해 컴퓨팅 디바이스(300)의 메인 프로세서 구성요소로서 그 역할 하에서 프로세서 구성요소(350) 상에서 동작하는 명령어의 시퀀스를 구비한다. 몇몇 실시예에서 제어 루틴(340)을 실행할 때, 프로세서 구성요소(350)는 소스 디바이스(100)로부터 소스 데이터(130)의 시각적 화상(880)의 프레임을 수신하고, 적어도 그 부분집합을 저장 장치(360)에 저장할 수 있다. 소스 데이터(130)는 시각적 제시를 위한 디스플레이 디바이스(600)로의 압축된 형태의 그 프레임의 전송을 포함하는, 임의의 사용이 행해지기 전에 상당한 시간 동안 저장 장치(360)에 저장될 수도 있다는 것이 주목되어야 한다. 이들 프레임이 압축된 형태로 수신되는 경우에, 프로세서 구성요소(350)는 이들의 압축해제할 수 있다. 프로세서 구성요소(350)는 이어서 디스플레이(680) 상에 시각적으로 제시되도록 시각적 화상(880)의 프레임의 적어도 일부로서 로컬 버퍼 데이터(330) 내의 콘트롤러(400)에 이들 프레임을 제공한다.
대안적으로, 다른 실시예에서 제어 루틴(340)을 실행할 때, 프로세서 구성요소(350)는 메뉴, 데이터의 시각적 표현, 포인터의 현재 위치의 시각적 표현 등을 포함할 수 있는 사용자 인터페이스의 시각부를 생성한다. 이러한 사용자 인터페이스의 시각부는 컴퓨팅 디바이스(300)의 운영 체제 및/또는 프로세서 구성요소(350)에 의해 실행된 애플리케이션 루틴(도시 생략)과 연계될 수 있다. 프로세서 구성요소(350)는 적어도 시각적 화상(880)의 부분으로서 디스플레이(680) 상에 시각적으로 제시되도록 로컬 버퍼 데이터(330) 내의 콘트롤러(400)에 사용자 인터페이스의 시각부를 표현하는 데이터를 제공한다.
제어 루틴(440)은 다양한 기능을 수행하기 위한 로직을 구현하기 위해 컴퓨팅 디바이스(300)의 콘트롤러(400)의 콘트롤러 프로세서 구성요소로서 그 역할 하에서 프로세서 구성요소(450) 상에서 동작하는 명령어의 시퀀스를 구비한다. 그래픽 루틴(440)을 실행할 때, 프로세서 구성요소(450)는 로컬 버퍼 데이터(330)로서 저장된 시각적 화상(880)의 프레임을 압축하여, 이들 프레임의 압축된 버전을 생성하고 압축된 버퍼 데이터(430)의 부분으로서 이들 압축된 프레임을 저장한다. 프로세서 회로(450)는 이어서 네트워크(999)를 거쳐 디스플레이 디바이스(600)에 전송하기 전에 이들 압축된 프레임을 암호화할 수 있다.
설명된 바와 같이, 프로세서 구성요소(350)에 의해 로컬 버퍼(330)에 저장된 시각적 화상(880)의 프레임은 모션 비디오(예를 들어, 소스 디바이스(100)로부터의 소스 데이터(130)) 및/또는 사용자 인터페이스의 시각부(예를 들어, 프로세서 구성요소(350)에 의해 생성된 사용자 인터페이스의 시각부)를 포함할 수 있다. 이들 프레임이 모션 비디오를 포함하는 경우에, 이러한 프레임은 프로세서 구성요소(350)에 의해 로컬 버퍼 데이터(330)의 적어도 일부로서 저장 장치(460) 내에 직접 저장될 수 있는 것으로 고려된다. 이들 프레임이 사용자 인터페이스의 시각부를 포함하는 경우에, 이러한 프레임은 규칙적인 간격으로 프로세서 구성요소(350)에 의해 생성된 사용자 인터페이스의 시각부의 상태를 반복적으로 캡처함으로써 프로세서 구성요소(450)에 의해 생성될 수 있다. 이러한 규칙적인 간격은 시각적 화상(880)이 디스플레이(680) 상에 시각적으로 제시되는 리프레시율(refresh rate)과 연계될 수 있다.
시각적 화상(880)의 프레임이 로컬 버퍼 데이터(330)에 제공되고 그리고/또는 생성되는 방식에 무관하게, 현재 프레임의 각각의 화소의 컬러값은 선행 인접 프레임(현재 프레임에 바로 선행하는 프레임)의 각각의 대응 화소의 컬러값으로부터 감산되고, 또는 그 반대도 마찬가지이다. 이 감산은 그 사이의 화소 컬러값의 임의의 차이를 지시하는 차이 프레임을 생성한다. 몇몇 실시예에서, 이러한 감산은 이러한 감산의 고속의 성능을 가능하게 하기 위해 디지털 회로로 구현된 프레임 감산기(470)에 의해 수행될 수 있다. 다른 실시예에서, 이러한 감산은 프로세서 구성요소(450)에 의해 수행되도록 제어 루틴(440)에 의해 발생될 수 있다.
몇몇 실시예에서, 차이 프레임의 화소 컬러값은 현재 프레임과 선행 인접 프레임 사이의 차이의 정도를 결정하도록 직접 분석된다. 다른 실시예에서, 차이 프레임은 잔류 프레임(R-프레임)을 생성하도록 2차 압축 유형을 사용하여 압축되고, R-프레임의 데이터 크기(예를 들어, 비트 또는 바이트의 수로서 측정된 바와 같은)가 차이의 정도를 결정하는데 사용된다. 차이의 정도가 결정되는 방식과 무관하게 이 차이의 정도는 임계 데이터(435) 내에 지정된 차이의 정도의 적어도 제 1 임계치에 비교된다.
몇몇 실시예에서, 차이의 정도가 제 1 임계치보다 작으면, R-프레임은 디스플레이 디바이스(600)에 전송되고, 이에 의해 선행 인접 프레임(예를 들어, 디스플레이 디바이스(600)에 전송된 최종 프레임)으로부터 그 화소의 컬러값의 차이로서 디스플레이 디바이스(600)에 현재 프레임을 전달한다. 그러나, 차이의 정도가 제 1 임계치보다 작지 않으면, 현재 프레임은 디스플레이 디바이스(600)에 전송된 압축된 프레임을 생성하기 위해 1차 압축 유형을 사용하여 압축된다. 1차 압축 유형이 MPEG의 버전인 경우에, 1차 압축 유형에 의해 생성된 프레임의 유형은 I-프레임, P-프레임 또는 B-프레임일 수 있다. 또한, 1차 압축 유형이 MPEG의 버전인 경우에, 2차 압축 유형은 허프만 코딩(Huffman coding)일 수 있다. 더 상세히 설명되는 바와 같이, 1차 압축 유형의 로직의 허프만 코딩부는 또한 2차 압축 유형을 수행하는데 사용될 수 있다.
다른 실시예에서, 1차 압축 유형이 MPEG의 버전인 경우에, 차이의 정도는 또한 차이의 정도의 제 2 상위 임계치에 비교될 수 있다. 제 1 임계치로의 비교의 결과가 1차 또는 2차 압축 유형이 사용되었는지 여부를 판정할 수 있는 반면에, 제 2 임계치로의 결과는 I-프레임 또는 P-프레임 또는 B-프레임 중 하나가 1차 압축 유형에 의해 생성되었는지 여부를 판정할 수 있다.
어떠한 압축 유형이 선택되었는지에 무관하게, 프로세서 구성요소(450)는 어느 압축 유형이 디스플레이 디바이스(600)에 전송된 압축된 프레임을 생성하기 위해 이들 프레임의 각각을 압축하는데 사용되었는지의 지시에 의해 디스플레이 디바이스(600)에 신호하기 위해 제어 루틴(440)의 실행에 의해 야기될 수 있다. 몇몇 실시예에서, 이러한 선택의 지시는 전송되는 각각의 압축된 프레임의 전송에 임베드될 수 있다.
전술된 바와 같이, 모션 비디오를 포함하는 시각적 화상은 모션 비디오를 포함하지 않는 시각적 화상보다 비교적 더 높은 인접 프레임들 사이의 차이의 정도를 생성하는데 적절하다. 도 3은 모션 비디오가 포함되는 시각적 화상(880)의 예의 인접 프레임들 사이의 차이의 정도를 도시한다. 일 인접 프레임으로부터 다른 인접 프레임으로의 전이부에서 볼 수 있는 바와 같이, 서있는 나무들 및 주위 지형이 위치를 시프트하게 되는 모션 비디오 카메라에 의해 캡처된 모션 비디오(881)의 패닝(panning)이 있다. 또한 볼 수 있는 바와 같이, 서있는 나무들 및 주위 지형의 시각적 제시는 상당히 많은 수의 시각적 화상(880)을 점유하여 패닝에 기인하는 이들 물체의 시프트가 상당히 많은 수의 화소의 상태를 변화하게 한다. 그 결과, 이들 2개의 인접한 프레임 사이의 대응 화소 컬러값의 감산이 그 사이에 높은 차이의 정도를 드러내는 차이 프레임을 생성할 것인 가능성이 있다. 이어서, 1차 압축 유형(예를 들어, MPEG의 버전)은 동적으로 선택되는 경향이 있을 것인 가능성이 있다. 그러나, 2개 이상의 인접 프레임의 기간 전체에 걸쳐 이동이 거의 없거나 또는 전혀 없는 인스턴스가 여전히 제 2 압축 유형(예를 들어, 허프만 코딩)의 선택을 야기할 수 있다는 것이 이해되어야 한다.
도 4는 모션 비디오가 포함되지 않은 시각적 화상(880)의 다른 예의 인접 프레임들 사이의 차이의 정도를 도시한다. 도 3의 예에 대조적으로, 도 4의 예의 시각적 화상(880)은 예시적인 이메일 텍스트 편집 애플리케이션의 사용자 인터페이스의 시각부에 실질적으로 점유된다. 일 인접 프레임으로부터 다른 인접 프레임으로의 전이부에서 볼 수 있는 바와 같이, 도시된 이메일의 텍스트 라인의 타이핑은 예로서 단어 "lessons"의 입력의 부분으로서 문자 "less"에 문자 "on"을 추가하는 한 단지 진행한다. 또한 볼 수 있는 바와 같이, 일 인접 프레임으로부터 다른 인접 프레임으로의 이 진행에 있어서 2개의 텍스트 문자의 이 추가는 묘사되어 있는 모든 나머지가 불변 유지되기 때문에 비교적 적은 화소에 영향을 미친다. 디스플레이에 대한 프레임 레이트가 통상적으로 초당 60 내지 75 프레임이면, 단지 비교적 낮은 변화의 정도만이 많은 시간 중에 인접 프레임들 사이에서 예측되고, 사용자 인터페이스의 시각부는 얼마나 빨리 텍스트 또는 다른 입력이 컴퓨팅 디바이스(300)에 제공될 수 있는지에 대한 생체머신적 한계가 존재하는 것으로서 시각적으로 제시되는 것으로 고려된다. 실제로, 컴퓨팅 디바이스(300)의 조작자가 텍스트를 숙독하거나 또는 사용자 인터페이스의 시각부를 뷰잉하기 위해 입력을 제공하는 것을 중단하는 경우에, 상당한 수의 연속적인 인접 프레임이 이들 사이에 어떠한 차이도 갖지 않을 수 있는 가능성이 있는 것으로서 고려된다. 이어서, 2차 압축 유형이 동적으로 선택되는 경향이 있을 것인 가능성이 있다. 그러나, 인접 프레임 사이의 비교적 높은 변화의 정도(예를 들어, 애플리케이션의 열림 또는 닫힘, 문서의 페이지의 변경 등)가 존재하는 인스턴스가 여전히 제 1 압축 유형의 선택을 야기할 수 있다는 것이 이해되어야 한다.
도 1을 참조하면, 다양한 실시예에서, 컴퓨팅 디바이스(600)는 프로세싱 구성요소(650), 저장 장치(660), 디스플레이(680) 및 컴퓨팅 디바이스(600)를 네트워크(999)에 결합하기 위한 인터페이스(690) 중 하나 이상을 구비한다. 저장 장치(660)는 압축된 버퍼 데이터(430), 제어 루틴(640), 비압축된 버퍼 데이터(630) 및 압축 유형 데이터(635) 중 하나 이상을 저장한다.
따라서, 제어 루틴(640)은 다양한 기능을 수행하기 위해 로직을 구현하기 위한 프로세서 구성요소(650) 상에 동작하는 명령어의 시퀀스를 구비한다. 제어 루틴(640)을 실행할 때, 프로세서 구성요소(650)는 컴퓨팅 디바이스(300)로부터 압축된 버퍼 데이터(430)의 압축된 프레임을 수신하고, 적어도 그 부분집합을 저장 장치(660)에 저장한다. 프로세서 구성요소(650)는 또한 압축된 버퍼 데이터(430)의 압축된 프레임의 각각을 압축하는데 이용되는 압축 유형의 지시를 수신하고, 이들 지시를 압축 유형 데이터(635)로서 저장한다. 프로세서 구성요소(650)는 각각의 압축된 프레임에 대해 지시된 압축 유형에 대응하는 어떠한 압축 유형을 사용해서라도 압축된 버퍼 데이터(430)의 압축된 프레임의 각각을 압축해제하고, 결과적인 압축해제된 프레임을 비압축된 버퍼 데이터(630)로서 저장한다. 프로세서 구성요소(650)는 이어서 디스플레이(680) 상에 비압축된 버퍼 데이터(630)의 비압축된 프레임의 각각을 시각적으로 제시하고, 이에 의해 시각적 화상(880)을 그 위에 시각적으로 제시한다.
컴퓨팅 디바이스(300)로부터 디스플레이 디바이스(600)에 전달된 압축된 프레임은 암호화될 뿐만 아니라 압축될 수 있다는 것이 또한 주목되어야 한다. 따라서, 콘트롤러(400)는 디스플레이 디바이스(600)에 전송하기 전에 압축된 버퍼 데이터(430)의 압축된 프레임의 각각을 부가적으로 암호화할 수 있고, 프로세서 구성요소(650)는 이들 프레임을 수신한 후에 이들 프레임의 각각을 복호화할 수 있다.
도 2는 컴퓨팅 디바이스(300)의 대안 실시예를 포함하는 비디오 제시 시스템(1000)의 대안 실시예의 블록 다이어그램을 도시한다. 도 2의 비디오 제시 시스템(1000)의 대안 실시예는 다수의 방식으로 도 1의 실시예에 유사하고, 따라서 유사한 도면 부호가 전체에 걸쳐 유사한 요소를 나타내는데 사용된다. 그러나, 도 1의 컴퓨팅 디바이스(300)와는 달리, 도 2의 컴퓨팅 디바이스(300)는 콘트롤러(400)를 구비하지 않는다. 또한 도 1의 컴퓨팅 디바이스(300)와는 달리, 도 2의 컴퓨팅 디바이스(300)에서, 프로세서 구성요소(450)가 이와 같이 행하는 대신에 제어 루틴(440)을 실행하는 것은 프로세서 구성요소(350)이다. 따라서, 도 2의 비디오 제시 시스템(1000)의 대안 실시예에서, 프로세서 구성요소(350)는 이들 프레임을 수신하거나 생성하는 것에 추가하여, 시각적 화상(880)을 압축하여 전송할 수 있다.
다양한 실시예에서, 각각의 프로세서 구성요소(350, 450, 650)는 임의의 광범위한 상업적으로 입수가능한 프로세서를 포함할 수 있다. 또한, 이들 프로세서 구성요소의 하나 이상은 다수의 프로세서, 멀티스레드 프로세서, 멀티코어 프로세서(다수의 코어가 동일한 또는 개별 다이 상에 공존하건간에), 및/또는 다수의 물리적으로 개별 프로세서가 소정의 방식으로 링크되는 소정의 다른 다양성의 멀티프로세서 아키텍처를 포함할 수 있다.
각각의 프로세서 구성요소(350, 450, 650)는 임의의 다양한 유형의 프로세서를 포함할 수 있지만, 콘트롤러(400)의 프로세서 구성요소(450)(존재하면)는 그래픽 및/또는 비디오 관련된 작업을 수행하도록 다소 특정화되고 그리고/또는 최적화될 수 있는 것으로 고려된다. 더 광범위하게, 콘트롤러(400)는 프로세서 구성요소(350)로부터 개별이고 별개인 구성요소 및 그 더 밀접하게 관련된 구성요소를 사용하여, 그래픽 렌더링, 비디오 압축, 이미지 리스케일링 등에 관련된 작업의 수행을 가능하게 하기 위해 컴퓨팅 디바이스(300)의 그래픽 서브시스템을 구체화하는 것으로 고려된다.
다양한 실시예에서, 각각의 저장 장치(360, 460, 660)는 임의의 광범위한 정보 저장 장치 기술에 기초할 수 있다. 이러한 기술은 이동식일 수도 있고 아닐 수도 있는 머신 판독가능 저장 매체의 사용을 수반하는 전력 및/또는 기술의 방해받지 않은 제공을 필요로 하는 휘발성 기술을 포함할 수 있다. 따라서, 각각의 이들 저장 장치는 판독 전용 메모리(read-only memory: ROM), 랜덤 액세스 메모리(random-access memory: RAM), 동적 RAM(dynamic RAM: DRAM), 더블-데이터-레이트 DRAM(Double-Data-Rate DRAM: DDR DRAM), 동기식 DRAM(synchronous DRAM: SDRAM), 정적 RAM(static RAM: SRAM), 프로그램가능 ROM(programmable ROM: PROM), 소거가능 프로그램가능 ROM(erasable programmable ROM: EPROM), 전기적 소거가능한 프로그램가능 ROM(electrically erasable programmable ROM: EEPROM), 플래시 메모리, 폴리머 메모리(예를 들어, 강자성 폴리머 메모리), 오보닉 메모리(ovonic memory), 상변화 또는 강유전성 메모리, 실리콘-산화물-질화물-산화물-실리콘(silicon-oxide-nitride-oxide-silicon: SONOS) 메모리, 자기 또는 광학 카드, 하나 이상의 개별 강자성 디스크 드라이브, 또는 하나 이상의 어레이 내로 편성된 복수의 저장 디바이스(예를 들어, 독립 디스크 어레이의 리던던트 어레이(Redundant Array of Independent Disks array) 또는 RAID 어레이 내로 편성된 다수의 강자성 디스크 드라이브)를 비한정적으로 포함하는 임의의 광범위한 유형(또는 유형의 조합)의 저장 디바이스를 포함할 수 있다. 각각의 이들 저장 장치는 단일의 블록으로서 도시되어 있지만, 이들 중 하나 이상은 상이한 저장 기술에 기초할 수 있는 다수의 저장 디바이스를 포함할 수 있는 것이 주목되어야 한다. 따라서, 예를 들어, 이들 도시된 저장 장치의 각각 중 하나 이상은 프로그램 및/또는 데이터가 소정 형태의 머신 판독가능 저장 매체 상에 저장되고 전달될 수 있는 광학 드라이브 또는 플래시 메모리 카드 리더의 조합, 비교적 연장된 기간 동안 로컬하게 프로그램 및/또는 데이터를 저장하기 위한 강자성 디스크 드라이브, 및 프로그램 및/또는 데이터로의 비교적 신속한 액세스를 가능하게 하는 하나 이상의 휘발성 고체 상태 메모리 디바이스(예를 들어 SRAM 또는 DRAM)를 표현할 수 있다. 각각의 이들 저장 장치는 동일한 저장 기술에 기초하여 다수의 저장 구성요소로 구성될 수 있지만, 이는 사용시에 특정화의 결과로서 개별적으로 유지될 수 있다는 것이 또한 주목되어야 한다(예를 들어, 소정의 DRAM 디바이스는 메인 저장 장치로서 이용되고, 반면에 다른 DRAM 디바이스는 그래픽 콘트롤러의 별개의 프레임 버퍼로서 이용됨).
다양한 실시예에서, 인터페이스(190, 390, 690)는 설명된 바와 같이 이들 컴퓨팅 디바이스가 다른 디바이스에 결합되는 것을 가능하게 하는 임의의 광범위한 시그널링 기술을 이용할 수 있다. 각각의 이들 인터페이스는 이러한 결합을 가능하게 하기 위한 적어도 소정의 필수 기능성을 제공하는 회로를 포함한다. 그러나, 이들 인터페이스의 각각은 또한 프로세서 구성요소의 대응하는 것들에 의해 실행된 명령어의 시퀀스로 적어도 부분적으로 구현될 수 있다(예를 들어, 프로토콜 스택 또는 다른 특징부를 구현하기 위해). 전기적 그리고/또는 광학적 전도성 케이블링이 이용되는 경우에, 이들 인터페이스는 RS-232C, RS-422, USB, 이더넷(IEEE-802.3) 또는 IEEE 1394를 비한정적으로 포함하는 임의의 광범위한 다양한 산업 표준에 합치하는 시그널링 및/또는 프로토콜을 이용할 수 있다. 무선 신호 전송의 사용이 수반되는 경우에, 이들 인터페이스는 IEEE 802.11a, 802.11b, 802.11g, 802.16, 802.20(통상적으로 "모바일 광대역 무선 액세스(Mobile Broadband Wireless Access"라 칭함); 블루투스; 지그비(ZigBee); 또는 범용 패킷 무선 통신 서비스(General Packet Radio Service)를 갖는 GSM(GSM/GPRS), CDMA/1xRTT, 글로벌 진화를 위한 향상된 데이터 레이트(Enhanced Data Rates for Global Evolution: EDGE), 진화 데이터 온리/최적화(Evolution Data Only/Optimized: EV-DO), 데이터 및 음성을 위한 진화(Evolution For Data and Voice: EV-DV), 고속 하향링크 패킷 액세스(High Speed Downlink Packet Access: HSDPA), 고속 상향링크 패킷 액세스(High Speed Uplink Packet Access: HSUPA), 4G LTE 등과 같은 셀룰러 무선전화 서비스를 비한정적으로 포함하는 임의의 다양한 산업 표준에 합치하는 시그널링 및/또는 프로토콜을 이용할 수 있다.
도 5 및 도 6은 도 1의 비디오 제시 시스템(1000)의 실시예의 부분의 블록 다이어그램을 더 상세히 각각 도시하고 있다. 더 구체적으로, 도 5는 제어 루틴(440)을 실행할 때 프로세서 구성요소(350 또는 450)가 시각적 화상(880)의 프레임을 압축하고 전송하는 컴퓨팅 디바이스(300)의 동작 환경의 양태를 도시하고 있다. 도 6은 프로세서 구성요소(650)가 제어 루틴(640)을 실행할 때 이들 프레임을 압축하여 디스플레이(680) 상에 시각적으로 제시하는 디스플레이 디바이스(600)의 동작 환경의 양태를 도시한다. 당 기술 분야의 숙련자들에게 인식 가능한 바와 같이, 그 각각이 구성되는 구성요소를 포함하는 제어 루틴(440, 640)은 프로세서 구성요소(350, 450 또는 650)의 적용가능한 것들을 구현하도록 선택되는 어떠한 유형의 프로세서 또는 프로세서들에서도 동작하도록 선택된다.
다양한 실시예에서, 각각의 제어 루틴(340, 440, 640)은 운영 체제, 디바이스 드라이버 및/또는 애플리케이션 레벨 루틴(예를 들어, 소위 디스크 매체 상에 제공된 "소프트웨어 스위트(suite)", 원격 서버로부터 얻어진 "애플릿(applet)" 등)을 포함할 수 있다. 운영 체제가 포함되는 경우에, 운영 체제는 프로세서 구성요소(350, 450 또는 650)의 대응하는 것들의 어떠한 것에도 적절한 임의의 다양한 이용가능한 운영 체제일 수 있다. 하나 이상의 디바이스 드라이버가 포함되는 경우에, 이들 디바이스 드라이버는 컴퓨팅 디바이스(300 또는 600)의 대응하는 것들 또는 제어기(400)의 하드웨어 또는 소프트웨어 구성요소이건간에, 임의의 다양한 다른 구성요소를 위한 지원을 제공할 수 있다.
제어 루틴(440 또는 640)은 설명되어 있는 바와 같이 네트워크(999)를 거쳐 신호를 송수신하기 위해 인터페이스(390 또는 690)의 대응하는 것들을 동작하기 위해 프로세서 구성요소(350, 450 또는 550)의 어떠한 대응하는 것들에 의해서도 실행가능한 통신 구성요소(449 또는 649)를 각각 포함할 수 있다. 수신된 신호들 중에는 네트워크(999)를 거쳐 컴퓨팅 디바이스(100, 300 또는 600) 중 하나 이상 사이에 소스 데이터(130) 및/또는 압축된 버퍼 데이터(430)를 전달하는 신호가 있을 수 있다. 당 기술 분야의 숙련자들에 의해 인식될 수 있는 바와 같이, 각각의 이들 통신 구성요소는 인터페이스 기술이 인터페이스(390 또는 690)의 대응하는 것들을 구현하도록 선택되는 어떠한 유형에 의해서라도 동작가능하도록 선택된다.
도 5를 더 구체적으로 참조하면, 제어 루틴(440)은 현재 프레임(332) 및 선행 인접 프레임(331)을 포함하는 로컬 버터 데이터(330)의 프레임(예를 들어, 시각적 화상(880)을 표현하는 비압축된 프레임)의 컬러 공간을 변환하기 위해 프로세서 구성요소(350 또는 450)에 의해 실행가능한 컬러 공간 변환기(441)를 포함할 수 있다. 제어 루틴(440)에 의해 수행된 압축 유형의 적어도 하나가 MPEG을 포함하는 경우에, 컬러 공간 변환기(441)(존재하면)는 로컬 버퍼 데이터(330)의 프레임을 적녹청(RGB) 컬러 공간으로부터 광도 색차(YUV) 컬러 공간으로 변환할 수 있다.
로컬 버퍼 데이터(330)의 프레임의 컬러 공간에 무관하게 그리고 이들의 컬러 공간이 다른 것으로 변환되는지에 무관하게, 프레임 감산기(470)는 차이 프레임(334)을 유도하기 위해 선행 인접 프레임(331)으로부터 현재 프레임(332)을 감산한다(또는 그 반대도 마찬가지임). 차이 프레임(334)에서, 각각의 화소는 현재 프레임(332) 및 선행 인접 프레임(331)의 대응 화소들 사이의 컬러값에 존재할 수 있는 차이를 표현하는 컬러값이 제공된다. 프레임 감산기(470)가 몇몇 실시예에서 하드웨어 기반 로직으로서 구현될 수 있지만, 프레임 감산기(470)는 다른 실시예에서 프로세서 구성요소(350 또는 450)에 의해 실행가능한 로직으로서 구현될 수 있다. 이러한 다른 실시예에서, 프레임 감산기(470)는 제어 루틴(440)의 구성요소일 수 있다.
제어 루틴(440)은 압축된 버퍼 데이터(430)의 부분으로서 저장된 R-프레임(434)을 생성하기 위해 2차 압축 유형을 이용하는 차이 프레임(334)을 압축하기 위해 프로세서 구성요소(350 또는 450)에 의해 실행가능한 2차 압축기(444)를 포함한다. 설명된 바와 같이, 2차 압축 유형은 몇몇 실시예에서 허프만 코딩을 포함할 수 있다. 따라서, 2차 압축기(444)는 허프만 코더(4464)를 포함할 수 있다.
제어 루틴(440)은 1차 압축 유형을 이용하는 로컬 버퍼 데이터(330)의 프레임을 압축하기 위해 프로세서 구성요소(350 또는 450)에 의해 실행가능한 1차 압축기(446)를 포함한다. 설명된 바와 같이, 1차 압축 유형은 MPEG의 버전을 포함할 수 있다. 따라서, 로컬 버터 데이터(330)의 프레임을 압축할 때, 1차 압축기(446)는 압축된 버퍼 데이터(430)의 부분으로서 저장된 I-프레임(436), P-프레임(437) 및 B-프레임(438) 중 하나 이상을 생성할 수 있다. 1차 압축기(446)가 MPEG의 버전을 수행하는 경우에, 1차 압축기(446)는 모션 추정기(4461), 이산 코사인 변환(OCT) 구성요소(4462), 양자화 구성요소(4463) 및 허프만 코더(4464) 중 하나 이상을 포함할 수 있다.
MPEG 압축 분야의 숙련자들에게 친숙한 바와 같이, 모션 추정기(4461)는 화소의 2차원 어레이와 연계된 화소 컬러값의 세트가 특정 방향에서 시프트하도록 물체의 이동으로부터 발생하는 프레임들 사이의 차이를 식별하기 위해 로컬 버퍼 데이터(330)의 인접 프레임을 분석한다. 모션 추정기(4461)는 하나의 프레임이 모션 벡터의 지시로 적어도 부분적으로 다른 프레임에 대해 기술되는 것을 가능하게 하기 위해 이러한 이동의 방향 및 범위를 결정한다. DCT 구성요소(4462)는 프레임의 화소 컬러값을 주파수 도메인으로 변환하고, 양자화 구성요소(4463)는 더 고주파수 구성요소를 필터링한다. 이러한 더 고주파수 구성요소는 종종 감지할 수 없고, 따라서 데이터 크기를 감소시키기 위해 제거하도록 수용 가능한 것으로 간주된다. MPEG을 프레임 내에 전달된 시각적 정보의 적어도 일부가 고의적으로 폐기되는 손실 압축 기술로서 분류되게 하는 것인 적어도 이 더 고주파수 구성요소이다. 허프만 코더(4464)는 동일한 데이터값을 기술하도록 요구된 비트의 수를 감소시키기 위해 더 빈번하게 발생하는 데이터값에 더 짧은 비트 길이 기술자를, 그리고 덜 빈번하게 발생하는 데이터값에 더 긴 비트 길이 기술자를 할당하는 코드 테이블(도시 생략)에 따라 엔트로피 코딩을 수행한다.
설명된 바와 같이, 2차 압축 유형이 허프만 코딩을 포함하고 1차 압축 유형이 MPEG의 버전을 포함하여 허프만 코딩이 양 압축 유형에 의해 이용되게 되는 경우에, 허프만 코딩을 구현하기 위한 로직은 양 압축 유형에 의해 공유될 수 있다. 따라서, 도 5에 도시된 바와 같이, 허프만 코더(4464)는 1차 압축기(446) 및 2차 압축기(444)에 의해 공유될 수 있다.
제어 루틴(440)은 디스플레이 디바이스(600)에 전송된 각각의 프레임을 생성하기 위해 1차 압축기(446)와 2차 압축기(444) 중 하나 또는 다른 하나에 의한 압축을 동적으로 선택하도록 프로세서 구성요소(350 또는 450)에 의해 실행가능한 압축 선택기(445)를 포함한다. 압축 선택기(445)는 차이 프레임(334)을 압축하는데 있어서 2차 압축기(444)에 의해 생성된 R 프레임(434)의 데이터 크기를 분석하고, 그 데이터 크기를 임계 데이터(435) 내에 지시된 하나 이상의 임계치에 비교한다.
설명된 바와 같이, R-프레임(434)의 데이터 크기가 일 임계치 미만이면, 2차 압축기(444)에 의해 이용된 2차 압축 유형이 선택되고, 미리 생성된 R-프레임(434)이 디스플레이 디바이스(600)에 전송되도록 선택되어 현재 프레임(332)을 압축된 형태로 표현한다. R-프레임(434)은 어떻게 그 화소 컬러값이 선행 인접 프레임(331)의 것들과 상이한지의 견지에서 현재 프레임(332)을 디스플레이 디바이스(600)에 기술하는데 사용된다.
또한 설명되어 있는 바와 같이, R-프레임(434)의 데이터 크기가 일 임계치 미만이 아니면, 1차 압축기(446)에 의해 이용된 1차 압축 유형이 선택된다. 따라서, 1차 압축기(446)는 현재 프레임(332)을 압축된 형태로 표현하기 위해 디스플레이 디바이스(600)에 전송될 I-프레임(436), P-프레임(437) 또는 B-프레임(438) 중 하나를 생성하도록 압축 선택기(445)에 의해 시그널링된다. 몇몇 실시예에서, 이들 3개의 유형의 프레임 중 어느 것이 적어도 현재 프레임(332)으로부터 1차 압축기(446)에 의해 생성되는지는 MPEG 압축 분야의 숙련자들에게 친숙한 방식으로 1차 압축기(446)에 의해 판정된다. 그러나, 다른 실시예에서, 판정은 부분적으로 R-프레임(434)의 데이터 크기의 다른 임계치로의 비교에 기초할 수 있다. R-프레임(434)의 데이터 크기가 다른 임계치 미만인 경우에, 압축 선택기(445)는 P-프레임(437) 또는 B-프레임(438) 중 하나 또는 다른 하나를 생성하기 위해 1차 압축기(446)를 시그널링할 수 있다. 그러나, R-프레임(434)의 데이터 크기가 다른 임계치 미만이 아닌 경우에, 압축 선택기(445)는 I-프레임(436)을 생성하기 위해 1차 압축기(446)를 시그널링할 수 있다.
하나 또는 양 임계치의 선택은 R-프레임(434), I-프레임(436), P-프레임(437) 및 B-프레임(438) 중 하나 이상의 전형적인 데이터 크기의 분석에 기초할 수 있다. 2개의 인접 프레임 사이의 차이의 정도가 충분히 작으면, R-프레임(434)에 의해 제공된 인접 프레임으로부터 화소 컬러값의 차이로서 일 프레임의 더 간단한 기술은 I-프레임(436), P-프레임(437) 또는 B-프레임(438) 중 임의의 것에 의해 성취될 수 있는 것보다 더 작은 데이터 크기를 갖는 것이 가능하다. 차이의 정도가 다소 더 큰 경우에, P-프레임(437) 또는 B-프레임(438) 중 하나 또는 다른 하나는 R-프레임(434) 또는 I-프레임(436) 중 어느 하나에 의해 성취될 수 있는 것보다 더 작은 데이터 크기를 갖는 것이 가능하다. 차이의 정도가 상당히 더 큰 경우에, I-프레임(436)에 의해 제공된 완전한 프레임의 완전히 자급식 기술은 R-프레임(434), P-프레임(437) 또는 B-프레임(438) 중 임의의 것에 의해 성취될 수 있다.
설명된 바와 같이, R-프레임(434)의 생성은 I-프레임(436), P-프레임(437) 또는 B-프레임(438) 중 임의의 것을 생성하는데 사용된 비교적 더 간단하고 덜 프로세서 집약적인 계산의 사용을 수반하여, 이에 의해 적은 전력의 소비를 야기한다. 따라서, R-프레임의 생성이 더 바람직한 것으로 간주될 수 있고, R-프레임(434)의 최종 데이터 크기가 P-프레임(437) 또는 B-프레임(438)의 것들보다 다소 크더라도, 하나 또는 양 임계치의 선택이 몇몇 실시예에서 이를 반영할 수 있다.
제어 루틴(440)은 디스플레이 디바이스(600)에 전송된 압축된 프레임을 암호화하기 위해 프로세서 구성요소(350 또는 450)에 의해 실행가능한 암호화 구성요소(448)를 포함할 수 있다. 어느 유형의 압축된 프레임이 현재 프레임(332)을 표현하도록 생성되고 그리고/또는 선택되는지에 무관하게, 그 프레임은 디스플레이 디바이스(600)로의 전송을 위해 통신 구성요소(449)에 제공되기 전에 임의의 다양한 암호화 기술에 의해 암호화되도록 암호화 구성요소(448)(존재하면)에 제공된다. 암호화 구성요소(448)는 또한 어느 유형의 압축기 각각의 전송된 압축된 프레임을 생성하도록 이용되는지의 디스플레이 디바이스(600)에 전송된 지시를 암호화할 수 있다.
도 6을 더 구체적으로 참조하면, 제어 루틴(640)은 암호화 구성요소(448)에 의해 이용되는 어떠한 유형의 암호화더라도 이를 역전하도록 통신 구성요소(649)에 의해 수신된 압축된 프레임을 복호화하기 위해 프로세서 구성요소(650)에 의해 실행가능한 복호화 구성요소(648)를 포함할 수 있다. 복호화 구성요소(648)는 이어서 새롭게 복호화된 압축된 프레임을 디스플레이 디바이스(600)에 의해 유지된 압축된 버퍼 데이터(430)로서 저장할 수 있다. 복호화 구성요소(648)는 또한 이들 프레임의 각각을 압축하고 이들 지시를 압축 유형 데이터(635)로서 저장하도록 선택된 압축 유형의 지시를 복호화할 수 있다.
제어 루틴(640)은 프레임을 압축하는데 이용된 압축 유형에 대응하는 어떠한 유형의 압축해제라도 사용하여 복호화 구성요소(648)에 의해 복호화된 압축된 프레임을 압축해제하기 위해 프로세서 구성요소(650)에 의해 실행가능한 1차 압축해제기(646) 및 2차 압축해제기(644)를 포함한다. 더 구체적으로, 1차 압축해제기(646)는 1차 압축기(446)에 의해 압축된 프레임을 압축해제하기 위해 적절한 압축해제 유형을 이용하고, 2차 압축해제기(644)는 2차 압축기(444)에 의해 압축된 프레임을 압축해제하기 위해 적절한 압축해제 유형을 이용한다. 양 압축해제기(644, 646)는 비압축된 버퍼 데이터(630)의 부분으로서 압축해제된 프레임을 저장한다. 압축기(444, 446)에 유사한 방식으로, 양 압축해제기(644, 646)가 압축해제를 수행하는데 있어서 허프만 코딩 로직을 이용하는 경우에, 압축해제기(644, 646)는 이와 같이 수행하는데 이용된 로직을 공유할 수 있다.
제어 루틴(640)은 복호화 구성요소(648)로부터 압축해제기(644, 646)에 의해 수신된 각각의 압축된 프레임을 압축해제하는데 이용된 압축해제 유형을 선택하기 위해 프로세서 구성요소(650)에 의해 실행가능한 압축해제 선택기(645)를 포함한다. 이 압축해제 유형의 선택은 어느 유형의 압축이 각각의 압축된 프레임을 생성하는데 이용되었는지의 압축 유형 데이터(635)에 저장된 지시에 기초하여 특정 압축된 프레임을 압축해제하기 위해 압축해제기(644, 646) 중 하나 또는 다른 하나를 시그널링하는 압축해제 선택기(645)에 의해 실행될 수 있다.
제어 루틴(640)은 비압축된 버퍼 데이터(630)의 비압축된 프레임의 컬러 공간을 변환하기 위해 프로세서 구성요소(650)에 의해 실행가능한 컬러 공간 변환기(641)를 포함할 수 있다. 컴퓨팅 디바이스(300)에 의해 프레임을 압축하는데 이용된 압축 유형 중 적어도 하나가 MPEG을 포함하여 제어 루틴(440)이 컬러 공간 변환기(441)를 포함하게 되는 경우에, 컬러 공간 변환기(641)(존재하면)는 YUV로부터 재차 RGB로 비압축된 버퍼 데이터(630)의 비압축된 프레임의 컬러 공간을 변환할 수 있다.
비압축된 버퍼 데이터(630)의 비압축된 프레임의 컬러 공간에 무관하게 그리고 이들의 컬러 공간이 다른 컬러 공간으로 변환되는지 여부에 무관하게, 제어 루틴(640)은 비압축된 버퍼 데이터(630)의 비압축된 프레임을 디스플레이(680) 상에 시각적으로 제시하기 위한 제시 구성요소(642)를 포함한다. 당 기술 분야의 숙련자들에게 친숙한 바와 같이, 제시 구성요소(648)가 디스플레이(680) 상의 시각적 제시를 위한 프레임을 제공하는 리프레시율은 압축된 프레임이 컴퓨팅 디바이스(300)로부터 디스플레이 디바이스(600)에 의해 수신되는 레이트에 일치하거나 배수가 되도록 선택될 수 있다.
도 7은 논리 흐름(2100)의 일 실시예를 도시한다. 논리 흐름(2100)은 본 명세서에 설명된 하나 이상의 실시예에 의해 실행되는 동작의 일부 또는 모두를 대표할 수도 있다. 더 구체적으로, 논리 흐름(2100)은 적어도 제어 루틴(440)을 실행하는데 있어서 프로세서 구성요소(350 또는 450)에 의해 수행된 그리고/또는 컴퓨팅 디바이스(300) 또는 콘트롤러(400) 각각의 다른 구성요소(들)에 의해 수행된 동작을 예시할 수 있다.
2110에서, 컴퓨팅 디바이스의 프로세서 구성요소(예를 들어, 컴퓨팅 디바이스(300)의 프로세서 구성요소(350), 또는 콘트롤러(400)의 프로세서 구성요소(450))는 시각적 화상을 표현하는 다수의 프레임의 각각의 현재 프레임에 대한 차이 프레임을 유도한다. 설명된 바와 같이, 차이 프레임은 차이 프레임이 2개 사이의 화소 컬러값의 차이를 표현하도록 현재 프레임 및 그 선행 인접 프레임을 다른 프레임으로부터 감산함으로써 유도된다.
2120에서, 차이 프레임은 현재 프레임과 그 선행 인접 프레임 사이의 차이의 정도를 결정하도록 분석된다. 설명된 바와 같이, 차이 프레임에 지시된 화소 컬러값의 차이는 몇몇 실시예에서 차이의 정도를 결정하도록 직접 분석될 수 있다. 그러나, 다른 실시예에서, 차이 프레임은 잔류 프레임(R-프레임)을 생성하도록 먼저 압축되고, 이어서 R-프레임의 데이터 크기는 차이의 정도를 결정하도록 분석된다. 또한 설명된 바와 같이, 차이 프레임을 압축하는데 이용된 압축 유형은 허프만 코딩을 포함할 수 있다.
2130에서, 차이의 정도는 차이의 정도의 임계치에 비교된다. 차이의 정도가 임계치 미만이면, 차이 프레임을 압축함으로써 생성된 전술된 R-프레임은 어떻게 그 화소 컬러값이 그 선행 인접 프레임과 상이한지의 견지에서 현재 프레임을 기술하는 압축된 형태로 현재 프레임을 표현하도록 2140에서 디스플레이 디바이스에 전송된다. 전송될 R-프레임을 선택함으로써, 압축 유형(예를 들어, R-프레임을 생성하는데 사용된 압축 유형)의 선택이 행해지고, 압축 유형의 이 선택의 지시가 2160에서 디스플레이 디바이스에 전송된다.
그러나, 2130에서 차이의 정도가 임계치 미만이 아니면, 다른 압축 유형이 현재 프레임을 압축된 형태로 표현하기 위해 2150에서 디스플레이 디바이스에 전송된 I-프레임, P-프레임 또는 B-프레임 중 하나를 생성하기 위해 현재 프레임을 압축하도록 선택된다. 설명된 바와 같이, I-프레임, P-프레임 또는 B-프레임 중 하나 이상을 생성하는데 이용된 압축 유형은 MPEG의 버전을 포함할 수 있다. 이러한 압축 후에, 이 압축 유형의 선택의 지시는 2160에서 디스플레이 디바이스에 전송된다.
도 8은 논리 흐름(2200)의 일 실시예를 도시한다. 논리 흐름(2200)은 본 명세서에 설명된 하나 이상의 실시예에 의해 실행된 동작의 일부 또는 모두를 대표할 수 있다. 더 구체적으로, 논리 흐름(2200)은 적어도 제어 루틴(440)을 실행하는데 있어서 프로세서 구성요소(350 또는 450)에 의해 수행된 그리고/또는 컴퓨팅 디바이스(300) 또는 콘트롤러(400) 각각의 다른 구성요소(들)에 의해 수행된 동작을 예시할 수 있다.
2210에서, 컴퓨팅 디바이스의 프로세서 구성요소(예를 들어, 컴퓨팅 디바이스(300)의 프로세서 구성요소(350), 또는 콘트롤러(400)의 프로세서 구성요소(450))는 시각적 화상을 표현하는 다수의 프레임의 각각의 현재 프레임에 대한 차이 프레임을 유도한다. 설명되는 바와 같이, 차이 프레임은 차이 프레임이 2개 사이의 화소 컬러값의 차이를 표현하도록 현재 프레임과 그 선행 인접 프레임 중 하나를 다른 하나로부터 감산함으로써 유도된다.
2220에서, 차이 프레임은 잔류 프레임(R-프레임)을 생성하도록 압축된다. 설명된 바와 같이, 차이 프레임을 압축하도록 이용된 압축 유형은 허프만 코딩을 포함할 수 있다. 2230에서, R-프레임의 데이터 크기는 현재 프레임과 그 선행 인접 프레임 사이의 차이의 정도를 결정하도록 분석된다.
2240에서, 차이의 정도는 차이의 정도의 제 1 임계치에 비교된다. 차이의 정도가 제 1 임계치 미만이면, 전술된 R-프레임은 2242에서 암호화되고 2244에서 디스플레이에 전송되어 어떻게 그 화소 컬러값이 그 선행 인접 프레임과 상이한지의 견지에서 현재 프레임을 기술하는 압축된 형태로 현재 프레임을 표현한다. 전송될 R-프레임을 선택함으로써, 압축 유형(예를 들어, R-프레임을 생성하는데 사용된 압축 유형)의 선택이 행해지고, 압축 유형의 이 선택의 지시가 이어서 2270에서 디스플레이 디바이스에 전송된다.
그러나, 2240에서 차이의 정도가 제 1 임계치 미만이 아니면, 다른 압축 유형은 디스플레이 디바이스에 전송될 I-프레임, P-프레임 또는 B-프레임 중 하나를 생성하기 위해 현재 프레임을 압축하도록 선택된다. 설명된 바와 같이, 이 다른 압축 유형은 MPEG을 포함할 수 있다. 2250에서, 차이의 정도는 제 1 임계치보다 큰 차이의 정도의 제 2 임계치에 비교된다. 차이의 정도가 제 2 임계치 미만이 아니면, 현재 프레임은 I-프레임을 생성하기 위해 다른 압축 유형을 사용하여 압축되고 I-프레임은 2252에서 암호화된다. 암호화된 I-프레임은 이어서 2254에서 디스플레이 디바이스에 전송되고, 다른 압축 유형의 이 선택이 2270에서 디스플레이 디바이스에 전송된다.
그러나, 2250에서 차이의 정도가 제 2 임계치 미만이면, 현재 프레임은 P-프레임 또는 B-프레임을 생성하기 위해 다른 압축 유형을 사용하여 압축되고, P-프레임 또는 B-프레임이 2262에서 암호화된다. 암호화된 P-프레임 또는 B-프레임은 이어서 2264에서 디스플레이 디바이스에 전성되고, 다른 압축 유형의 이 선택의 지시가 2270에서 디스플레이 디바이스에 전송된다.
도 9는 논리 흐름(2300)의 일 실시예를 도시한다. 논리 흐름(2300)은 본 명세서에 설명된 하나 이상의 실시예에 의해 실행된 동작의 일부 또는 모두를 대표할 수 있다. 더 구체적으로, 논리 흐름(2300)은 적어도 제어 루틴(640)을 실행하는데 있어서 프로세서 구성요소(650)에 의해 수행된 그리고/또는 디스플레이 디바이스(600)의 다른 구성요소(들)에 의해 수행된 동작을 예시할 수 있다.
2310에서, 디스플레이 디바이스의 프로세서 구성요소(예를 들어, 디스플레이 디바이스(600)의 프로세서 구성요소(650))는 압축된 프레임을 생성하도록 선택되고 이용된 압축 유형의 지시 및 시각적 화상의 압축된 프레임을 수신한다. 설명된 바와 같이, 사용된 압축 유형은 프레임마다 동적으로 선택될 수 있고, 허프만 코딩 또는 MPEG의 버전 중 하나 또는 다른 하나를 포함할 수 있다. 2320에서, 압축된 프레임 및 압축 유형의 지시는 복호화된다.
2330에서, 압축된 프레임을 생성하는데 사용된 압축 유형에 일치하는 압축해제 유형이 선택된다. 압축 유형이 허프만 코딩을 포함하는 경우에, 압축해제 유형은 허프만 코딩을 또한 포함할 수 있고, 압축 유형이 MPEG의 버전을 포함하는 경우에, 압축해제 유형은 MPEG을 또한 포함할 수 있다. 2340에서, 선택된 압축해제 유형은 압축된 프레임을 압축해제하고 대응 비압축된 프레임을 생성하는데 사용된다.
2350에서, 비압축된 프레임은 디스플레이 디바이스의 디스플레이 상에 시각적으로 제시된다. 설명된 바와 같이, 비압축된 프레임이 디스플레이 상에 시각적으로 제시되는 리프레시율은 압축된 프레임이 디스플레이 디바이스에 의해 수신되는 레이트와 연계될 수 있다(예를 들어, 동일한 레이트 또는 그 배수).
도 10은 전술된 바와 같이 다양한 실시예를 구현하기 위해 적합한 예시적인 프로세싱 아키텍처(3000)의 실시예를 도시하고 있다. 더 구체적으로, 프로세싱 아키텍처(3000)(또는 그 변형예)는 컴퓨팅 디바이스(100, 300 또는 600) 중 하나 이상 및/또는 콘트롤러(400)의 부분으로서 구현될 수 있다. 프로세싱 아키텍처(3000)의 구성요소는 마지막 2개의 숫자가 컴퓨팅 디바이스(100, 300, 600), 뿐만 아니라 콘트롤러(400)의 부분으로서 상기에 도시되고 설명된 구성요소의 적어도 일부의 도면 부호의 마지막 2개의 숫자에 대응하는 도면 부호가 제공되어 있다는 것이 주목되어야 한다. 이는 각각의 상관하는 구성요소에 대한 보조부로서 행해진다.
프로세싱 아키텍처(3000)는 하나 이상의 프로세서, 멀티코어 프로세서, 코프로세서, 메모리 유닛, 칩셋, 콘트롤러, 주변장치, 인터페이스, 발진기, 타이밍 디바이스, 비디오 카드, 오디오 카드, 멀티미디어 입출력(I/O) 구성요소, 전원 등을 비한정적으로 포함하는 디지털 프로세싱에 통상적으로 이용된 다양한 요소를 포함한다. 본 출원에 사용될 때, 용어 "시스템" 및 "구성요소"는 디지털 프로세싱이 수행되는 컴퓨팅 디바이스의 엔티티를 칭하도록 의도되는데, 그 엔티티는 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행시의 소프트웨어이고, 그 예는 이 도시된 예시적인 프로세싱 아키텍처 의해 제공된다. 예를 들어, 구성요소는 프로세서 구성요소 상에서 실행하는 프로세스, 프로세서 구성요소 자체, 광학 및/또는 자기 저장 매체를 이용할 수 있는 저장 디바이스(예를 들어, 하드 디스크 드라이브, 어레이의 다수의 저장 드라이브 등), 소프트웨어 객체, 명령어의 실행가능 시퀀스, 실행의 스레드, 프로그램 및/또는 전체 컴퓨팅 디바이스(예를 들어, 전체 컴퓨터)일 수 있지만, 이들에 한정되는 것은 아니다. 예로서, 서버 상에서 실행하는 애플리케이션 및 서버의 모두는 구성요소일 수 있다. 하나 이상의 구성요소는 실행의 프로세스 및/또는 스레드 내에 상주할 수 있고, 구성요소는 하나의 컴퓨팅 디바이스 상에 로컬화되고 그리고/또는 2개 이상의 컴퓨팅 디바이스 사이에 분산될 수 있다. 또한, 구성요소는 동작을 조화하기 위해 다양한 유형의 통신 매체에 의해 서로 통신적으로 결합될 수 있다. 조화는 정보의 단방향성 또는 양방향성 교환을 수반할 수 있다. 예를 들어, 구성요소는 통신 매체를 통해 통신된 신호의 형태의 정보를 통신할 수 있다. 정보는 하나 이상의 신호 라인에 할당된 신호로서 구현될 수 있다. 메시지(명령, 상황, 어드레스 또는 데이터 메시지를 포함함)가 이러한 신호들 중 하나일 수 있고 또는 복수의 이러한 신호일 수 있고, 임의의 다양한 접속부 및/또는 인터페이스를 통해 직렬로 또는 실질적으로 병렬로 전송될 수 있다.
도시된 바와 같이, 프로세싱 아키텍처(3000)를 구현하는데 있어서, 컴퓨팅 디바이스는 적어도 프로세서 구성요소(950), 저장 장치9960), 다른 디바이스로의 인터페이스(990), 및 커플링(955)을 포함한다. 설명되는 바와 같이, 그 의도된 사용 및/또는 사용의 조건을 포함하여 프로세싱 아키텍처(3000)를 구현하는 컴퓨팅 디바이스의 다양한 양태에 따라, 이러한 컴퓨팅 디바이스는 비한정적으로 디스플레이 인터페이스(985)와 같은 부가의 구성요소를 추가로 포함할 수 있다.
커플링(955)은 하나 이상의 버스, 점대점 상호접속부, 송수신기, 버퍼, 교차점 스위치, 및/또는 다른 전도체 및/또는 적어도 프로세서 구성요소(950)를 저장 장치(960)에 통신적으로 결합하는 로직을 포함한다. 커플링(955)은 프로세서 구성요소(950)를 인터페이스(990), 오디오 서브시스템(970) 및 디스플레이 인터페이스(985) 중 하나 이상에 또한 결합한다(이들 및/또는 다른 구성요소가 또한 존재하는지에 따라). 프로세서 구성요소(950)가 커플링(955)에 의해 이와 같이 결합되는 상태로, 프로세서 구성요소(950)는 전술된 컴퓨팅 디바이스 중 어느 것(들)이 프로세싱 아키텍처(3000)를 구현하는지에 대해, 상기에서 충분히 설명된 작업들 중 다양한 것들을 수행하는 것이 가능하다. 커플링(955)은 신호가 광학적으로 그리고/또는 전기적으로 전달되는 임의의 다양한 기술 또는 기술들의 조합으로 구현될 수 있다. 또한, 커플링(955)의 적어도 일부는 가속화된 그래픽 포트(Accelerated Graphics Port: AGP), CardBus, 확장형 산업 표준 아키텍처(Extended Industry Standard Architecture: E-ISA), 마이크로 채널 아키텍처(Micro Channel Architecture: MCA), NuBus, 주변 장치 상호접속(확장형)(Peripheral Component Interconnect(Extended): PCI-X), PCI 익스프레스(PCI Express: PCI-E), 퍼스널 컴퓨터 메모리 카드 국제 협회(Personal Computer Memory Card International Association: PCMCIA) 버스, Hyper TransportTM, QuickPath 등을 비한정적으로 포함하는 임의의 다양한 산업 표준에 합치하는 타이밍 및/또는 프로토콜을 이용할 수 있다.
전술된 바와 같이, 프로세서 구성요소(950)(프로세서 구성요소(350, 450, 650)에 대응함)는 임의의 다양한 기술을 이용하고 임의의 다수의 방식으로 물리적으로 조합된 하나 이상의 코어로 구현된 임의의 다양한 상업적으로 입수가능한 프로세서를 포함할 수 있다.
전술된 바와 같이, 저장 장치(960)(저장 장치(360, 460, 660)에 대응함)는 임의의 다양한 기술 또는 기술의 조합에 기초하여 하나 이상의 별개의 저장 디바이스로 구성될 수 있다. 더 구체적으로, 도시된 바와 같이, 저장 장치(960)는 휘발성 저장 장치(961)(예를 들어, RAM 기술의 하나 이상의 형태에 기초하는 고체 상태 저장 장치), 비휘발성 저장 장치(962)(예를 들어, 이들의 콘텐트를 보존하기 위해 전력의 일정한 제공을 필요로 하지 않는 고체 상태, 강자성 또는 다른 저장 장치), 및 이동식 미디어 저장 장치(963)(예를 들어, 정보가 컴퓨팅 디바이스들 사이에서 전달될 수 있는 이동식 디스크 또는 고체 상태 메모리 카드 저장 장치) 중 하나 이상을 포함할 수 있다. 다수의 별개의 유형의 저장 장치를 포함할 수 있도록 하는 저장 장치(960)의 이 설명은 일 유형이 프로세서 구성요소(950)에 의한 데이터의 더 고속의 조작을 가능하게 하는 비교적 고속 판독 및 기록 기능을 제공하고(그러나, 이는 전력을 계속 필요로 하는 "휘발성" 기술을 사용할 수도 있음) 반면에 다른 유형은 비교적 고밀도의 비휘발성 저장 장치를 제공하는(그러나, 가능하게는 비교적 저속 판독 및 기록 기능을 제공함) 컴퓨팅 디바이스의 하나 초과의 유형의 저장 디바이스의 통상의 사용의 인식에 있다.
상이한 기술을 이용하는 상이한 저장 디바이스의 종종 상이한 특성이 제공되면, 이러한 상이한 저장 디바이스가 상이한 인터페이스를 통해 이들의 상이한 저장 디바이스에 결합된 상이한 저장 장치 콘트롤러를 통해 컴퓨팅 디바이스의 다른 부분에 결합되게 하는 것이 통상적이다. 예로서, 휘발성 저장 장치(961)가 존재하고 RAM 기술에 기초하면, 그리고 저장 장치 콘트롤러(965a)가 휘발성 저장 장치(961) 내에 저장된 정보를 보존하는 것을 보조하기 위해 로우 리프레싱 및/또는 다른 유지보수 작업을 수행할 수도 있는 경우에, 휘발성 저장 장치(961)는 저장 장치 콘트롤러(965a)를 통해 커플링(955)에 통신적으로 결합될 수 있어 가능하게는 로우 및 칼럼 어드레싱을 이용하는 휘발성 저장 장치(961)로의 적절한 인터페이스를 제공한다. 다른 예로서, 비휘발성 저장 장치(962)가 존재하고 하나 이상의 강자성 및/또는 고체 상태 디스크 드라이브를 포함하는 경우에, 비휘발성 저장 장치(962)는 저장 장치 콘트롤러(965b)를 통해 커플링(955)에 통신적으로 결합될 수 있어 가능하게는 정보의 블록 및/또는 실린더 및 섹터의 어드레싱을 이용하는 비휘발성 저장 장치(962)로의 적절한 인터페이스를 제공한다. 또 다른 예로서, 이동식 매체 저장 장치(963)가 존재하고 머신 판독가능 저장 매체(969)의 하나 이상의 부분을 이용하는 하나 이상의 광학 및/또는 고체 상태 디스크 드라이브를 포함하는 경우에, 그리고 저장 장치 콘트롤러(965c)가 머신 판독가능 저장 매체(969)의 수명을 연장하는데 특유한 방식으로 판독, 소거 및 기록 동작을 조정할 수 있는 경우에, 이동식 매체 저장 장치(963)는 가능하게는 정보의 블록의 어드레싱을 이용하는 이동식 매체 저장 장치(963)에 적절한 인터페이스를 제공하는 저장 장치 콘트롤러(965c)를 통해 커플링(955)에 통신적으로 결합될 수 있다.
휘발성 저장 장치(961) 또는 비휘발성 저장 장치(962) 중 하나 또는 다른 하나는 프로세서 구성요소(950)에 의해 실행가능한 명령어의 시퀀스를 포함하는 루틴이 그 각각이 기반으로 하는 기술에 따라 저장될 수 있는 머신 판독가능 저장 매체의 형태의 제조 물품을 포함할 수 있다. 예로서, 비휘발성 저장 장치(962)가 강자성 기반 디스크 드라이브(예를 들어, 소위 "하드 드라이브")를 포함하는 경우에, 각각의 이러한 디스크 드라이브는 통상적으로 자기 응답성 입자의 코팅이 그 위에 퇴적되고 플로피 디스켓과 같은 저장 매체와 유사한 방식으로 명령어의 시퀀스와 같은 정보를 저장하기 위해 다양한 패턴으로 자기적으로 배향되는 하나 이상의 회전 플래터를 이용한다. 다른 예로서, 비휘발성 저장 장치(962)는 콤팩트 플래시 카드에 유사한 방식으로, 명령어의 시퀀스와 같은 정보를 저장하기 위해 고체 상태 저장 디바이스의 뱅크로 구성될 수 있다. 재차, 실행가능 루틴 및/또는 데이터를 저장하기 위해 상이한 시간에 컴퓨팅 디바이스 내에 상이한 유형의 저장 디바이스를 이용하는 것이 통상적이다. 따라서, 프로세서 구성요소(950)에 의해 실행될 명령어의 시퀀스를 포함하는 루틴은 초기에 머신 판독가능 저장 매체(969) 상에 저장될 수 있고, 이동식 매체 저장 장치(963)는 그 후에, 그 루틴이 실행될 때 프로세서 구성요소(950)에 의한 더 신속한 액세스를 가능하게 하기 위해 머신 판독가능 저장 매체(969) 및/또는 휘발성 저장 장치(961)의 연속적인 존재를 요구하지 않고 더 장기 저장을 위해 비휘발성 저장 장치(962)에 그 루틴을 복사하는데 이용될 수 있다.
전술된 바와 같이, 인터페이스(990)(인터페이스(190, 390 또는 690)에 대응함)는 컴퓨팅 디바이스를 하나 이상의 다른 디바이스에 통신적으로 결합하는데 이용될 수 있는 임의의 다양한 통신 기술에 대응하는 임의의 다양한 시그널링 기술을 이용할 수 있다. 재차, 다양한 형태의 유선 또는 무선 시그널링 중 하나 또는 모두는 프로세서 구성요소(950)가 네트워크(예를 들어, 네트워크(999)) 또는 네트워크의 상호접속된 세트를 통해 입출력 디바이스(예를 들어, 도시된 예시적인 키보드(920) 또는 프린터(925) 및/또는 다른 컴퓨팅 디바이스와 상호작용하는 것을 가능하게 하도록 이용될 수 있다. 임의의 하나의 컴퓨팅 디바이스에 의해 종종 지원되어야 하는 다수의 유형의 시그널링 및/또는 프로토콜의 종종 매우 상이한 문자의 인식시에, 인터페이스(990)는 다수의 상이한 인터페이스 콘트롤러(995a, 995b, 995c)를 포함하는 것으로서 묘사된다. 인터페이스 콘트롤러(995a)는 도시된 키보드(920)와 같은 사용자 입력 디바이스로부터 직렬 전송된 메시지를 수신하기 위해 임의의 다양한 유형의 유선 디지털 직렬 인터페이스 또는 무선 주파수 무선 인터페이스를 이용할 수 있다. 인터페이스 콘트롤러(995b)는 도시된 네트워크(999)(가능하게는, 하나 이상의 링크, 더 소형 네트워크, 또는 가능하게는 인터넷으로 구성된 네트워크)를 통해 다른 컴퓨팅 디바이스에 액세스하기 위해 임의의 다양한 케이블링 기반 또는 무선 시그널링, 타이밍 및/또는 프로토콜을 이용할 수 있다. 인터페이스(995c)는 데이터를 도시된 프린터(925)에 전달하기 위해 직렬 또는 병렬 신호 전송의 사용을 가능하게 하는 임의의 다양한 전기 전도성 케이블링을 이용할 수 있다. 인터페이스(990)의 하나 이상의 인터페이스 콘트롤러를 통해 통신적으로 결합될 수 있는 디바이스의 다른 예는 마이크로폰, 리모콘, 스타일러스펜, 카드 리더, 지문 리더, 가상 현실 상호작용 글로브, 그래픽 입력 태블릿, 조이스틱, 다른 키보드, 망막 스캐너, 터치스크린의 터치 입력 구성요소, 트랙볼, 다양한 센서, 제스처 및/또는 얼굴 표현을 거쳐 이들 사람들에 의해 시그널링된 명령 및/또는 데이터를 수락하기 위해 사람들의 이동을 모니터링하기 위한 카메라 또는 카메라 어레이, 레이저 프린터, 잉크젯 프린터, 머신적 로봇, 밀링 머신 등을 비한정적으로 포함한다.
컴퓨팅 디바이스가 디스플레이(예를 들어, 도시된 예시적인 디스플레이(980))에 통신적으로 결합되는(또는 가능하게는, 실제로 구비하는) 경우에, 프로세싱 아키텍처(3000)를 구현하는 이러한 컴퓨팅 디바이스는 디스플레이 인터페이스(985)를 또한 포함할 수 있다. 더 보편화된 유형의 인터페이스가 디스플레이에 통신적으로 결합하는데 이용될 수 있지만, 디스플레이 상에 다양한 형태의 콘텐트를 시각적으로 표시하는데 종종 요구되는 다소 특정화된 부가의 프로세싱, 뿐만 아니라 사용된 케이블링 기반 인터페이스의 다소 특정화된 성질은 종종 별개의 디스플레이 인터페이스의 제공을 바람직하게 한다. 디스플레이(980)의 통신적 커플링에서 디스플레이 인터페이스(985)에 의해 이용될 수 있는 유선 및/또는 무선 시그널링 기술은 임의의 다양한 아날로그 비디오 인터페이스, 디지털 비디오 인터페이스(DVT), 디스플레이포트 등을 비한정적으로 포함하는 임의의 다양한 산업 표준에 합치하는 시그널링 및/또는 프로토콜을 사용할 수 있다.
도 11은 시스템(4000)의 실시예를 도시한다. 다양한 실시예에서, 시스템(4000)은 그래픽 프로세싱 시스템(1000); 컴퓨팅 디바이스(100, 300 또는 600) 중 하나 이상; 및/또는 논리 흐름(2100 또는 2200) 중 하나 또는 모두와 함께 사용을 위해 적합한 시스템 또는 아키텍처를 표현할 수도 있다. 실시예는 이 관점에서 한정되는 것은 아니다.
도시된 바와 같이, 시스템(4000)은 다수의 요소를 포함할 수 있다. 하나 이상의 요소는 디자인 또는 성능 제약의 소정의 세트에 대해 요구되는 바와 같이, 하나 이상의 회로, 구성요소, 레지스터, 프로세서, 소프트웨어 서브루틴, 모듈, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 도 11은 예로서 특정 토폴로지에서 제한된 수의 요소를 도시하고 있지만, 임의의 적합한 토폴로지에서 더 많거나 적은 요소가 소정의 구현예에 대해 원하는 바에 따라 시스템(4000)에 사용될 수 있다는 것이 이해될 수 있다. 실시예는 이 맥락에 한정되는 것은 아니다.
실시예에서, 시스템(4000)은 미디어 시스템일 수 있지만, 시스템(4000)은 이 맥락에 한정되는 것은 아니다. 예를 들어, 시스템(4000)은 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라 랩탑 컴퓨터, 태블릿, 터치패드, 휴대형 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, 개인 휴대 정보 단말(PDA), 휴대폰, 조합형 휴대폰/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(mobile internet device: MID), 메시징 디바이스, 데이터 통신 디바이스 등 내에 합체될 수 있다.
실시예에서, 시스템(4000)은 디스플레이(4980)에 결합된 플랫폼(4900a)을 포함한다. 플랫폼(4900a)은 콘텐트 서비스 디바이스(들)(4900c) 또는 콘텐트 전달 디바이스(들)(4900d) 또는 다른 유사한 콘텐트 소스와 같은 콘텐트 디바이스로부터 콘텐트를 수신할 수 있다. 하나 이상의 네비게이션 특징부를 포함하는 네비게이션 콘트롤러(4920)는 예를 들어 플랫폼(4900a) 및/또는 디스플레이(4980)와 상호작용하는데 사용될 수 있다. 이들 구성요소의 각각은 이하에 더 상세히 설명된다.
실시예에서, 플랫폼(4900a)은 프로세서 구성요소(4950), 칩셋(4955), 메모리 유닛(4969), 송수신기(4995), 저장 장치(4962), 애플리케이션(4940), 및/또는 그래픽 서브시스템(4985)의 임의의 조합을 포함할 수 있다. 칩셋(4955)은 프로세서 회로(4950), 메모리 유닛(4969), 송수신기(4995), 저장 장치(4962), 애플리케이션(4940), 및/또는 그래픽 서브시스템(4985) 사이의 상호통신을 제공할 수 있다. 예를 들어, 칩셋(4955)은 저장 장치(4962)와 상호통신을 제공하는 것이 가능한 저장 장치 어댑터(도시 생략)를 포함할 수 있다.
프로세서 구성요소(4950)는 임의의 프로세서 또는 논리 디바이스를 사용하여 구현될 수 있고, 프로세서 구성요소(150, 350 또는 650) 중 하나 이상 및/또는 도 10의 프로세서 구성요소(950)와 동일하거나 유사할 수 있다.
메모리 유닛(4969)은 데이터를 저장하는 것이 가능한 임의의 머신 판독가능 또는 컴퓨터 판독가능 매체를 사용하여 구현될 수 있고, 도 10의 저장 매체(969)와 동일하거나 유사할 수 있다.
송수신기(4995)는 다양한 적합한 무선 통신 기술을 사용하여 신호를 송수신하는 것이 가능한 하나 이상의 무선장치를 포함할 수 있고, 도 10의 송수신기(995b)와 동일하거나 유사할 수 있다.
디스플레이(4980)는 임의의 텔레비전형 모니터 또는 디스플레이를 포함할 수 있고, 디스플레이(380, 680) 중 하나 이상에 그리고/또는 도 10의 디스플레이(980)와 동일하거나 유사할 수 있다.
저장 장치(4962)는 비휘발성 저장 디바이스로서 구현될 수 있고, 도 10의 비휘발성 저장 장치(962)와 동일하거나 유사할 수 있다.
그래픽 서브시스템(4985)은 디스플레이를 위한 정지화상 또는 비디오와 같은 이미지의 프로세싱을 수행할 수 있다. 그래픽 서브시스템(4985)은 예를 들어, 그래픽 프로세싱 유닛(graphics processing unit: GPU) 또는 시각적 프로세싱 유닛(visual processing unit: VPU)일 수 있다. 아날로그 또는 디지털 인터페이스가 그래픽 서브시스템(4985) 및 디스플레이(4980)를 통신적으로 결합하는데 사용될 수 있다. 예를 들어, 인터페이스는 고선명 멀티미디어 인터페이스, 디스플레이포트, 무선 HDMI 및/또는 무선 HD 순응성 기술 중 임의의 것일 수 있다. 그래픽 서브시스템(4985)은 프로세서 회로(4950) 또는 칩셋(4955) 내에 일체화될 수 있다. 그래픽 서브시스템(4985)은 칩셋(4955)에 통신적으로 결합된 자립형 카드일 수 있다.
본 명세서에 설명된 그래픽 및/또는 비디오 프로세싱 기술은 다양한 하드웨어 아키텍처에서 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능성은 칩셋 내에 일체화될 수 있다. 대안적으로, 별개의 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 또 다른 실시예로서, 그래픽 및/또는 비디오 기능이 멀티코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 다른 실시예에서, 기능은 소비자 전자 디바이스에서 구현될 수 있다.
실시예에서, 콘텐트 서비스 디바이스(들)(4900b)는 예를 들어, 임의의 국가, 세계 및/또는 독립적인 서비스에 의해 호스팅되고, 따라서 인터넷을 거쳐 플랫폼(4900a)에 액세스가능하다. 콘텐트 서비스 디바이스(들)(4900b)는 플랫폼(4900a) 및/또는 디스플레이(4980)에 결합될 수 있다. 플랫폼(4900a) 및/또는 콘텐트 서비스 디바이스(들)(4900b)는 미디어 정보를 네트워크(4999)로 그리고 그로부터 통신하기 위해(예를 들어, 송신 및/또는 수신) 네트워크(4999)에 결합될 수 있다. 콘텐트 전달 디바이스(들)(4900c)는 또한 플랫폼(4900a) 및/또는 디스플레이(4980)에 결합될 수 있다.
실시예에서, 콘텐트 서비스 디바이스(들)(4900b)는 케이블 텔레비전 박스, 퍼스널 컴퓨터, 네트워크, 전화, 디지털 정보 및/또는 콘텐트를 전달하는 것이 가능한 인터넷 가능 디바이스 또는 기구, 및 네트워크(4999)를 거쳐 또는 직접 콘텐트 공급자와 플랫폼(4900a) 및/또는 디스플레이(4980) 사이에 콘텐트를 단방향성으로 또는 양방향성으로 통신하는 것이 가능한 임의의 다른 유사한 디바이스를 포함할 수 있다. 콘텐트는 네트워크(4999)를 거쳐 시스템(4000) 내의 구성요소들 중 임의의 하나 및 콘텐트 공급자로 그리고 이들로부터 단방향성으로 그리고/또는 양방향성으로 통신될 수 있다는 것이 이해될 수 있을 것이다. 콘텐트의 예는 예를 들어, 비디오, 음악, 의료 및 게임 정보 등을 포함하는 임의의 미디어 정보를 포함할 수 있다.
콘텐트 서비스 디바이스(들)(4900b)는 미디어 정보, 디지털 정보, 및/또는 다른 콘텐트를 포함하는 케이블 텔레비전 프로그래밍과 같은 콘텐트를 수신한다. 콘텐트 공급자의 예는 임의의 케이블 또는 위성 텔레비전 또는 라디오 또는 인터넷 콘텐트 공급자를 포함할 수 있다. 제공된 예는 실시예를 한정하도록 의도된 것은 아니다.
실시예에서, 플랫폼(4900a)은 하나 이상의 네비게이션 특징부를 갖는 네비게이션 콘트롤러(4920)로부터 제어 신호를 수신할 수 있다. 네비게이션 콘트롤러(4920)의 네비게이션 특징부는 예를 들어, 사용자 인터페이스(4880)와 상호작용하는데 사용될 수 있다. 실시예에서, 네비게이션 콘트롤러(4920)는 사용자가 공간(예를 들어, 연속적인 및 다차원) 데이터를 컴퓨터 내에 입력하게 하는 컴퓨터 하드웨어 구성요소(특히 인간 인터페이스 디바이스)일 수 있는 포인팅 디바이스일 수 있다. 그래픽 사용자 인터페이스(graphical user interfaces: GUI), 및 텔레비전 및 모니터와 같은 다수의 시스템은 사용자가 물리적 제스처를 사용하여 데이터를 제어하고 컴퓨터 또는 텔레비전에 제공하게 한다.
네비게이션 콘트롤러(4920)의 네비게이션 특징부의 이동은 디스플레이 상에 표시된 포인터, 커서, 포커스링, 또는 다른 시각적 지시기의 이동에 의해 디스플레이(예를 들어, 디스플레이(4980)) 상에 에코잉될(echoed) 수 있다. 예를 들어, 소프트웨어 애플리케이션(4940)의 제어 하에서, 네비게이션 콘트롤러(4920) 상에 위치된 네비게이션 특징부는 사용자 인터페이스(4880) 상에 표시된 가상 네비게이션 특징부에 맵핑될 수 있다. 실시예에서, 네비게이션 콘트롤러(4920)는 개별 구성요소는 아닐 수도 있고 플랫폼(4900a) 및/또는 디스플레이(4980)에 일체화될 수 있다. 그러나, 실시예는 본 명세서에 도시되거나 설명된 요소 또는 맥락에 한정되는 것은 아니다.
실시예에서, 드라이버(도시 생략)는 사용자가 예를 들어, 초기 부트업 후에, 인에이블링될 때, 버튼의 터치에 의해 텔레비전과 같은 플랫폼(4900a)을 순간적으로 턴온 및 오프하는 것을 가능하게 하기 위한 기술을 포함할 수 있다. 프로그램 로직은 플랫폼이 턴"오프"될 때, 플랫폼(4900a)이 미디어 어댑터 또는 다른 콘텐트 서비스 디바이스(들)(4900b) 또는 콘텐트 전달 디바이스(들)(4900c)에 콘텐트를 스트리밍할 수 있게 한다. 게다가, 칩셋(4955)은 예를 들어, 5.1 서라운드 사운드 오디오 및/또는 고선명 7.1 서라운드 사운드 오디오를 위한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버는 통합 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 실시예에서, 그래픽 드라이버는 주변장치 상호접속(peripheral component interconnect: PCI) 익스프레스 그래픽 카드를 포함할 수 있다.
다양한 실시예에서, 시스템(4000)에 도시된 구성요소 중 임의의 하나 이상은 일체형일 수 있다. 예를 들어, 플랫폼(4900a) 및 콘텐트 서비스 디바이스(들)(4900b)는 일체형일 수 있고, 또는 플랫폼(4900a) 및 콘텐트 전달 디바이스(들)(4900c)가 일체형일 수도 있고, 또는 플랫폼(4900a), 콘텐트 서비스 디바이스(들)(4900b) 및 콘텐트 전달 디바이스(들)(4900c)가 예를 들어 일체형일 수도 있다. 다양한 실시예에서, 플랫폼(4900a) 및 디스플레이(4890)는 일체형 유닛일 수 있다. 디스플레이(4980) 및 콘텐트 서비스 디바이스(들)(4900b)는 일체형일 수도 있고, 또는 디스플레이(4980) 및 콘텐트 전달 디바이스(들)(4900c)가 예를 들어 일체형일 수도 있다. 이들 예는 실시예를 한정하도록 의도된 것은 아니다.
다양한 실시예에서, 시스템(4000)은 무선 시스템, 유선 시스템, 또는 이들의 조합으로서 구현될 수 있다. 무선 시스템으로서 구현될 때, 시스템(4000)은 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 제어 로직, 등과 같은 무선 공유 매체를 통해 통신하기 위해 적합한 구성요소 및 인터페이스를 포함할 수 있다. 무선 공유 매체의 예는 RF 스펙트럼 등과 같은 무선 스펙트럼의 부분을 포함할 수 있다. 유선 시스템으로서 구현될 때, 시스템(4000)은 I/O 어댑터, I/O 어댑터를 대응 유선 통신 매체와 접속하기 위한 물리적 커넥터, 네트워크 인터페이스 카드(network interface card: NIC), 디스크 콘트롤러, 비디오 콘트롤러, 오디오 콘트롤러 등과 같은 유선 통신 매체와 통신하기 위해 적합한 구성요소 및 인터페이스를 포함할 수 있다. 유선 통신 매체는 와이어, 케이블, 금속 도선, 인쇄 회로 기판(printed circuit board: PCB), 백플레인(backplane), 스위치 패브릭(switch fabric), 반도체 재료, 연선(twisted-pair wire), 동축 케이블, 광파이버 등을 포함할 수 있다.
플랫폼(4900a)은 정보를 통신하기 위해 하나 이상의 논리적 또는 물리적 채널을 설정할 수 있다. 정보는 미디어 정보 및 제어 정보를 포함할 수 있다. 미디어 정보는 사용자를 위해 의도된 콘텐트를 표현하는 임의의 데이터를 칭할 수 있다. 콘텐트의 예는 예를 들어, 음성 대화, 비디오 회의, 스트리밍 비디오, 전자 메일("이메일") 메시지, 음성 메일 메시지, 문자숫자식 기호, 그래픽, 이미지, 비디오, 텍스트 등으로부터의 데이터를 포함할 수 있다. 음성 대화로부터의 데이터는 예를 들어 음성 정보, 묵음 기간, 배경 노이즈, 안정 노이즈, 톤 등일 수 있다. 제어 정보는 자동화 시스템을 위해 의도된 명령, 명령어 또는 제어 워드를 표현하는 임의의 데이터를 칭할 수 있다. 예를 들어, 제어 정보는 시스템을 통해 미디어 정보를 라우팅하거나, 또는 사전결정된 방식으로 미디어 정보를 프로세싱하기 위해 노드에 명령하는데 사용될 수 있다. 그러나, 실시예는 도 11에 도시되거나 설명된 요소 또는 맥락에 한정되는 것은 아니다.
전술된 바와 같이, 시스템(4000)은 다양한 물리적 스타일 또는 폼팩터로 구체화될 수 있다. 도 12는 시스템(4000)이 구체화될 수 있는 작은 폼팩터 디바이스(5000)의 실시예를 도시한다. 실시예에서, 예를 들어, 디바이스(5000)는 무선 기능을 갖는 모바일 컴퓨팅 디바이스로서 구현될 수 있다. 모바일 컴퓨팅 디바이스는 프로세싱 시스템 및 예를 들어 하나 이상의 배터리와 같은 모바일 전력 소스 또는 전원을 갖는 임의의 디바이스를 칭할 수 있다.
전술된 바와 같이, 모바일 컴퓨팅 디바이스의 예는 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라 랩탑 컴퓨터, 태블릿, 터치패드, 휴대형 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, 개인 휴대 정보 단말(PDA), 휴대폰, 조합형 휴대폰/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스 등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예는 손목 컴퓨터, 손가락 컴퓨터, 반지 컴퓨터, 안경 컴퓨터, 벨트클립 컴퓨터, 암밴드 컴퓨터, 신발 컴퓨터, 의류 컴퓨터, 및 다른 웨어러블 컴퓨터와 같은, 사람에 의해 착용되도록 배열된 컴퓨터를 또한 포함할 수 있다. 실시예에서, 예를 들어, 모바일 컴퓨팅 디바이스는 컴퓨터 애플리케이션, 뿐만 아니라 음성 통신 및/또는 데이터 통신을 실행하는 것이 가능한 스마트폰으로서 구현될 수 있다. 몇몇 실시예는 예로서 스마트폰으로서 구현된 모바일 컴퓨팅 디바이스로 설명될 수 있지만, 다른 실시예는 마찬가지로 다른 무선 모바일 컴퓨팅 디바이스를 사용하여 구현될 수 있다는 것이 이해될 수 있다. 실시예는 이러한 맥락에 한정되는 것은 아니다.
도 12에 도시된 바와 같이, 디바이스(5000)는 디스플레이(5980), 네비게이션 콘트롤러(5920a), 사용자 인터페이스(5880), 하우징(5905), I/O 디바이스(5920b), 및 안테나(5998)를 포함할 수 있다. 디스플레이(5980)는 모바일 컴퓨팅 디바이스를 위해 적절한 정보를 표시하기 위한 임의의 적합한 디스플레이 유닛을 포함할 수 있고, 도 11의 디스플레이(4980)와 동일하거나 유사할 수 있다. 네비게이션 콘트롤러(5920b)는 사용자 인터페이스(5880)와 상호작용하는데 사용될 수 있는 하나 이상의 네비게이션 특징을 포함할 수 있고, 도 11의 네비게이션 콘트롤러(4920)와 동일하거나 또는 유사할 수 있다. I/O 디바이스(5920b)는 모바일 컴퓨팅 디바이스 내에 정보를 입력하기 위한 임의의 적합한 I/O 디바이스를 포함할 수 있다. I/O 디바이스(5920b)의 예는 문자숫자식 키보드, 숫자 키보드, 터치패드, 입력키, 버튼, 스위치, 록커 스위치, 마이크로폰, 스피커, 음성 인식 디바이스 및 소프트웨어 등을 포함할 수 있다. 정보는 또한 마이크로폰을 거쳐 디바이스(5000) 내에 입력될 수 있다. 이러한 정보는 음성 인식 디바이스에 의해 디지털화될 수 있다. 실시예는 이러한 맥락에 한정되는 것은 아니다.
더 일반적으로, 본 명세서에 설명되고 도시된 컴퓨팅 디바이스의 다양한 요소는 다양한 하드웨어 요소, 소프트웨어 요소, 또는 이들의 조합을 포함할 수 있다. 하드웨어 요소의 예는 디바이스, 논리 디바이스, 구성요소, 프로세서, 마이크로프로세서, 회로, 프로세서 구성요소, 회로 요소(예를 들어, 트랜지스터, 저항, 캐패시터, 인덕터 등), 집적 회로, 응용 주문형 집적 회로(application specific integrated circuit: ASIC), 프로그램가능 논리 디바이스(programmable logic device: PLD), 디지털 신호 프로세서(digital signal processor: DSP), 필드 프로그램가능 게이트 어레이(field programmable gate array: FPGA), 메모리 유닛, 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어 요소의 예는 소프트웨어 구성요소, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 방법, 절차, 소프트웨어 인터페이스, 응용 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 단어, 값, 기호, 또는 이들의 임의의 조합을 포함할 수 있다. 그러나, 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 사용하여 구현되는지 여부를 판정하는 것은, 소정의 구현예에 대해 요구되는 바와 같이, 설명된 연산 속도, 전력 레벨, 열 공차, 프로세싱 사이클 버젯, 입력 데이터 레이트, 출력 데이터 레이트, 메모리 리소스, 데이터 버스 속도 및 다른 디자인 또는 성능 제약과 같은 임의의 수의 팩터에 따라 다양할 수 있다.
몇몇 실시예는 표현 "일 실시예" 또는 "실시예"와 함께 이들의 파생어를 사용하여 설명될 수 있다. 이들 용어는 실시예와 관련하여 설명된 특정 특징, 구조, 또는 특성이 적어도 하나의 실시예에 포함되는 것을 의미한다. 명세서의 다양한 위치에서 구문 "일 실시예에서"의 출현은 반드시 모두 동일한 실시예를 언급하는 것은 아니다. 또한, 몇몇 실시예는 표현 "결합된" 및 "접속된"과 함께 이들의 파생어를 사용하여 설명될 수 있다. 이들 용어는 반드시 서로 동의어인 것으로 의도되는 것은 아니다. 예를 들어, 몇몇 실시예는 2개 이상의 요소가 서로 직접 물리적 또는 전기적 접촉하고 있다는 것을 지시하기 위해 용어 "접속된" 및/또는 "결합된"을 사용하여 설명될 수 있다. 그러나, 용어 "결합된"은 또한 2개 이상의 요소가 서로 직접 접촉하지 않지만, 여전히 서로 협동하거나 상호작용하는 것을 의미할 수도 있다. 더욱이, 상이한 실시예로부터의 양태 또는 요소는 조합될 수 있다.
본 명세서의 요약서는 독자가 기술적인 개시내용의 성질을 신속하게 확인하게 하도록 제공되었다는 것이 강조된다. 이는 청구범위의 범주 또는 의미를 해석하거나 한정하는데 사용되지는 않을 것이라는 이해로 제출되었다. 게다가, 상기 상세한 설명에서, 다양한 특징은 개시내용을 능률화하기 위해 단일의 실시예에서 함께 그룹화된다. 이 개시 방법은 청구된 실시예가 각각의 청구항에 명시적으로 인용되어 있는 것보다 많은 특징을 필요로 하는 의도를 반영하는 것으로서 해석되어서는 안된다. 오히려, 이하의 청구범위가 반영하는 바와 같이, 본 발명의 요지는 단일의 개시된 실시예의 모든 특징에 있지는 않다. 따라서, 이하의 청구범위는 상세한 설명에 본 명세서에서 합체되고, 각각의 청구항은 그 자신에 개별적인 실시예로 자립한다. 첨부된 청구범위에서, 용어 "구비하는" 및 "여기에서"는 각각의 용어 "포함하는" 및 "여기서"의 평이한 한글 등가물로서 각각 사용된다. 더욱이, 용어 "제 1", "제 2", "제 3" 등은 단지 라벨로서만 사용되고, 이들의 대상물에 수치적인 요구를 부여하도록 의도된 것은 아니다.
전술된 것은 개시된 아키텍처의 예를 포함하고, 구성요소 및/또는 방법론의 모든 인식 가능한 조합을 설명하는 것은 물론 불가능하지만, 당 기술 분야의 숙련자는 다수의 다른 조합 및 치환이 가능하다는 것을 인식할 수 있다. 이에 따라, 신규한 아키텍처는 첨부된 청구범위의 사상 및 범주 내에 있는 모든 이러한 변경, 수정 및 변형을 포함하도록 의도된다. 상세한 설명은 이제 다른 실시예에 속하는 예를 제공하는 것으로 전환한다. 이하에 제공된 예는 한정이 되도록 의도된 것은 아니다.
몇몇 실시예에서, 비디오 프레임을 압축하기 위한 디바이스는 프로세서 구성요소, 및 일련의 프레임의 현재 프레임과 선행 인접 프레임 사이의 차이의 정도에 기초하여 일련의 프레임의 현재 프레임에 대한 압축 유형을 동적으로 선택하기 위해 프로세서 구성요소에 의한 실행을 위한 압축 선택기를 포함한다.
부가적으로 또는 대안적으로, 디바이스는 현재 프레임과 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 유도하기 위한 프레임 감산기를 포함할 수 있고, 압축 선택기는 차이의 정도를 결정하기 위해 차이 프레임을 분석할 수 있다.
부가적으로 또는 대안적으로, 디바이스는 현재 프레임과 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 유도하기 위한 프레임 감산기, 및 현재 프레임을 압축된 형태로 표현하는 잔류 프레임(R-프레임)을 생성하기 위해 차이 프레임을 압축하기 위해 프로세서 구성요소에 의한 실행을 위한 허프만 코더를 포함하고, 압축 선택기는 R-프레임의 데이터 크기에 기초하여 차이의 정도를 결정할 수 있다.
부가적으로 또는 대안적으로, 디바이스는 현재 프레임을 압축하기 위해 1차 압축 유형을 이용하기 위해 프로세서 구성요소에 의한 실행을 위한 1차 압축기, 및 현재 프레임을 압축하기 위해 2차 압축 유형을 이용하기 위해 프로세서 구성요소에 의한 실행을 위한 2차 압축기를 포함할 수 있고, 압축 선택기는 선택된 임계치로의 차이의 정도의 비교에 기초하여 현재 프레임을 압축하기 위해 1차 또는 2차 압축기를 선택할 수 있다.
부가적으로 또는 대안적으로, 1차 압축 유형은 동영상 전문가 그룹(MPEG)의 버전을 포함할 수 있고, 2차 압축 유형은 허프만 코딩을 포함할 수 있다.
부가적으로 또는 대안적으로, 디바이스는 프로세서 구성요소에 의한 실행을 위한 허프만 코더를 포함하고, 허프만 코더는 1차 압축기 및 2차 압축기에 의해 공유될 수 있다.
부가적으로 또는 대안적으로, 1차 압축기는 현재 프레임을 압축된 형태로 표현하는 인트라-프레임(I-프레임), 예측된 프레임(P-프레임) 또는 양예측된 프레임(B-프레임) 중 하나를 생성하기 위한 모션 추정기, 이산 코사인 변환(DCT) 구성요소, 양자화 구성요소 및 허프만 코더를 포함할 수 있다.
부가적으로 또는 대안적으로, 압축 선택기는 차이의 정도에 기초하여 I-프레임을 생성하거나 또는 P-프레임과 B-프레임 중 하나를 생성하기 위해 1차 압축기를 시그널링할 수 있다.
부가적으로 또는 대안적으로, 2차 압축기는 현재 프레임을 압축 형태로 표현하도록 잔류 프레임(R-프레임)을 생성하기 위해 현재 프레임과 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 압축할 수 있다.
부가적으로 또는 대안적으로, 디바이스는 선택된 압축 유형에 의해 현재 프레임의 압축 후에 현재 프레임을 압축 형태로 표현하는 압축된 프레임을 암호화하기 위해 프로세서 구성요소에 의한 실행을 위한 암호화 구성요소를 포함할 수 있다.
부가적으로 또는 대안적으로, 디바이스는 현재 프레임의 압축 및 압축된 프레임의 암호화 후에 디스플레이 디바이스에 현재 프레임을 압축하기 위한 압축 유형의 선택의 지시 및 압축된 프레임을 전송하기 위한 인터페이스를 포함할 수 있다.
몇몇 예에서, 비디오 프레임을 압축해제하기 위한 디바이스는 프로세서 구성요소, 시각적 화상의 다수의 압축된 프레임 및 다수의 압축된 프레임의 각각의 압축된 프레임을 생성하도록 이용된 압축 유형의 지시를 수신하기 위한 인터페이스, 및 지시에 기초하여 다수의 압축된 프레임의 각각의 압축된 프레임을 압축해제하기 위해 압축해제 유형을 선택하기 위해 프로세서 구성요소에 의한 실행을 위한 압축해제 선택기를 포함할 수 있다.
부가적으로 또는 대안적으로, 디바이스는 압축된 프레임을 압축해제하기 위해 1차 압축해제 유형을 이용하기 위해 프로세서 구성요소에 의한 실행을 위한 1차 압축해제기, 및 압축된 프레임을 압축해제하기 위해 2차 압축해제 유형을 이용하기 위해 프로세서 구성요소에 의한 실행을 위한 2차 압축해제기를 포함할 수 있고, 압축해제 선택기는 지시에 기초하여 다수의 압축된 프레임의 각각의 압축된 프레임을 압축해제하기 위해 1차 또는 2차 압축해제기를 선택할 수 있다.
부가적으로 또는 대안적으로, 1차 압축해제 유형은 동영상 전문가 그룹(MPEG)의 버전을 포함할 수 있고, 2차 압축 유형은 허프만 코딩을 포함할 수 있다.
부가적으로 또는 대안적으로, 디바이스는 선택된 압축해제 유형의 선택 전의 지시 및 다수의 압축된 프레임을 복호화하기 위해 프로세서 구성요소에 의한 실행을 위한 복호화 구성요소를 포함할 수 있다.
부가적으로 또는 대안적으로, 디바이스는 각각의 압축된 프레임의 압축해제 후에 다수의 압축된 프레임의 각각의 압축된 프레임의 컬러 공간을 변환하기 위해 프로세서 구성요소에 의한 실행을 위한 컬러 공간 변환기를 포함할 수 있다.
부가적으로 또는 대안적으로, 디바이스는 각각의 압축된 프레임의 압축해제 후에 다수의 압축된 프레임의 각각의 압축된 프레임을 시각적으로 제시하기 위한 디스플레이를 포함할 수 있다.
몇몇 예에서, 비디오 프레임을 압축하기 위한 컴퓨터 구현 방법은 일련의 프레임의 현재 프레임과 일련의 프레임의 선행 인접 프레임 중 하나의 화소 컬러값을 현재 프레임과 선행 인접 프레임의 다른 하나의 대응 화소값으로부터 감산하여 차이의 정도를 결정하는 단계, 및 차이의 정도에 기초하여 현재 프레임을 압축하기 위해 압축 유형을 동적으로 선택하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 현재 프레임과 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 생성하는 단계, 및 차이의 정도를 결정하기 위해 차이 프레임을 분석하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 현재 프레임과 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 생성하는 단계, 현재 프레임을 압축된 형태로 표현하는 잔류 프레임(R-프레임)을 생성하기 위해 차이 프레임을 압축하도록 허프만 코딩을 이용하는 단계, 및 R-프레임의 데이터 크기로부터 차이의 정도를 결정하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 선택된 임계치로의 차이의 정도의 비교에 기초하여 현재 프레임을 압축하기 위해 1차 압축 유형 또는 현재 프레임을 압축하기 위해 2차 압축 유형을 선택하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 1차 압축 유형은 동영상 전문가 그룹(MPEG)의 버전을 포함할 수 있고, 2차 압축 유형은 허프만 코딩을 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 1차 압축 유형을 선택하는 것에 응답하여 현재 프레임을 압축된 형태로 표현하는 인트라-프레임(I-프레임), 예측된 프레임(P-프레임) 또는 양예측된 프레임(B-프레임) 중 하나를 생성하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 차이의 정도에 기초하여 I-프레임을 생성하거나 또는 P-프레임과 B-프레임 중 하나를 생성하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 2차 압축 유형을 선택하는 것에 응답하여 현재 프레임을 압축 형태로 표현하도록 잔류 프레임(R-프레임)을 생성하기 위해 차이 프레임을 압축하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 선택된 압축 유형에 의해 현재 프레임의 압축 후에 현재 프레임을 압축 형태로 표현하는 압축된 프레임을 암호화하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 현재 프레임의 압축 및 압축된 프레임의 암호화 후에 디스플레이 디바이스에 현재 프레임을 압축하기 위한 압축 유형의 선택의 지시 및 압축된 프레임을 전송하는 단계를 포함할 수 있다.
몇몇 예에서, 적어도 하나의 머신 판독가능 저장 매체는 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스가 일련의 프레임의 현재 프레임과 일련의 프레임의 선행 인접 프레임 중 하나의 화소 컬러값을 현재 프레임과 선행 인접 프레임의 다른 하나의 대응 화소값으로부터 감산하여 차이의 정도를 결정하고, 차이의 정도에 기초하여 현재 프레임을 압축하기 위해 압축 유형을 동적으로 선택하게 하는 명령어를 포함할 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 현재 프레임과 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 생성하고, 차이의 정도를 결정하기 위해 차이 프레임을 분석하게 될 수도 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 현재 프레임과 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 생성하고, 현재 프레임을 압축된 형태로 표현하는 잔류 프레임(R-프레임)을 생성하기 위해 차이 프레임을 압축하도록 허프만 코딩을 이용하고, R-프레임의 데이터 크기로부터 차이의 정도를 결정하게 될 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 선택된 임계치로의 차이의 정도의 비교에 기초하여 현재 프레임을 압축하기 위해 1차 압축 유형 또는 현재 프레임을 압축하기 위해 2차 압축 유형을 선택하게 될 수 있다.
부가적으로 또는 대안적으로, 1차 압축 유형은 동영상 전문가 그룹(MPEG)의 버전을 포함할 수 있고, 2차 압축 유형은 허프만 코딩을 포함할 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 1차 압축 유형을 선택하는 것에 응답하여 현재 프레임을 압축된 형태로 표현하는 인트라-프레임(I-프레임), 예측된 프레임(P-프레임) 또는 양예측된 프레임(B-프레임) 중 하나를 생성하게 될 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 차이의 정도에 기초하여 I-프레임을 생성하거나 또는 P-프레임과 B-프레임 중 하나를 생성하게 될 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 2차 압축 유형을 선택하는 것에 응답하여 현재 프레임을 압축 형태로 표현하도록 잔류 프레임(R-프레임)을 생성하기 위해 차이 프레임을 압축하게 될 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 선택된 압축 유형에 의해 현재 프레임의 압축 후에 현재 프레임을 압축 형태로 표현하는 압축된 프레임을 암호화하게 될 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 현재 프레임의 압축 및 압축된 프레임의 암호화 후에 디스플레이 디바이스에 현재 프레임을 압축하기 위한 압축 유형의 선택의 지시 및 압축된 프레임을 전송하게 될 수 있다.
몇몇 예에서, 비디오 프레임을 압축해제하기 위한 컴퓨터 구현 방법은 시각적 화상의 다수의 압축된 프레임 및 다수의 압축된 프레임의 각각의 압축된 프레임을 생성하도록 이용된 압축 유형의 지시를 수신하는 단계, 및 지시에 기초하여 다수의 압축된 프레임의 각각의 압축된 프레임을 압축해제하기 위해 압축해제 유형을 선택하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 지시에 기초하여 다수의 압축된 프레임의 압축된 프레임을 압축해제하기 위해 1차 압축해제 유형 또는 압축된 프레임을 압축해제하기 위해 2차 압축해제 유형을 선택하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 1차 압축해제 유형은 동영상 전문가 그룹(MPEG)의 버전을 포함할 수 있고, 2차 압축 유형은 허프만 코딩을 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 선택된 압축해제 유형에 의한 선택 전에 다수의 압축된 프레임을 복호화하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 선택된 압축해제 유형의 선택 전에 지시를 복호화하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 각각의 압축된 프레임의 압축해제 후에 다수의 압축된 프레임의 각각의 압축된 프레임의 컬러 공간을 변환하는 단계를 포함할 수 있다.
부가적으로 또는 대안적으로, 방법은 각각의 압축된 프레임의 압축해제 후에 다수의 압축된 프레임의 각각의 압축된 프레임을 디스플레이 상에 제시하는 단계를 포함할 수 있다.
몇몇 예에서, 적어도 하나의 머신 판독가능 저장 매체는 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스가 시각적 화상의 다수의 압축된 프레임 및 다수의 압축된 프레임의 각각의 압축된 프레임을 생성하도록 이용된 압축 유형의 지시를 수신하게 하고, 지시에 기초하여 다수의 압축된 프레임의 각각의 압축된 프레임을 압축해제하기 위해 압축해제 유형을 선택하게 하는 명령어를 포함할 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 지시에 기초하여 다수의 압축된 프레임의 압축된 프레임을 압축해제하기 위해 1차 압축해제 유형 또는 압축된 프레임을 압축해제하기 위해 2차 압축해제 유형을 선택하게 될 수 있다.
부가적으로 또는 대안적으로, 1차 압축해제 유형은 동영상 전문가 그룹(MPEG)의 버전을 포함할 수 있고, 2차 압축 유형은 허프만 코딩을 포함할 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 선택된 압축해제 유형에 의한 압축해제 전에 다수의 압축된 프레임을 복호화하게 될 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 선택된 압축해제 유형의 선택 전에 지시를 복호화하게 될 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 각각의 압축된 프레임의 압축해제 후에 다수의 압축된 프레임의 각각의 압축된 프레임의 컬러 공간을 변환하게 될 수 있다.
부가적으로 또는 대안적으로, 컴퓨팅 디바이스는 각각의 압축된 프레임의 압축해제 후에 다수의 압축된 프레임의 각각의 압축된 프레임을 컴퓨팅 디바이스의 디스플레이 상에 시각적으로 제시하게 될 수 있다.
몇몇 실시예에서, 적어도 하나의 머신 판독가능 저장 매체는 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스가 상기의 임의의 하나를 수행하게 하는 명령어를 포함할 수 있다.
몇몇 실시예에서, 비디오 프레임을 압축하고 그리고/또는 시각적으로 제시하기 위한 디바이스는 상기의 임의의 하나를 수행하기 위한 수단을 포함할 수 있다.

Claims (25)

  1. 비디오 프레임을 압축하기 위한 디바이스로서,
    프로세서 구성요소와,
    일련의 프레임의 현재 프레임과 선행 인접 프레임 사이의 차이의 정도에 기초하여 상기 일련의 프레임의 현재 프레임에 대한 압축 유형을 동적으로 선택하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 압축 선택기를 포함하는
    디바이스.
  2. 제 1 항에 있어서,
    상기 현재 프레임과 상기 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 유도하기 위한 프레임 감산기와,
    상기 현재 프레임을 압축된 형태로 표현하는 잔류 프레임(R-프레임)을 생성하기 위해 상기 차이 프레임을 압축하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 허프만 코더(Huffman coder) - 상기 압축 선택기는 상기 R-프레임의 데이터 크기에 기초하여 상기 차이의 정도를 결정함 - 를 포함하는
    디바이스.

  3. 제 1 항에 있어서,
    상기 현재 프레임을 압축하기 위해 1차 압축 유형을 이용하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 1차 압축기와,
    상기 현재 프레임을 압축하기 위해 2차 압축 유형을 이용하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 2차 압축기 - 상기 압축 선택기는 선택된 임계치로의 상기 차이의 정도의 비교에 기초하여 상기 현재 프레임을 압축하기 위해 상기 1차 압축기 또는 상기 2차 압축기를 선택함 - 를 포함하는
    디바이스.
  4. 제 3 항에 있어서,
    상기 프로세서 구성요소에 의한 실행을 위한 허프만 코더를 포함하고, 상기 허프만 코더는 상기 1차 압축기 및 상기 2차 압축기에 의해 공유되는
    디바이스.
  5. 제 3 항에 있어서,
    상기 1차 압축기는 상기 현재 프레임을 압축된 형태로 표현하는 인트라-프레임(I-프레임), 예측된 프레임(P-프레임) 또는 양예측된 프레임(B-프레임) 중 하나를 생성하기 위한 모션 추정기, 이산 코사인 변환(DCT) 구성요소, 양자화 구성요소 및 허프만 코더를 포함하는
    디바이스.
  6. 제 5 항에 있어서,
    상기 압축 선택기는 상기 차이의 정도에 기초하여 상기 I-프레임을 생성하거나 또는 상기 P-프레임과 상기 B-프레임 중 하나를 생성하기 위해 상기 1차 압축기를 시그널링하는
    디바이스.
  7. 제 3 항에 있어서,
    상기 2차 압축기는 상기 현재 프레임을 압축 형태로 표현하도록 잔류 프레임(R-프레임)을 생성하기 위해 상기 현재 프레임과 상기 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 압축하는
    디바이스.
  8. 제 1 항에 있어서,
    선택된 압축 유형에 의해 상기 현재 프레임의 압축 후에 상기 현재 프레임을 압축 형태로 표현하는 압축된 프레임을 암호화하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 암호화 구성요소를 포함하는
    디바이스.
  9. 제 8 항에 있어서,
    상기 현재 프레임의 압축 및 상기 압축된 프레임의 암호화 후에 디스플레이 디바이스에 상기 현재 프레임을 압축하기 위한 압축 유형의 선택의 지시 및 상기 압축된 프레임을 전송하기 위한 인터페이스를 포함하는
    디바이스.
  10. 비디오 프레임을 압축해제하기 위한 디바이스로서,
    프로세서 구성요소와,
    시각적 화상(imagery)의 다수의 압축된 프레임 및 상기 다수의 압축된 프레임의 각각의 압축된 프레임을 생성하도록 이용된 압축 유형의 지시를 수신하기 위한 인터페이스와,
    상기 지시에 기초하여 상기 다수의 압축된 프레임의 각각의 압축된 프레임을 압축해제하기 위해 압축해제 유형을 선택하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 압축해제 선택기를 포함하는
    디바이스.
  11. 제 10 항에 있어서,
    압축된 프레임을 압축해제하기 위해 1차 압축해제 유형을 이용하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 1차 압축해제기와,
    압축된 프레임을 압축해제하기 위해 2차 압축해제 유형을 이용하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 2차 압축해제기 - 상기 압축해제 선택기는 상기 지시에 기초하여 상기 다수의 압축된 프레임의 각각의 압축된 프레임을 압축해제하기 위해 상기 1차 압축해제기 또는 상기 2차 압축해제기를 선택함 - 를 포함하는
    디바이스.
  12. 제 10 항에 있어서,
    선택된 압축해제 유형의 선택 전의 지시 및 상기 다수의 압축된 프레임을 복호화하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 복호화 구성요소를 포함하는
    디바이스.
  13. 제 10 항에 있어서,
    각각의 압축된 프레임의 압축해제 후에 상기 다수의 압축된 프레임의 각각의 압축된 프레임의 컬러 공간을 변환하기 위해 상기 프로세서 구성요소에 의한 실행을 위한 컬러 공간 변환기를 포함하는
    디바이스.
  14. 제 10 항에 있어서,
    각각의 압축된 프레임의 압축해제 후에 상기 다수의 압축된 프레임의 각각의 압축된 프레임을 시각적으로 제시하기 위한 디스플레이를 포함하는
    디바이스.
  15. 비디오 프레임을 압축하기 위한 컴퓨터 구현 방법으로서,
    일련의 프레임의 현재 프레임과 상기 일련의 프레임의 선행 인접 프레임 중 하나의 화소 컬러값을 상기 현재 프레임과 상기 선행 인접 프레임의 다른 하나의 대응 화소값으로부터 감산하여 차이의 정도를 결정하는 단계와,
    상기 차이의 정도에 기초하여 상기 현재 프레임을 압축하기 위해 압축 유형을 동적으로 선택하는 단계를 포함하는
    컴퓨터 구현 방법.
  16. 제 15 항에 있어서,
    상기 현재 프레임과 상기 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 생성하는 단계와,
    상기 차이의 정도를 결정하기 위해 상기 차이 프레임을 분석하는 단계를 포함하는
    컴퓨터 구현 방법.
  17. 제 15 항에 있어서,
    상기 현재 프레임과 상기 선행 인접 프레임 사이의 적어도 하나의 화소의 화소 컬러의 차이를 포함하는 차이 프레임을 생성하는 단계와,
    상기 현재 프레임을 압축된 형태로 표현하는 잔류 프레임(R-프레임)을 생성하기 위해 상기 차이 프레임을 압축하도록 허프만 코딩을 이용하는 단계와,
    상기 R-프레임의 데이터 크기로부터 차이의 정도를 결정하는 단계를 포함하는
    컴퓨터 구현 방법.
  18. 제 15 항에 있어서,
    상기 방법은 선택된 임계치로의 상기 차이의 정도의 비교에 기초하여 현재 프레임을 압축하기 위한 1차 압축 유형 또는 현재 프레임을 압축하기 위한 2차 압축 유형을 선택하는 단계를 포함하는
    컴퓨터 구현 방법.
  19. 제 18 항에 있어서,
    상기 1차 압축 유형은 동영상 전문가 그룹(Motion Picture Experts Group: MPEG)의 버전을 포함하고, 상기 2차 압축 유형은 허프만 코딩을 포함하는
    컴퓨터 구현 방법.
  20. 제 18 항에 있어서,
    상기 방법은 상기 1차 압축 유형을 선택하는 것에 응답하여 상기 현재 프레임을 압축된 형태로 표현하는 인트라-프레임(I-프레임), 예측된 프레임(P-프레임) 또는 양예측된 프레임(B-프레임) 중 하나를 생성하는 단계를 포함하는
    컴퓨터 구현 방법.
  21. 제 20 항에 있어서,
    상기 방법은 상기 차이의 정도에 기초하여 상기 I-프레임을 생성하거나 또는 상기 P-프레임과 상기 B-프레임 중 하나를 생성하는 단계를 포함하는
    컴퓨터 구현 방법.
  22. 제 18 항에 있어서,
    상기 방법은 상기 2차 압축 유형을 선택하는 것에 응답하여 상기 현재 프레임을 압축 형태로 표현하도록 잔류 프레임(R-프레임)을 생성하기 위해 상기 차이 프레임을 압축하는 단계를 포함하는
    컴퓨터 구현 방법.
  23. 제 15 항에 있어서,
    상기 방법은 선택된 압축 유형에 의해 상기 현재 프레임의 압축 후에 상기 현재 프레임을 압축 형태로 표현하는 압축된 프레임을 암호화하는 단계를 포함하는
    컴퓨터 구현 방법.

  24. 제 23 항에 있어서,
    상기 방법은 상기 현재 프레임의 압축 및 상기 압축된 프레임의 암호화 후에 디스플레이 디바이스에 상기 현재 프레임을 압축하기 위한 압축 유형의 선택의 지시 및 상기 압축된 프레임을 전송하는 단계를 포함하는
    컴퓨터 구현 방법.
  25. 적어도 하나의 머신 판독가능 저장 매체로서,
    컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스가 제 15 항 내지 제 24 항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는
    적어도 하나의 머신 판독가능 저장 매체.
KR1020167000598A 2013-08-12 2013-08-12 저전력 비디오 압축 및 전송을 위한 기술 KR20160019104A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/081274 WO2015021586A1 (en) 2013-08-12 2013-08-12 Techniques for low power video compression and transmission

Publications (1)

Publication Number Publication Date
KR20160019104A true KR20160019104A (ko) 2016-02-18

Family

ID=52448662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167000598A KR20160019104A (ko) 2013-08-12 2013-08-12 저전력 비디오 압축 및 전송을 위한 기술

Country Status (5)

Country Link
US (1) US20150043653A1 (ko)
EP (1) EP3033877A4 (ko)
KR (1) KR20160019104A (ko)
CN (1) CN105359523A (ko)
WO (1) WO2015021586A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6791034B2 (ja) * 2017-06-16 2020-11-25 株式会社Jvcケンウッド 表示システム、映像処理装置、画素ずらし表示装置、映像処理方法、表示方法、及びプログラム
CN107749758A (zh) * 2017-10-30 2018-03-02 成都心吉康科技有限公司 实时生理数据无损压缩、解压缩的方法、装置和***
CN113438501B (zh) * 2020-03-23 2023-10-27 腾讯科技(深圳)有限公司 视频压缩方法、装置、计算机设备和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5260783A (en) * 1991-02-21 1993-11-09 Gte Laboratories Incorporated Layered DCT video coder for packet switched ATM networks
GB2284131A (en) * 1993-11-05 1995-05-24 Hong Kong Productivity Council Video display apparatus
JP2000209164A (ja) * 1999-01-13 2000-07-28 Nec Corp デ―タ伝送方式
US6347155B1 (en) * 1998-10-01 2002-02-12 Sharewave, Inc. Method and apparatus for digital data compression
US7158681B2 (en) * 1998-10-01 2007-01-02 Cirrus Logic, Inc. Feedback scheme for video compression system
GB2365245B (en) * 2000-07-28 2004-06-30 Snell & Wilcox Ltd Video Compression
CN100471273C (zh) * 2006-07-17 2009-03-18 四川长虹电器股份有限公司 数字视频无线传输***
US8204106B2 (en) * 2007-11-14 2012-06-19 Ati Technologies, Ulc Adaptive compression of video reference frames
TW201121335A (en) * 2009-12-02 2011-06-16 Sunplus Core Technology Co Ltd Method and apparatus for adaptively determining compression modes to compress frames
CN102572381A (zh) * 2010-12-29 2012-07-11 ***通信集团公司 视频监控场景判别方法及其监控图像编码方法、及装置
JP5678743B2 (ja) * 2011-03-14 2015-03-04 富士通株式会社 情報処理装置、画像送信プログラム、画像送信方法および画像表示方法
US9578336B2 (en) * 2011-08-31 2017-02-21 Texas Instruments Incorporated Hybrid video and graphics system with automatic content detection process, and other circuits, processes, and systems
US9953436B2 (en) * 2012-06-26 2018-04-24 BTS Software Solutions, LLC Low delay low complexity lossless compression system

Also Published As

Publication number Publication date
EP3033877A1 (en) 2016-06-22
EP3033877A4 (en) 2017-07-12
WO2015021586A1 (en) 2015-02-19
US20150043653A1 (en) 2015-02-12
CN105359523A (zh) 2016-02-24

Similar Documents

Publication Publication Date Title
JP6242029B2 (ja) 低電力画像圧縮及び表示のための技術
US10257510B2 (en) Media encoding using changed regions
KR102330316B1 (ko) 비디오 인코딩 및 디코딩을 위한 적응형 전달 함수
US9524536B2 (en) Compression techniques for dynamically-generated graphics resources
KR101593428B1 (ko) 섬네일 이미지를 압축 비디오 이미지에 포함시키는 기술
JP6109956B2 (ja) ビデオコンテンツを前処理するエンコーダハードウェアの活用
TWI557683B (zh) Mipmap壓縮技術
EP2693754A1 (en) Transcoding video data
JP2017509189A (ja) 圧縮ビデオデータにおいて複数の関心領域の指標を含めるための技術
US9357236B2 (en) Color compression using a selective color transform
JP5908605B2 (ja) 動き推定を用いたオブジェクト検出
KR20160019104A (ko) 저전력 비디오 압축 및 전송을 위한 기술
JP5923589B2 (ja) 適応デプスオフセット圧縮
KR101277354B1 (ko) 메모리 대역폭 및 저장소를 감소시키기 위한 이미지 데이터의 지각적 무손실 압축
US10313681B2 (en) Techniques for rate-distortion optimization in video compression
TWI539795B (zh) 使用變化區域的媒體編碼

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment