KR20170069074A - 디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법 - Google Patents

디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법 Download PDF

Info

Publication number
KR20170069074A
KR20170069074A KR1020150176318A KR20150176318A KR20170069074A KR 20170069074 A KR20170069074 A KR 20170069074A KR 1020150176318 A KR1020150176318 A KR 1020150176318A KR 20150176318 A KR20150176318 A KR 20150176318A KR 20170069074 A KR20170069074 A KR 20170069074A
Authority
KR
South Korea
Prior art keywords
shared
decoding
image
buffer
decoder
Prior art date
Application number
KR1020150176318A
Other languages
English (en)
Other versions
KR102576630B1 (ko
Inventor
김태환
노성호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150176318A priority Critical patent/KR102576630B1/ko
Priority to US15/361,869 priority patent/US10757430B2/en
Publication of KR20170069074A publication Critical patent/KR20170069074A/ko
Application granted granted Critical
Publication of KR102576630B1 publication Critical patent/KR102576630B1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • H04N19/427Display on the fly, e.g. simultaneous writing to and reading from decoding memory
    • 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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

본 발명의 실시예들에 따른 복수의 디코딩 채널들을 통해 디코딩을 수행하는 디코딩 모듈 및 디코딩 버퍼를 포함하는 디코더의 동작 방법은 상기 디코딩 버퍼에 비공유 메모리영역 및 공유 메모리영역을 설정하는 단계, 수신한 비트 스트림에 상기 복수의 디코딩 채널들을 통해 디코딩을 수행함으로써, 복수의 프레임 영상들을 복원하는 단계, 및 상기 복수의 프레임 영상들 각각의 타입을 판단하고, 상기 판단 결과를 기초로, 상기 비공유 메모리영역 및 상기 공유 메모리영역 중 어느 하나에 상기 복수의 프레임 영상들을 라이트하는 단계를 포함한다.

Description

디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법{AN OPERATION METHOD OF A DECODER, AND AN OPERATION METHOD OF AN APPLICATION PROCESSOR INCLUDING THE DECODER}
본 발명의 개념에 따른 실시예는 디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법에 관한 것으로, 보다 상세하게는, 멀티 채널로 동작하는 디코더가 동작하는 경우, 메모리 사용량을 줄이고, 디스플레이 티어링(display tearing) 현상을 방지할 수 있는 디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법에 관한 것이다.
영상 부호화는 국제표준기구인 ISO/IEC 산하의 MPEG(Moving Picture Expert Group)과 ITU-T 산하의 VCEG(Video Coding Expert Group)에서 국제 표준을 주도해 오고 있다. MPEG과 VCEG은 공동으로 JVT(Joint Video Team)를 결성하여 비디오 부호화 국제표준인 H.264/AVC(Advanced Video Coding)을 완료하였다. H.264/AVC는 기존의 다른 비디오 코덱(예를 들어, MPEG-2, MPEG-4, H.261, H.263)과 달리 가변 블록 사이즈 움직임 추정(Variable Block Size Motion Estimation), 1/4 픽셀 움직임 벡터 해상도(1/4 pixel Motion Vector Resolution), 다중 참조 영상 움직임 추정(Multiple Reference Picture Motion Estimation) 등이 도입됨으로써 기존 코덱 대비 탁월한 압축 성능을 보여준다.
최근 스마트폰에 포함된 AP(Application Processor)는 복수의 비디오 코덱들을 지원하도록 개발되었으며, 최근에는 AP에 포함된 디코더가 하나 이상의 디코딩 채널을 통해 타임 쉐어링(Time sharing) 방식으로 동시에 디코딩을 수행할 수 있게 되었다.
디코더가 하나 이상의 디코딩 채널을 통해 타임 쉐어링 방식으로 디코딩을 수행하는 경우, 디코더가 각각의 디코딩 채널들 마다 개별적으로 버퍼를 할당하여 사용함으로써 많은 메모리가 요구되었다.
본 발명이 이루고자 하는 기술적인 과제는 멀티 채널을 통해 디코딩을 수행하는 디코더의 동작 시 메모리 사용량을 줄이고, 디스플레이 티어링(display tearing) 현상을 방지할 수 있는 디코더의 동작 방법, 및 이를 포함하는 어플리케이션 프로세서의 동작 방법을 제공함에 있다.
본 발명의 실시예들에 따른 복수의 디코딩 채널들을 통해 디코딩을 수행하는는 디코딩 모듈 및 디코딩 버퍼를 포함하는 디코더의 동작 방법은 상기 디코딩 버퍼에 비공유 메모리영역 및 공유 메모리영역을 설정하는 단계, 수신한 비트 스트림에 상기 복수의 디코딩 채널들을 통해 디코딩을 수행함으로써, 복수의 프레임 영상들을 복원하는 단계, 및 상기 복수의 프레임 영상들 각각의 타입을 판단하고, 상기 판단 결과를 기초로, 상기 비공유 메모리영역 및 상기 공유 메모리영역 중 어느 하나에 상기 복수의 프레임 영상들을 라이트하는 단계를 포함한다.
상기 비공유 메모리 영역은 상기 복수의 디코딩 채널들에 의해 공유되지 않고, 상기 공유 메모리 영역은 상기 복수의 디코딩 채널들에 의해 공유될 수 있다.
상기 비공유 메모리영역 및 상기 공유 메모리영역 중 어느 하나에 상기 복수의 프레임 영상들을 라이트하는 단계는 상기 프레임 영상의 타입을 판단하는 단계, 상기 판단 결과가 상기 프레임 영상이 I 영상 또는 P 영상인 것을 나타낼 경우, 상기 프레임 영상을 상기 비공유 메모리영역에 라이트 하는 단계, 및 상기 판단 결과가 상기 프레임 영상이 B 영상인 것을 나타낼 경우, 상기 프레임 영상을 상기 공유 메모리영역에 라이트 하는 단계를 포함한다.
상기 판단 결과가 상기 프레임 영상이 B 영상인 것을 나타낼 경우, 상기 프레임 영상을 상기 공유 메모리영역에 라이트하는 단계는 디스플레이 인터페이스로부터 리드 완료 신호를 수신 대기하는 단계, 및 상기 리드 완료 신호를 수신한 경우, 공유 메모리 영역에 프레임 영상을 라이트하는 단계를 포함한다.
상기 프레임 영상의 타입을 판단하는 단계는 인코더로부터 수신한 영상 타입 할당 신호를 기초로 상기 프레임 영상의 타입을 판단하는 단계를 포함한다.
상기 비공유 메모리영역은 복수의 비공유 버퍼들를 포함하고, 상기 공유 메모리영역(SM)은 복수의 공유 버퍼들를 포함하고, 상기 복수의 공유 버퍼들 각각은 상기 복수의 비공유 버퍼들 각각보다 사이즈가 더 크다.
상기 디코딩 모듈은 상기 비공유 메모리영역에 포함된 상기 복수의 비공유 버퍼들 중에서 상기 복수의 디코딩 채널들 각각에 상응하는 버퍼들에만 접근이 가능하다.
상기 디코딩 모듈은 상기 공유 메모리영역에 포함된 상기 복수의 공유 버퍼들 각각에 항상 접근이 가능하다.
상기 디코더는 순차적으로 상기 복수의 디코딩 채널들 각각에 할당된 복수의 프레임 영상들을 순차적으로 타임 쉐어링(time sharing)방식으로 복원한다.
상기 디코딩 모듈은 상기 복수의 디코딩 채널들 각각을 통해 복수의 표준들 각각에 기초하여 디코딩을 수행하고, 상기 복수의 표준들은 MPEG-2 표준 및 MPEG-4 표준을 포함한다.
본 발명의 실시 예들에 따른 어플리케이션 프로세서는 디코더가 디코딩 버퍼에 포함된 복수의 단위 버퍼들을 복수의 비공유 버퍼들 및 공유 버퍼들 중 어느 하나로 설정하는 단계, 상기 디코더가 비트 스트림을 수신하는 단계, 상기 디코더가 수신한 상기 비트 스트림에 상기 복수의 디코딩 채널들를 통해 디코딩을 수행함으로써, 복수의 프레임 영상들을 복원하는 단계, 및 상기 디코더가 상기 복수의 프레임 영상들 각각의 타입을 판단하고, 상기 판단 결과를 기초로, 상기 비공유 버퍼들 및 상기 공유 버퍼들 중 어느 하나에 상기 복수의 프레임 영상들을 라이트(write)하는 단계를 포함한다.
상기 비공유 버퍼들은 상기 복수의 디코딩 채널들(DC1 및 DC2)에 의해 공유되지 않고, 상기 공유 버퍼들은 상기 복수의 디코딩 채널들에 의해 공유된다.
상기 비공유 버퍼들 및 상기 공유 버퍼들 중 어느 하나에 상기 복수의 프레임 영상들을 라이트(write)하는 단계는 상기 디코더가 상기 프레임 영상의 타입을 판단하는 단계, 상기 판단 결과가 상기 프레임 영상이 I 영상 또는 P 영상인 것을 나타낼 경우, 상기 디코더가 상기 프레임 영상을 상기 비공유 버퍼들 중 어느 하나의 빈 비공유 버퍼에 라이트 하는 단계, 및 상기 판단 결과가 상기 프레임 영상이 B 영상인 것을 나타낼 경우, 상기 디코더가 상기 프레임 영상을 상기 공유 버퍼들 중 어느 하나의 공유 버퍼에 라이트 하는 단계를 포함한다.
상기 프레임 영상을 상기 공유 버퍼들 중 어느 하나의 버퍼에 라이트 하는 단계는 상기 디코더가 상기 공유 버퍼들 중 빈(empty) 공유 버퍼가 있는지 판단하는 단계, 상기 빈 공유 버퍼가 있는 경우, 상기 디코더가 상기 프레임 영상을 상기 빈 공유 버퍼에 라이트하는 단계, 및 상기 빈 공유 버퍼가 없는 경우, 상기 디코더가 상기 프레임 영상을 상기 공유 버퍼들 중 상기 디스플레이 인터페이스의 접근이 없는 공유 버퍼에 오버라이트(overwrite)하는 단계를 포함한다.
상기 디코더가 상기 프레임 영상의 타입을 판단하는 단계는 상기 인코더로부터 수신한 영상 타입 할당 신호를 기초로 상기 프레임 영상의 타입을 판단하는 단계를 포함한다.
본 발명의 실시 예에 따른 디코더의 동작 방법 및 상기 디코더를 포함하는 애플리케이션 프로세서의 동작 방법은 디코딩 동작시 메모리 사용량을 효율적으로 줄일 수 있고, 디스플레이 티어링 현상을 방지하는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 인코더를 상세히 나타낸 블록도이다.
도 3는 도 1에 도시된 디코더를 상세히 나타낸 블록도이다.
도 4는 본 발명의 실시 예들에 따른 디코더의 디코딩 방법을 나타내는 순서도이다.
도 5는 도 4에 도시된 복수의 프레임 영상들을 비공유 메모리 영역 및 공유 메모리 영역 중 어느 하나에 라이트 하는 단계를 상세하게 나타내는 순서도이다.
도 6은 본 발명의 실시 예들에 따른 어플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 7는 본 발명의 실시 예들에 따른 디코딩 모듈과 디코딩 버퍼와의 연결 구조를 나타낸 블록도이다.
도 8는 본 발명의 실시 예들에 따른 도 4에 도시된 구조의 디코더가 타임 쉐어링 방식으로 디코딩하는 과정을 나타내는 타이밍도이다.
도 9은 본 발명의 다른 실시 예들에 따른 디코더가 타임 쉐어링 방식으로 디코딩하는 과정을 나타내는 타이밍도이다.
도 10은 본 발명의 다른 실시 예들에 따른 디코딩 모듈과 디코딩 버퍼와의 연결 구조를 나타낸 블록도이다.
도 11는 본 발명의 실시 예들에 따른 도 10에 도시된 구조의 디코더가 타임 쉐어링 방식으로 디코딩하는 과정을 나타내는 타이밍도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
본 명세서에서 코텍이라 함은 코덱(codec)은 어떠한 데이터 스트림이나 신호에 대해, 인코딩이나 디코딩, 혹은 둘 다를 할 수 있는 하드웨어나 소프트웨어를 일컫는다. 또, 이를 위한 알고리즘을 가리키는 용어로도 쓰인다. 전기 통신분야의 용어로는 디지털 회신, 곧 송수신 장치를 뜻하였으며, "부호기", "복호기"를 합쳐 불렀다. 코덱에는 데이터 압축 기능을 사용하여 자료를 압축하거나 압축을 푸는 소프트웨어나, 소리,동영상 등의 자료를 다른 형식으로 변환하는 장치 및 소프트웨어가 포함된다.
일반적으로 코덱 이라고 하면 영상, 음향등 미디어 정보를 압축하는 기술을 가리킨다.
본 명세서에서 현재 프레임이라 함은, 현재 블록이 포함된 프레임을 의미할 수 있고, 이전 프레임이란 현재 프레임이 영상 처리되기 이전 또는 직전에 영상 처리가 수행된 프레임을 의미할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(10)은 모바일 단말기(mobile terminal), 예컨대 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 모바일 인터넷 장치(mobile internet device(MID)), 비디오 캠코더(video camcorder), 또는 e-북(e-book) 등으로 구현될 수 있다.
데이터 처리 시스템(10)은 애플리케이션 프로세서(application processor, 100), 카메라(camera, 155), 디스플레이 장치(display device, 165), 및 메모리(memory, 175)를 포함할 수 있다.
애플리케이션 프로세서(100)는 CPU(central processing unit, 110), ROM(read only memory, 120), RAM(random access memory, 130), 이미지 프로세서(image processor, 135), 코덱(codec, 140), 카메라 인터페이스(camera interface, 150), 디스플레이 인터페이스(display interface, 160), 및 메모리 인터페이스(memory interface, 170)를 포함할 수 있다. 애플리케이션 프로세서(100)는 시스템 온 칩(system on chip(SoC))으로 구현될 수 있다.
애플리케이션 프로세서(100)의 각 구성(110, 120, 130, 135, 140, 150, 160, 170)은 버스(bus, 105)를 통하여 서로 데이터를 주고 받을 수 있다.
CPU(110)는 애플리케이션 프로세서(100)의 전반적인 동작을 제어할 수 있다. 예컨대, CPU(110)는 ROM(120) 및/또는 RAM(130)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행시킬 수 있다.
실시 예에 따라, CPU(110)는 2개 이상의 독립적인 프로세서들(또는 코어들)을 갖는 하나의 컴퓨팅 컴포넌트(computing component), 즉 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다.
ROM(120)은 지속적으로 사용되는 프로그램들 및/또는 데이터를 저장할 수 있다. 실시 예에 따라, ROM(120)은 EPROM(erasable programmable ROM) 또는 EEPROM(electrically erasable programmable ROM) 등으로 구현될 수 있다.
RAM(130)은 프로그램들, 데이터, 및/또는 명령들(instructions)을 일시적으로 저장할 수 있다. 실시 예에 따라, RAM(130)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
RAM(130)은 인터페이스들(150, 160, 170)을 통해 입출력되거나, 코덱(140) 또는 CPU(110)가 생성하는 데이터를 일시적으로 저장할 수 있다.
이미지 프로세서(135)는 RAM(130), 카메라 인터페이스(150), 또는 메모리 인터페이스(170)로부터 입력받은 데이터에 대해 이미지 처리를 수행하고, 이미지 처리된 데이터를 RAM(130), 디스플레이 인터페이스(160), 또는 메모리 인터페이스(170)로 출력할 수 있다.
코덱(140)은 메모리 장치들(120, 130)에 저장된 데이터, 카메라(155)로부터 입력되는 데이터 또는 디스플레이 장치(165)로 출력되는 데이터를 인코딩(encoding) 또는 디코딩(decoding)할 수 있다.
따라서, 코덱(140)은 인코더(encoder, 200)와 디코더(decoder, 400)를 포함할 수 있다. 도 1에 도시된 바와 달리, 코덱(140)은 인코더(200) 및 디코더(400)를 각각 둘 이상씩 포함할 수 있다.
도 1에서는 설명의 편의를 위하여, 코덱(140)이 CPU(110), 카메라 인터페이스(150), 및/또는 디스플레이 인터페이스(160)의 외부에 구현된 형태를 도시하였다. 하지만, 코덱(140)은 CPU(110), 카메라 인터페이스(150), 및/또는 디스플레이 인터페이스(160)에 포함될 수도 있으며 코덱(140)의 배치에 의하여 본 발명의 기술적 범위가 제한 해석되어서는 안 된다.
실시예에 따라, 코덱(140)은 소프트웨어(software), 하드웨어(hardware), 또는 소프트웨어와 하드웨어의 결합 형태로 구성될 수 있다.
카메라 인터페이스(150)는 애플리케이션 프로세서(100)의 외부에 있는 카메라(155)로부터 입력되는 데이터(예컨대, 영상 데이터)를 인터페이싱할 수 있다.
카메라(155)는 복수의 광 감지 소자들을 이용해 촬영한 이미지에 대한 데이터를 생성할 수 있다.
디스플레이 인터페이스(160)는 애플리케이션 프로세서(100)의 외부에 있는 디스플레이 장치(165)로 출력되는 데이터(예컨대, 영상 데이터)를 인터페이싱할 수 있다.
디스플레이 장치(165)는 이미지 또는 영상에 대한 데이터를 LCD(Liquid-crystal display), AMOLED(active matrix organic light emitting diodes) 등의 디스플레이를 통해 출력할 수 있다.
메모리 인터페이스(170)는 애플리케이션 프로세서(100)의 외부에 있는 메모리(175)로부터 입력되는 데이터 또는 메모리(175)로 출력되는 데이터를 인터페이싱할 수 있다.
실시예에 따라, 메모리(175)는 불휘발성 메모리(non-volatile memory), 예컨대 플래시 메모리(flash memory) 또는 저항성 메모리(resistive memory) 등으로 구현될 수 있다.
도 2는 도 1에 도시된 인코더(200)를 상세히 나타낸 블록도이다.
도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 인코더(200)는 인코딩 버퍼(encoding buffer, 210), 이미지 타입 결정 블록(image type determination block, 220), 및 인코딩 모듈(encoding module, 230)을 포함할 수 있다.
인코딩 버퍼(210)는 전송된 영상 데이터(ID)를 일시적으로 저장하였다가, 이미지 타입 결정 블록(220)의 제어에 따라 정해지는 부호화 순서에 따라 인코딩 데이터(ED)를 인코딩 모듈(230)로 출력할 수 있다.
인코딩 버퍼(210)의 사이즈는 이미지 타입 결정 블록(220)이 상기 영상 그룹을 할당하는 방식에 따라 결정될 수 있다. 예컨대, 단일 채널의 인코더(200)에서 IBBP 방식이 이용될 경우, 인코딩 버퍼(210)의 사이즈는 4개의 프레임 영상을 저장할 수 있는 사이즈일 수 있다.
실시예에 따라, 인코딩 버퍼(210)는 코덱(140)의 내부가 아닌 코덱(140)의 외부 예컨대, RAM(130)의 일부로 구현될 수도 있다.
이미지 타입 결정 블록(220)은 영상 데이터(ID)를 입력 받아, 영상 데이터(ID)의 각 프레임 영상의 이미지 타입을 결정할 수 있다.
상기 이미지 타입은 인코딩 모듈(230)에 의해 부호화되는 방식의 차이를 갖는 이미지의 종류를 의미하며, I 영상, P 영상, 및 B 영상으로 구분될 수 있다.
상기 I 영상은 다른 영상을 참조하지 않고 현재의 영상 내에서 인트라 예측(intra prediction) 만이 수행되어 부호화되는 타입일 수 있다.
상기 P 영상은 이전의 영상을 참조하는 인터 예측(inter prediction) 및 상기 인트라 예측이 수행되어 부호화되는 타입일 수 있다.
상기 B 영상은 이전의 영상과 이후의 영상을 참조하는 인터 예측 및 상기 인트라 예측이 수행되어 부호화되는 타입일 수 있다.
이미지 타입 결정 블록(220)이 상기 각 프레임 영상의 이미지 타입을 결정하기 위해, 영상 데이터(ID)를 특정한 영상 그룹(image group)으로 할당한다. 상기 영상 그룹은 I 영상의 할당에 의해 상기 영상 그룹의 사이즈가 결정되며, P 영상 및/또는 B 영상의 배열에 의해서 상기 영상 그룹의 구조가 결정된다. 즉, P 영상과 B 영상의 배열에 의해 부호화되는 데이터의 비트 수를 감소시킬 수 있으며, I 영상을 간헐적으로 할당하여 영상 그룹의 사이즈를 제한함으로써 오류 전파(error propagation)를 방지할 수 있다.
예컨대, 상기 특정한 영상 그룹을 할당하는 방식은 IBBP 방식 등일 수 있다. 상기 IBBP 방식은 영상 데이터(ID)의 연속적인 프레임 영상들을 I 영상, B 영상, B 영상 및 P 영상의 타입으로 결정하는 방식이다.
이미지 타입 결정 블록(220)은 현재 인코딩 버퍼(210)로부터 출력되는 프레임 영상을 제어할 수 있다.
즉, 상기 영상 그룹을 할당하는 방식에 따라, 영상 데이터(ID)의 프레임 순서와 부호화 순서가 다를 수 있다.
예컨대, 이미지 타입 결정 블록(220)이 상기 IBBP 방식으로 상기 영상 그룹을 할당할 경우, 영상 데이터(ID)의 순차적인 프레임 영상들이 IBBP 영상의 프레임 순서로 결정되더라도 인코딩 모듈(230)이 입력받아야 하는 부호화 순서는 IPBB이어야 한다.
따라서, 이미지 타입 결정 블록(220)은 IBBP의 순서로 인코딩 버퍼(210)에 저장된 영상 데이터(ID)를 IPBBB의 순서로 인코딩 데이터(ED)로서 출력하도록 인코딩 버퍼(210)를 제어할 수 있다.
이미지 타입 결정 블록(220)은 인코딩 데이터(ED)의 각 프레임 영상의 타입을 나타내는 영상 타입 할당 신호(PTA)를 생성하여 인코딩 모듈(230)로 전송할 수 있다. 또한, 도 2에는 도시되지 않았지만, 이미지 타입 결정 블록(220)은 영상 타입 할당 신호(PTA)를 디코더(400)로도 전송할 수 있다.
인코딩 모듈(230)은 영상 타입 할당 신호(PTA)를 참조하여 인코딩 데이터(ED)의 영상 타입에 따라 인트라 예측 및/또는 인터 예측을 수행하여 부호화한 비트 스트림(BS)을 생성할 수 있다.
도 3는 도 1에 도시된 디코더(400)를 상세히 나타낸 블록도이다.
도 1 내지 3을 참조하면, 디코더(400)는 디코딩 모듈(decoding module, 410) 및 디코딩 버퍼(decoding buffer, 420)을 포함할 수 있다.
디코딩 모듈(410)은 인코딩 모듈(230)으로부터 비트 스트림(BS)를 수신할 수 있다. 또한, 디코딩 모듈(410)은 영상 타입 할당 신호(PTA)을 인코더(200)로부터 수신할 수 있다.
비트 스트림(BS)은 인코딩 모듈(230)에 의해 출력되어 메모리에 저장된 후 디코딩 모듈(410)로 입력될 수 있다.
디코딩 모듈(410)은 비트 스트림(BS)를 디코딩하여 인코딩 데이터(ED)를 생성할 수 있다. 즉, 디코딩 모듈(410)은 영상 타입 할당 신호(PTA)를 참조하여 인트라 예측 및/또는 인터 예측을 수행할 수 있다. 디코딩 모듈(410)은 인코딩 모듈(230)의 역(inverse) 동작을 수행함으로써 비트 스트림(BS)으로부터 인코딩 데이터(ED)를 복원할 수 있다.
이때, 인코딩 데이터(ED)의 순차적인 프레임 영상들의 순서는 인코딩 모듈(230)이 인코딩하는 순서와 동일할 수 있다. 예컨대, 인코딩 데이터(ED)의 순차적인 프레임 영상들의 순서는 IPBB일 수 있다.
디코딩 모듈(410)은 복수의 디코딩 채널들(DC1 및 DC2)을 통해 비트 스트림(BS)을 디코딩 할 수 있다. 예컨대, 디코딩 모듈(410)은 첫 구간의 비트 스트림(BS)를 제1 디코딩 채널(DC1)을 통해 디코딩 하고, 그 다음 구간의 비트 스트림(BS)를 제2 디코딩 채널(DC2)를 통해 디코딩 할 수 있다. 이는 타임 쉐어링(time sharing) 동작을 의미할 수 있다.
디코딩 모듈(410)은 복수의 디코딩 채널들(DC1 및 DC2)중 어느 하나를 통해 복수의 표준들 중 하나에 기초하여 비트 스트림(BS)을 디코딩 할 수 있다. 즉, 하나의 디코딩 채널은 하나의 표준에 상응한다. 예컨대, 복수의 표준들이 MPEG-2 및 MPEG-4을 포함하는 경우, 디코딩 모듈(410)은 제1 디코딩 채널(DC1)을 통하여 MPEG-2에 기초하여 첫 구간의 비트 스트림(BS)을 디코딩 할 수 있고, 제2 디코딩 채널(DC2)을 통하여 MPEG-4에 기초하여 그 다음 구간의 비트 스트림(BS)을 디코딩 할 수 있다.
상술한 동작을 통해, 디코딩 모듈(410)은 동시에 서로다른 두 표준들(예컨대, MPEG-2 및 MPEG-4)로 인코딩된 데이터들을 디코딩 하는 경우에도, 순차적으로 디코딩을 수행하고, 이미지 데이터(ID)를 디스플레이 인터페이스(160)로 전송할 수 있다.
도 3에 도시되지 않았지만, 디코딩 모듈(410)은 디코딩 시 필요한 표준 알고리즘 데이터를 메모리(175)로부터 불러올 수 있다.
디코딩 모듈(410)은 복원된 인코딩 데이터(ED)를 디코딩 버퍼(420)에 저장할 수 있다. 이는 디코딩 모듈(410)이 인코딩 데이터(ED)의 순차적인 프레임 영상들을 디코딩 버퍼(420)에 라이트(write)하는 동작을 의미할 수 있다.
예컨대, 디코딩 모듈(410)는 인코딩 데이터(ED)에 포함된 프레임 영상들 (예컨대, I 영상, P 영상, 및 B 영상)을 영상 타입 할당 신호(PTA)에 기초하여 각 디지털 채널별로 복원하고, 이를 디코딩 버퍼(420)에 라이트할 수 있다.
디코딩 모듈(410)은 디코딩 버퍼(420)을 공유 메모리 영역(SM)과 비공유 메모리 영역(UM)으로 설정할 수 있다.
공유 메모리 영역(SM)은 복수의 디코딩 채널들(DC1 및 DC2) 사이에 의존성이 없는 영역일 수 있다. 예컨대, I 영상 또는 P 영상은 공유 메모리 영역(SM)에 저장될 수 있다.
비공유 메모리 영역(UM)은 디코딩 채널들 사이에 의존성이 있는 영역일 수 있다. 예컨대, B 영상은 비공유 메모리 영역(UM)에 저장될 수 있다. 실시예에 따라, 디코딩 버퍼(420)는 코덱(140)의 내부가 아닌 코덱(140)의 외부 예컨대, RAM(130)의 일부로 구현될 수도 있다.
디코딩 버퍼(210)는 복수의 유닛 버퍼들을 포함할 수 있다. 복수의 유닛 버퍼들 각각은 복수의 프레임 영상들 각각이 저장될 수 있다.
디코딩 버퍼(210)는 전송된 인코딩 데이터(ED)의 프레임 영상들을 일시적으로 저장하였다가, 디코딩 모듈(410)의 제어에 따라 정해지는 프레임 순서에 따라 재배열하여 이미지 데이터(ID)로 복원할 수 있다.
디코딩 버퍼(210)는 복원된 이미지 데이터(ID)를 디스플레이 인터페이스(160)으로 전송할 수 있다. 이는 디스플레이 인터페이스(160)가 이미지 데이터(ID)의 순차적인 프레임 영상들을 디코딩 버퍼(420)로부터 리드(read)하는 동작을 의미할 수 있다. 예컨대, 상기 프레임 순서는 IBBP일 수 있다.
도 4는 본 발명의 실시 예들에 따른 디코더의 디코딩 방법을 나타내는 순서도이다.
도 4를 참조하면, 단계 S110에서, 디코딩 모듈(410)은 디코딩 버퍼(420)에 비공유 메모리 영역(UM) 및 공유 메모리 영역(SM)을 설정할 수 있다.
디코딩 모듈(410)이 설정한 비공유 메모리 영역(UM)은 복수의 비공유 버퍼들을 포함할 수 있다. 디코딩 모듈(410)이 설정한 공유 메모리 영역(SM)은 복수의 공유 버퍼들을 포함할 수 있다. 실시 예들에 따라서, 복수의 비공유 버퍼들 각각은 복수의 공유 버퍼들 각각보다 크기가 클 수 있다.
즉, 디코딩 모듈(410)은 디코딩 버퍼(420)에 포함된 같은 종류의 버퍼들 중 가장 큰 사이즈의 버퍼들을 그룹화하여, 공유 메모리 영역(SM)으로 설정할 수 있다. 또한, 디코딩 모듈(410)은 공유 메모리 영역(SM)을 제외한 영역을 비공유 메모리 영역(UM)으로 설정할 수 있다.
단계 S120에서, 디코딩 모듈(410)은 비트 스트림(BS)을 수신하고, 디코딩을 수행할 수 있다. 예컨대, 디코딩 모듈(410)은 비트 스트림(BS)을 수신하고, 복호화 하여 인코딩 데이터(ED)에 포함된 복수의 프레임 영상들을 복원할 수 있다.
프레임 영상들의 순서는 인코딩 시 결정 될 수 있다. 예컨대, 인코딩 시 이미지 타입 결정 블록(210)이 IBBP방식으로 영상 그룹을 할당 한 경우, 인코딩 데이터(ED)는 I 영상, P 영상, B 영상, 및 B 영상의 순서의 프레임 영상들을 포함할 수 있다.
단계 S130에서, 디코딩 모듈(410)은 복수의 프레임 영상들 각각의 타입을 판단하고, 판단 결과를 기초로 복수의 프레임 영상들을 비공유 메모리 영역(UM) 및 공유 메모리 영역(SM) 중 어느 하나에 라이트 할 수 있다.
도 5는 도 4에 도시된 복수의 프레임 영상들을 비공유 메모리 영역 및 공유 메모리 영역 중 어느 하나에 라이트 하는 단계를 상세하게 나타내는 순서도이다.
도 5를 참조하면, 단계 S210에서, 디코딩 모듈(410)은 프레임 영상의 타입을 판단할 수 있다.
실시 예에 따라서, 디코딩 모듈(410)은 수신한 영상 타입 할당 신호(PTA)를 기초로 프레임 영상의 타입을 판단하거나, 복원한 인코딩 데이터(ED)로부터 직접 프레임 영상의 타입을 판단할 수 있다. 본 발명이 이에 한정 되는 것은 아니다.
프레임 영상이 I 영상 또는 P 영상인 경우(S220의 YES), 디코딩 모듈(410)은 비공유 메모리 영역(UM)에 프레임 영상을 라이트 할 수 있다(S230).
프레임 영상이 I 영상 또는 P 영상이 아닌 경우, 즉 B 영상인 경우(S220의 NO), 디코딩 모듈(410)은 리드 완료 신호(RCS)를 수신할 때까지 대기할 수 있다(S221). 예컨대, 디코딩 모듈(410)은 디스플레이 인터페이스(160)로부터 리드 완료 신호(RCS)를 수신할 수 있다.
디코딩 모듈(410)이 리드 완료 신호(RCS)를 수신한 경우(S222의 YES), 디코딩 모듈(410)은 공유 메모리 영역(SM)에 프레임 영상을 라이트 할 수 있다(S240).
디코딩 모듈(410)이 리드 완료 신호(RCS)를 수신하지 못한 경우(S222의 NO), 디코딩 모듈(410)은 계속해서 리드 완료 신호를 수신할 때까지 대기할 수 있다(S221).
단계 S250에서, 디코딩 모듈(410)은 다른 프레임 영상이 남아있는지 판단할 수 있다.
다른 프레임 영상이 남아있는 경우(S250의 YES), 디코딩 모듈(410)은 프레임 영상의 타입을 판단하는 단계(S210)으로 되돌아갈 수 있다.
따라서, 디코딩 모듈(410)은 모든 복수의 프레임 영상들을 디코딩 버퍼(420)에 저장할 때까지 반복해서 동작할 수 있다.
도 6은 본 발명의 실시 예들에 따른 어플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 1 및 6을 참조하면, 단계 S310에서, 디코더(400)는 디코딩 버퍼(420)에 포함된 복수의 단위 버퍼들을 복수의 비공유 버퍼들(UBs) 및 공유 버퍼들(SBs) 중 어느 하나로 설정할 수 있다.
단계 S320에서, 디코더(400)는 인코더(200) 또는 메모리 인터페이스(170)로부터 비트 스트림(BS)를 수신할 수 있다.
도 6에는 비트 스트림(BS)이 인코더(200)로부터 디코더(400)로 직접 전송되는 것으로 도시되었다. 하지만, 실시 예에 따라서, 인코더(200)가 출력한 비트 스트림(BS)은 메모리(175)에 저장되고, 디코더(400)는 메모리(175)에 저장된 저장된 비트 스트림(BS)을 메모리 인터페이스(170)로부터 수신할 수 있다. 본 발명이 이에 한정되는 것은 아니다.
단계 S330에서, 디코더(400)는 수신한 비트 스트림(BS)에 복수의 디코딩 채널들(DC1 및 DC2)를 통해 디코딩을 수행함으로써, 복수의 프레임 영상들을 복원할 수 있다.
단계 S340에서, 디코더(400)는 상기 복수의 프레임 영상들 각각의 타입을 판단하고, 상기 판단 결과를 기초로, 상기 비공유 버퍼들(UBs) 및 상기 공유 버퍼들(SBs) 중 어느 하나에 상기 복수의 프레임 영상들을 라이트(write)할 수 있다.
단계 S340을 상세히 설명하면 아래와 같다.
단계 S330 이후, 단계 S410에서, 디코더(400)는 프레임 영상의 타입을 판단할 수 있다.
본 발명의 실시 예들에 따라, 디코더(400)는 인코더(200)으로부터 수신한 영상 타입 할당 신호(PTA)에 기초하여 프레임 영상의 타입을 판단할 수 있다.
판단 결과가 프레임 영상이 I 영상 또는 P 영상인 것을 나타낼 경우(S420의 YES), 디코더(400)는 프레임 영상을 상기 복수의 비공유 버퍼들(UBs) 중 어느 하나의 빈(empty) 비공유 버퍼에 라이트할 수 있다(S420).
빈 버퍼는 소프트웨어적 관점에서 실질적으로 아무런 데이터가 저장되지 않은 버퍼 또는 무효의 데이터가 저장된 버퍼를 의미할 수 있다.
판단 결과가 프레임 영상이 B 영상인 것을 나타낼 경우(S420의 NO), 디코더(400)가 프레임 영상을 공유 버퍼들(UBs) 중 어느 하나의 공유 버퍼에 라이트 할 수 있다(S430).
단계 S430을 상세히 설명하면 아래와 같다.
판단 결과가 프레임 영상이 B 영상인 것을 나타낼 경우(S420의 NO), 디코더(400)는 공유 버퍼들(SBs) 중 빈(empty) 공유 버퍼가 있는지 판단할 수 있다(S431).
빈 공유 버퍼가 있는 경우(S431의 YES), 디코더(400)는 프레임 영상을 빈 공유 버퍼에 라이트할 수 있다(S432).
빈 공유 버퍼가 없는 경우(S431의 NO), 디코더(400)는 프레임 영상을 복수의 공유 버퍼들(SBs) 중 디스플레이 인터페이스(160)의 접근이 없는 공유 버퍼에 오버라이트(overwrite)할 수 있다(S433).
디스플레이 인터페이스(160)의 접근이 없는 공유 버퍼는 디스플레이 인터페이스(160)가 프레임 영상을 리드하지 않는 버퍼를 의미할 수 있다.
오버라이트(overwrite)는 덮어쓰기를 의미하며, 일반적인 라이트(write)동작과 동일할 수 있다.
단계 S440에서, 다른 프레임이 남아 있는 경우, 디코더(400)는 상기 프레임 영상의 타입을 판단하는 단계로 되돌아갈 수 있다.
도 7는 본 발명의 실시 예들에 따른 디코딩 모듈과 디코딩 버퍼와의 연결 구조를 나타낸 블록도이다.
도 7에는 복수의 디코딩 채널들(DC1 및 DC2)이 2개인 것으로 도시되었으나, 본 발명이 이에 한정되는 것은 아니다. 아래에서는 설명의 편의를 위하여 복수의 디코딩 채널들(DC1 및 DC2) 이 2개인 것으로 가정하고 설명한다.
도 7에는, 디코딩 모듈(410)이 제1 디코딩 채널(DC1) 또는 제2 디코딩 채널(DC2)을 통하여 디코딩을 수행하는 경우, 디코딩 모듈(410)의 각 버퍼들에 대한 접근경로가 도시된다.
따라서, 디코딩 모듈(410)은 제1 디코딩 채널(DC1)을 통해 디코딩을 수행하는 경우, 도 7에 도시된 바와 같이, 제1 및 제2 비공유 버퍼(UB1, UB2) 및 공유 버퍼(SB)에 접근할 수 있다.
디코딩 모듈(410)은 제2 디코딩 채널(DC2)을 통해 디코딩을 수행하는 경우, 도 7에 도시된 바와 같이, 제3 및 제4 비공유 버퍼(UB3, UB4) 및 공유 버퍼(SB)에 접근할 수 있다.
도 7를 참조하면, 비공유 메모리 영역(UM)은 복수의 비공유 버퍼들(UB1, UB2, UB3, 및 UB4)를 포함할 수 있다.
복수의 비공유 버퍼들(UB1, UB2, UB3, 및 UB4)은 각각 디코딩 채널 별로 할당 될 수 있다. 따라서, 디코딩 모듈(410)은 복수의 디코딩 채널들(DC1 및 DC2) 각각을 통하여 디코딩을 수행할 때 채널 별로 할당된 버퍼들에만 접근할 수 있다. 예컨대, 디코딩 모듈(410)은 제1디코딩 채널(DC1)을 통하여 디코딩을 수행할 때, 제1비공유 버퍼 및 제2비공유 버퍼(UB1 및 UB2)에만 접근할 수 있다. 디코딩 모듈(410)은 제2디코딩 채널(DC2)을 통하여 디코딩을 수행할 때 제3비공유 버퍼 및 제4비공유 버퍼(UB3 및 UB4)에만 접근할 수 있다.
도 7에는 디코딩 채널 별로 2개의 비공유 버퍼가 할당된 것으로 도시되었으나, 본 발명이 이에 한정되는 것은 아니며, 실시예들에 따라 1개 또는 3개 이상의 비공유 버퍼들이 복수의 디코딩 채널들(DC1 및 DC2) 각각에 할당될 수 있다.
공유 메모리 영역(SM)은 공유 버퍼(SB)를 포함할 수 있다. 공유 버퍼(SB)는 채널 별로 할당되지 않는다.
도 7에는 공유 버퍼가 1개 인 것으로 도시되었으나, 본 발명이 이에 한정되는 것은 아니며, 실시예들에 따라 2개 이상의 공유 버퍼들이 할당될 수 있다.
실시 예들에 따라, 공유 버퍼(SB)의 크기는 비공유 버퍼(UB)의 크기보다 클 수 있다.
도 8는 본 발명의 실시 예들에 따른 도 4에 도시된 구조의 디코더가 타임 쉐어링 방식으로 디코딩하는 과정을 나타내는 타이밍도이다.
아래에서, 이미지 타입 결정 블록(220)는 IBBP 방식으로 영상 그룹을 할당한 것으로 가정하여 설명한다.
도 8를 참조하면, 영상들(예컨대, I 영상, P 영상 및 B 영상)은 복수의 디코딩 채널들(DC1 및 DC2)을 통해 복수의 비공유 버퍼들(UB1 내지 UB4)과 공유 버퍼(SB)에 시간에 따라 순차적으로 라이트(write)되고 리드(read)된다.
상술한 바와 같이, 인코더(200)에 포함된 이미지 타입 결정 블록(220)이 IBBP 방식으로 영상 그룹을 할당하고, 인코딩 모듈(230)은 인코딩 데이터(ED)를 IPBB 순서로 인코딩 할 수 있다. 따라서, 인코딩 데이터(ED)가 디코딩 버퍼(420)에 라이트(write)되는 순서도 IPBB일 수 있다.
반면에, 디스플레이 인터페이스(160)가 디코딩 버퍼(420)에서 프레임 영상들을 리드(read)하는 순서는 IBBP일 수 있다.
IPBB 할당 방식에 있어서, 2개의 B 영상이 존재한다. 설명의 편의를 위하여 도 8에 도시된 바와 같이, 첫번째 B 영상을 B1 영상, 두번째 B 영상을 B2영상이라 지칭한다.
도 8에 도시된 바와 같이, 2개의 디코딩 채널들(DC1 및 DC2)을 통해 디코딩을 수행하는 디코더(400)의 디코딩 순서는 I(DC1), I(DC2), P(DC1), P(DC2), B1(DC1), B1(DC2), B2(DC1), 및 B2(DC2) 일 수 있다.
각 시점에서, 디코딩 모듈(410)은 비트 스트림(BS)를 디코딩하고, 생성된 프레임 영상들 각각을 복수의 비공유 버퍼들 또는 공유 버퍼에 라이트할 수 있다. 이와 독립적으로, 디스플레이 인터페이스(160)는 복수의 비공유 버퍼들 또는 공유 버퍼에 라이트되는 프레임 영상들 각각을 리드할 수 있다. 아래에서 각 시점에 따라 상세히 살펴본다.
t0에서, I 영상은 제1디코딩 채널(DC1)을 통해 제1비공유 버퍼(UB1)에 라이트될 수 있다.
t1에서, I 영상은 제2디코딩 채널(DC2)을 통해 제3비공유 버퍼(UB3)에 라이트될 수 있다.
t2에서, P 영상은 제1디코딩 채널(DC1)을 통해 제2비공유 버퍼(UB2)에 라이트될 수 있다. 이와 동시에, 제1비공유 버퍼(UB1)에 라이트된 I 영상은 리드될 수 있다.
t3에서, P 영상은 제2디코딩 채널(DC1)을 통해 제4비공유 버퍼(UB4)에 라이트될 수 있다. 이와 동시에, 제3비공유 버퍼(UB3)에 라이트된 I 영상은 리드될 수 있다.
t4에서, B1 영상은 제1디코딩 채널(DC1)을 통해 공유 버퍼(SB)에 라이트될 수 있다. 이와 동시에, 공유 버퍼(SB)에 라이트되는 B1 영상은 리드될 수 있다. 즉, 디스플레이 인터페이스(160)는 디코딩 모듈(410)이 B2 영상을 공유 버퍼(SB)에 라이트하는 것과 동시에 B 영상을 리드할 수 있다.
t5에서, B1 영상은 제2디코딩 채널(DC2)을 통해 공유 버퍼(SB)에 라이트될 수 있다. 이와 동시에, 공유 버퍼(SB)에 라이트되는 B1 영상은 리드될 수 있다.
t6에서, B2 영상은 제1디코딩 채널(DC1)을 통해 공유 버퍼(SB)에 라이트될 수 있다. 이와 동시에, 공유 버퍼(SB)에 라이트되는 B2 영상은 리드될 수 있다.
t7에서, B2 영상은 제2디코딩 채널(DC2)을 통해 공유 버퍼(SB)에 라이트될 수 있다. 이와 동시에, 공유 버퍼(SB)에 라이트되는 B2 영상은 리드될 수 있다.
t8에서, 제2비공유 버퍼(UB2)에 라이트된 P 영상은 제1디코딩 채널(DC1)을 통해 리드될 수 있다.
t9에서, 제4비공유 버퍼(UB4)에 라이트된 P 영상은 제2디코딩 채널(DC2)을 통해 리드될 수 있다.
도 8에 도시된 바와 같이, 복수의 디코딩 채널들(DC1 및 DC2)을 통해 디코딩을 수행하는 디코더(400)는 타임 쉐어링 방식으로 동작할 수 있고, 이때 공유 버퍼를 사용함으로써, 채널별로 별도의 버퍼를 사용할 때보다, 메모리 사용량을 줄일 수 있다.
다만, 도 8에 도시된 바와 달리, 공유 버퍼(SB)에서 이전에 라이트된 영상이 모두 리드되기 전에, 다음 영상이 라이트되면 영상이 손상될 수 있다. 이러한 현상을 디스플레이 티어링(display tearing)이라고 한다.
디스플레이 티어링은 디코딩 모듈(410)이 공유 버퍼(SB)에 B1 또는 B2영상을 라이트하는 속도가 디스플레이 인터페이스(160)가 B1 또는 B2영상을 리드하는 속도보다 빠른 경우 발생할 수 있다.
도 9은 본 발명의 다른 실시 예들에 따른 디코더가 타임 쉐어링 방식으로 디코딩하는 과정을 나타내는 타이밍도이다.
아래에서는 설명의 중복을 방지하기 위하여 도 8와의 차이점을 중심으로 기술한다.
도 9을 참조하면, 디코더(400)는 디스플레이 인터페이스(160)가 공유 버퍼(SB)에 저장된 B1 또는 B2 영상을 리드하는 시간을 보장할 수 있다. 즉, 디스플레이 인터페이스(160)가 프레임 영상을 리드하고 나서 디코딩 모듈(430)이 다음 프레임 영상을 라이트 할 수 있다.
이를 구현하기 위하여, 디스플레이 인터페이스(160)는 프레임 영상의 리드 완료 신호를 디코딩 모듈(430)로 전송할 수 있다.
이러한 디코더(400)의 동작은 상술한 디스플레이 티어링 현상을 방지하기 위함일 수 있다.
t4에서, B1 영상은 제1디코딩 채널(DC1)을 통해 공유 버퍼(SB)에 라이트될 수 있다. 이와 동시에, 공유 버퍼(SB)에 라이트되는 B1 영상은 리드될 수 있다. 다만, B1 영상이 리드되는 시간이 라이트되는 시간보다 길기 때문에, t5에서도 B1 영상이 리드되는 동작이 계속될 수 있다.
t6에서, B1 영상은 제2디코딩 채널(DC1)을 통해 공유 버퍼(SB)에 라이트될 수 있다. 이와 동시에, 공유 버퍼(SB)에 라이트되는 B1 영상은 리드될 수 있다. 다만, B1 영상이 리드되는 시간이 라이트되는 시간보다 길기 때문에, t7에서도 B1 영상이 리드되는 동작이 계속될 수 있다.
상술한 바와 같이, t8 및 t10의 경우에도, B2 영상이 리드되는 시간이 보장될 수 있다.
상기 동작의 경우, 디스플레이 티어링이 발생하지 않는 장점이 있을 수 있다. 하지만, 구현이 복잡해지고 시간이 많이 소모되는 단점이 있을 수 있다.
도 10은 본 발명의 다른 실시 예들에 따른 디코딩 모듈과 디코딩 버퍼와의 연결 구조를 나타낸 블록도이다.
설명의 중복을 피하기 위하여, 도 10은 도 7와의 차이점을 중심으로 설명된다.
도 10을 참조하면, 도 7에 도시된 바와 달리, 공유 메모리 영역(SM)은 복수의 공유 버퍼들(SB1, SB2, 및 SB3)를 포함할 수 있다.
복수의 공유 버퍼들(SB1, SB2, 및 SB3)은 채널 별로 할당되지 않는다. 따라서, 디코딩 모듈(410)은 복수의 디코딩 채널들(DC1 및 DC2) 중 어느 하나를 통해 디코딩을 수행하는 경우, 복수의 공유 버퍼들(SB1, SB2, 및 SB3) 각각에 접근할 수 있다.
실시 예들에 따라, 복수의 공유 버퍼들(SB1, SB2, 및 SB3) 각각의 크기는 복수의 비공유 버퍼들(UB1, UB2, UB3 및 UB4) 각각의 크기보다 클 수 있다.
도 11는 본 발명의 실시 예들에 따른 도 10에 도시된 구조의 디코더가 타임 쉐어링 방식으로 디코딩하는 과정을 나타내는 타이밍도이다.
아래에서, 이미지 타입 결정 블록(220)는 이미지 데이터(ID)를 IBBP 방식으로 영상그룹을 할당한 것으로 가정하여 설명한다.
도 11을 참조하면, 영상들(예컨대, I 영상, P 영상 및 B 영상)은 복수의 디코딩 채널들(DC1 및 DC2)을 통해 복수의 비공유 버퍼들(UB1 내지 UB4)과 복수의 공유 버퍼들(SB1, SB2, 및 SB3)에 시간에 따라 순차적으로 라이트(write)되고 리드(read)된다.
상술한 바와 같이, 인코더(200)에 포함된 이미지 타입 결정 블록(220)이 IBBP 방식으로 영상 그룹을 할당하고, 인코딩 모듈(230)은 인코딩 데이터(ED)를 IPBB 순서로 인코딩 할 수 있다. 따라서, 인코딩 데이터(ED)가 디코딩 버퍼(420)에 라이트(write)되는 순서도 IPBB일 수 있다.
반면에, 디스플레이 인터페이스(160)가 디코딩 버퍼(420)에서 프레임 영상들을 리드(read)하는 순서는 IBBP일 수 있다.
IPBB 할당 방식에 있어서, 2개의 B 영상이 존재한다. 설명의 편의를 위하여 도 8에 도시된 바와 같이, 첫번째 B 영상을 B1 영상, 두번째 B 영상을 B2영상이라 지칭한다.
도 11에 도시된 바와 같이, 2개의 디코딩 채널들(DC1 및 DC2)을 통해 디코딩을 수행하는 디코더(400)의 디코딩 순서는 I(DC1), I(DC2), P(DC1), P(DC2), B1(DC1), B1(DC2), B2(DC1), 및 B2(DC2) 일 수 있다.
각 시점에서, 디코딩 모듈(410)은 비트 스트림(BS)를 디코딩하고, 생성된 프레임 영상들 각각을 복수의 비공유 버퍼들 또는 복수의 공유 버퍼들에 라이트할 수 있다. 이와 독립적으로, 디스플레이 인터페이스(160)는 복수의 비공유 버퍼들 또는 복수의 공유 버퍼들에 라이트되는 프레임 영상들 각각을 리드할 수 있다. 아래에서 각 시점에 따라 상세히 살펴본다.
t0에서, I 영상은 제1디코딩 채널(DC1)을 통해 제1비공유 버퍼(UB1)에 라이트될 수 있다.
t1에서, I 영상은 제2디코딩 채널(DC2)을 통해 제3비공유 버퍼(UB3)에 라이트될 수 있다.
t2에서, P 영상은 제1디코딩 채널(DC1)을 통해 제2비공유 버퍼(UB2)에 라이트될 수 있다. 이와 동시에, 제1비공유 버퍼(UB1)에 라이트된 I 영상은 리드될 수 있다.
t3에서, P 영상은 제2디코딩 채널(DC1)을 통해 제4비공유 버퍼(UB4)에 라이트될 수 있다. 이와 동시에, 제3비공유 버퍼(UB3)에 라이트된 I 영상은 리드될 수 있다.
t4에서, B1 영상은 제1디코딩 채널(DC1)을 통해 제1공유 버퍼(SB1)에 라이트될 수 있다. 이와 동시에, 제1공유 버퍼(SB1)에 라이트되는 B1 영상은 리드될 수 있다. 즉, 디스플레이 인터페이스(160)는 디코딩 모듈(410)이 B1 영상을 제1공유 버퍼(SB1)에 라이트하는 것과 동시에 B1 영상을 리드할 수 있다.
t5에서, B1 영상은 제2디코딩 채널(DC2)을 통해 제2공유 버퍼(SB2)에 라이트될 수 있다. 이와 동시에, 제2공유 버퍼(SB2)에 라이트되는 B2 영상은 리드될 수 있다.
또한, 이때, 디스플레이 인터페이스(160)는 제1디코딩 채널(DC1)을 통해 제1공유 버퍼(SB1)로부터 B1 영상을 계속해서 리드할 수 있다. 상술한 바와 같이, 디코딩 모듈(410)은 제2디코딩 채널(DC2)을 통해 제2공유 버퍼(SB2)로 B1 영상을 라이트하기 때문에 디스플레이 티어링 현상은 발생하지 않을 수 있다.
t6에서, B2 영상은 제1디코딩 채널(DC1)을 통해 제3공유 버퍼(SB3)에 라이트될 수 있다. 이와 동시에, 제3공유 버퍼(SB3)에 라이트되는 B2 영상은 리드될 수 있다.
또한, 이때, 디스플레이 인터페이스(160)는 제2디코딩 채널(DC2)을 통해 제2공유 버퍼(SB2)로부터 B1 영상을 계속해서 리드할 수 있다. 따라서, 상술한 바와 같이, 디스플레이 티어링 현상은 발생하지 않을 수 있다.
t7에서, B2 영상은 제2디코딩 채널(DC2)을 통해 공유 버퍼(SB)에 라이트될 수 있다. 이와 동시에, 공유 버퍼(SB)에 라이트되는 B 영상은 리드될 수 있다.
또한, 이때, 디스플레이 인터페이스(160)는 제1디코딩 채널(DC1)을 통해 제3공유 버퍼(SB3)로부터 B2 영상을 계속해서 리드할 수 있다. 따라서, 상술한 바와 같이, 디스플레이 티어링 현상은 발생하지 않을 수 있다.
t8에서, 제2비공유 버퍼(UB2)에 라이트된 P 영상은 제1디코딩 채널(DC1)을 통해 리드될 수 있다.
또한, 이때, 디스플레이 인터페이스(160)는 제2디코딩 채널(DC2)을 통해 제1공유 버퍼(SB1)로부터 B2 영상을 계속해서 리드할 수 있다. 따라서, 상술한 바와 같이, 디스플레이 티어링 현상은 발생하지 않을 수 있다.
t9에서, 제4비공유 버퍼(UB4)에 라이트된 P 영상은 제2디코딩 채널(DC2)을 통해 리드될 수 있다.
도 11에 도시된 바와 같이, 복수의 디코딩 채널들(DC1 및 DC2)을 통해 디코딩을 수행하는 디코더(400)는 타임 쉐어링 방식으로 동작할 수 있고, 이때 복수의 공유 버퍼들(SB1, SB2, 및 SB3)를 사용함으로써, 채널별로 별도의 버퍼를 사용할 때보다, 메모리 사용량을 줄이고, 디스플레이 티어링 현상이 발생하는 것을 방지할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 데이터 처리 시스템
100: 어플리케이션 프로세서
140: 코덱
160: 디스플레이 인터페이스
200: 인코더
210: 이미지 타입 결정 블록
220: 인코딩 버퍼
230: 인코딩 모듈
400: 디코더
410: 디코딩 모듈
420: 디코딩 버퍼

Claims (10)

  1. 복수의 디코딩 채널들을 통해 디코딩을 수행하는 디코딩 모듈 및 디코딩 버퍼를 포함하는 디코더에 있어서,
    상기 디코딩 버퍼에 비공유 메모리영역 및 공유 메모리영역을 설정하는 단계;
    수신한 비트 스트림에 상기 복수의 디코딩 채널들를 통해 디코딩을 수행함으로써, 복수의 프레임 영상들을 복원하는 단계; 및
    상기 복수의 프레임 영상들 각각의 타입을 판단하고, 상기 판단 결과를 기초로, 상기 복수의 프레임 영상들을 상기 비공유 메모리영역 및 상기 공유 메모리영역 중 어느 하나에 라이트하는 단계를 포함하는 디코더의 동작 방법.
  2. 제1항에 있어서,
    상기 비공유 메모리 영역은 상기 복수의 디코딩 채널들에 의해 공유되지 않고,
    상기 공유 메모리 영역은 상기 복수의 디코딩 채널들에 의해 공유될 수 있는 디코더의 동작 방법.
  3. 제1항에 있어서,
    상기 비공유 메모리 영역은 상기 복수의 디코딩 채널들에 의해 공유되지 않고,
    상기 공유 메모리 영역은 상기 복수의 디코딩 채널들에 의해 공유될 수 있는 디코더의 동작 방법.
  4. 제3항에 있어서, 상기 판단 결과가 상기 프레임 영상이 B 영상인 것을 나타낼 경우, 상기 프레임 영상을 상기 공유 메모리영역에 라이트 하는 단계는
    디스플레이 인터페이스로부터 리드 완료 신호를 수신 대기하는 단계; 및
    상기 리드 완료 신호를 수신한 경우, 공유 메모리 영역에 프레임 영상을 라이트하는 단계를 포함하는 디코더의 동작 방법.
  5. 제3항에 있어서, 상기 프레임 영상의 타입을 판단하는 단계는
    인코더로부터 수신한 영상 타입 할당 신호를 기초로 상기 프레임 영상의 타입을 판단하는 단계를 포함하는 디코더의 동작 방법.

  6. 제1항에 있어서,
    상기 비공유 메모리영역은 복수의 비공유 버퍼들를 포함하고,
    상기 공유 메모리영역은 복수의 공유 버퍼들를 포함하고,
    상기 복수의 공유 버퍼들 각각은 상기 복수의 비공유 버퍼들 각각보다 사이즈가 더 큰 디코더의 동작 방법.
  7. 디코더가 디코딩 버퍼에 포함된 복수의 단위 버퍼들을 복수의 비공유 버퍼들 및 공유 버퍼들 중 어느 하나로 설정하는 단계;
    상기 디코더가 비트 스트림을 수신하는 단계;
    상기 디코더가 수신한 상기 비트 스트림에 상기 복수의 디코딩 채널들를 통해 디코딩을 수행함으로써, 복수의 프레임 영상들을 복원하는 단계; 및
    상기 디코더가 상기 복수의 프레임 영상들 각각의 타입을 판단하고, 상기 판단 결과를 기초로, 상기 비공유 버퍼들 및 상기 공유 버퍼들 중 어느 하나에 상기 복수의 프레임 영상들을 라이트하는 단계를 포함하고,
    상기 비공유 버퍼들은 상기 복수의 디코딩 채널들에 의해 공유되지 않고, 상기 공유 버퍼들은 상기 복수의 디코딩 채널들에 의해 공유될 수 있는 어플리케이션 프로세서의 동작 방법.

  8. 제7항에 있어서, 상기 비공유 버퍼들 및 상기 공유 버퍼들 중 어느 하나에 상기 복수의 프레임 영상들을 라이트하는 단계는
    상기 디코더가 상기 프레임 영상의 타입을 판단하는 단계;
    상기 판단 결과가 상기 프레임 영상이 I 영상 또는 P 영상인 것을 나타낼 경우, 상기 디코더가 상기 프레임 영상을 상기 복수의 비공유 버퍼들 중 어느 하나의 빈 비공유 버퍼에 라이트 하는 단계; 및
    상기 판단 결과가 상기 프레임 영상이 B 영상인 것을 나타낼 경우, 상기 디코더가 상기 프레임 영상을 상기 공유 버퍼들 중 어느 하나의 공유 버퍼에 라이트 하는 단계를 포함하는 어플리케이션 프로세서의 동작 방법.
  9. 제8항에 있어서, 상기 프레임 영상을 상기 공유 버퍼들 중 어느 하나의 버퍼에 라이트 하는 단계는
    상기 디코더가 상기 공유 버퍼들 중 빈 공유 버퍼가 있는지 판단하는 단계;
    상기 빈 공유 버퍼가 있는 경우, 상기 디코더가 상기 프레임 영상을 상기 빈 공유 버퍼에 라이트하는 단계; 및
    상기 빈 공유 버퍼가 없는 경우, 상기 디코더가 상기 프레임 영상을 상기 복수의 공유 버퍼들 중 디스플레이 인터페이스의 접근이 없는 공유 버퍼에 오버라이트하는 단계를 포함하는 어플리케이션 프로세서의 동작 방법.
  10. 제8항에 있어서, 상기 디코더가 상기 프레임 영상의 타입을 판단하는 단계는
    상기 디코더가 인코더로부터 수신한 영상 타입 할당 신호를 기초로 상기 프레임 영상의 타입을 판단하는 단계를 포함하는 어플리케이션 프로세서의 동작 방법.

KR1020150176318A 2015-12-10 2015-12-10 디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법 KR102576630B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150176318A KR102576630B1 (ko) 2015-12-10 2015-12-10 디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법
US15/361,869 US10757430B2 (en) 2015-12-10 2016-11-28 Method of operating decoder using multiple channels to reduce memory usage and method of operating application processor including the decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150176318A KR102576630B1 (ko) 2015-12-10 2015-12-10 디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법

Publications (2)

Publication Number Publication Date
KR20170069074A true KR20170069074A (ko) 2017-06-20
KR102576630B1 KR102576630B1 (ko) 2023-09-08

Family

ID=59018646

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150176318A KR102576630B1 (ko) 2015-12-10 2015-12-10 디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법

Country Status (2)

Country Link
US (1) US10757430B2 (ko)
KR (1) KR102576630B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020033149A1 (en) * 2018-08-08 2020-02-13 Micron Technology, Inc. Buffer management in memory systems for read and write requests

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671323B2 (en) * 2017-08-29 2020-06-02 SK Hynix Inc. Memory system with shared buffer architecture for multiple decoders and method of operating such memory system
US10782916B2 (en) 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
CN110119313B (zh) * 2019-05-13 2021-09-03 格兰菲智能科技有限公司 图像处理方法及图像处理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668599A (en) * 1996-03-19 1997-09-16 International Business Machines Corporation Memory management for an MPEG2 compliant decoder
US20040264924A1 (en) * 2003-06-26 2004-12-30 International Business Machines Corporation MPEG-2 decoder, method and buffer scheme for providing enhanced trick mode playback of a video stream
KR20110053243A (ko) * 2008-09-11 2011-05-19 구글 잉크. 병렬 처리를 이용하여 디코딩하는 시스템 및 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909224A (en) 1996-10-18 1999-06-01 Samsung Electronics Company, Ltd. Apparatus and method for managing a frame buffer for MPEG video decoding in a PC environment
FR2800551B1 (fr) 1999-11-03 2002-01-04 St Microelectronics Sa Decodeur mpeg utilisant une memoire partagee
US7050496B2 (en) 2000-02-15 2006-05-23 4Nsys Co., Ltd. Multi-channel image encoding method and system
JP3970764B2 (ja) 2000-10-17 2007-09-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マルチスタンダードチャンネル復号器
KR100556357B1 (ko) 2002-12-04 2006-03-03 엘지전자 주식회사 디지털 비디오 포맷을 지원하는 엠펙 비디오 디코딩 시스템
EP1624704B1 (en) 2004-07-29 2010-03-31 STMicroelectronics Pvt. Ltd Video decoder with parallel processors for decoding macro-blocks
US20080152014A1 (en) * 2006-12-21 2008-06-26 On Demand Microelectronics Method and apparatus for encoding and decoding of video streams
US8341611B2 (en) * 2007-04-11 2012-12-25 Apple Inc. Application interface on multiple processors
US20130104182A1 (en) * 2011-04-12 2013-04-25 Jupiter Systems Method and Apparatus for Fast Data Delivery on a Digital Pixel Cable
CN103493493A (zh) 2011-04-28 2014-01-01 索尼公司 编码装置和编码方法以及解码装置和解码方法
US20140085418A1 (en) 2011-05-16 2014-03-27 Sony Corporation Image processing device and image processing method
ES2625097T3 (es) 2011-09-07 2017-07-18 Sun Patent Trust Método de codificación de imágenes y aparato de codificación de imágenes
MX2013008942A (es) * 2012-02-03 2013-09-12 Panasonic Corp Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
JP5950169B2 (ja) 2012-04-06 2016-07-13 ソニー株式会社 復号装置および復号方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668599A (en) * 1996-03-19 1997-09-16 International Business Machines Corporation Memory management for an MPEG2 compliant decoder
US20040264924A1 (en) * 2003-06-26 2004-12-30 International Business Machines Corporation MPEG-2 decoder, method and buffer scheme for providing enhanced trick mode playback of a video stream
KR20110053243A (ko) * 2008-09-11 2011-05-19 구글 잉크. 병렬 처리를 이용하여 디코딩하는 시스템 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Heiko Schwarz, et al. Overview of the scalable video coding extension of the H. 264/AVC standard. IEEE Transactions on Circuits and Systems for Video Technology, 2007.09.* *
RICHARD J. ANDERSON, et al. Lawrence. A comparison of shared and nonshared memory models of parallel computation. Proceedings of the IEEE, 1991.* *
심동규, 남정학. 고속 비디오 처리를 위한 병렬화 기술. The Magazine of the IEIE, 2009.* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020033149A1 (en) * 2018-08-08 2020-02-13 Micron Technology, Inc. Buffer management in memory systems for read and write requests

Also Published As

Publication number Publication date
KR102576630B1 (ko) 2023-09-08
US20170171553A1 (en) 2017-06-15
US10757430B2 (en) 2020-08-25

Similar Documents

Publication Publication Date Title
US11705924B2 (en) Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
US8213518B1 (en) Multi-threaded streaming data decoding
US8175157B2 (en) Apparatus and method for controlling data write/read in image processing system
US10397612B2 (en) Three-dimensional video encoding method, three-dimensional video decoding method, and related apparatus
KR102576630B1 (ko) 디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법
US8660191B2 (en) Software video decoder display buffer underflow prediction and recovery
US9749636B2 (en) Dynamic on screen display using a compressed video stream
US20190028710A1 (en) Selective coding
US11223838B2 (en) AI-assisted programmable hardware video codec
TWI675584B (zh) 具有多個句法解析電路和/或多個後解碼電路的視訊處理系統
JP6055155B2 (ja) ハードウェアデコーダアクセラレータのためのセキュリティ強度の向上
KR102365685B1 (ko) 인코더의 작동 방법과 상기 인코더를 포함하는 장치들
KR20160064419A (ko) 움직임 보상 정보를 수정하는 데이터 처리 시스템과 데이터 처리 방법
US8655088B2 (en) Image encoder, image decoder and method for encoding original image data
CN114374848B (zh) 一种视频编码优化方法和系统
JP5182285B2 (ja) デコード方法及びデコード装置
KR100646577B1 (ko) 비디오 codec에 있어서 특정이미지 저장방법
US10075722B1 (en) Multi-core video decoder system having at least one shared storage space accessed by different video decoder cores and related video decoding method
JP2011160077A (ja) 復号装置および方法
US9307267B2 (en) Techniques for scalable dynamic data encoding and decoding
US20230199171A1 (en) Search Memory Management For Video Coding
JP4892468B2 (ja) 動画像符号化装置、動画像符号化装置の制御方法及びコンピュータプログラム
KR20070115217A (ko) Arm 프로세서에서의 메모리 접근 횟수를 줄인 디코더구현방법
Liu et al. Design of an H. 264/AVC decoder with memory hierarchy and line-pixel-lookahead
WO2023049928A1 (en) Method, apparatus, and medium for video processing

Legal Events

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