[go: up one dir, main page]

KR20150039425A - 비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템 - Google Patents

비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템 Download PDF

Info

Publication number
KR20150039425A
KR20150039425A KR20130117982A KR20130117982A KR20150039425A KR 20150039425 A KR20150039425 A KR 20150039425A KR 20130117982 A KR20130117982 A KR 20130117982A KR 20130117982 A KR20130117982 A KR 20130117982A KR 20150039425 A KR20150039425 A KR 20150039425A
Authority
KR
South Korea
Prior art keywords
stream
video
data
image data
output stream
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
KR20130117982A
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 삼성전자주식회사
Priority to KR20130117982A priority Critical patent/KR20150039425A/ko
Priority to US14/501,768 priority patent/US20150093036A1/en
Publication of KR20150039425A publication Critical patent/KR20150039425A/ko
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4147PVR [Personal Video Recorder]
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Computing Systems (AREA)

Abstract

비디오/이미지 스트림의 목표 데이터를 임의로 액세스할 수 있는(randomly accessible) 시스템 온 칩(SOC)이 개시된다. 시스템 온 칩은 JPEC 디코더, 그래픽 처리 유닛(GPU) 및 중앙처리장치(CPU)를 포함할 수 있다. JPEC 디코더는 순차적 액세스가 가능한 제 1 압축 포맷을 갖는 입력 스트림을 수신하고, 입력 스트림을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림을 발생한다. 그래픽 처리 유닛(GPU)은 출력 스트림을 수신하고, 출력 스트림에 대해 그래픽 처리를 수행한다. 따라서, 시스템 온 칩은 그래픽 처리를 할 때, 임의 접근 가능한 압축 포맷으로 저장 수단에 저장되어 있는 비디오/이미지 데이터를 빠른 시간에 반복하여 수신함으로써 그래픽 처리가 용이하다.

Description

비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템{VIDEO/IMAGE DATA PROCESSING SYSTEM AND METHOD OF PROCESSING VIDEO/IMAGE DATA}
본 발명은 비디오/이미지 데이터 처리 시스템 및 방법에 관한 것으로, 특히 비디오/이미지 데이터를 그래픽 처리에 사용 가능하도록 압축 형식을 변환할 수 있는 비디오/이미지 데이터 처리 시스템 및 방법에 관한 것이다.
메모리 영역을 적게 차지하기 위해 비디오/이미지 데이터를 압축하여 저장한다. 종래에는 압축된 비디오/이미지 데이터 스트림의 블록들을 처음부터 목표 데이터가 포함된 블록까지 순차적으로 디코딩해야 했다. 즉, 종래의 압축된 비디오/이미지 데이터는 순차적으로 액세스를 해야 하였다. 순차적으로 액세스하는 종래의 압축 방법에 의해 압축된 비디오/이미지 데이터는 그래픽 처리에 사용하기 어렵다.
본 발명의 목적은 그래픽 처리에 사용 가능한 비디오/이미지 데이터 처리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 상기 비디오/이미지 데이터 처리 시스템을 포함하는 시스템 온 칩을 제공하는 것이다.
본 발명의 또 다른 목적은 그래픽 처리에 사용 가능한 비디오/이미지 데이터 처리 방법을 제공하는 것이다.
상기 목적을 달성하기 위하여 본 발명의 하나의 실시형태에 따른 시스템 온 칩(SOC)은 JPEC 디코더, 그래픽 처리 유닛(graphic processing unit: GPU) 및 중앙처리장치(CPU)를 포함할 수 있다.
JPEC 디코더는 순차적 액세스가 가능한 제 1 압축 포맷을 갖는 입력 스트림을 수신하고, 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림을 발생한다. 그래픽 처리 유닛(GPU)은 상기 출력 스트림을 수신하고, 상기 출력 스트림에 대해 그래픽 처리를 수행한다. 중앙처리장치(CPU)는 상기 JPEG 디코더 및 상기 GPU의 동작을 제어한다.
본 발명의 하나의 실시예에 의하면, 상기 GPU는 상기 출력 스트림의 복수의 블록들 중 목표 데이터(target data)가 포함된 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 시스템 온 칩은 상기 입력 스트림이 디코딩된 상기 제 1 데이터를 저장하기 위한 버퍼 회로를 더 포함할 수 있다.
본 발명의 하나의 실시형태에 따른 비디오/이미지 데이터 처리 시스템은 제 1 회로 및 제 2 회로를 포함하는 코드 변환 회로를 포함할 수 있다.
제 1 회로는 순차적 액세스가 가능한 제 1 압축 포맷을 갖는 입력 스트림을 수신하고, 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생한다. 제 2 회로는 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림을 발생한다.
본 발명의 하나의 실시예에 의하면, 상기 제 1 압축 포맷 및 상기 제 2 압축 포맷은 블록에 기초하여 코드화된 포맷(block-based coded format)일 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 코드 변환 회로는 상기 입력 스트림을 디코딩하여 상기 제 1 데이터를 발생하는 디코더, 및 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 상기 제 2 압축 포맷을 갖는 상기 출력 스트림을 발생하는 인코더를 포함할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 코드 변환 회로는 상기 입력 스트림을 디코딩하여 상기 제 1 데이터를 발생하는 디코더, 상기 입력 스트림이 디코딩된 상기 제 1 데이터를 저장하기 위한 버퍼 회로, 및 상기 버퍼 회로로부터 상기 제 1 데이터를 수신하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 상기 제 2 압축 포맷을 갖는 상기 출력 스트림을 발생하는 인코더를 포함할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 입력 스트림 및 상기 출력 스트림은 각각 복수의 블록으로 구성될 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 코드 변환 회로는 상기 입력 스트림의 상기 복수의 블록들 중 맨 처음 블록으로부터 목표 데이터(target data)가 포함된 블록으로 순차적으로 디코딩할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 비디오/이미지 데이터 처리 시스템은 상기 출력 스트림을 수신하고, 상기 출력 스트림을 디코딩하여 그래픽 처리를 수행하는 그래픽 처리 유닛(graphic processing unit: GPU)을 더 포함할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 GPU는 상기 출력 스트림의 상기 복수의 블록들 중 목표 데이터(target data)가 포함된 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 제 2 압축 포맷을 갖는 출력 스트림을 디코딩한 결과의 데이터 사이즈는 상기 제 1 압축 포맷을 갖는 입력 스트림을 디코딩한 결과의 데이터 사이즈보다 작을 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 제 2 압축 포맷을 갖는 출력 스트림을 디코딩한 결과를 저장하는 데 필요한 버퍼 사이즈는 상기 제 1 압축 포맷을 갖는 입력 스트림을 디코딩한 결과를 저장하는 데 필요한 버퍼 사이즈보다 작을 수 있다.
본 발명의 하나의 실시형태에 따른 비디오/이미지 데이터 처리 시스템은 제 1 저장 수단, 코드 변환 회로 및 제 2 저장 수단을 포함할 수 있다.
코드 변환 회로는 상기 제 1 저장 수단으로부터 순차적 액세스가 가능한 제 1 압축 포맷을 갖는 입력 스트림을 수신하고, 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림을 발생한다. 제 2 저장 수단은 상기 코드 변환 회로로부터 상기 출력 스트림을 수신하여 저장한다.
본 발명의 하나의 실시형태에 따른 비디오/이미지 데이터 처리 방법은 비디오/이미지 데이터를 그래픽 처리에 사용하기 위한 방법이다. 비디오/이미지 데이터 처리 방법은 순차적 액세스가 가능한 제 1 압축 포맷을 갖고 복수의 블록으로 구성된 입력 스트림을 수신하는 단계; 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생하는 단계; 및 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖고 복수의 블록으로 구성된 출력 스트림을 발생하는 단계를 포함할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 비디오/이미지 데이터 처리 방법은 상기 제 1 데이터를 버퍼 회로에 저장하는 단계를 더 포함할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 제 1 압축 포맷 및 상기 제 2 압축 포맷은 블록에 기초하여 코드화된 포맷(block-based coded format)일 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 제 1 데이터를 발생하는 단계는 상기 입력 스트림의 상기 복수의 블록들 중 맨 처음 블록으로부터 목표 데이터(target data)가 포함된 블록으로 순차적으로 디코딩하는 단계를 포함할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 비디오/이미지 데이터 처리 방법은 상기 메모리로부터 상기 출력 스트림을 수신하는 단계; 및 그래픽 처리에 사용하기 위해 상기 출력 스트림을 디코딩하는 단계를 더 포함할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 출력 스트림을 디코딩하는 단계는 상기 출력 스트림의 상기 복수의 블록들 중 목표 데이터(target data)가 포함된 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩하는 단계를 포함할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 출력 스트림을 디코딩하는 단계는 상기 출력 스트림의 헤더(Header)를 읽고, 상기 복수의 블록들 중 상기 헤더가 지시하는 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩하는 단계를 포함할 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 제 2 압축 포맷은 3-D(three dimensional) 그래픽 처리에서 텍스쳐 매핑(texture mapping)을 위해 사용할 수 있는 압축 포맷일 수 있다.
본 발명의 하나의 실시예에 의하면, 상기 제 1 압축 포맷은 JPEG, PNG, GIF, MPEG, H.264, HEVC 중에서 선택된 하나의 image/video 압축 포맷이고, 상기 제 2 압축 포맷은 ASTC, S3TC, ETC, PVRTC, BC1, BC2, BC3, BC4, BC5, BC6 및 BC7 중에서 선택된 하나의 texture 압축 포맷일 수 있다.
본 발명의 실시예들에 따른 비디오/이미지 데이터 처리 시스템 및 방법은 비디오/이미지 데이터의 스트림 전체를 디코딩하고 디코딩된 비디오/이미지 데이터 스트림의 목표 데이터를 임의 접근 가능(randomly accessible)한 압축 포맷으로 저장 수단에 저장한다. 따라서, 비디오/이미지 데이터 처리 시스템 및 방법은 그래픽 처리 유닛(GPU)가 그래픽 처리를 할 때, 임의 접근 가능한 압축 포맷으로 저장 수단에 저장되어 있는 비디오/이미지 데이터를 빠른 시간에 반복하여 수신함으로써 그래픽 처리를 용이하게 할 수 있다.
도 1은 본 발명의 하나의 실시 예에 따른 비디오/이미지 데이터 처리 시스템을 나타내는 블록도이다.
도 2는 도 1의 비디오/이미지 데이터 처리 시스템에 포함된 코드 변환 회로의 하나의 예를 나타내는 블록도이다.
도 3은 도 1의 비디오/이미지 데이터 처리 시스템에 포함된 코드 변환 회로의 다른 하나의 예를 나타내는 블록도이다.
도 4 및 도 5는 도 2의 코드 변환 회로의 입력 스트림과 출력 스트림의 디코딩 시퀀스의 하나의 예를 나타내는 도면이다.
도 6은 본 발명의 다른 하나의 실시 예에 따른 비디오/이미지 데이터 처리 시스템을 나타내는 블록도이다.
도 7은 본 발명의 또 다른 하나의 실시 예에 따른 비디오/이미지 데이터 처리 시스템을 나타내는 블록도이다.
도 8은 본 발명의 또 다른 하나의 실시 예에 따른 비디오/이미지 데이터 처리 시스템을 나타내는 블록도이다.
도 9는 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나를 포함하는 시스템 온 칩(SOC)의 하나의 실시 예를 나타내는 블록도이다.
도 10은 본 발명의 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법을 나타내는 흐름도이다.
도 11은 본 발명의 다른 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법을 나타내는 흐름도이다.
도 12는 본 발명의 또 다른 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법을 나타내는 흐름도이다.
도 13은 본 발명의 또 다른 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법을 나타내는 흐름도이다.
도 14는 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나를 포함하는 컴퓨터 시스템의 하나의 실시 예를 나타내는 블록도이다.
도 15는 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나를 포함하는 컴퓨터 시스템의 다른 하나의 실시 예를 나타내는 블록도이다.
도 16은 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나를 포함하는 컴퓨터 시스템의 또 다른 하나의 실시 예를 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 안 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 개시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 설명한다.
도 1은 본 발명의 하나의 실시 예에 따른 비디오/이미지 데이터 처리 시스템(100)을 나타내는 블록도이다.
도 1을 참조하면, 비디오/이미지 데이터 처리 시스템(100)은 코드 변환 회로(110) 및 저장 수단(120)을 포함할 수 있다. 코드 변환 회로(110)는 저장 수단 (120)으로부터 순차적 액세스가 가능한 제 1 압축 포맷(compression format)을 갖는 입력 스트림(STREAM_IN)을 수신하고, 입력 스트림(STREAM_IN)을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림(STREAM_OUT)을 발생하고, 출력 스트림(STREAM_OUT)을 저장 수단(120)에 저장한다. 저장 수단(120)은 비디오/이미지 데이터 처리 시스템(100)의 내부에 있는 메모리일 수도 있고, 비디오/이미지 데이터 처리 시스템(100)의 외부에 있는 메모리 장치일 수도 있다. 저장 수단이 비디오/이미지 데이터 처리 시스템(100)의 외부에 있는 메모리 장치일 경우, 코드 변환 회로(110)는 메모리 컨트롤러(미도시) 및 시스템 버스(미도시)를 통해 저장 수단(120)과 데이터를 송수신할 수 있다.
도 1의 비디오/이미지 데이터 처리 시스템(100)은 입력 스트림(STREAM_IN)이 디코딩된 제 1 데이터(DATA_1)를 저장하기 위한 버퍼 회로(미도시)를 더 포함할 수 있다. 버퍼 회로는 코드 변환 회로(110) 내에 포함될 수 있다.
도 2은 도 1의 비디오/이미지 데이터 처리 시스템에 포함된 코드 변환 회로(110)의 하나의 예를 나타내는 블록도이다.
도 2를 참조하면, 코드 변환 회로(110)는 디코더(decoder)(112) 및 인코더(encoder)(114)를 포함할 수 있다.
디코더(112)는 입력 스트림(STREAM_IN)을 디코딩하여 제 1 데이터(DATA_1)를 발생한다. 인코더 (114)는 제 1 데이터(DATA_1)를 인코딩하여 랜덤 액세스가 가능한 상기 제 2 압축 포맷을 갖는 출력 스트림(STREAM_OUT)을 발생한다.
도 3은 도 1의 비디오/이미지 데이터 처리 시스템에 포함된 코드 변환 회로의 다른 하나의 예를 나타내는 블록도이다.
도 3을 참조하면, 코드 변환 회로(110)는 디코더(decoder)(112), 버퍼 회로(116) 및 인코더(encoder)(114)를 포함할 수 있다.
디코더(112)는 입력 스트림(STREAM_IN)을 디코딩하여 제 1 데이터(DATA_1)를 발생한다. 버퍼 회로(116)는 입력 스트림(STREAM_IN)이 디코딩된 상기 제 1 데이터를 저장한다. 인코더 (114)는 버퍼 회로(116)로부터 제 1 데이터(DATA_1)를 수신하고, 제 1 데이터(DATA_1)를 인코딩하여 랜덤 액세스가 가능한 상기 제 2 압축 포맷을 갖는 출력 스트림(STREAM_OUT)을 발생한다.
도 4 및 도 5은 도 6의 코드 변환 회로의 입력 스트림과 출력 스트림의 디코딩 시퀀스의 하나의 예를 나타내는 도면이다. 도 4에는 출력 스트림이 헤더(header)를 갖는 경우의 디코딩 시퀀스가 도시되어 있고, 도 5에는 스트림이 헤더를 갖지 않은 경우의 디코딩 시퀀스가 도시되어 있다.
도 4를 참조하면, 입력 스트림(STREAM_IN) 및 출력 스트림(STREAM_OUT)은 각각 복수의 블록(B0 - B5)으로 구성될 수 있다. 도 4에는 입력 스트림(STREAM_IN)과 출력 스트림(STREAM_OUT)이 각각 6 개의 블록(B0 - B5)으로 구성된 예가 도시되어 있지만, 입력 스트림(STREAM_IN)과 출력 스트림(STREAM_OUT)은 각각 임의의 개수의 블록들을 포함할 수 있다. 코드 변환 회로(110)는 입력 스트림(STREAM_IN)의 복수의 블록들(B0 - B5) 중 맨 처음 블록(B0)으로부터 목표 데이터(target data)가 포함된 블록(B5)으로 순차적으로 디코딩한다. 그래픽 처리 유닛(graphic processing unit: GPU)은 그래픽 처리를 하기 위하여, 출력 스트림(STREAM_OUT)의 헤더(HEADER)를 읽고, 복수의 블록들(B0 - B5) 중 헤더(HEADER)가 지시하는 블록(B5)으로 점프하여 블록(B5)을 디코딩한다.
도 5를 참조하면, 그래픽 처리 유닛(graphic processing unit: GPU)은 그래픽 처리를 하기 위하여 출력 스트림(STREAM_OUT)의 복수의 블록들(B0 - B5) 중 목표 데이터(target data)가 포함된 블록(B5)으로 점프하여 블록(B5)을 디코딩한다.
도 6은 본 발명의 다른 하나의 실시 예에 따른 비디오/이미지 데이터 처리 시스템(200)을 나타내는 블록도이다.
도 6을 참조하면, 비디오/이미지 데이터 처리 시스템(200)은 코드 변환 회로(210), 제 1 메모리(220) 및 제 2 메모리(230)를 포함할 수 있다. 코드 변환 회로(210)는 제 1 저장 수단(220)으로부터 순차적 액세스가 가능한 제 1 압축 포맷(compression format)을 갖는 입력 스트림(STREAM_IN)을 수신하고, 입력 스트림(STREAM_IN)을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림(STREAM_OUT)을 발생한다. 제 2 저장 수단(230)은 코드 변환 회로(210)로부터 출력 스트림(STREAM_OUT)을 수신하여 저장한다.
제 1 및 제 2 저장 수단(220, 230)은 비디오/이미지 데이터 처리 시스템(200)의 내부에 있는 메모리일 수도 있고, 비디오/이미지 데이터 처리 시스템(200)의 외부에 있는 메모리 장치일 수도 있다. 제 1 및 제 2 저장 수단(220, 230)이 비디오/이미지 데이터 처리 시스템(200)의 외부에 있는 메모리 장치일 경우, 코드 변환 회로(210)는 메모리 컨트롤러(미도시) 및 시스템 버스(미도시)를 통해 저장 수단들(220, 230)과 데이터를 송수신할 수 있다.
도 6에서, 상기 제 1 압축 포맷 및 상기 제 2 압축 포맷은 블록에 기초하여 코드화된 포맷(block-based coded format)일 수 있다.
도 6의 비디오/이미지 데이터 처리 시스템(200)은 입력 스트림(STREAM_IN)이 디코딩된 제 1 데이터(DATA_1)를 저장하기 위한 버퍼 회로(미도시)를 더 포함할 수 있다. 버퍼 회로는 코드 변환 회로(210) 내에 포함될 수 있다.
도 7은 본 발명의 또 다른 하나의 실시 예에 따른 비디오/이미지 데이터 처리 시스템(300)을 나타내는 블록도이다.
도 7을 참조하면, 비디오/이미지 데이터 처리 시스템(300)은 코드 변환 회로(110), 저장 수단(120) 및 그래픽 처리 유닛(GPU)(150)를 포함할 수 있다. 코드 변환 회로(110)는 메모리 회로(120)로부터 순차적 액세스가 가능한 제 1 압축 포맷(compression format)을 갖는 입력 스트림(STREAM_IN)을 수신하고, 입력 스트림(STREAM_IN)을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림(STREAM_OUT)을 발생하고, 출력 스트림(STREAM_OUT)을 저장 수단(120)에 저장한다. 저장 수단(120)은 비디오/이미지 데이터 처리 시스템(300)의 내부에 있는 메모리일 수도 있고, 비디오/이미지 데이터 처리 시스템(300)의 외부에 있는 메모리 장치일 수도 있다. 저장 수단이 비디오/이미지 데이터 처리 시스템(300)의 외부에 있는 메모리 장치일 경우, 코드 변환 회로(110)는 메모리 컨트롤러(미도시) 및 시스템 버스(미도시)를 통해 저장 수단(120)과 데이터를 송수신할 수 있다. 그래픽 처리 유닛(GPU)(150)은 메모리 회로(120)로부터 출력 스트림(STREAM_OUT)을 수신하고, 출력 스트림(STREAM_OUT)에 대해 그래픽 처리를 수행한다. 저장 수단이 비디오/이미지 데이터 처리 시스템(300)의 외부에 있는 메모리 장치일 경우, 그래픽 처리 유닛(GPU)(150)은 메모리 컨트롤러(미도시) 및 시스템 버스(미도시)를 통해 저장 수단(120)으로부터 데이터를 수신할 수 있다.
도 7의 비디오/이미지 데이터 처리 시스템(300)은 입력 스트림(STREAM_IN)이 디코딩된 제 1 데이터(DATA_1)를 저장하기 위한 버퍼 회로(미도시)를 더 포함할 수 있다. 버퍼 회로는 코드 변환 회로(110) 내에 포함될 수 있다.
도 7에서, GPU(150)는 상기 출력 스트림의 상기 복수의 블록들 중 목표 데이터(target data)가 포함된 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩할 수 있다.
도 8은 본 발명의 또 다른 하나의 실시 예에 따른 비디오/이미지 데이터 처리 시스템(400)을 나타내는 블록도이다.
도 10을 참조하면, 비디오/이미지 데이터 처리 시스템(400)은 코드 변환 회로(210), 제 1 저장 수단(220), 제 2 저장 수단(230) 및 그래픽 처리 유닛(graphic processing unit: GPU)(250)를 포함할 수 있다. 코드 변환 회로(210)는 제 1 저장 수단(220)으로부터 순차적 액세스가 가능한 제 1 압축 포맷(compression format)을 갖는 입력 스트림(STREAM_IN)을 수신하고, 입력 스트림(STREAM_IN)을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림(STREAM_OUT)을 발생한다. 제 2 저장 수단(230)은 코드 변환 회로(210)로부터 출력 스트림(STREAM_OUT)을 수신하여 저장한다.
제 1 및 제 2 저장 수단(220, 230)은 비디오/이미지 데이터 처리 시스템(400)의 내부에 있는 메모리일 수도 있고, 비디오/이미지 데이터 처리 시스템(400)의 외부에 있는 메모리 장치일 수도 있다. 저장 수단이 비디오/이미지 데이터 처리 시스템(400)의 외부에 있는 메모리 장치일 경우, 코드 변환 회로(110)는 메모리 컨트롤러(미도시) 및 시스템 버스(미도시)를 통해 저장 수단들(220, 230)과 데이터를 송수신할 수 있다. 그래픽 처리 유닛(GPU)(250)은 제 2 저장 수단(230)으로부터 출력 스트림(STREAM_OUT)을 수신하고, 출력 스트림(STREAM_OUT)에 대해 그래픽 처리를 수행한다. 저장 수단이 비디오/이미지 데이터 처리 시스템(400)의 외부에 있는 메모리 장치일 경우, 그래픽 처리 유닛(GPU)(250)은 메모리 컨트롤러(미도시) 및 시스템 버스(미도시)를 통해 제 2 저장 수단(230)과 데이터를 수신할 수 있다.
도 8의 비디오/이미지 데이터 처리 시스템(400)은 입력 스트림(STREAM_IN)이 디코딩된 제 1 데이터(DATA_1)를 저장하기 위한 버퍼 회로(미도시)를 더 포함할 수 있다. 버퍼 회로는 코드 변환 회로(210) 내에 포함될 수 있다.
도 8에서, 상기 GPU(250)는 상기 출력 스트림의 상기 복수의 블록들 중 목표 데이터(target data)가 포함된 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩할 수 있다.
도 7 및 8에서, 상기 제 2 압축 포맷을 갖는 출력 스트림을 디코딩한 결과의 데이터 사이즈는 상기 제 1 압축 포맷을 갖는 입력 스트림을 디코딩한 결과의 데이터 사이즈보다 작을 수 있다. 또한, 상기 제 2 압축 포맷을 갖는 출력 스트림을 디코딩한 결과를 저장하는 데 필요한 버퍼 사이즈는 상기 제 1 압축 포맷을 갖는 입력 스트림을 디코딩한 결과를 저장하는 데 필요한 버퍼 사이즈보다 작을 수 있다.
도 9는 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나를 포함하는 시스템 온 칩(SOC)(500)의 하나의 실시 예를 나타내는 블록도이다.
도 9를 참조하면, 시스템 온 칩(500)은 중앙처리유닛(central processing unit; CPU)(510), 메모리 컨트롤러(520), JPEG 디코더(530) 및 그래픽 처리 유닛(graphic processing unit: GPU)(540)를 포함할 수 있다.
중앙처리유닛(510), 메모리 컨트롤러(520), JPEG 디코더(530) 및 그래픽 처리 유닛(540)는 버스(501)를 통해 데이터 또는 제어신호를 송수신할 수 있다. 중앙처리유닛(510)은 메모리 컨트롤러(520), JPEG 디코더(530) 및 그래픽 처리 유닛(540)의 일반적인 동작을 관리하고, 메모리 컨트롤러(520)는 시스템 온 칩(500)에 연결된 메모리(미도시)의 동작을 관리한다.
JPEG 디코더(530)는 도 1, 도 6, 도 7 및 도 8의 비디오/이미지 데이터 처리 시스템들 각각에 포함된 코드 변환 회로(110 또는 210) 중 하나를 포함할 수 있다. 따라서, JPEG 디코더(530)는 저장 수단(미도시)으로부터 순차적 액세스가 가능한 제 1 압축 포맷(compression format)을 갖는 입력 스트림(STREAM_IN)을 수신하고, 입력 스트림(STREAM_IN)을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림(STREAM_OUT)을 발생하고, 출력 스트림(STREAM_OUT)을 저장 수단(미도시)에 저장한다. 저장 수단은 시스템 온 칩(500)의 내부에 있는 캐쉬 메모리일 수도 있고, 시스템 온 칩(500)의 외부에 있는 메모리 장치일 수도 있다. JPEG 디코더(530)는 입력 스트림(STREAM_IN)이 디코딩된 데이터를 저장하기 위한 버퍼 회로(미도시)를 더 포함할 수 있다.
저장 수단이 시스템 온 칩(500)의 외부에 있는 메모리 장치일 경우, JPEG 디코더(530)는 메모리 컨트롤러(미도시) 및 시스템 버스(미도시)를 통해 저장 수단과 데이터를 송수신할 수 있다. 그래픽 처리 유닛(GPU)(540)은 저장 수단으로부터 출력 스트림(STREAM_OUT)을 수신하고, 출력 스트림(STREAM_OUT)에 대해 그래픽 처리를 수행한다. 저장 수단이 시스템 온 칩(500)의 외부에 있는 메모리 장치일 경우, 그래픽 처리 유닛(GPU)(540)은 메모리 컨트롤러(미도시) 및 시스템 버스(미도시)를 통해 저장 수단으로부터 데이터를 수신할 수 있다.
도 10은 본 발명의 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법을 나타내는 흐름도이다.
도 10을 참조하면, 본 발명의 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법은 다음의 동작을 포함한다.
1) 순차적 액세스가 가능한 제 1 압축 포맷을 갖고 복수의 블록으로 구성된 입력 스트림을 수신한다 (S1).
2) 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생한다 (S2).
3) 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖고 복수의 블록으로 구성된 출력 스트림을 발생한다 (S3).
4) 상기 출력 스트림을 저장 수단에 저장한다 (S4).
도 11은 본 발명의 다른 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법을 나타내는 흐름도이다.
도 11을 참조하면, 본 발명의 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법은 다음의 동작을 포함한다.
1) 순차적 액세스가 가능한 제 1 압축 포맷을 갖고 복수의 블록으로 구성된 입력 스트림을 수신한다 (S1).
2) 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생한다 (S2).
3) 상기 제 1 데이터를 버퍼 회로에 저장한다 (S5).
4) 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖고 복수의 블록으로 구성된 출력 스트림을 발생한다 (S3).
5) 상기 출력 스트림을 저장 수단에 저장한다 (S4).
도 12는 본 발명의 또 다른 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법을 나타내는 흐름도이다.
도 12를 참조하면, 본 발명의 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법은 다음의 동작을 포함한다.
1) 순차적 액세스가 가능한 제 1 압축 포맷을 갖고 복수의 블록으로 구성된 입력 스트림을 수신한다 (S1).
2) 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생한다 (S2).
3) 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖고 복수의 블록으로 구성된 출력 스트림을 발생한다 (S3).
4) 상기 출력 스트림을 저장 수단에 저장한다 (S4).
5) 상기 저장 수단으로부터 상기 출력 스트림을 수신하여 디코딩한다 (S6).
6) 상기 디코딩된 출력 스트림에 대해 그래픽 처리를 수행한다 (S7).
도 13은 본 발명의 또 다른 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법을 나타내는 흐름도이다.
도 13을 참조하면, 본 발명의 하나의 실시예에 따른 비디오/이미지 데이터 처리 방법은 다음의 동작을 포함한다.
1) 순차적 액세스가 가능한 제 1 압축 포맷을 갖고 복수의 블록으로 구성된 입력 스트림을 수신한다 (S1).
2) 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생한다 (S2).
3) 상기 제 1 데이터를 버퍼 회로에 저장한다 (S5).
4) 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖고 복수의 블록으로 구성된 출력 스트림을 발생한다 (S3).
5) 상기 출력 스트림을 저장 수단에 저장한다 (S4).
6) 상기 저장 수단으로부터 상기 출력 스트림을 수신하여 디코딩한다 (S6).
7) 상기 디코딩된 출력 스트림에 대해 그래픽 처리를 수행한다 (S7).
도 12 및 13의 비디오/이미지 데이터 처리 방법에서, 상기 출력 스트림을 디코딩하는 단계는 상기 출력 스트림의 상기 복수의 블록들 중 목표 데이터(target data)가 포함된 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩하는 단계를 포함할 수 있다. 또한, 도 12 및 13의 비디오/이미지 데이터 처리 방법에서, 상기 출력 스트림을 디코딩하는 단계는 상기 출력 스트림의 헤더(Header)를 읽고, 상기 복수의 블록들 중 상기 헤더가 지시하는 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩하는 단계를 포함할 수 있다. 상기 제 1 블록에는 목표 데이터(target data)가 포함될 수 있다.
도 10 내지 13의 비디오/이미지 데이터 처리 방법에서, 상기 제 1 압축 포맷 및 상기 제 2 압축 포맷은 블록에 기초하여 코드화된 포맷(block-based coded format)일 수 있다.
도 10 내지 13의 비디오/이미지 데이터 처리 방법에서, 상기 제 2 압축 포맷은 3-D(three dimensional) 그래픽 처리에서 텍스쳐 매핑(texture mapping)을 위해 사용할 수 있는 압축 포맷일 수 있다.
도 10내지 13의 비디오/이미지 데이터 처리 방법에서, 상기 제 1 압축 포맷은 JPEG, PNG, GIF, MPEG, H.264, HEVC 중에서 선택된 하나의 image/video 압축 포맷이고, 상기 제 2 압축 포맷은 ASTC, S3TC, ETC, PVRTC, BC1, BC2, BC3, BC4, BC5, BC6 및 BC7 중에서 선택된 하나의 texture 압축 포맷일 수 있다.
일반적으로, H. 264 등의 압축 포맷으로 압축된 비디오 데이터나 JPEG 등의 압축 포맷으로 압축된 이미지 데이터는 임의적으로 액세스할 수 없고, 순차적으로 데이터 스트림의 블록들을 액세스할 수 있다. 따라서, 종래의 비디오/이미지 데이터 압축 방법으로 압축된 데이터를 그래픽 처리에 사용하기 어렵다. 본 발명의 실시예에 따른 비디오/이미지 데이터 처리 방법은 순차적으로 액세스할 수 있는 압축 포맷을 임의적으로 액세스할 수 있는 압축 포맷으로 변환시켜 메모리에 저장함으로써, 그래픽 처리 유닛에서 그래픽 처리를 하는데 용이하다.
도 14는 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나를 포함하는 컴퓨터 시스템의 하나의 실시 예를 나타내는 블록도이다.
도 14을 참조하면, 컴퓨터 시스템(600)은 메모리 장치(610), 메모리 장치(610)을 제어하는 메모리 컨트롤러를 포함하는 애플리케이션 프로세서(650), 무선 송수신기(630), 안테나(640), 입력 장치(660) 및 디스플레이 장치(670)를 포함할 수 있다.
무선 송수신기(630)는 안테나(640)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(630)는 안테나(640)를 통하여 수신된 무선 신호를 애플리케이션 프로세서(650)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, 애플리케이션 프로세서(650)는 무선 송수신기(630)로부터 출력된 신호를 처리하고 처리된 신호를 디스플레이 장치(670)로 전송할 수 있다. 또한, 무선 송수신기(630)는 애플리케이션 프로세서(650)으로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(640)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(660)는 애플리케이션 프로세서(650)의 동작을 제어하기 위한 제어 신호 또는 애플리케이션 프로세서(650)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
실시 예에 따라, 애플리케이션 프로세서(650)는 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나에 포함된 코드 변환 회로(110 또는 210)를 포함할 수 있다.
도 15는 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나를 포함하는 컴퓨터 시스템의 다른 하나의 실시 예를 나타내는 블록도이다.
도 15를 참조하면, 컴퓨터 시스템(700)은 PC(personal computer), 네트워크 서버(Network Server), 태블릿(tablet) PC(personal computer), 넷-북(net-book), e-리더(e-reader), PDA (personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
컴퓨터 시스템(700)은 메모리 장치(710)와 메모리 장치(710)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러를 포함하는 애플리케이션 프로세서(730), 입력 장치(740) 및 디스플레이 장치(750)를 포함할 수 있다.
애플리케이션 프로세서(730)는 입력 장치(740)를 통하여 입력된 데이터에 따라 메모리 장치(710)에 저장된 데이터를 디스플레이 장치(750)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(740)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. 애플리케이션 프로세서(730)는 컴퓨터 시스템(700)의 전반적인 동작을 제어할 수 있고 메모리 장치(720)의 동작을 제어할 수 있다.
실시 예에 따라, 애플리케이션 프로세서(650)는 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나에 포함된 코드 변환 회로(110 또는 210)를 포함할 수 있다.
도 16은 도 1, 도 6, 도 7 및 도 8에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나를 포함하는 컴퓨터 시스템의 또 다른 하나의 실시 예를 나타내는 블록도이다.
도 16을 참조하면, 컴퓨터 시스템(800)은 이미지 처리 장치(Image Process Device), 예컨대 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기, 스마트 폰(smart phone) 또는 테블릿(tablet) 으로 구현될 수 있다.
컴퓨터 시스템(800)은 메모리 장치(810), 및 메모리 장치(810)의 데이터 처리 동작, 예컨대 라이트(write) 동작 또는 리드(read) 동작을 제어할 수 있는 메모리 컨트롤러를 포함하는 애플리케이션 프로세서(830), 입력 장치(820), 이미지 센서(840) 및 디스플레이 장치(850)을 포함할 수 있다.
컴퓨터 시스템(800)의 이미지 센서(840)는 광학 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 애플리케이션 프로세서(830)로 전송된다. 애플리케이션 프로세서(830)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이 장치(850)를 통하여 디스플레이되거나 또는 메모리 장치(810)에 저장될 수 있다.
예컨대, 입력 장치(820)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. 애플리케이션 프로세서(830)는 컴퓨터 시스템(800)의 전반적인 동작을 제어할 수 있고 메모리 장치(810)의 동작을 제어할 수 있다.
또한, 메모리 장치(810)에 저장된 데이터는 애플리케이션 프로세서(830)의 제어에 따라 디스플레이 장치(850)를 통하여 디스플레이 될 수 있다.
실시 예에 따라, 애플리케이션 프로세서(830)는 도 5, 도 9, 도 10 및 도 11에 도시된 비디오/이미지 데이터 처리 시스템들 중 하나를 포함할 수 있다.
본 발명은 그래픽 처리 장치(GPU) 및 그래픽 처리 장치(GPU)를 포함하는 시스템 온 칩(SOC)에 적용이 가능하다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100, 200, 300, 400: 비디오/이미지 데이터 처리 시스템
110, 210: 코드 변환 회로
120, 130, 220, 230: 메모리
150, 250: GPU
500: 시스템 온 칩(SOC)
600, 700, 800: 컴퓨터 시스템

Claims (20)

  1. 순차적 액세스가 가능한 제 1 압축 포맷을 갖는 입력 스트림을 수신하고, 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림을 발생하는 JPEG 디코더;
    상기 출력 스트림에 대해 그래픽 처리를 수행하는 그래픽 처리 유닛(graphic processing unit: GPU); 및
    상기 JPEG 디코더 및 상기 GPU의 동작을 제어하는 중앙처리장치(CPU)를 포함하는 시스템 온 칩(System on a chip: SOC).
  2. 제 1 항에 있어서, 상기 GPU는
    상기 출력 스트림의 복수의 블록들 중 목표 데이터(target data)가 포함된 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩하는 것을 특징으로 하는 시스템 온 칩.
  3. 제 1 항에 있어서, 상기 시스템 온 칩은
    상기 입력 스트림이 디코딩된 상기 제 1 데이터를 저장하기 위한 버퍼 회로를 더 포함하는 것을 특징으로 하는 시스템 온 칩.
  4. 순차적 액세스가 가능한 제 1 압축 포맷을 갖는 입력 스트림을 수신하고, 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생하는 제 1 회로; 및
    상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림을 발생하는 제 2 회로를 포함하는 코드 변환 회로를 포함하는 비디오/이미지 데이터 처리 시스템.
  5. 제 4 항에 있어서, 상기 제 1 압축 포맷 및 상기 제 2 압축 포맷은 블록에 기초하여 코드화된 포맷(block-based coded format)인 것을 특징으로 하는 비디오/이미지 데이터 처리 시스템.
  6. 제 4 항에 있어서, 상기 코드 변환 회로는
    상기 입력 스트림을 디코딩하여 상기 제 1 데이터를 발생하는 디코더; 및
    상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 상기 제 2 압축 포맷을 갖는 상기 출력 스트림을 발생하는 인코더를 포함하는 것을 특징으로 하는 비디오/이미지 데이터 처리 시스템.
  7. 제 4 항에 있어서, 상기 코드 변환 회로는
    상기 입력 스트림을 디코딩하여 상기 제 1 데이터를 발생하는 디코더;
    상기 입력 스트림이 디코딩된 상기 제 1 데이터를 저장하기 위한 버퍼 회로; 및
    상기 버퍼 회로로부터 상기 제 1 데이터를 수신하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 상기 제 2 압축 포맷을 갖는 상기 출력 스트림을 발생하는 인코더를 포함하는 것을 특징으로 하는 비디오/이미지 데이터 처리 시스템.
  8. 제 4 항에 있어서, 상기 입력 스트림 및 상기 출력 스트림은 각각 복수의 블록으로 구성된 것을 특징으로 하는 비디오/이미지 데이터 처리 시스템.
  9. 제 8 항에 있어서, 상기 코드 변환 회로는
    상기 입력 스트림의 상기 복수의 블록들 중 맨 처음 블록으로부터 목표 데이터(target data)가 포함된 블록으로 순차적으로 디코딩하는 것을 특징으로 하는 비디오/이미지 데이터 처리 시스템.
  10. 제 8 항에 있어서, 상기 비디오/이미지 데이터 처리 시스템은
    상기 출력 스트림을 수신하고, 상기 출력 스트림을 디코딩하여 그래픽 처리를 수행하는 그래픽 처리 유닛(graphic processing unit: GPU)을 더 포함하는 것을 특징으로 하는 비디오/이미지 데이터 처리 시스템.
  11. 제 1 저장 수단;
    상기 제 1 저장 수단으로부터 순차적 액세스가 가능한 제 1 압축 포맷을 갖는 입력 스트림을 수신하고, 상기 입력 스트림을 디코딩하여 제 1 데이터를 발생하고, 상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖는 출력 스트림을 발생하는 코드 변환 회로; 및
    상기 코드 변환 회로로부터 상기 출력 스트림을 수신하여 저장하는 제 2 저장 수단을 포함하는 비디오/이미지 데이터 처리 시스템.
  12. 비디오/이미지 데이터를 그래픽 처리에 사용하기 위한 비디오/이미지 데이터 처리 방법에 있어서, 상기 비디오/이미지 데이터 처리 방법은
    순차적 액세스가 가능한 제 1 압축 포맷을 갖고 복수의 블록으로 구성된 입력 스트림을 수신하는 단계;
    상기 입력 스트림을 디코딩하여 제 1 데이터를 발생하는 단계; 및
    상기 제 1 데이터를 인코딩하여 랜덤 액세스가 가능한 제 2 압축 포맷을 갖고 복수의 블록으로 구성된 출력 스트림을 발생하는 단계를 포함하는 비디오/이미지 데이터 처리 방법.
  13. 제 12 항에 있어서, 상기 비디오/이미지 데이터 처리 방법은
    상기 제 1 데이터를 버퍼 회로에 저장하는 단계를 더 포함하는 것을 특징으로 하는 비디오/이미지 데이터 처리 방법.
  14. 제 12 항에 있어서, 상기 제 1 압축 포맷 및 상기 제 2 압축 포맷은 블록에 기초하여 코드화된 포맷(block-based coded format)인 것을 특징으로 하는 비디오/이미지 데이터 처리 방법.
  15. 제 12 항에 있어서, 상기 제 1 데이터를 발생하는 단계는
    상기 입력 스트림의 상기 복수의 블록들 중 맨 처음 블록으로부터 목표 데이터(target data)가 포함된 블록으로 순차적으로 디코딩하는 단계를 포함하는 것을 특징으로 하는 비디오/이미지 데이터 처리 방법.
  16. 제 12항에 있어서, 상기 비디오/이미지 데이터 처리 방법은
    상기 출력 스트림을 저장 수단에 저장하는 단계를 더 포함하는 것을 특징으로 하는 비디오/이미지 데이터 처리 방법.
  17. 제 16 항에 있어서, 상기 비디오/이미지 데이터 처리 방법은
    상기 저장 수단으로부터 상기 출력 스트림을 수신하는 단계; 및
    그래픽 처리에 사용하기 위해 상기 출력 스트림을 디코딩하는 단계를 더 포함하는 것을 특징으로 하는 비디오/이미지 데이터 처리 방법.
  18. 제 17 항에 있어서, 상기 출력 스트림을 디코딩하는 단계는
    상기 출력 스트림의 상기 복수의 블록들 중 목표 데이터(target data)가 포함된 제 1 블록으로 점프하여 상기 제 1 블록을 디코딩하는 단계를 포함하는 것을 특징으로 하는 비디오/이미지 데이터 처리 방법.
  19. 제 12 항에 있어서, 상기 제 2 압축 포맷은 3-D(three dimensional) 그래픽 처리에서 텍스쳐 매핑(texture mapping)을 위해 사용할 수 있는 압축 포맷인 것을 특징으로 하는 비디오/이미지 데이터 처리 방법.
  20. 제 12 항에 있어서, 상기 제 1 압축 포맷은 JPEG, PNG, GIF, MPEG, H.264, HEVC 중에서 선택된 하나의 image/video 압축 포맷이고, 상기 제 2 압축 포맷은 ASTC, S3TC, ETC, PVRTC, BC1, BC2, BC3, BC4, BC5, BC6 및 BC7 중에서 선택된 하나의 texture 압축 포맷인 것을 특징으로 하는 비디오/이미지 데이터 처리 방법.
KR20130117982A 2013-10-02 2013-10-02 비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템 Abandoned KR20150039425A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130117982A KR20150039425A (ko) 2013-10-02 2013-10-02 비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템
US14/501,768 US20150093036A1 (en) 2013-10-02 2014-09-30 Video/image data processing system and method of processing video/image data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130117982A KR20150039425A (ko) 2013-10-02 2013-10-02 비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템

Publications (1)

Publication Number Publication Date
KR20150039425A true KR20150039425A (ko) 2015-04-10

Family

ID=52740251

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130117982A Abandoned KR20150039425A (ko) 2013-10-02 2013-10-02 비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템

Country Status (2)

Country Link
US (1) US20150093036A1 (ko)
KR (1) KR20150039425A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10148972B2 (en) * 2016-01-08 2018-12-04 Futurewei Technologies, Inc. JPEG image to compressed GPU texture transcoder
KR102324609B1 (ko) 2017-12-22 2021-11-10 한국전자통신연구원 다지점 영상회의 장치 및 그 제어 방법
CN110377534B (zh) * 2018-04-13 2023-11-17 华为技术有限公司 数据处理方法及装置
US11176021B2 (en) * 2018-06-03 2021-11-16 Apple Inc. Messaging systems with improved reliability
CN109688415A (zh) * 2019-01-14 2019-04-26 无锡和博永新科技有限公司 基于nvidia gpu的黑白图像jpeg数据编码方法和装置
CN114745554B (zh) * 2022-03-30 2024-12-27 瑞芯微电子股份有限公司 基于SoC级联的显示方法和装置、电子设备及存储介质
US20240094907A1 (en) * 2022-07-27 2024-03-21 Meta Platforms Technologies, Llc Lossless compression of large data sets for systems on a chip

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006135705A (ja) * 2004-11-08 2006-05-25 Hitachi Ltd 記録再生方法及び記録再生装置
US8634469B2 (en) * 2006-02-06 2014-01-21 Thomson Licensing Method and apparatus for reusing available motion information as a motion estimation predictor for video encoding
CN101001371B (zh) * 2007-01-19 2010-05-19 华为技术有限公司 视频转码的方法及其装置
JP4833923B2 (ja) * 2007-06-15 2011-12-07 富士通セミコンダクター株式会社 トランスコード装置、トランスコーダ、デコーダおよびトランスコード方法
US8179964B1 (en) * 2007-09-07 2012-05-15 Zenverge, Inc. Efficient transcoding between formats using macroblock buffer
WO2009114111A2 (en) * 2008-03-12 2009-09-17 Packetvideo Corp. System and method for reformatting digital broadcast multimedia for a mobile device
JP4656190B2 (ja) * 2008-06-10 2011-03-23 ソニー株式会社 情報処理装置および方法
US8321906B2 (en) * 2008-09-11 2012-11-27 At&T Intellectual Property I, Lp Method and system for a transcoder
US9191625B2 (en) * 2008-09-26 2015-11-17 Janos Redei System and methods for transmitting and distributing media content
FR2959636B1 (fr) * 2010-04-28 2012-07-13 Canon Kk Procede d'acces a une partie spatio-temporelle d'une sequence video d'images
EP2402867B1 (en) * 2010-07-02 2018-08-22 Accenture Global Services Limited A computer-implemented method, a computer program product and a computer system for image processing
EP2413255A1 (en) * 2010-07-29 2012-02-01 Accenture Global Services Limited A computer-implemented method, a computer program product and an embedded system for increasing the speed of data retrieval by a client on the embedded system
JP5703781B2 (ja) * 2010-09-03 2015-04-22 ソニー株式会社 画像処理装置および方法
US8755438B2 (en) * 2010-11-29 2014-06-17 Ecole De Technologie Superieure Method and system for selectively performing multiple video transcoding operations
US8855197B2 (en) * 2011-08-15 2014-10-07 Rgb Networks, Inc. Method and apparatus for aligning IDR frames in transcoded multi-bitrate video streams
US9071842B2 (en) * 2012-04-19 2015-06-30 Vixs Systems Inc. Detection of video feature based on variance metric
US9319753B2 (en) * 2013-05-09 2016-04-19 Broadcom Corporation Seamless trick-mode with decreased latency for live transcode streaming
EP2840858A1 (en) * 2013-08-29 2015-02-25 Thomson Licensing Methods for content sharing utilising a compatibility notification to a display forwarding function and associated devices

Also Published As

Publication number Publication date
US20150093036A1 (en) 2015-04-02

Similar Documents

Publication Publication Date Title
KR20150039425A (ko) 비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템
TWI513316B (zh) 轉碼視頻資料之技術
JP6242029B2 (ja) 低電力画像圧縮及び表示のための技術
KR101634134B1 (ko) 블록 압축 이미지들의 압축 해제를 위한 시스템, 방법, 및 컴퓨터 프로그램 제품
CN104333760B (zh) 三维图像编码方法和三维图像解码方法及相关装置
CN104782124B (zh) 利用编码器硬件对视频内容进行预处理
US20140086309A1 (en) Method and device for encoding and decoding an image
KR101605047B1 (ko) 움직임 보상 및 디스플레이 리프레시의 전력 소모를 감소시키는 dram 압축 방안
CN101751440A (zh) 一种数据压缩/解压缩方法及其装置
US8625677B2 (en) Apparatus processing video stream
JP5923589B2 (ja) 適応デプスオフセット圧縮
KR101085799B1 (ko) 핸드헬드 디바이스에서의 이미지 처리 방법 및 장치
US9888250B2 (en) Techniques for image bitstream processing
US20190042316A1 (en) Graphics processor workload acceleration using a command template for batch usage scenarios
US20130077881A1 (en) Image processing device, image processing system and method for having computer perform image processing
JP2010171480A (ja) 画像復号化装置および画像符号化装置、並びに画像復号化方法および画像符号化方法
CN203859834U (zh) 一种进行数据编码/译码的处理电路
US20140307808A1 (en) Protection against packet loss during transmitting video information
Zhu et al. Hardware JPEG decoder and efficient post-processing functions for embedded application
CN114339249A (zh) 视频解码方法、可读介质及其电子设备
CN118678075A (zh) 点云编码处理方法、点云解码处理方法及相关设备
CN116582680A (zh) 编解码方法、装置、电子设备及存储介质
CN105204828A (zh) 一种信息处理方法及电子设备
Wang et al. Effective correlation vector quantisation algorithm and its VLSI architecture
TW201349165A (zh) 影像解碼與旋轉並行之技術

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20131002

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20180927

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20131002

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20190627

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20191227

PC1904 Unpaid initial registration fee