KR20130005167A - 영상 신호 디코딩 장치 및 그것의 디코딩 방법 - Google Patents

영상 신호 디코딩 장치 및 그것의 디코딩 방법 Download PDF

Info

Publication number
KR20130005167A
KR20130005167A KR1020110066586A KR20110066586A KR20130005167A KR 20130005167 A KR20130005167 A KR 20130005167A KR 1020110066586 A KR1020110066586 A KR 1020110066586A KR 20110066586 A KR20110066586 A KR 20110066586A KR 20130005167 A KR20130005167 A KR 20130005167A
Authority
KR
South Korea
Prior art keywords
buffer
list
video signal
buffers
storing
Prior art date
Application number
KR1020110066586A
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 KR1020110066586A priority Critical patent/KR20130005167A/ko
Priority to US13/542,027 priority patent/US20130011074A1/en
Publication of KR20130005167A publication Critical patent/KR20130005167A/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/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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

본 발명의 영상 신호 디코딩 장치는, 버퍼 플래그를 저장하는 제1 영역, 버퍼 리스트를 저장하는 제2 영역 및 각각이 디코딩된 영상 신호를 저장하는 복수의 버퍼들로 구성된 제3 영역을 포함하는 메모리, 그리고 호스트로부터의 디코딩 요청에 응답해서 영상 신호를 디코딩하고, 디코딩된 영상 신호를 상기 복수의 버퍼들 중 어느 하나에 저장하는 코덱을 포함한다. 버퍼 플래그는 상기 복수의 버퍼들 각각의 사용 가능 또는 불가능 상태를 나타내고, 버퍼 리스트는 상기 복수의 버퍼들 각각의 사용 또는 비사용 상태를 나타내며, 코덱은 상기 복수의 버퍼들 중 상기 버퍼 리스트가 비사용 상태를 나타내고, 상기 버퍼 플래그가 사용 가능 상태를 나타내는 버퍼에 상기 디코딩된 영상 신호를 저장한다.

Description

영상 신호 디코딩 장치 및 그것의 디코딩 방법{IMAGE SIGNAL DECODING DEVICE AND DECODING METHOD THEREOF}
본 발명은 영상 디코딩 장치 및 그것의 디코딩 방법에 관한 것이다.
최근 디지털 영상 제품에 대한 수요가 폭발적으로 증가하고 있다. 비디오 통신, 보안 및 감시, 사업 자동화뿐만 아니라 DVD, HDTV, 위상 TV, 고화질(HD) 셋톱박스, 인터넷 비디오 스트리밍, 디지털 카메라 및 HD 비디오 캠코더, 비디오 쥬크 박스 등의 애플리케이션이 그 예이다. 이러한 디지털 비디오 제품에 비디오 압축은 필수적으로 필요하다. 압축-압축 해제(코덱) 알고리즘은 디지털 비디오를 저장 및 전송할 수 있도록 한다. 일반적으로 코덱은 MPEG2, MPEG4, H.264/AVC, AVS같이 산업 표준이거나 On2, Real Video, Nancy, 윈도우즈 미디어 비디오(MWV) 같이 고유 기술 알고리즘이다.
디지털 영상 처리의 가장 큰 문제는 영상 원본 또는 비압축 영상 저장 또는 전송을 위해 대량의 데이터를 필요로 한다는 것이다.
따라서 본 발명의 목적은 영상의 저장 및 전송을 위해 사용되는 버퍼를 효과적으로 관리할 수 있는 영상 신호 디코딩 장치 및 그것의 디코딩 방법을 제공한다.
이와 같은 목적을 달성하기 위한 본 발명의 특징에 의하면, 영상 신호 디코딩 장치는: 버퍼 플래그를 저장하는 제1 영역, 버퍼 리스트를 저장하는 제2 영역 및 각각이 디코딩된 영상 신호를 저장하는 복수의 버퍼들로 구성된 제3 영역을 포함하는 메모리, 그리고 호스트로부터의 디코딩 요청에 응답해서 영상 신호를 디코딩하고, 디코딩된 영상 신호를 상기 복수의 버퍼들 중 어느 하나에 저장하는 코덱을 포함한다. 상기 버퍼 플래그는 상기 복수의 버퍼들 각각의 사용 가능 또는 불가능 상태를 나타내고, 상기 버퍼 리스트는 상기 복수의 버퍼들 각각의 사용 또는 비사용 상태를 나타내고, 상기 코덱은 상기 복수의 버퍼들 중 상기 버퍼 리스트가 비사용 상태를 나타내고, 상기 버퍼 플래그가 사용 가능 상태를 나타내는 버퍼에 상기 디코딩된 영상 신호를 저장한다.
이 실시예에 있어서, 상기 코덱은, 상기 호스트로부터의 상기 디코딩 요청에 응답해서 상기 복수의 버퍼들 중 상기 버퍼 리스트에 비사용 상태로 설정된 버퍼를 선택하고, 선택된 버퍼가 상기 버퍼 플래그에 사용 가능 상태로 설정되어 있을 때 상기 디코딩된 영상 신호를 상기 선택된 버퍼에 저장한다.
이 실시예에 있어서, 상기 코덱은, 상기 선택된 버퍼가 버퍼 플래그에 사용 불가능 상태로 설정되어 있을 때 상기 버퍼 리스트에 비사용 상태로 설정된 새로운 버퍼를 선택하고, 상기 새로운 버퍼가 상기 버퍼 플래그에 사용 가능 상태로 설정되어 있을 때 상기 디코딩된 영상 신호를 상기 새로운 버퍼에 저장한다.
이 실시예에 있어서, 상기 메모리는, 상기 복수의 버퍼들 중 상기 디코딩된 영상 신호를 저장하고 있는 버퍼들의 디스플레이 순서를 나타내는 디스플레이 버퍼 리스트를 저장하는 제4 영역, 그리고 상기 디코딩된 영상 신호를 저장하고 있는 버퍼들 중 참조 프레임의 영상 신호를 저장하고 있는 버퍼를 나타내는 DPB(decoded picture buffer) 리스트를 저장하는 제5 영역을 더 포함한다.
이 실시예에 있어서, 상기 코덱은, 상기 디코딩된 영상 신호를 상기 선택된 버퍼에 저장하되, 상기 디코딩된 영상 신호가 상기 참조 프레임의 영상 신호일 때 상기 선택된 버퍼의 정보를 상기 DPB 리스트에 등록한다.
이 실시예에 있어서, 상기 디스플레이 버퍼 리스트에 저장된 상기 디코딩된 영상 신호를 저장하고 있는 버퍼들의 디스플레이 순서는 선입선출 방식으로 삭제되고, 상기 코덱은 상기 버퍼 리스트 내 상기 삭제된 디스플레이 순서에 대응하는 버퍼를 비사용 상태로 설정한다.
이 실시예에 있어서, 상기 메모리의 상기 제1 영역에 저장되는 상기 버퍼 플래그는 상기 호스트에 의해서 설정된다.
본 발명의 다른 특징에 따른 영상 디코딩 방법은: 호스트로부터 디코딩 요청을 수신하고, 상기 디코딩 요청에 응답해서 버퍼 리스트에 비사용 상태로 설정된 버퍼를 선택하는 단계와, 상기 선택된 버퍼가 버퍼 플래그에 사용 가능 상태로 설정되어 있는 지를 확인하고, 상기 선택된 버퍼가 상기 버퍼 플래그에 사용 가능 상태로 설정되어 있을 때 영상 신호를 디코딩하고, 그리고 디코딩된 영상 신호를 상기 선택된 버퍼에 저장한다.
이 실시예에 있어서, 영상 디코딩 방법은, 상기 선택된 버퍼가 버퍼 플래그에 사용 불가능 상태로 설정되어 있을 때 상기 버퍼 리스트에 비사용 상태로 설정된 새로운 버퍼를 선택하고, 상기 새로운 버퍼가 상기 버퍼 플래그에 사용 가능 상태로 설정되어 있을 때 상기 디코딩된 영상 신호를 상기 새로운 버퍼에 저장한다.
이 실시예에 있어서, 상기 버퍼 플래그 및 버퍼 리스트는 메모리의 제1 영역 및 제2 영역에 각각 저장되고, 버퍼는 상기 메모리의 제3 영역이다.
이 실시예에 있어서, 상기 메모리는, 상기 복수의 버퍼들 중 상기 디코딩된 영상 신호를 저장하고 있는 버퍼들의 디스플레이 순서를 나타내는 디스플레이 버퍼 리스트를 저장하는 제4 영역, 그리고 상기 디코딩된 영상 신호를 저장하고 있는 버퍼들 중 참조 프레임의 영상 신호를 저장하고 있는 버퍼를 나타내는 DPB(decoded picture buffer) 리스트를 저장하는 제5 영역을 더 포함한다.
이 실시예에 있어서, 영상 신호 디코딩 방법은, 상기 디코딩된 영상 신호를 상기 선택된 버퍼에 저장한 후 상기 디코딩된 영상 신호가 상기 참조 프레임의 영상 신호일 때 상기 선택된 버퍼의 정보를 상기 DPB 리스트에 등록한다.
이 실시예에 있어서, 영상 신호 디코딩 방법은, 상기 버퍼 리스트에 저장된 상기 버퍼들의 디스플레이 순서에 따라서 상기 디코딩된 영상 신호를 저장하고 있는 버퍼의 정보를 상기 호스트로 제공한다.
이 실시예에 있어서, 영상 신호 디코딩 방법은, 상기 디코딩된 영상 신호를 저장하고 있는 버퍼의 정보를 상기 호스트로 제공한 후 상기 호스트로 제공된 버퍼가 비사용 상태인 것으로 상기 버퍼 리스트에 설정한다.
이와 같은 구성을 갖는 본 발명에 의하면, 영상의 저장 및 전송을 위해 사용되는 버퍼를 효과적으로 관리할 수 있다.
도 1은 본 발명의 실시예에 따른 영상 신호 디코딩 장치를 포함하는 영상 처리 시스템을 보여주는 도면이다.
도 2는 도 1에 도시된 메모리의 구성을 개념적으로 보여주는 도면이다.
도 3은 도 1에 도시된 본 발명의 실시예에 따른 영상 신호 디코딩 장치를 포함하는 영상 처리 시스템에서의 디코딩 방법을 설명하기 위한 도면이다.
도 4는 도 3에 도시된 디스플레이 버퍼 리스트 및 DPB 리스트의 이해를 돕기 위해 코덱의 디코딩 순서를 설명하기 위한 도면이다.
도 5는 도 1에 도시된 디코딩 장치의 영상 신호 디코딩 방법을 보여주는 플로우차트이다.
도 6은 참조 픽쳐 마킹 프로세스를 설명하기 위해 도 3에 도시된 DPB(decoded picture buffer) 리스트의 일 예를 보여주는 도면이다.
도 7은 본 발명의 다른 실시예에 따른 디코딩 시스템을 보여주는 도면이다.
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 영상 신호 디코딩 장치를 포함하는 영상 처리 시스템을 보여주는 도면이다.
도 1을 참조하면, 영상 처리 시스템(100)은 호스트(110), 영상 신호 디코딩 장치(120) 및 디스플레이 장치(130)를 포함한다. 호스트(110)는 영상 신호 디코딩 장치(120) 및 디스플레이 장치(130)를 제어한다. 영상 신호 디코딩 장치(120)는 호스트(110)의 제어에 따라서 영상 신호를 코딩 및 디코딩한다. 영상 신호는 호스트(110)로부터 제공되거나 메모리(124)에 저장된 영상 신호일 수 있다. 영상 신호 디코딩 장치(120)는 코덱(codec, 122)과 메모리(124)를 포함한다. 코덱(122)은 호스트(110)의 제어에 따라서 디코딩된 영상 신호를 메모리(124)에 저장한다. 디스플레이 장치(130)는 호스트(110)의 제어에 따라서 메모리(124)에 저장된 영상 신호를 디스플레이한다. 메모리(124)는 코덱(122)뿐만 아니라 호스트(110) 및 디스플레이 장치(130)에 의해서 직접 액세스될 수 있다.
본 발명의 일 예에서, 영상 신호 디코딩 장치(120) 내 코덱(122)과 메모리(124)는 각각 별개의 집적 회로로 구성되나, 다른 예에서 코덱(122)과 메모리(124)는 단일 집적 회로로 구현될 수 있다.
본 발명의 영상 신호 디코딩 장치(120)는 영상 신호 처리가 필요한 DVD, HDTV, 위상 TV, 고화질(HD) 셋톱박스, 인터넷 비디오 스트리밍, 디지털 카메라 및 HD 비디오 캠코더, 비디오 쥬크 박스, HD 화상 전화, 디지털 시네마, 디지털 비디오 방송, IP 셋톱 박스 등에 적용될 수 있다. 또한 본 발명은 MPEG2, MPEG4, H.264/AVC, AVS 등과 같은 다양한 산업 표준에 따른 영상 신호 디코딩 장치에 적용될 수 있다.
도 2는 도 1에 도시된 메모리(124)의 구성을 개념적으로 보여주는 도면이다.
도 2를 참조하면, 메모리(124)는 버퍼 플래그(available buffer flag)가 저장되는 제1 영역(210), 버퍼 리스트(available buffer list)가 저장되는 제2 영역(220), 디코딩된 영상 신호가 저장되는 제3 영역(230), 디스플레이 버퍼 리스트가 저장되는 제4 영역(240) 그리고 DPB(decoded picture buffer) 리스트가 저장되는 제5 영역(250)을 포함한다. 제1 내지 제5 영역들(210-250)은 메모리(124)에 불연속적으로 배열될 수 있으며, 각각의 크기는 필요에 따라 다양하게 설정될 수 있다. 이하 설명에서 메모리(124)의 제1 내지 제5 영역들(210-250)이 명확하게 구별될 수 있도록 하기 위하여 제1 내지 제5 영역들 각각은 버퍼 플래그(210), 버퍼 리스트(220), 버퍼 풀(230), 디스플레이 버퍼 리스트(240) 그리고 DPB 리스트(250)로 칭한다.
도 1 및 도 2를 참조하면, 호스트(110)는 코덱(122)에게 영상 신호의 디코딩을 요청한다. 이 실시예에서, 호스트(110)는 코덱(122)에게 한 프레임 단위로 디코딩을 요청한다. 코덱(122)은 메모리(124)의 소정 영역에 저장된 영상 신호 또는 호스트(110)로부터 제공되는 영상 신호를 디코딩하고, 디코딩된 영상 신호를 메모리(124)의 버퍼 풀(230)에 저장한다. 이 실시예에서, 버퍼 풀은 복수의 버퍼들을 포함한다. 복수의 버퍼들 각각은 한 프레임 내 영상 신호를 저장한다.
코덱(122)이 디코딩 완료 정보를 호스트(110)에게 알려주면, 호스트(110)는 디스플레이 장치(130)가 메모리(124)의 버퍼 풀(230)에 저장되어 있는 디코딩된 영상 신호를 읽어서 디스플레이하도록 제어한다. 코덱(122)이 호스트(110)로부터의 요청에 응답해서 복수의 프레임들을 연속적으로 디코딩하는 경우, 디스플레이 장치(130)는 디코딩된 영상 신호를 프레임 순서에 따라서 순차적으로 디스플레이할 수 있어야 한다. 만일 디스플레이 장치(130)가 메모리(124)의 버퍼 풀(230) 내 소정 버퍼에 저장된 영상 신호를 읽어가기 전 새로운 프레임의 영상 신호가 겹쳐쓰기(overwrite) 된다면 화면이 깨지는 테어링(tearing) 오류가 발생할 것이다.
본 발명의 실시예에서, 호스트(110)는 메모리(124)의 버퍼들에 저장되어 있는 디코딩된 영상 신호를 디스플레이 장치(130)가 읽었는지의 여부에 따라서 코덱(122)이 사용 가능한지의 여부를 버퍼 플래그(210)에 저장한다. 코덱(122)은 버퍼 풀(230) 내 복수의 버퍼들 중 버퍼 리스트(220)가 비사용 상태를 나타내고, 버퍼 플래그(210)가 사용 가능 상태를 나타내는 버퍼에 디코딩된 영상 신호를 저장한다. 그러므로 테어링 오류가 발생하지 않는다.
도 3은 도 1에 도시된 본 발명의 실시예에 따른 영상 신호 디코딩 장치를 포함하는 영상 처리 시스템에서의 디코딩 방법을 설명하기 위한 도면이다.
도 3에서 도 2에 도시된 메모리(124)의 제1 내지 제5 영역들 즉, 버퍼 플래그(210), 버퍼 리스트(220), 버퍼 풀(230), 디스플레이 버퍼 리스트(240) 그리고 DPB 리스트(250)는 각각 분리해서 도시된다. 이 실시예에서 버퍼 풀(230)은 4 개의 버퍼들(B0, B1, B2, B3)을 포함하는 것으로 도시하고 설명한다. 그러나 버퍼 풀(230)에 포함되는 버퍼들의 개수는 다양하게 변경될 수 있음이 잘 이해될 것이다.
도 3을 참조하면, 호스트(110)는 메모리(124)의 버퍼 플래그(210)에 버퍼들(B0-B3) 각각의 사용 가능(Y) 또는 불가능(N) 상태를 저장한다(S1). 만일 디스플레이 장치(140)가 버퍼 풀(230)의 버퍼들(B0-B3)에 저장된 영상 신호 중 아직 읽어가지 못한 영상 신호가 있다면 그 버퍼에 대응하는 플래그 비트는 사용 불가능(N)에 대응하는 값으로 설정될 것이다.
호스트(110)는 코덱(122)에게 영상 신호에 대한 디코딩을 요청한다(S2). 이 실시예에서, 호스트(110)는 코덱(122)에게 한 프레임 단위로 디코딩을 요청한다. 코덱(122)은 호스트(110)로부터의 디코딩 요청에 응답해서 버퍼 리스트(220) 내 버퍼들(B0-B3) 중 어느 하나를 선택한다(S3). 코덱(122)은 버퍼 리스트(220)에 버퍼들(B0-B3) 중 비사용(UN) 상태로 설정되어 있는 버퍼를 선택할 수 있다. 버퍼 리스트(220)는 버퍼 풀(230) 내 버퍼들(B0-B3) 각각의 사용(U) 또는 비사용(UN) 상태를 저장한다.
이 실시예에서 버퍼들(B0, B3)이 비사용(UN) 상태로 설정되어 있었고, 코덱(122)은 버퍼(B3)를 선택한 것으로 한다. 코덱(122)은 버퍼 플래그(210)의 버퍼(B3)에 대응하는 플래그 비트를 체크한다(S4). 버퍼 플래그(210)의 버퍼(B3)에 대응하는 플래그 비트는 사용 불가능(N) 상태를 나타낸다. 이는 버퍼 풀(230) 내 버퍼(B3)에 저장되어 있는 디코딩된 영상 신호가 아직 디스플레이 장치(140)에 의해서 읽혀지지 않았음을 의미한다.
코덱(122)은 버퍼 리스트(1220) 내 비사용 상태(UN)로 설정된 버퍼들(B0, B3) 중 버퍼(B0)를 선택한다. 버퍼 플래그(210)의 버퍼(B0)에 대응하는 플래그 비트는 사용 가능(Y) 상태를 나타내므로, 코덱(122)은 호스트(110)로부터 요청된 영상 신호를 디코딩한다. 이때, 코덱(122)은 도 2에 도시된 메모리(124)의 소정 영역에 저장된 영상 신호 또는 호스트(110)로부터 직접 제공된 영상 신호를 디코딩할 수 있다. 코덱(122)은 디코딩된 영상 신호를 선택된 버퍼(B0)에 저장하고(S5), 버퍼 리스트(220) 내 버퍼(B0)가 사용(U) 상태를 나타내도록 설정한다.
코덱(122)은 버퍼(B0)에 저장된 영상 신호가 참조 프레임의 영상 신호인 경우, 버퍼(B0)를 DPB 리스트(250)에 등록한다(S6). DPB 리스트(250)에 등록된 버퍼(B0)는 디스플레이 순서가 되었을 때 디스플레이 버퍼 리스트(240)에 등록된다(S7). 코덱(122)은 디스플레이 버퍼 리스트(240)에 등록된 버퍼(B0)가 있을 때 이를 호스트(110)에게 알려준다.
이후 호스트(110)는 디스플레이 장치(140)로 하여금 버퍼 풀(230) 내 버퍼(B0)로부터 영상 신호를 독출하도록 제어한다. 호스트(110)는 디스플레이 장치(140)가 버퍼 풀(230) 내 버퍼(B0)로부터 영상 신호를 독출할 때까지 버퍼 플래그(210) 내 버퍼(B0)에 대응하는 플래그 비트를 사용 불가능(N)으로 설정한다.
디스플레이 장치(140)는 호스트(110)의 제어에 응답해서 버퍼 풀(230) 내 버퍼들(B0-B3)에 저장된 영상 신호를 읽어낸다. 디스플레이 장치(140)가 버퍼 풀(230) 내 버퍼(B3)에 저장된 영상 신호를 처리하지 못한 경우 버퍼 플래그(210) 내 버퍼(B3)에 대응하는 플래그 비트는 사용 불가능(N)을 나타낸다.
한편, 코덱(122)은 디스플레이 버퍼 리스트(240)에 등록된 버퍼(B0) 정보를 호스트(110)에게 알려준 후 디스플레이 버퍼 리스트(240)에서 버퍼(B0)를 삭제하고, 버퍼 리스트(220)에 버퍼(B0)가 비사용(UN) 상태인 것으로 설정한다. 이후 버퍼 풀(230) 내 버퍼(B0)에는 새로운 디코딩 영상 신호가 저장될 수 있다.
도 4는 도 3에 도시된 디스플레이 버퍼 리스트 및 DPB 리스트의 이해를 돕기 위해 코덱의 디코딩 순서를 설명하기 위한 도면이다.
도 4를 참조하면, 인코딩된 영상 스트림은 인트라 프레임(Intra frame, 이하 I-프레임이라 칭함), 순방향 예측 프레임(Predicted frame, 이하 P-프레임 이라 칭한다), 양방향 예측 프레임(Bi-directional frame, 이하 B-프레임 이라 칭한다)을 포함한다. I-프레임은 다른 프레임을 참조(reference)하지 않고 독립적으로 인코딩된다. P-프레임은 이전 프레임을 참조하여 인코딩된다. B-프레임은 이전 프레임뿐만 아니라 현재 프레임 후에 표시될 예정인 프레임을 참조하여 예측한다. 이와 같은 P-프레임과 B-프레임의 디코딩을 위해서는 디코디드 픽쳐 버퍼(decoded picture buffer, DPB)가 필요하다.
도 4에 도시된 예에서, 인코딩된 영상 스트림은 8 개의 프레임들(I1, P2, B3, B4, P5, B6, B7, I8)을 포함한다. I-프레임(I1)에 대한 디코딩이 끝나면, I-프레임(I1)의 디코딩된 영상 신호가 저장된 버퍼는 디스플레이 버퍼 리스트(240)에 등록되어야 한다. 코덱(122)은 디스플레이 버퍼 리스트(240)에 등록된 I-프레임(I1)의 디코딩된 영상 신호를 저장하고 있는 버퍼 정보를 호스트(110)에게 알려준 후 디스플레이 버퍼 리스트(240)에서 I-프레임(I1)을 저장하고 있는 버퍼를 삭제한다. 만일 I-프레임(I1)이 삭제되면 코덱(122)은 다음 P-프레임(P2)을 디코딩할 수 없다. 이와 같이, 다음 프레임에서 참조될 참조 프레임은 DPB 리스트(250)에 등록된다. 예컨대, t0에서 I-프레임(I1)은 디코딩되고, I-프레임(I1)의 영상 신호를 저장하고 있는 버퍼는 DPB 리스트(250)에 등록된다. t1에서 P-프레임(P2)은 I-프레임(I1)을 참조하여 디코딩되고, P-프레임(P2)의 영상 신호를 저장하고 있는 버퍼는 DPB 리스트(250)에 등록된다. 이때, I-프레임(I1)의 영상 신호를 저장하고 있는 버퍼 정보는 DPB 리스트(250)에서 디스플레이 버퍼 리스트(240)로 전송된다. t2에서 P-프레임(P5)은 디코딩되고, P-프레임(P5)의 영상 신호를 저장하고 있는 버퍼는 DPB 리스트(250)에 등록된다. 또한 P-프레임(P2)의 영상 신호를 저장하고 있는 버퍼는 DPB 리스트(250)에서 디스플레이 버퍼 리스트(240)로 전송된다. t3에서 B-프레임(B3)이 디코딩되고, 디코딩된 B-프레임(B3)을 저장하고 있는 버퍼가 디스플레이 버퍼 리스트(240)에 등록된다. t4에서 B-프레임(B4)이 디코딩되고, 디코딩된 B-프레임(B4)을 저장하고 있는 버퍼가 디스플레이 버퍼 리스트(240)에 등록된다. 이후 t5에서 DPB 리스트(250)에 등록된 P-프레임(P5)의 영상 신호를 저장하고 있는 버퍼가 디스플레이 버퍼 리스트(240)에 등록될 수 있다. 그러므로 디스플레이 장치(140) B-프레임(B3), B-프레임(B4) 및 P-프레임(P5) 순서로 디스플레이할 수 있다.
도 5는 도 1에 도시된 디코딩 장치의 영상 신호 디코딩 방법을 보여주는 플로우차트이다.
도 1, 도 2 및 도 5를 참조하면, 코덱(122)은 호스트(110)로부터 디코딩 요청을 수신한다(S510). 코덱(122)은 버퍼 리스트(220)에 비사용(UN) 상태로 설정된 버퍼들 중 하나를 선택한다(S512). 만일 버퍼 리스트(220)에 비사용(UN) 상태로 설정된 버퍼가 없다면(S514), 코덱(122)은 오류 메시지(S530)를 호스트(110)로 출력하고(S550) 디코딩을 종료한다.
만일 버퍼 리스트(220)에 비사용(UN) 상태로 설정된 버퍼가 있다면, 코덱(122)은 비사용(UN) 상태로 설정된 버퍼들 중 어느 하나를 선택한다. 선택된 버퍼가 버퍼 플래그(210)에 사용 가능(Y) 상태로 설정되어 있지 않으면 코덱(122)은 버퍼 리스트(220)의 버퍼들 중 비사용(UN) 상태로 설정된 새로운 버퍼를 선택한다(S512). 이와 같은 방법으로 버퍼 풀(230) 내 버퍼들 중 버퍼 리스트(220)에 비사용(UN) 상태로 설정되어 있고, 버퍼 플래그(210)에 사용 가능(Y) 상태로 설정된 버퍼가 선택된다. 코덱(122)은 호스트(110)로부터 요청된 프레임 내 영상 신호를 디코딩하고, 디코딩된 영상 신호를 앞서 선택된 버퍼에 저장한다(S518). 코덱(122)은 디코딩한 프레임이 참조 프레임이면(S520), 참조 픽쳐 마킹 프로세스(reference picture marking process)를 수행한다(S522).
도 6은 참조 픽쳐 마킹 프로세스를 설명하기 위해 도 3에 도시된 DPB(decoded picture buffer) 리스트의 일 예를 보여주는 도면이다.
도 6을 참조하면, 참조 픽쳐 마킹 프로세스는 MPEG-4 AVC 표준을 따르며, DPB 리스트(250)에 등록되는 버퍼의 참조 상태값(REF)을 '1'로 설정하는 과정을 포함한다. 또한, DPB 리스트(250) 내 참조 상태값(REF)이 '0'이고, 출력 상태값(OUT)이 '1'인 버퍼를 DPB 리스트(250)에서 제거하는 동작을 포함한다. DPB 리스트(250)는 도 3에 도시된 버퍼 풀(230) 내 버퍼들(B0-B3) 중 디코딩된 픽쳐 버퍼(DPB)의 리스트뿐만 아니라 DPB에 각각 대응하는 참조 상태값(REF)과 출력 상태값(OUT)을 더 저장할 수 있다.
참조 상태값(REF)은 해당 버퍼에 저장된 프레임이 다른 프레임에 의해서 참조될 경우 '1'로 설정되고, 참조가 끝난 경우 '0'으로 설정된다. 출력 상태값(OUT)은 DPB 리스트(250)에 저장된 버퍼가 디스플레이 버퍼 리스트(240)로 출력된 경우 '1'로 설정되고, 아직 디스플레이 버퍼 리스트(240)로 출력되지 않았을 때 '0'으로 설정된다.
예컨대, 버퍼 풀(230) 내 버퍼(B0)가 I-프레임(I1)의 영상 신호를 저장하고 있고, 버퍼(B1)가 P-프레임(P2)의 영상 신호를 저장하고 있는 경우, DPB 리스트(250) 내 버퍼(B0)는 다음 P-프레임(P2)에 의해서 참조가 끝날 때까지 삭제되지 않아야 한다. 이와 같이 DPB 리스트(250)는 참조 프레임의 영상 신호가 다른 프레임에서 참조가 끝날 때까지 유지하기 위해 사용된다. 그러나 DPB 리스트(250)의 크기는 제한되어 있으므로, 참조 픽쳐 마킹 프로세스에 의해서 DPB 리스트(250) 내 참조 상태값(REF)이 '0'이고, 출력 상태값(OUT)이 '1'인 버퍼가 DPB 리스트(250)에서 제거된다. 또한 DPB 리스트(250)에서 제거된 버퍼가 있는 경우, 제거된 버퍼는 버퍼 리스트(220)에 비사용(UN) 상태로 설정된다.
만일 DPB 리스트(250)가 가득 찼다면(S524), 코덱(122)은 범핑 프로세스(bumping process)를 수행한다(S526). 범핑 프로세스는 DPB 리스트(250) 내 빈 공간을 만들기 위한 동작이다. 범핑 프로세스 동안 코덱(122)은 DPB 리스트(250)에 설정된 버퍼들을 디스플레이 버퍼 리스트(240)로 출력한다. 코덱(122)은 DPB 리스트(250)로부터 디스플레이 버퍼 리스트(240)로 출력된 버퍼의 DPB 리스트(250) 내 출력 상태값(OUT)을 '1'로 설정한다. 이와 같은 범핑 프로세스는 H.264 표준에서 정의하고 있는 방식으로 수행될 수 있다.
만일 DPB 리스트(250)가 가득차지 않았다면(S524), 코덱(122)은 범핑 프로세스를 수행하지 않고, 디코딩된 참조 프레임의 영상 신호가 저장된 버퍼를 DPB 리스트(250)에 등록한다(S528).
앞서 단계 S520에서, 코덱(122)은 디코딩한 프레임이 참조 프레임이 아니고(S520), DPB 리스트의 프레임보다 먼저 디스플레이되어야 하는 경우(S540), 디코딩된 프레임의 영상 신호가 저장된 버퍼를 디스플레이 버퍼 리스트(240)에 등록한다.
코덱(122)은 디스플레이 버퍼 리스트(240)에 등록된 버퍼가 있으면(S530) 버퍼 정보를 호스트(110)에게 전송하고, 디스플레이 버퍼 리스트(240)에 등록된 버퍼를 삭제한다(S534). 코덱(122)은 디스플레이 버퍼 리스트(240)로부터 삭제된 버퍼가 참조 프레임의 영상 신호를 저장하고 있는 버퍼가 아니면(S536) 비사용(UN) 상태로 설정되도록 버퍼 리스트(220)를 수정한다(S538).
호스트(110)는 버퍼 플래그(210) 내 플래그 비트들 중 코덱(122)으로부터 제공된 버퍼 정보에 대응하는 플래그 비트를 사용 불가능(N) 상태로 설정한다. 이후 디스플레이 장치(140)가 해당 버퍼에 저장된 영상 신호를 읽어가면 플래그 비트를 사용 가능(Y) 상태로 설정한다.
이와 같은 디코딩 방법에 의하면, 버퍼 리스트(220)에 비사용(UN) 상태로 설정되어 있더라도 디스플레이 장치(140)가 아직 읽어가지 않은 버퍼에 새로운 영상 신호가 겹쳐쓰기 되는 것을 방지할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 디코딩 시스템을 보여주는 도면이다.
도 7에 도시된 디코딩 시스템(700)은 도 3에 도시된 디코딩 시스템(300)과 유사한 구성을 갖는다. 다만, 버퍼 풀(830)은 4개의 버퍼들(B0-B3)뿐만 아니라 확장 버퍼 그룹(831)을 더 포함한다. 확장 버퍼 그룹(831)은 복수의 버퍼들(B4-Bn)을 포함한다. 확장 버퍼 그룹(831)에 포함되는 확장 버퍼들(B4-Bn)의 수는 필요에 따라서 다양하게 결정될 수 있다.
버퍼 플래그(810)는 버퍼 풀(830)에 포함된 버퍼들(B0-B3)뿐만 아니라 확장 버퍼들(B4-Bn)의 사용 가능(Y) 또는 불가능(N) 상태를 나타내는 플래그 비트들을 포함한다. 마찬가지로 버퍼 리스트(820)는 버퍼 풀(830)에 포함된 버퍼들(B0-B3)뿐만 아니라 확장 버퍼들(B4-Bn)의 사용(U)/비사용(UN) 상태를 포함한다.
이와 같이, 버퍼 풀(830)에 확장 버퍼들(B4-Bn)을 더 포함함으로써 디코딩 동작에서 발생될 수 있는 오류를 최소화할 수 있다. 예컨대, 코덱(722)에 의해서 디코딩된 영상 신호가 버퍼 풀(830)에 저장된 후 디스플레이 장치(740)가 읽어가지 못해서 버퍼 풀(830)이 가득 찰 수 있다. 다른 예로, 참조 프레임의 영상 신호는 디스플레이 장치(740)에 의해서 읽혀진 후에도 버퍼 풀(830)에 남겨져 있어야 한다. 일련의 영상 스트림 중 참조 프레임의 수가 많은 경우 버퍼 풀(830)이 가득찰 수 있다. 버퍼 풀(830)에 포함되는 버퍼의 수를 늘림으로써 디코딩 동작에서 발생될 수 있는 오류는 최소화된다. 또한 버퍼 풀(830)이 확장 버퍼들(B4-Bn)을 포함할 때 버퍼 플래그(810) 및 버퍼 리스트(820)는 확장 버퍼들(B4-Bn)의 사용 가능(Y)/불가능(N) 상태 그리고 사용(U)/비사용(UN) 상태를 저장할 수 있다.
예시적인 실시예들을 이용하여 본 발명을 설명하였지만, 본 발명의 범위는 개시된 실시예들에 한정되지 않는다는 것이 잘 이해될 것이다. 따라서, 청구범위는 그러한 변형 예들 및 그 유사한 구성들 모두를 포함하는 것으로 가능한 폭넓게 해석되어야 한다.
110: 호스트 120: 영상 신호 디코딩 장치
122: 코덱 124: 메모리
130: 디스플레이 장치 210; 버퍼 플래그
220: 버퍼 리스트 230: 버퍼 풀
240: 디스플레이 버퍼 리스트 250: DPB 리스트

Claims (10)

  1. 버퍼 플래그를 저장하는 제1 영역, 버퍼 리스트를 저장하는 제2 영역 및 각각이 디코딩된 영상 신호를 저장하는 복수의 버퍼들로 구성된 제3 영역을 포함하는 메모리; 그리고
    호스트로부터의 디코딩 요청에 응답해서 영상 신호를 디코딩하고, 디코딩된 영상 신호를 상기 복수의 버퍼들 중 어느 하나에 저장하는 코덱을 포함하되;
    상기 버퍼 플래그는 상기 복수의 버퍼들 각각의 사용 가능 또는 불가능 상태를 나타내고,
    상기 버퍼 리스트는 상기 복수의 버퍼들 각각의 사용 또는 비사용 상태를 나타내고,
    상기 코덱은 상기 복수의 버퍼들 중 상기 버퍼 리스트가 비사용 상태를 나타내고, 상기 버퍼 플래그가 사용 가능 상태를 나타내는 버퍼에 상기 디코딩된 영상 신호를 저장하는 것을 특징으로 하는 영상 신호 디코딩 장치.
  2. 제 1 항에 있어서,
    상기 코덱은,
    상기 호스트로부터의 상기 디코딩 요청에 응답해서 상기 복수의 버퍼들 중 상기 버퍼 리스트에 비사용 상태로 설정된 버퍼를 선택하고, 선택된 버퍼가 상기 버퍼 플래그에 사용 가능 상태로 설정되어 있을 때 상기 디코딩된 영상 신호를 상기 선택된 버퍼에 저장하는 것을 특징으로 하는 영상 신호 디코딩 장치.
  3. 제 2 항에 있어서,
    상기 코덱은,
    상기 선택된 버퍼가 버퍼 플래그에 사용 불가능 상태로 설정되어 있을 때 상기 버퍼 리스트에 비사용 상태로 설정된 새로운 버퍼를 선택하고, 상기 새로운 버퍼가 상기 버퍼 플래그에 사용 가능 상태로 설정되어 있을 때 상기 디코딩된 영상 신호를 상기 새로운 버퍼에 저장하는 것을 특징으로 하는 영상 신호 디코딩 장치.
  4. 제 1 항에 있어서,
    상기 메모리는,
    상기 복수의 버퍼들 중 상기 디코딩된 영상 신호를 저장하고 있는 버퍼들의 디스플레이 순서를 나타내는 디스플레이 버퍼 리스트를 저장하는 제4 영역; 그리고
    상기 디코딩된 영상 신호를 저장하고 있는 버퍼들 중 참조 프레임의 영상 신호를 저장하고 있는 버퍼를 나타내는 DPB(decoded picture buffer) 리스트를 저장하는 제5 영역을 더 포함하는 것을 특징으로 하는 영상 신호 디코딩 장치.
  5. 제 4 항에 있어서,
    상기 코덱은,
    상기 디코딩된 영상 신호를 상기 선택된 버퍼에 저장하되, 상기 디코딩된 영상 신호가 상기 참조 프레임의 영상 신호일 때 상기 선택된 버퍼의 정보를 상기 DPB 리스트에 등록하는 것을 특징으로 하는 영상 신호 디코딩 장치.
  6. 제 1 항에 있어서,
    상기 메모리의 상기 제1 영역에 저장되는 상기 버퍼 플래그는 상기 호스트에 의해서 설정되는 것을 특징으로 하는 영상 신호 디코딩 장치.
  7. 호스트로부터 디코딩 요청을 수신하고,;
    상기 디코딩 요청에 응답해서 버퍼 리스트에 비사용 상태로 설정된 버퍼를 선택하고;
    상기 선택된 버퍼가 버퍼 플래그에 사용 가능 상태로 설정되어 있는 지를 확인하고;
    상기 선택된 버퍼가 상기 버퍼 플래그에 사용 가능 상태로 설정되어 있을 때 영상 신호를 디코딩하고; 그리고
    디코딩된 영상 신호를 상기 선택된 버퍼에 저장하는 것을 포함하는 것을 특징으로 하는 디코딩 장치의 영상 신호 디코딩 방법.
  8. 제 7 항에 있어서,
    상기 선택된 버퍼가 버퍼 플래그에 사용 불가능 상태로 설정되어 있을 때 상기 버퍼 리스트에 비사용 상태로 설정된 새로운 버퍼를 선택하고; 그리고
    상기 새로운 버퍼가 상기 버퍼 플래그에 사용 가능 상태로 설정되어 있을 때 상기 디코딩된 영상 신호를 상기 새로운 버퍼에 저장하는 것을 더 포함하는 것을 특징으로 하는 디코딩 장치의 영상 신호 디코딩 방법.
  9. 제 7 항에 있어서,
    상기 버퍼 플래그 및 버퍼 리스트는 메모리의 제1 영역 및 제2 영역에 각각 저장되고,
    버퍼는 상기 메모리의 제3 영역인 것을 특징으로 하는 디코딩 장치의 영상 신호 디코딩 방법.
  10. 제 9 항에 있어서,
    상기 메모리는,
    상기 복수의 버퍼들 중 상기 디코딩된 영상 신호를 저장하고 있는 버퍼들의 디스플레이 순서를 나타내는 디스플레이 버퍼 리스트를 저장하는 제4 영역; 그리고
    상기 디코딩된 영상 신호를 저장하고 있는 버퍼들 중 참조 프레임의 영상 신호를 저장하고 있는 버퍼를 나타내는 DPB(decoded picture buffer) 리스트를 저장하는 제5 영역을 더 포함하는 것을 특징으로 하는 디코딩 장치의 영상 신호 디코딩 방법.

KR1020110066586A 2011-07-05 2011-07-05 영상 신호 디코딩 장치 및 그것의 디코딩 방법 KR20130005167A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110066586A KR20130005167A (ko) 2011-07-05 2011-07-05 영상 신호 디코딩 장치 및 그것의 디코딩 방법
US13/542,027 US20130011074A1 (en) 2011-07-05 2012-07-05 Image signal decoding device and decoding method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110066586A KR20130005167A (ko) 2011-07-05 2011-07-05 영상 신호 디코딩 장치 및 그것의 디코딩 방법

Publications (1)

Publication Number Publication Date
KR20130005167A true KR20130005167A (ko) 2013-01-15

Family

ID=47438702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110066586A KR20130005167A (ko) 2011-07-05 2011-07-05 영상 신호 디코딩 장치 및 그것의 디코딩 방법

Country Status (2)

Country Link
US (1) US20130011074A1 (ko)
KR (1) KR20130005167A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110213600A (zh) * 2019-04-29 2019-09-06 网易(杭州)网络有限公司 视频直播方法、装置及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4249223B2 (ja) * 2004-04-16 2009-04-02 パナソニック株式会社 再生装置、及び記録方法
KR20070038396A (ko) * 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
US20080002773A1 (en) * 2006-06-26 2008-01-03 Texas Instruments Incorporated Video decoded picture buffer
JP5351020B2 (ja) * 2006-07-11 2013-11-27 トムソン ライセンシング バーチャルリファレンスピクチャを使用した方法及び装置
US8477852B2 (en) * 2007-06-20 2013-07-02 Nvidia Corporation Uniform video decoding and display
JP5079589B2 (ja) * 2008-04-30 2012-11-21 パナソニック株式会社 表示制御装置及び表示制御方法

Also Published As

Publication number Publication date
US20130011074A1 (en) 2013-01-10

Similar Documents

Publication Publication Date Title
US8270492B2 (en) Moving picture decoding device
US8223838B2 (en) Parallel processing circuit for intra-frame prediction
EP1879388B1 (en) Video information recording device, video information recording method, video information recording program, and recording medium containing the video information recording program
JPWO2005076629A1 (ja) 画像符号化装置及び撮像装置
US11601671B2 (en) Video coding and decoding
JP2010041354A (ja) 動画像符号化方法、符号化装置及び符号化プログラム
JP5869047B2 (ja) デジタルビデオデータを符号化するための方法
JP2007104231A (ja) トランスコーダ、記録装置及びトランスコード方法
EP2642764B1 (en) Transcoding a video stream to facilitate accurate display
TW202038623A (zh) 視頻編碼及解碼
JP4764706B2 (ja) 動画像変換装置
US20160134888A1 (en) Video encoding apparatus, video encoding method, video decoding apparatus, and video decoding method
US8503803B2 (en) Method and apparatus for encoding/decoding image by partitioning image
KR20130005167A (ko) 영상 신호 디코딩 장치 및 그것의 디코딩 방법
JP2007325119A (ja) 画像処理装置及び画像処理方法
TWI459818B (zh) 視訊設備和用於逆向顯示視訊資料的方法
US20210344943A1 (en) Video coding and decoding
US20110299591A1 (en) Video processing apparatus and method
JP4594163B2 (ja) 画像符号化方法、及び画像符号化装置
JP5240230B2 (ja) トランスコーダ、記録装置及びトランスコード方法
JP2022503707A (ja) ビデオ符号化及び復号
JP2007166555A (ja) 符号化装置及び方法
CN115668940A (zh) 基于与画面输出相关的信息的图像或视频编码
JP2007288443A (ja) 画像データ復号装置
JP2009111797A (ja) エンコーダ、及び記録装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid