KR100793286B1 - 버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어방법 - Google Patents

버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어방법 Download PDF

Info

Publication number
KR100793286B1
KR100793286B1 KR1020070042683A KR20070042683A KR100793286B1 KR 100793286 B1 KR100793286 B1 KR 100793286B1 KR 1020070042683 A KR1020070042683 A KR 1020070042683A KR 20070042683 A KR20070042683 A KR 20070042683A KR 100793286 B1 KR100793286 B1 KR 100793286B1
Authority
KR
South Korea
Prior art keywords
mcb
line data
area
memory
mcb line
Prior art date
Application number
KR1020070042683A
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 KR1020070042683A priority Critical patent/KR100793286B1/ko
Application granted granted Critical
Publication of KR100793286B1 publication Critical patent/KR100793286B1/ko
Priority to PCT/KR2008/001057 priority patent/WO2008136572A1/en
Priority to EP08723095A priority patent/EP2153656A4/en
Priority to US12/079,180 priority patent/US8184714B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

본 발명은 버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어 방법을 개시한다. 본 발명에 따른 디지털 영상 코덱은, 서로 다른 MCB(Minimum Coded Block) 라인 데이터가 개별적으로 기록되는 개별 영역과, 상기 서로 다른 MCB 라인 데이터가 공통적으로 기록되는 공용 영역을 구비한 버퍼 메모리 개별 영역과 공용 영역에 기록된 영상 데이터를 블록 단위로 조합하여 압축 부호화를 수행하는 영상 인코더 및 MCB 라인 데이터를 상기 개별 영역 및 공용 영역에 분할하여 기록하고, 압축 부호화가 수행되는 동안 압축 부호화가 완료된 공용 영역의 메모리 구조에 상응하는 기록 방식으로 다른 MCB 라인 데이터를 압축 부호화가 완료된 공용 영역에 기록하는 메모리 제어기를 포함한다. 본 발명에 따르면, 듀얼 버퍼 메모리를 사용하는 경우에 비해 버퍼 메모리 사용량을 현저하게 저감시킬 수 있고, 프레임 메모리의 용량을 초과하는 고 해상도의 영상도 재생이 가능하므로 사용자 편리성이 증대된다.
영상 코덱, 영상 인코딩, 영상 디코딩, 버퍼 메모리, 사용량 절감

Description

버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어 방법{Digital video codec using small size buffer memory, and Method for controlling the same}
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시 예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 바람직한 실시예에 따른 디지털 영상 코덱의 구성을 도시한 블록도이다.
도 2는 홀수번째 MCB 라인과 짝수번째 MCB 라인의 개념을 설명하는 도면이다.
도 3은 버퍼 메모리의 물리적 분할 구조를 보여주는 메모리 구조도이다.
도 4는 홀수번째 MCB 라인 데이터가 버퍼 메모리에 기록되는 방식을 예시한 도면이다.
도 5는 짝수번째 MCB 라인 데이터가 버퍼 메모리에 기록되는 방식을 예시한 도면이다.
도 6 내지 도 14는 도 3의 버퍼 메모리를 이용하여 영상 데이터를 인코딩하 는 과정을 순차적으로 도시한 도면이다.
도 15 및 도 16은 각각 본 발명의 바람직한 실시예에 따른 180도 회전 인코딩 방법에서 버퍼 메모리에 홀수번째 MCB 라인 데이터 및 짝수번째 MCB 라인 데이터를 기록하는 방식을 예시한 도면이다.
도 17은 홀수번째 MCB 라인 데이터의 기록이 완료된 후, 2사이클의 압축 부호화가 진행된 버퍼 메모리의 상태를 예시한 도면이다.
도 18은 짝수번째 MCB 라인 데이터의 기록이 완료된 후, 2사이클의 압축 부호화가 진행된 버퍼 메모리의 상태를 예시한 도면이다.
도 19는 본 발명에 따른 디지털 영상 코덱에 구비된 영상 디코딩 유닛의 구성을 도시한 블록도이다.
도 20은 영상 디코더 내에 내장된 스케일러가 신장이 완료된 영상 데이터를 여러 가지 스케일링 팩터에 의해 블록 단위로 다운 스케일링하는 개념을 예시한 도면이다.
<도면의 주요 참조 번호>
10: 영상신호 생성기 20: 메모리 제어기
30, 80: 버퍼 메모리 40: 영상 인코더
60: 영상 디코더 70: 스케일러
90: 메모리 제어기 90: 프레임 메모리
본 발명은 디지털 영상 처리에 대한 것으로서, 보다 상세하게는 메모리 사용량을 감소시킬 수 있는 디지털 영상 코덱 및 그 제어방법에 대한 것이다.
디지털 카메라, 디지털 캠코더 등을 포함하는 디지털 영상 촬영 장치는 CCD(Charge-Coupled Device)나 CMOS(Complementary Metal-Oxide Semiconductor) 소자와 같은 촬상 소자로부터 얻은 아날로그 영상 데이터를 휘도(Y) 및 색차 데이터(Cb, Cr)로 디지털 변환한 후 영상 코덱을 이용하여 NⅹN 사이즈의 최소 코드화 블록(Minimum Coded Block 이하, MCB라 함) 단위로 압축 부호화하여 기록매체에 기록한다.
디지털화된 영상 데이터의 압축 부호화를 시작하기 위해서는 PⅹN 만큼의 영상 데이터가 영상 코덱이 참조하는 버퍼 메모리에 수록되어 있어야 한다. 여기서, P는 영상의 가로 사이즈이고, N은 MCB의 사이즈이다. 예를 들어, 1024ⅹ768 사이즈의 영상 데이터를 JPEG 표준에 의해 압축 부호화할 경우 8ⅹ8 블록 단위로 압축 부호화가 이루어지므로, 적어도 1024ⅹ8 사이즈의 영상 데이터가 버퍼 메모리에 수록되어 있어야 한다. 이하, 설명의 편의를 위해 영상 데이터 중 MCB의 수직 사이즈에 해당하는 N 라인의 영상 데이터를 MCB 라인 데이터라고 칭하기로 한다.
그런데, 영상 데이터의 압축 부호화시 MCB 라인 데이터의 용량에 상응하는 크기의 버퍼 메모리를 이용하면, MCB 라인 데이터가 버퍼 메모리에 수록될 때까지 압축 부호화를 수행할 수 없을 뿐만 아니라, 압축 부호화가 수행되는 동안은 버퍼 메모리에 추가적인 MCB 라인 데이터의 로드가 불가능하므로 시간적 측면에서 압축 부호화의 효율이 저하되는 문제가 있다.
따라서, 듀얼 버퍼 메모리를 사용하여 영상 데이터를 압축 부호화하는 방식이 널리 사용되고 있다. 즉, 한쪽 버퍼 메모리에 MCB 라인 데이터를 로드하여 압축 부호화를 수행하는 동안, 다른 한쪽 버퍼 메모리에 다음 MCB 라인 데이터를 로드한다. 따라서, 한쪽 버퍼 메모리의 MCB 라인 데이터에 대한 압축 부호화가 완료되면, 곧 바로 다른 한쪽 버퍼 메모리의 MCB 라인 데이터에 대한 압축 부호화를 연속해서 진행할 수 있다.
위와 같은 방식으로 영상 데이터의 압축 부호화를 수행하면 압축 부호화 효율이 저하되지 않는 장점이 있다. 하지만, 듀얼 버퍼 메모리를 사용하면 싱글 버퍼 메모리를 사용하는 경우에 비해 용량이 큰 버퍼 메모리가 필요하므로, 디지털 영상 촬영 장치 내에서 영상 데이터의 압축과 신장을 담당하는 영상 코덱의 개발 단가를 상승시키고 코덱 칩의 사이즈를 증가시키는 문제가 있다.
한편, 압축 부호화된 영상을 디스플레이에 재생하기 위해서는 신장된 영상이 기록되는 프레임 메모리가 필요하다. 프레임 메모리는 적어도 압축 부호화된 영상의 사이즈에 대응되어야 한다. 예컨대, 압축 부호화된 영상의 사이즈가 1024ⅹ768이고 4:2:2의 모드로 샘플링된 영상이면, 프레임 메모리는 적어도 1572864 바이트의 메모리 용량을 가져야 한다. 만약, 압축 부호화된 영상의 사이즈가 프레임 메모리의 용량을 초과하면 영상 재생시 영상의 일부분이 잘리는 문제가 발생된다. 따라서, 디지털 영상 촬영 장치에서 신장이 가능한 영상 데이터의 사이즈는 프레임 메모리의 용량에 의해 제약을 받는다.
디지털 카메라 등의 영상 촬영 전용 제품은 자체 촬영한 영상만을 재생하면 되므로, 영상 데이터 사이즈와 프레임 메모리 용량의 부정합이 특별한 문제가 되지 않는다. 하지만, 휴대폰, PDA, 개인 멀티미디어 단말기 등의 핸드 헬드 단말기에 장착된 디지털 영상 촬영 장치의 경우는 영상 데이터 사이즈와 프레임 메모리 용량의 부정합이 문제가 될 수 있다.
예를 들어, 무선 인터넷을 통해 서버로부터 영상 데이터를 다운로드 하거나 멀티미디어 메시징 서비스(Multimedia messaging service) 등을 통해 영상 데이터를 수신한 경우, 또는 퍼스널 컴퓨터에 기록된 영상 데이터를 핸드 헬드 단말기로 이전하는 경우, 영상 데이터의 사이즈가 핸드 헬드 단말기의 프레임 메모리 용량을 초과하면 영상 데이터를 신장하여 재생하는데 어려움이 따르는 것이다.
물론, 핸드 헬드 단말기 내에 고용량의 프레임 메모리를 장착하면 문제는 해결되지만, 단말기 내부의 공간적 협소성으로 인해 프레임 메모리의 용량을 증가시키는데 한계가 있다. 프레임 메모리의 용량이 증가되면 그만큼 핸드 헬드 단말기의 소형화가 어렵기 때문이다. 따라서, 종래에는 그래픽 편집 프로그램을 이용하여 영상의 사이즈를 프레임 메모리의 용량에 맞게 스케일링하여 핸드 헬드 단말기에 입력해야만 해당 영상의 재생이 가능한 번거로움이 있었다.
본 발명은 상술한 종래기술의 문제를 해결하기 위하여 창안된 것으로서, 영상 데이터의 압축 부호화시 버퍼 메모리의 사용량을 줄일 수 있으면서도 압축 부호화 효율을 저감시키지 않는 디지털 영상 코덱 및 그 제어 방법을 제공하는데 그 목 적이 있다.
본 발명의 다른 목적은 용량이 감소된 버퍼 메모리를 이용하여 압축 부호화된 영상 데이터를 디코딩할 수 있는 디지털 영상 코덱 및 그 제어 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 용량이 감소된 버퍼 메모리를 이용하여 프레임 메모리의 용량을 초과하는 사이즈의 영상 데이터를 재생할 수 있는 디지털 영상 코덱 및 그 제어 방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명에 따른 디지털 영상 코덱은, 서로 다른 MCB(Minimum Coded Block) 라인 데이터가 개별적으로 기록되는 개별 영역과, 상기 서로 다른 MCB 라인 데이터가 공통적으로 기록되는 공용 영역을 구비한 버퍼 메모리 개별 영역과 공용 영역에 기록된 영상 데이터를 블록 단위로 조합하여 압축 부호화를 수행하는 영상 인코더 및 MCB 라인 데이터를 상기 개별 영역 및 공용 영역에 분할하여 기록하고, 압축 부호화가 수행되는 동안 압축 부호화가 완료된 공용 영역의 메모리 구조에 상응하는 기록 방식으로 다른 MCB 라인 데이터를 압축 부호화가 완료된 공용 영역에 기록하는 메모리 제어기를 포함한다.
바람직하게, 상기 개별 영역은 서로 다른 MCB 라인 데이터의 독립적 기록을 위해 할당된 제1 및 제2영역을 포함하고, 상기 메모리 제어기는 MCB 라인 데이터의 순서에 따라 '제1영역+공용영역' 및 '제2영역+공용 영역'을 교대로 선택하여 MCB 라인 데이터를 분할 저장한다.
상기 MCB 라인 데이터의 사이즈가 P x N인 경우, 상기 제1영역 및 제2영역은 MCB 라인 데이터의 한 행에 해당하는 영상 데이터를 수록할 수 있는 메모리 사이즈를 갖고, 상기 메모리 제어기는 MCB 라인 데이터의 제1행은 개별 영역에, 제2행 내지 제N행은 공용 영역에 저장할 수 있다. 일 예로, 상기 N은 8이다.
본 발명에 따르면, 상기 메모리 제어기는, 압축 부호화 싸이클 당 처리되는MCB의 수가 k라 할 때, 제1영역과 공용 영역에 기록된 MCB 라인 데이터의 최초 압축 부호화 싸이클 진행시 제2영역에 다음 MCB 라인 데이터의 한 행을 기록하고, 제2영역과 공용 영역에 기록된 MCB 라인 데이터의 최초 압축 싸이클 진행시 제1영역에 다음 MCB 라인 데이터의 한 행을 기록한다.
바람직하게, 상기 메모리 제어기는 압축 부호화를 위한 공용 영역 리드 방식과 동일한 방식으로 MCB 라인 데이터를 공용 영역에 기록한다. 상기 MCB 라인 데이터를 공용 영역에 기록하는 방식은 리니어 방식 또는 지그재그 방식일 수 있다. 이러한 경우, 상기 메모리 제어기는 MCB 라인 데이터의 순서에 따라 리니어 방식과 지그재그 방식을 교대로 선택하여 MCB 라인 데이터를 공용 영역에 저장한다.
바람직하게, 상기 지그재그 방식은 MCB 라인 데이터의 각 행을 블록 단위로 저장하는 방식이다. 이러한 경우, 압축 부호화 싸이클 당 처리되는 MCB의 수가 k일 때, 상기 블록의 수평 사이즈는 MCB 수평 사이즈의 k배이다.
본 발명에 따르면, 상기 메모리 제어기는, 공용 영역에 MCB 라인 데이터를 기록할 때 기록 대상 행의 수로 공용 영역을 블록화하여 각 메모리 블록에 MCB 라인 데이터의 한 행을 개별적으로 기록한다. 압축 부호화 싸이클 당 처리되는 MCB의 수가 k일 때, 상기 메모리 블록의 수평 사이즈는MCB 수평 사이즈의k 배이다. 상기 메모리 제어기는, n번째(n≥2, n은 정수) 압축 부호화 사이클이 진행되는 동안, 압축 부호화 리드 방식과 동일한 방식으로 다음 MCB 라인 데이터의n행(n≥2, n은 정수)을 압축 부호화가 이미 완료된 공용 영역에 기록한다.
바람직하게, 상기 메모리 제어기는 서로 다른 MCB 라인 데이터에 대한 개별 영역 기록시 독립적으로 할당된 메모리 영역을 사용한다. 이러한 경우, 메모리 제어기는 MCB 라인 데이터의 처음 한 행을 개별 영역에 기록하고, 나머지 행은 공용 영역에 기록한다. 그리고, 상기 메모리 제어기는 MCB 라인 데이터의 개별 영역 기록시 지그재그 방식에 의해 블록 형태로 기록한다. 압축 부호화 싸이클 당 처리되는 MCB의 수가 k일 때, 상기 블록의 수평 사이즈는 MCB 수평 사이즈의 k 배이다.
선택적으로, 상기 공용 영역에는MCB 라인 데이터의 기록 방식 차이(리니어vs. 지그재그 방식)에 따른 보충 메모리 공간이 할당된다. 압축 부호화 싸이클 당 처리되는MCB의 수가 k일 때, 상기 보충 메모리 공간은 'MCB 수평 사이즈 x k x 공용 영역에 기록되는MCB 라인 데이터의 행 수'와 MCB 라인 데이터의 수평 사이즈 차이에 대응하는 메모리 공간이다.
본 발명의 다른 측면에 따르면, 상기 메모리 제어기는 영상의 회전 각도에 따라 MCB 라인 데이터의 기록 시작 위치와 기록 진행 방향을 변경하여 개별 영역 및 공용 영역에 MCB 라인 데이터를 기록하고, 상기 영상 인코더는 영상 회전 각도에 따라 압축 부호화를 위한 영상 데이터 리드 시작 위치와 리드 진행 방향을 변경하여 압축 부호화를 수행한다.
본 발명에 따른 디지털 영상 코덱은, 압축 부호화된 영상 비트 스트림을 수신하여MCB 단위로 신장을 한 후 블록 단위로 다운 스케일링하여 버퍼 메모리에 기록하는 영상 디코더를 더 포함하고, 상기 메모리 제어기는 버퍼 메모리의 용량에 상응하는 영상 데이터가 버퍼 메모리에 기록되면 영상 재생이 가능하도록 영상 데이터를 리드하여 프레임 메모리에 누적 기록할 수 있다.
바람직하게, 상기 영상 디코더는 재생 대상 영상의 수평 사이즈가 버퍼 메모리의 수평 사이즈를 초과하지 않도록 신장이 완료된 영상 데이터를 블록 단위로 다운 스케일링한다.
바람직하게, 상기 MCB의 사이즈는NⅹN이고, 상기 영상 디코더는 {Nⅹ(1/2)r}ⅹ{Nⅹ(1/2)r}(r=1, 2, 3)의 사이즈를 갖는 블록 단위로 영상 데이터를 다운 스케일링한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명에 따른 디지털 영상 코덱 제어 방법은, 서로 다른MCB(Minimum Coded Block) 라인 데이터가 개별적으로 기록되는 개별 영역과, 상기서로 다른 MCB 라인 데이터가 공통적으로 기록되는 공용 영역을 구비한 버퍼 메모리를 이용하여 영상 데이터를 인코딩하는 방법으로서, MCB 라인 데이터를 상기 개별 영역 및 공용영역에 분할하여 기록하는 단계 개별영역과 공용 영역에 기록된 영상 데이터를 블록단위로 조합하여 압축부호화하는 단계 및 상기 압축부호화가 수행되는 동안 압축 부호화가 완료된 공용 영역의 메모리 구조에 상응하는 기록방식으로 다른 MCB 라인 데이터를 압축부호화가 완료된 공용 영역 에 기록하는 단계를 포함한다.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명의 바람직한 실시예에 따른 디지털 영상 코덱의 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명에 따른 디지털 영상 코덱은, 피사체에 대한 디지털 영상 데이터를 생성하여 출력하는 영상신호 생성기(10)와, 상기 영상신호 생성기(10)로부터 디지털 영상 데이터를 입력 받아 버퍼 메모리(30)에 기록하는 메모리 제어기(20)와, 상기 버퍼 메모리(30)에 기록된 디지털 영상 데이터를 압축 부호화하여 비트 스트림을 생성하는 영상 인코더(40)를 포함한다.
상기 영상신호 생성기(10)는 영상을 구성하는 각 픽셀의 휘도 데이터(Y)와 색차 데이터(Cb, Cr)를 포함하는 디지털 영상 데이터를 출력한다. 도면으로 상세하 게 도시하지 않지만, 상기 영상신호 생성기(20)는 CCD나 CMOS와 같은 촬상소자, 촬상소자로부터 출력된 아날로그 영상신호로부터 불필요한 신호를 제거하는 샘플-홀드(sample-hold) 회로, 샘플-홀드 회로로부터 출력된 영상신호의 진폭이 고정되게 유지되도록 제어하는 자동 이득 제어 회로, 이득이 제어된 아날로그 신호를 디지털 신호로 변환하는 A/D 변환 회로, 디지털 신호로 변환된 영상 신호를 소정의 샘플링 모드(예컨대, 4:2:2 모드)에 따라 휘도 데이터(Y) 및 색차 데이터(Cb, Cr)로 변환하여 출력하는 DSP(Digital Signal Processing) 회로를 포함한다.
상술한 영상신호 생성기(10)의 구성은 일 예시에 불과하며 다양한 변형이 가능하다. 따라서, 본 발명은 영상신호 생성기(10)의 구체적인 구성에 의해 한정되지 않으며, 디지털 영상 데이터를 출력할 수 있는 것이라면 어떠한 것이라도 영상신호 생성기(10)로 간주될 수 있다.
상기 메모리 제어기(20)는 영상신호 생성기(10)로부터 출력된 디지털 영상 데이터를 입력 받아 버퍼 메모리(30)에 기록한다. 이 때, 상기 메모리 제어기(20)는 홀수번째 MCB 라인 데이터와 짝수번째 MCB 라인 데이터의 기록 방식을 달리한다.
여기서, 홀수번째 MCB 라인은 영상의 수직 사이즈를 MCB 블록의 수직 사이즈로 나누었을 때 홀수번째 위치하는 MCB 라인을, 짝수번째 MCB 라인은 영상의 수직 사이즈를 MCB 블록의 수직 사이즈로 나누었을 때 짝수번째 위치하는 MCB 라인을 의미한다.
도 2는 홀수번째 MCB 라인과 짝수번째 MCB 라인의 개념을 보다 구체적으로 보여주는 도면이다. 도면에 도시된 바와 같이, MCB의 사이즈가 8ⅹ8이라면, 160ⅹ32 사이즈를 갖는 영상의 경우 4개의 MCB 라인으로 분할 가능하다. 그리고, MCB1 및 MCB3이 홀수번째 MCB 라인, 그리고 MCB2 및 MCB4가 짝수번째 MCB 라인에 해당한다.
상기 버퍼 메모리(30)는 MCB 라인 데이터를 서로 다른 2가지 방식으로 기록하기 위해 3개의 물리적 분할 영역을 갖는다.
도 3은 버퍼 메모리(30)의 물리적 분할 구조를 보여주는 메모리 구조도이다.
도 3에 도시된 버퍼 메모리(30) 구조는 압축 부호화 대상이 되는 영상의 사이즈가 160ⅹ32이고, 8ⅹ8 사이즈의 MCB에 의해 영상 데이터를 압축 부호화할 때 적용되는 메모리 구조이다. 하지만, 본 발명은 영상과 MCB의 사이즈에 의해 한정되지 않는다. 한편, 이하의 설명에서는 영상신호 생성기(10)로부터 1라인의 픽셀 데이터가 입력되는 시간은 영상 인코더(40)에 의해 MCB가 압축 부호화되는 시간의 3배라고 가정한다. 다시 말해, 영상신호 생성기(10)로부터 1개 라인의 픽셀 데이터가 버퍼 메모리(30)에 기록되는 동안, 영상 인코더(40)가 3개의 MCB를 압축 부호화한다고 가정한다.
도 3을 참조하면, 상기 버퍼 메모리(30)는 제1영역(30a), 제2영역(30b) 및 제3영역(30c)을 가진다. 상기 제1영역(30a)은 홀수번째 MCB 라인의 제1행이 기록되는 영역으로, 영상의 한 개 라인(160 픽셀)을 구성하는 픽셀 데이터가 기록될 수 있는 메모리 공간을 갖는다. 그리고, 상기 제2영역(30b)은 짝수번째 MCB 라인의 제1행이 기록되는 영역으로, 영상의 한 개 라인(160 픽셀)을 구성하는 픽셀 데이터가 기록될 수 있는 메모리 공간을 갖는다. 상기 제1영역(30a)과 제2영역(30b)은 홀수번째 MCB 라인 데이터와 짝수번째 MCB 라인 데이터의 제1행을 개별적으로 저장하는 메모리 공간이다.
상기 제3영역(30c)은 홀수번째 및 짝수번째 MCB 라인 데이터의 제2행 내지 제8행이 기록되는 영역으로, 제2행 내지 제8행을 구성하는 픽셀 데이터가 기록될 수 있는 메모리 공간과 약간의 보충 메모리 공간을 갖는다.
상기 보충 메모리 공간은 압축 부호화될 영상 데이터가 영상신호 생성기(10)로부터 입력되는 속도와 버퍼 메모리(30)에 수록된 영상 데이터가 영상 인코더(40)에 의해 압축 부호화되는 속도 차이를 맞추기 위해 필요한 메모리 공간으로 구체적인 내용은 후술한다.
상기 메모리 제어기(20)는 제3영역(30c)에 MCB 라인 데이터의 제2행 내지 제8행의 픽셀 데이터를 기록할 때 홀수번째 MCB 라인 데이터는 리니어(linear) 방식으로, 짝수번째 MCB 라인 데이터는 지그재그(Zigzag) 방식으로 기록한다. 즉, 제3영역(30c)은 리니어 방식의 영상 데이터 기록과 지그재그 방식에 의한 블록 단위의 영상 데이터 기록이 공통적으로 적용 가능한 공통 메모리 공간이다.
도 4는 홀수번째 MCB 라인 데이터가 버퍼 메모리(30)에 기록되는 방식을 구체적으로 예시한 도면이고, 도 5는 짝수번째 MCB 라인 데이터가 버퍼 메모리(30)에 기록되는 방식을 예시한 도면이다.
도 4를 참조하면, 홀수번째 MCB 라인 데이터를 기록할 때, 제1행의 픽셀 데이터는 제1영역(30a)에 기록한다. 제1영역(30a)은 160 픽셀 데이터에 해당하는 메 모리 공간을 갖는다. 그리고, 제2행 내지 제8행의 픽셀 데이터는 제3영역(30c)에 리니어 타입으로 기록한다. 따라서, 제2행 내지 제8행은 각각 메모리의 서로 다른 라인 어드레스 상에 수록된다. 제2행 내지 제8행이 수록되는 제3영역(30c)의 수평 사이즈는 160이며, 제3영역(30c)의 전체 사이즈는 '160ⅹ7=1120'이다. 참고로, 메모리 공간의 사이즈 1은 1픽셀의 데이터가 기록될 수 있는 메모리 공간에 대응된다.
도 5를 참조하면, 짝수번째 MCB 라인 데이터를 기록할 때, 제1행의 픽셀 데이터는 제2영역(30b)에 기록한다. 제2영역(30b)은 160 픽셀 데이터에 해당하는 메모리 공간을 갖는다. 그리고, 제2행 내지 제8행의 픽셀 데이터는 제3영역(30c)에 지그재그 타입으로 기록한다. 이를 위해, 제3영역(30c)은 제1 내지 제7 메모리 블록(M1~M7)으로 분할된다. 제3영역(30c)의 수평 사이즈는 '8ⅹ3ⅹ7=168', 각 메모리 블록의 수평 사이즈는 '8ⅹ3=24', 제3영역(30c)은 '168ⅹ7=1176'개의 픽셀 데이터를 기록할 수 메모리 공간을 갖는다. 한편, 각 메모리 블록의 사이즈는 '3ⅹ8ⅹ7=168'이므로, 각 메모리 블록에 한 행의 픽셀 데이터(160 픽셀)가 모두 기록될 수 있다.
바람직하게, 상기 제3영역(30c)의 수평 사이즈는 홀수번째 MCB 라인 데이터와 짝수번째 MCB 라인 데이터가 모두 기록될 수 있도록 결정된다. 즉, 제3영역(30c)의 수평 사이즈는 적어도 홀수번째 및 짝수번째 MCB 라인 데이터의 기록시 필요한 사이즈보다 크거나 같다. 본 발명의 실시예에서, 홀수번째 MCB 라인 데이터의 기록을 위해 필요한 제3영역(30c)의 수평 사이즈는 160이고, 짝수번째 MCB 라인 데이터의 기록을 위해 필요한 제3영역(30c)의 수평 사이즈는 168이다. 따라서, MCB 라인 데이터의 제2행 내지 제8행이 기록되는 제3영역(30c)의 수평 사이즈는 168 이상인 것이 바람직하다.
상술한 실시예에서, 홀수번째 MCB 라인 데이터가 제3영역(30c)에 기록될 때에는 1120개의 픽셀 데이터를 수용할 수 있는 메모리 공간이 사용되고, 짝수번째 MCB 라인 데이터가 제3영역(30c)에기록될 때에는 1176개의 픽셀 데이터를 수용할 수 있는 메모리 공간이 사용된다. 이처럼, 서로 다른 메모리 공간이 사용되는 이유는 메모리 제어기(20)에 의해 버퍼 메모리(30)에 영상 데이터가 기록되는 속도와 영상 인코더(40)에 의해 버퍼 메모리(30)에 기록된 영상 데이터의 압축 부호화 속도가 다르기 때문이다. 이처럼, 홀수번째 MCB 라인 데이터와 짝수번째 MCB 라인 데이터가 제3영역(30c)에기록될 때 활용되는 메모리 공간의 차이를 보충 메모리 공간으로 정의한다. 상술한 실시예에서, 보충 메모리 공간의 사이즈는 '1176-1120=56'이다.
한편, 보충 메모리 공간이 크면 버퍼 메모리(30)의 사이즈가 증가하게 되므로 바람직하지 않다. 따라서, 디지털 영상 코덱의 설계시에는 하기 조건식 1 및 2를 만족하는 범위 내에서 영상 인코더(40)와 메모리 제어기(20)의 처리 속도 비율을 조절하여 보충 메모리 공간을 최소화시키는 것이 바람직하다.
[조건식 1]
NⅹkⅹC ≥ 영상의 수평 사이즈
여기서, N은 MCB의 수평 사이즈, k는 MCB 라인 데이터의 1행이 버퍼 메모 리(30)에 기록되는 동안 영상 인코더(40)가 압축 부호화할 수 있는 MCB의 수, C는 제3영역(30c)에 기록되는 MCB 라인 데이터의 라인 수이다.
상기 조건식 1을 만족하는 파라미터가 선택되면, 보충 메모리 공간은 하기 수학식 1에 의해 계산된다.
보충 메모리 공간 = (NⅹkⅹC - 영상의 수평 사이즈)ⅹ7
도 6 내지 도 14는 상술한 구조의 버퍼 메모리(30)를 이용하여 영상 데이터를 인코딩하는 과정을 순차적으로 도시한 도면이다.
도 6은 메모리 제어기(20)가 첫번째 MCB 라인 데이터(O1~O8)를 버퍼 메모리(30)에 기록한 직후의 상태를 도시한다. 제1행(O1)은 지그재그 방식으로 영상 데이터를 기록하였고, 제2~8행(O2~O8)은 리니어 방식으로 영상 데이터를 기록하였다. 도면에서, 화살표는 영상 데이터 저장방식을 나타내고, 격자는 MCB의 수평 사이즈에 해당하는 메모리 공간을 나타낸다. 따라서, 격자 하나의 사이즈는 8ⅹ1이며, 격자 하나는 8 픽셀의 데이터가 기록될 수 있는 메모리 공간을 갖는다. 한편, 영상 데이터가 기록된 격자는 해칭을 하였고 영상 데이터가 기록되지 않은 격자는 해칭을 하지 않았으며, A는 보충 메모리 공간을 나타낸다.
첫번째 MCB 라인 데이터(O1~O8)의 기록이 완료되면, 영상 인코더(40)는 MCB 단위로 압축 부호화를 수행하여 비트 스트림을 생성하여 출력한다. 이러한 압축 부호화 과정과는 병렬적으로 메모리 제어기(20)는 영상신호 생성기(10)로부터 지속적 으로 디지털 영상 데이터를 입력 받아 버퍼 메모리(30)에 영상 데이터를 기록한다. 이 때, 상술한 바와 같이 영상 데이터의 1행이 기록되는 동안, 영상 인코더(40)는 3개의 MCB를 압축 부호화한다고 가정한다. 그리고, 주기적으로 영상 데이터의 1행을 기록하는 동안 3개의 MCB를 압축 부호화하는 것을 압축 부호화 사이클이라고 정의한다.
구체적으로, 도 7을 참조하면, 영상 인코더(40)는 제1영역(30a)에 기록된 영상 데이터(O1)와 제3영역(30c)에 기록된 영상 데이터(M1의 O2~O8)를 조합하여 MCB를 구성한 후 압축 부호화를 수행한다. 도면에서, 압축 부호화가 완료된 영상 데이터는 음영이 있는 격자로 표시하였다. MCB의 구성시 제1행은 제1영역(30a)에서, 제2행 내지 제8행은 제3영역(30c)의 제1메모리 블록(M1)으로부터 획득한다. 각 MCB는 다음 수학식 2에 의해 구성한다.
Figure 112007033039212-pat00001
Figure 112007033039212-pat00002
Figure 112007033039212-pat00003
상기 수학식 2에서, MCB를 구성하는 격자는 좌표로 표시하였고, 좌표에서 x 값은 메모리 블록의 좌측을 기준으로 한 격자의 x 좌표를, y 값은 메모리 블록의 상측을 기준으로 한 격자의 y 좌표를 나타내고, 아래 첨자는 격자가 속한 메모리 블록을 지시한다.
3개의 MCB에 대한 압축 부호화가 진행되는 동안, 메모리 제어기(20)는 두번째 MCB 라인 데이터의 제1행(E1)을 구성하는 픽셀 데이터를 제2영역(30b)에기록한다. 참고로, 두번째 MCB 라인 데이터를 구성하는 격자에는 첫번째 MCB 라인 데이터를 구성하는 격자와 다른 해칭 처리를 하였다.
도 8을 참조하면, 제1메모리 블록(M1)에 대한 압축 부호화와 제2영역(30b)에대란 영상 데이터(E1)의 기록이 완료되면, 영상 인코더(40)는 제1영역(30a)과 제2메모리 블록(M2)에 포함된 영상 데이터를 조합하여 MCB를 구성하면서 압축 부호화를 수행한다. 각 MCB는 상기 수학식2(p=2)에 의해 구성 가능하다. 이와 병렬적으로, 메모리 제어기(20)는 압축 부호화가 완료된 제1메모리 블록(M1)에 두번째 MCB 라인 데이터의 제2행(E2)을 구성하는 픽셀 데이터를 지그재그 방식으로 기록한다.
도 9는 제7메모리 블록(M7)까지 압축 부호화가 수행된 경우의 버퍼 메모리(30) 구조를 나타낸다. 도면을 참조하면, 첫번째 MCB 라인 데이터의 압축 부호화는 모두 완료되었고, 제2영역(30b)과 제1 내지 제6메모리블록(M1~M6)까지 두번째 MCB 라인 데이터의 제1~7행(E1~E7)을 구성하는 픽셀 데이터가 지그재그 방식으로 기록되어 있다. 이 상태에서, 영상 인코더(40)는 영상 데이터의 압축 부호화를 잠시 휴지한다. 그러면, 메모리 제어기(20)는 제7메모리 블록(M7)에 두번째 MCB 라인 데이터의 제8행(E8)을 구성하는 픽셀 데이터를 기록한다. 선택적으로, 제1영역(30a)에 기록된 영상 데이터를 소거한다. 이 과정이 완료되면, 도 10에 도시된 바와 같이, 두번째 MCB 라인 데이터의 압축 부호화 준비가 완료됨으로써, 곧 바로 두번째 MCB 라인 데이터의 압축 부호화를 개시할 수 있다.
즉, 영상 인코더(40)는 도 11에 도시된 바와 같이 제2영역(30b)의 영상 데이터(E1)와 제1~7메모리 블록(M1~M7)의 영상 데이터(E2~E8)를 조합하여 MCB를 구성하면서 MCB에 대한 압축 부호화를 수행한다. MCB의 구성시 제1행은 제2영역(30b)으로부터, 제2행 내지 제8행은 각각 제1메모리 블록(M1) 내지 제7메모리 블록(M7)으로부터 획득한다. 각 MCB는 하기 수학식 3에 의해 구성할 수 있다.
Figure 112007033039212-pat00004
Figure 112007033039212-pat00005
Figure 112007033039212-pat00006
상기 수학식 3에서, MCB를 구성하는 격자는 좌표로 표시하였고, 좌표에서 x 값은 메모리 블록의 좌측을 기준으로 한 격자의 x 좌표를, y 값은 메모리 블록의 상측을 기준으로 한 격자의 y 좌표를 나타내고, 아래 첨자는 격자가 속한 메모리 블록을 지시한다.
3개의 MCB에 대한 압축 부호화가 수행되면, 제3영역(30c)의 제1행에 위치한 영상 데이터의 압축 부호화가 완료된다. 한편, 3개의 MCB에 대한 압축 부호화가 이 루어지는 동안, 메모리 제어기(20)는 세번째 MCB 라인 데이터의 제1행(O1)을 구성하는 픽셀 데이터를 제1영역(30a)에 기록한다.
제3영역(30c)의 제1행에 대한 압축 부호화와 제1영역(30a)에 대한 영상 데이터(O1)의 기록이 완료되면, 도 12에 도시된 바와 같이 제3영역(30a)의 제2행에 기록된 영상 데이터의 압축 부호화가 진행된다. 이 때, MCB는 상기 수학식 3(p=2)에 의해 구성 가능하다. 동시에, 압축 부호화가 완료된 제3영역(30c)의 제1행에 세번째 MCB 라인 데이터의 제2행(O2)을 구성하는 픽셀 데이터를 리니어 방식으로 기록한다.
도 13은 위와 같은 방식으로 제3영역(30c)의 제3행 내지 제7행에 기록된 영상 데이터의 압축 부호화가 완료된 상태의 버퍼 메모리(30) 구조를 도시한다. 도면을 참조하면, 두번째 MCB 라인 데이터의 압축 부호화는 모두 완료되었고, 제1영역(30a)에는 세번째 MCB 라인 데이터의 제1행(O1)이 지그재그 타입으로, 제3영역(30c)의 제1행 내지 제6행에는 세번째 MCB 라인 데이터의 제2행 내지 제7행(O2~O7)을 구성하는 픽셀 데이터가 리니어 방식으로 기록되어 있다. 이 상태에서, 영상 인코더(40)는 영상 데이터의 압축 부호화를 잠시 휴지한다. 그러면, 메모리 제어기(20)는 제3영역(30c)의 제7행에 세번째 MCB 라인 데이터의 제8행(O8)을 구성하는 픽셀 데이터를 기록한다. 선택적으로, 제2영역(30b)의 영상 데이터는 소거할 수도 있다. 이 과정이 완료되면, 도 14에 도시된 바와 같이, 세번째 MCB 라인 데이터의 압축 부호화 준비가 완료됨으로써, 곧 바로 세번째 MCB 라인 데이터의 압축 부호화가 가능하게 된다.
세번째 MCB 라인 데이터의 압축 부호화와 이와 동시에 진행되는 네번째 MCB 라인 데이터의 기록 과정을 포함하는 이후의 영상 데이터 인코딩 과정은 상술한 바의 반복을 통해 구현된다. 따라서, 반복적인 설명은 생략하기로 한다.
본 발명에 따른 인코딩 방법에 의해 영상 인코더(40)를 통해 출력되는 비트 스트림은 스트림 버퍼(미도시)에 기록된 후 파일 드라이버에 의해 파일로 구성되어 기록매체(예컨대, 플래시 메모리, 하드 드라이브 등)에 기록된다. 이러한 비트 스트림을 파일로 생성하는 기술은 본 발명이 속한 기술분야에 널리 알려져 있으므로 상세한 설명은 생략한다.
한편, 제1영역(30a)과 제2영역(30b)에 기록되는 MCB 라인 데이터의 행 수는 상술한 실시예와 달리 2행 이상이어도 무방하다. 이러한 경우, 제3영역(30c)에 기록되는 MCB 라인 데이터의 행 수가 감소되지만, 본 발명이 개시한 기본적인 인코딩 원리는 실질적으로 동일하다. 즉, 제1영역(30a)과 제3영역(30c), 또는 제2영역(30b)과 제3영역(30c)의 영상 데이터 조합에 의해 MCB 단위로 압축 부호화를 수행하면서 압축이 완료된 메모리 공간에는 메모리 공간의 구조에 상응하는 영상 데이터 기록 방식(리니어 또는 지그재그 방식)을 선택하여 다음 MCB 라인 데이터를 미리 기록한다.
상술한 본 발명에 따른 인코딩 방법은 영상신호 생성기(10)로부터 입력된 디지털 영상 데이터를 일정한 방향으로 회전시켜 압축 부호화하는 회전 인코딩 방법에도 적용 가능하다.
도 15 및 도 16은 각각 본 발명의 바람직한 실시예에 따른 180도 회전 인코 딩 방법에서 버퍼 메모리(30)에 홀수번째 MCB 라인 데이터 및 짝수번째 MCB 라인 데이터를 기록하는 방식을 도시한 도면이다.
도 15를 참조하면, 홀수번째 MCB 라인 데이터의 제1행(O1)은 제1영역(30a)에 기록하되 화살표로 표시된 방향에 따라 오른쪽 하단부터 영상 데이터를 지그재그 방식으로 기록한다. 그리고, 제2~8행(O2~O8)은 제3영역(30c)에 리니어 타입으로 기록하되 제3영역(30c)의하단부터 영상 데이터를 기록한다. 이 때, 영상 데이터 기록방향은 화살표로 표시한 바와 같이 우측부터 좌측으로 향한다.
도 16을 참조하면, 짝수번째 MCB 라인 데이터의 제1행(E1)은 제2영역(30b)에 기록하되 화살표로 표시된 방향에 따라 오른쪽 하단부터 영상 데이터를 지그재그 방식으로 기록한다. 그리고, 제2~8행(E2~E8)은 제1행(E1)과 마찬가지로 오른쪽 하단부터 지그재그 타입으로 제3영역(30c)에 기록하되, 제2~8행(E2~E8)은 제3영역(30c)의 제7~1메모리 블록(M7~M1)에 각각 기록한다.
180도 회전 인코딩을 수행할 때에는, 도 15와 같이 홀수번째 MCB 라인 데이터를 버퍼 메모리(30)에 기록한 후, 제1영역(30a)으로부터 MCB의 제1행을, 제3영역(30c)으로부터 MCB의 제2행 내지 제8항을 획득하여 MCB 단위로 압축 부호화를 수행하면서, 동시에 압축 부호화가 완료된 메모리 공간에 짝수번째 MCB 라인 데이터를 미리 기록하는 방식은 상술한 바와 실질적으로 동일하다. 다만, 180도 회전 인코딩은 비회전 인코딩과 달리 MCB 라인 데이터의 기록 방향이 반대이므로 압축 부호화 방향 또한 비회전 인코딩과 반대가 된다.
도 17은 홀수번째 MCB 라인 데이터의 기록이 완료된 후, 2사이클의 압축 부 호화가 진행된 버퍼 메모리(30)의 상태를 예시한다. 도면을참조하면, 영상 인코더(40)가 도 15의 제1영역(30a) 제7행에 기록된 영상 데이터와 제7메모리 영역(M7)에 기록된 영상 데이터를 조합하여 MCB를 구성하면서 압축 부호화를 수행하는 동안, 메모리 제어기(20)는 제2영역(30b)에 짝수번째 MCB 라인 데이터의 제1행(E1)을 기록한다. 그리고, 영상 인코더(40)가 도 15의 제1영역(30a) 제6행에 기록된 영상 데이터와 제6메모리 영역(M6)에 기록된 영상 데이터를 조합하여 MCB 단위로 압축 부호화를 수행하는 동안, 메모리 제어기(20)는 압축 부호화가 완료된 제7메모리 영역(M7)에 짝수번째 MCB 라인 데이터의 제2행(E2)을 구성하는 영상 데이터를 기록한다. 이러한 압축 부호화 및 영상 데이터기록 과정은 홀수번째 MCB 라인 데이터의 압축 부호화가 완료될 때까지 반복된다.
도 18은 짝수번째 MCB 라인 데이터의 기록이 완료된 후, 2사이클의 압축 부호화가 진행된 버퍼 메모리(30)의 상태를 나타낸다. 도면을 참조하면, 영상 인코더(40)가 도 16의 제2영역(30b) 제7행에 기록된 영상 데이터와 제3영역(30c) 제7행에 기록된 영상 데이터를 조합하여 MCB 단위로 압축 부호화를 수행하는 동안, 메모리 제어기(20)는 제1영역(30a)에 홀수번째 MCB 라인 데이터의 제1행(O1)을 구성하는 영상 데이터를 기록한다. 그리고, 영상 인코더(40)가 도 16의 제2영역(30b) 제6행에 기록된 영상 데이터와 제3영역(30c) 제6행에 기록된 영상 데이터를 조합하여 MCB 단위로 압축 부호화를 수행하는 동안, 메모리 제어기(20)는 압축 부호화가 완료된 제3영역(30c)의 제7행에 홀수번째 MCB 라인 데이터의 제2행(O2)을 구성하는 영상 데이터를 기록한다. 이러한 압축 부호화 및 영상 데이터 기록 과정은 짝수번 째 MCB 라인 데이터의 압축 부호화가 완료될 때까지 반복된다.
상술한 180도 회전 인코딩 방법은 일 예시에 불과하다. 따라서, 버퍼 메모리(30)의 분할 기법과 홀수번째 MCB 라인 데이터 및 짝수번째 MCB 라인 데이터의 기록 방식을 달리하여 영상 데이터의 버퍼 메모리(30) 기록과 버퍼 메모리(30)에 기록된 영상 데이터의 압축 부호화가 동시에 진행하는 본 발명의 구성이 유지되는 하에서 180도 회전 인코딩을 구현하는 방법은 여러 가지로 변형이 가능하다.
이하에서는, 본 발명에 따라 메모리 공간이 구분된 버퍼 메모리(30)를 사용하여 영상 데이터를 인코딩하면, 듀얼 버퍼 메모리를 이용하여 영상 데이터를 인코딩하는 종래 기술에 비해 어느 정도로 메모리 사용량을 줄일 수 있는지 구체적으로 확인해 보기로 한다. 단, 계산의 편의를 위해 휘도 데이터만을 고려하고 색차 데이터는 고려하지 않기로 한다.
<제1비교예>
영상의 수평 사이즈는 1600, MCB의 사이즈는 8ⅹ8, 영상 인코더는 1행의 영상 데이터가 버퍼 메모리에 기록되는 동안 30개의 MCB를 압축 부호화할 수 있다고 가정한다.
종래 기술에 의하면, 1600ⅹ8 사이즈를 갖는 2개의 버퍼 메모리가 필요하다. 따라서, 영상 데이터의 압축 부호화를 위해 필요한 버퍼 메모리의 용량은 25600 바이트이다.
본 발명에 의하면, 제1영역과 제2영역에 각각 1600 바이트의 메모리 공간을 할당해야 하고, 보충 메모리 공간을 감안한 제3영역의 수평 사이즈는 '30ⅹ8ⅹ 7=1680'이므로 제3영역에는 '1680ⅹ7=11760' 바이트의 메모리 공간을 할당해야 한다. 따라서, 영상 데이터의 압축 부호화를 위해 필요한 버퍼 메모리의 용량은 '1600+1600+11760=14960' 바이트이다. 참고로, 제3영역에 할당된 보충 메모리 공간은 '(1680-1600)ⅹ7=560' 바이트이다.
상기 계산 결과에 의하면, 본 발명에 따라 영상 데이터를 인코딩할 경우, 560 바이트의 보충 메모리 공간을 감안하더라도 듀얼 버퍼 메모리를 사용하는 종래 기술에 비해 41.45%의 메모리 절감 효과가 있음을 알 수 있다.
<제2비교예>
영상의 수평 사이즈는 1024, MCB의 사이즈는 8ⅹ8, 영상 인코더는 1행의 영상 데이터가 버퍼 메모리에 기록되는 동안 20개의 MCB를 압축 부호화할 수 있다고 가정한다.
종래 기술에 의하면, 1024ⅹ8 사이즈를 갖는 2개의 버퍼 메모리가 필요하다. 따라서, 영상 데이터의 압축 부호화를 위해 필요한 버퍼 메모리의 용량은 16384 바이트이다.
본 발명에 의하면, 제1영역과 제2영역에 각각 1024 바이트의 메모리 공간을 할당해야 하고, 보충 메모리 공간을 감안한 제3영역의 수평 사이즈는 '20ⅹ8ⅹ7=1120'이므로 제3영역에는 '1120ⅹ7=7840' 바이트의 메모리 공간을 할당해야 한다. 따라서, 영상 데이터의 압축 부호화를 위해 필요한 버퍼 메모리의 용량은 '1024+1024+7840=9888' 바이트이다. 참고로, 제3영역에 할당된 보충 메모리 공간은 '(1120-1024)ⅹ7=672' 바이트이다.
상기 계산 결과에 의하면, 본 발명에 따라 영상 데이터를 인코딩할 경우, 672 바이트의 보충 메모리 공간을 감안하더라도 듀얼 버퍼 메모리를 사용하는 종래 기술에 비해 39.64%의 메모리 절감 효과가 있음을 알 수 있다.
<제3비교예>
영상의 수평 사이즈는 1280, MCB의 사이즈는 8ⅹ8, 영상 인코더는 1행의 영상 데이터가 버퍼 메모리에 기록되는 동안 24개의 MCB를 압축 부호화할 수 있다고 가정한다.
종래 기술에 의하면, 1280ⅹ8 사이즈를 갖는 2개의 버퍼 메모리가 필요하다. 따라서, 영상 데이터의 압축 부호화를 위해 필요한 버퍼 메모리의 용량은 20480 바이트이다.
본 발명에 의하면, 제1영역과 제2영역에 각각 1280바이트의 메모리 공간을 할당해야 하고, 보충 메모리 공간을 감안한 제3영역의 수평 사이즈는 '24ⅹ8ⅹ7=1344'이므로 제3영역에는 '1344ⅹ7=9408' 바이트의 메모리 공간을 할당해야 한다. 따라서, 영상 데이터의 압축 부호화를 위해 필요한 버퍼 메모리의 용량은 '1280+1280+9408=11968' 바이트이다. 참고로, 제3영역에 할당된 보충 메모리 공간은 '(1344-1280)ⅹ7=448' 바이트이다.
상기 계산 결과에 의하면, 본 발명에 따라 영상 데이터를 인코딩할 경우, 448 바이트의 보충 메모리 공간을 감안하더라도 듀얼 버퍼 메모리를 사용하는 종래 기술에 비해 41.56%의 메모리 절감 효과가 있음을 알 수 있다.
<제4비교예>
영상의 수평 사이즈는 1600, MCB의 사이즈는 8ⅹ8, 영상 인코더는 1행의 영상 데이터가 버퍼 메모리에 기록되는 동안 25개의 MCB를 압축 부호화할 수 있다고 가정한다.
종래 기술에 의하면, 1600ⅹ8 사이즈를 갖는 2개의 버퍼 메모리가 필요하다. 따라서, 영상 데이터의 압축 부호화를 위해 필요한 버퍼 메모리의 용량은 25600 바이트이다.
본 발명에 의하면, 제1영역과 제2영역에 각각 1600 바이트의 메모리 공간을 할당해야 한다. 한편, 짝수번째 MCB 라인 데이터의 기록을 위해 필요한 제3영역(30c)의 수평 사이즈는 '25ⅹ8ⅹ7=1400'이고 홀수번째 MCB 라인 데이터의 기록을 위해 필요한 제3영역(30c)의 수평 사이즈는 1600이므로, 제3영역(30c)의수평 사이즈는 1600으로 할당한다. 그런데, 짝수번째 MCB 라인 데이터의 제2행 내지 제8행을 제3영역(30c)에 기록할 때 제3영역(30c)의 메모리 라인 수를 7로 설정하면 각 메모리 블록의 사이즈는 '25ⅹ8ⅹ7=1400'이므로 1600 사이즈를 갖는 라인 데이터를 각 메모리 블록에 기록하는데 한계가 있다. 때문에, 각 메모리 블록에 200 사이즈에 해당하는 보충 메모리 공간을 더 할당해야 한다. 즉, 제3영역(30c)의 메모리 라인 수를 1라인 더 추가해야 한다. 따라서, 제3영역(30c)에는 '1600ⅹ7+200ⅹ7=12600' 바이트에 해당하는 메모리 공간이 할당되어야 하고, 전체적으로 필요한 버퍼 메모리의 용량은 '1600+1600+12600=15800' 바이트이다.
상기 계산 결과에 의하면, 본 발명에 따라 영상 데이터를 압축할 경우, 1400 바이트의 보충 메모리 공간을 감안하더라도 듀얼 버퍼 메모리를 사용하는 종래 기 술에 비해 38.2%의 메모리 절감 효과가 있음을 알 수 있다.
한편, 위와 같은 메모리 절감 효과는 제1비교예에 따른 메모리 절감 효과보다 작다. 이로부터, 보충 메모리 공간은 제3영역(30c)의 메모리 라인 수를 7로 유지한 상태에서 제3영역(30c)의 수평 사이즈를 영상의 수평 사이즈보다 크게 증가시켜 할당하는 것이 바람직하다는 것을 알 수 있다.
상술한 실시예에서 개시된 디지털 영상의 인코딩 방법에서, 홀수번째 MCB 라인 데이터의 버퍼 메모리(30) 기록방식과 짝수번째 MCB 라인 데이터의 버퍼 메모리(30) 기록방식은 서로 바꾸어 적용해도 무방하다. 즉, 홀수번째 MCB 라인의 제1행은 제2영역(30b)에, 그리고 제2행 내지 제8행은 지그재그 방식으로 제3영역(30c)에 기록할 수 있다. 그리고, 짝수번째 MCB 라인의 제1행은 제1영역(30a)에, 그리고 제2행 내지 제8행은 리니어 방식으로 제3영역(30c)에 기록할 수 있다. 이러한 경우에도, 버퍼 메모리(30)에 기록된 영상 데이터를 압축 부호화하는 동안 압축 부호화가 완료된 메모리 공간에 다음 MCB 라인 데이터를 기록하는 원리는 실질적으로 동일하게 적용된다.
한편, 도면에 예시된 버퍼 메모리(30)의 설계 방식은 일 예시에 불과하며, 본 발명은 버퍼 메모리(30)의 제1영역(30a), 제2영역(30b) 및 제3영역(30c) 사이의 상대적인 위치, 제3영역(30c) 내에 할당되는 메모리 블록의 연속적인 배열 여부, 제3영역(30c)에 할당되는 보충 메모리 공간(A)의 위치 등에 의해 한정되지 않는다.
이상에서는, 본 발명에 따른 영상 코덱을 이용하여 종래보다 작은 용량의 버퍼 메모리를 사용하여 영상 데이터를 인코딩하는 방법을 개시하였다. 이하에서 는, 영상 데이터의 인코딩시 사용된 작은 용량의 버퍼 메모리를 사용하여 프레임 메모리의 용량보다 큰 사이즈를 갖는 영상 데이터를 디코딩할 수 있는 영상 코덱 및 이를 이용한 영상 디코딩 방법을 개시한다.
도 19는 본 발명에 따른 영상 코덱에 구비된 영상 디코딩 유닛의 구성을 도시한 블록도이다.
도 19를 참조하면, 상기 영상 디코딩 유닛은, 압축 부호화된 영상 비트 스트림을 입력 받아 MCB 단위(예컨대, 8ⅹ8)로 영상 데이터를 신장한 후 버퍼 메모리(80)로 출력하는 영상 디코더(60)와, 상기 버퍼 메모리(80)의 용량에 대응되는 영상 데이터가 누적되면 버퍼 메모리(80)로부터 영상 데이터를 리드하여 프레임 메모리(100)에 기록하는 메모리 제어기(90)를 포함한다.
상기 영상 데이터의 신장 시에는 영상 데이터의 압축 부호화시 적용된 알고리즘에 대응되는 신장 알고리즘이 적용된다. 만약, 영상 데이터가 JPEG 표준에 의해 압축 부호화되었다면, JPEG 표준에 의해 영상 데이터가 신장된다. JPEG 표준에 의한 영상의 디코딩 방법은 본 발명이 속한 기술분야에 널리 알려져 있으므로 구체적인 설명은 생략한다.
상기 영상 디코더(60)는 신장이 완료된 영상 데이터 블록을 소정 사이즈의 블록 단위로 스케일링하는 스케일러(70)를 포함한다. 상기 스케일러(70)는 영상 데이터의 압축 부호화시 적용된 MCB 사이즈의 1/2, 1/4, 1/8 등에 해당하는 사이즈의 블록으로 신장이 완료된 영상 데이터 블록을 다운 스케일링한다.
구체적으로, 영상 데이터가 8ⅹ8 사이즈의 MCB 단위로 압축 부호화 되었다 면, 상기 영상 디코더(60)도 8ⅹ8 사이즈의 블록 단위로 영상 데이터를 신장한다. 따라서, 신장된 영상 데이터 블록도 마찬가지로 8ⅹ8 사이즈를 갖는다. 이러한 경우, 상기 스케일러(70)는 도 20에 도시된 바와 같이 신장이 완료된 영상 데이터 블록을 4ⅹ4, 2ⅹ2 또는 1ⅹ1 사이즈의 영상 데이터 블록으로 다운 스케일링한 후 버퍼 메모리(80)로 출력한다.
바람직하게, 상기 스케일러(70)는 8ⅹ8, 4ⅹ4 또는 2ⅹ2 블록 단위로 픽셀 데이터를 평균하여 각각 1ⅹ1, 2ⅹ2 또는 4ⅹ4 사이즈로 영상 데이터 블록을 다운 스케일링한다. 대안적으로, 상기 스케일러(70)는 8픽셀, 4픽셀 또는 2픽셀 간격으로 픽셀 데이터를 샘플링하여 각각 1ⅹ1, 2ⅹ2 또는 4ⅹ4 사이즈로 영상 데이터 블록을 다운 스케일링한다. 영상 데이터 블록의 다운 스케일링 방법은 상술한 방식 이외에도 여러 가지 변형이 가능하다.
상기 스케일러(70)의 스케일링 팩터는 버퍼 메모리(80)의 수평 사이즈를 고려하여 결정된다. 바람직하게, 스케일링 팩터는 신장될 영상의 수평 사이즈가 버퍼 메모리(80)의 수평 사이즈 이하로 다운 스케일링 되도록 결정한다. 참고로, 버퍼 메모리(80)는 일정한 수의 영상 라인 데이터를 버퍼링하므로, 스케일링 팩터는 영상의 수평 사이즈와 버퍼 메모리(80)의 수평 사이즈를 비교하여 결정한다.
바람직하게, 상기 프레임 메모리(100)의 수평 사이즈는 버퍼 메모리(80)의 수평 사이즈 이상으로 설계된다. 따라서, 스케일링 팩터의 적절한 선택에 의해 신장될 영상의 수평 사이즈가 버퍼 메모리(80)의 수평 사이즈 이하로 스케일링되면, 프레임 메모리(100)에 기록되는 영상 데이터의 사이즈는 프레임 메모리(100)의 용 량을 초과하지 않는다. 프레임 메모리(100)의 수평 사이즈가 버퍼 메모리(80)의 수평 사이즈보다 작지 않으므로, 영상 데이터의 수평 사이즈가 프레임 메모리(100)의 수평 사이즈보다 작게 되고 영상 데이터의 수직 사이즈는 수평 사이즈에 종속되는 파라미터이기 때문이다.
상기 버퍼 메모리(80)의 버퍼링 동작을 통해 한 프레임의 영상 데이터가 프레임 메모리(100)에 기록되면, 신호처리를 통해 디코딩된 영상을 디스플레이를 통해 재생할 수 있다. 즉, 프레임 메모리(100)에 기록된 영상 데이터(휘도 데이터 및 색차 데이터)를 RGB 부호화 처리 및 디지털-대-아날로그 변환 처리를 수행하여 적색(R), 녹색(G) 및 청색(B)의 색신호(Chrominance signal)로 변환하고, 색신호를 예컨대 NTSC(National Television System Committee) 방법에 따라 비디오 신호로 변환하여 디스플레이를 통해 출력한다.
상기와 같이, 영상 디코더(60)가 스케일러(70)를 내장하여 신장이 완료된 영상 데이터 블록을 다운 스케일링하면, 프레임 메모리(100)의 용량을 초과하는 영상 데이터에 대해서도 재생이 가능한 이점이 있다. 예를 들어, 프레임 메모리(100)가 3메가 픽셀의 영상 재생에 맞도록 설계되어 있다고 하더라도, 신장이 완료된 영상 데이터 블록의 사이즈를 1/2로 다운 스케일링(8ⅹ8 -> 4ⅹ4)하여 버퍼링하면 12메가 픽셀의 영상도 재생이 가능하다.
따라서, 상기 영상 디코딩 유닛이 포함된 영상 코덱이 영상 촬영 및 재생 기능이 있는 핸드 헬드 단말기에 적용될 경우, 프레임 메모리의 용량을 초과하는 고 해상도의 영상 데이터가 핸드 헬드 단말기에 입력되더라도 그 재생이 가능하게 된 다.
본 발명이 개시한 영상 코덱을 이용한 영상 데이터의 인코딩 방법과 디코딩 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 기록되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 기록장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 기록되고 실행될 수 있다. 그리고, 본 발명에 따른 영상 인코딩 방법과 디코딩 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
본 발명의 일 측면에 따르면, 듀얼 버퍼 메모리를 사용하여 영상 인코딩을 수행하는 종래 기술에 비해 버퍼 메모리의 사용량을 현저하게 줄일 수 있다. 이에 따라, 칩 형태로 개발되는 영상 코덱의 제조 비용을 절감할 수 있고, 칩 사이즈를 감소시킬 수 있다.
본 발명의 다른 측면에 따르면, 영상 디코더 내에 블록 단위의 다운 스케일링을 수행하는 스케일러를 내장시킴으로써 프레임 메모리의 용량을 초과하는 고 해상도의 영상 데이터도 재생할 수 있게 되므로 디지털 영상 촬영 장치의 사용자 편의성을 증대시킬 수 있다.

Claims (38)

  1. 서로 다른 MCB(Minimum Coded Block) 라인 데이터가 개별적으로 기록되는 개별 영역과, 상기 서로 다른 MCB 라인 데이터가 공통적으로 기록되는 공용 영역을 구비한 버퍼 메모리
    개별 영역과 공용 영역에 기록된 영상 데이터를 블록 단위로 조합하여 압축 부호화를 수행하는 영상 인코더 및
    MCB 라인 데이터를 상기 개별 영역 및 공용 영역에 분할하여 기록하고, 압축 부호화가 수행되는 동안 압축 부호화가 완료된 공용 영역의 메모리 구조에 상응하는 기록 방식으로 다른 MCB 라인 데이터를 압축 부호화가 완료된 공용 영역에 기록하는 메모리 제어기를 포함하는 것을 특징으로 하는 디지털 영상 코덱.
  2. 제1항에 있어서,
    상기 개별 영역은 서로 다른 MCB 라인 데이터의 독립적 기록을 위해 할당된제1 및 제2영역을 포함하고,
    상기 메모리 제어기는 MCB 라인 데이터의 순서에 따라 '제1영역+공용영역' 및 '제2영역+공용 영역'을 교대로 선택하여 MCB 라인 데이터를 분할 저장하는 것을 특징으로 하는 디지털 영상 코덱.
  3. 제2항에 있어서,
    상기 MCB 라인 데이터의 사이즈는 P x N(P와 N은 각각 영상 데이터의 가로 사이즈와 MCB의 수직 사이즈)이고,
    상기 제1영역 및 제2영역은 MCB 라인 데이터의 한 행에 해당하는 영상 데이터를 수록할 수 있는 메모리 사이즈를 갖고,
    상기 메모리 제어기는 MCB 라인 데이터의 제1행은 개별 영역에, 제2행 내지 제N행은 공용 영역에 저장하는 것을 특징으로 하는 디지털 영상 코덱.
  4. 제3항에 있어서,
    상기 N은 8인 것을 특징으로 하는 디지털 영상 코덱.
  5. 제1항에 있어서,
    상기 메모리 제어기는 압축 부호화를 위한 공용 영역 리드 방식과 동일한 방식으로 MCB 라인 데이터를 공용 영역에 기록하는 것을 특징으로 하는 디지털 영상 코덱.
  6. 제5항에 있어서,
    상기 MCB 라인 데이터를 공용 영역에 기록하는 방식은 리니어 방식 또는 지그재그 방식인 것을 특징으로 하는 디지털 영상 코덱.
  7. 제5항에 있어서,
    상기 메모리 제어기는 MCB 라인 데이터의 순서에 따라 리니어 방식과 지그재그 방식을 교대로 선택하여 MCB 라인 데이터를 공용 영역에 저장하는 것을 특징으로 하는 디지털 영상 코덱.
  8. 제6항 또는 제7항에 있어서,
    상기 지그재그방식은 MCB 라인 데이터의 각 행을 블록 단위로 저장하는 방식인 것을 특징으로 하는 디지털 영상 코덱.
  9. 제8항에 있어서,
    압축 부호화 싸이클 당 처리되는 MCB의 수가 k일 때, 상기 블록의 수평 사이즈는 MCB 수평 사이즈의 k배인 것을 특징으로 하는 디지털 영상 코덱.
  10. 제1항에 있어서,
    메모리 제어기는MCB 라인 데이터의 일부 행은 개별 영역에, 나머지 행은 리니어 방식으로 공용 영역에 기록하는 제1기록방식과, MCB 라인 데이터의 일부 행은 개별 영역에, 나머지 행은 지그재그 방식에 의해 블록 단위로 공용 영역에 기록하는 제2기록방식을 교대로 적용하여 MCB 라인 데이터를 버퍼 메모리에 기록하는 것을 특징으로 하는 디지털 영상 코덱.
  11. 제10항에 있어서,
    메모리 제어기는 서로 다른 MCB 라인 데이터에 대한 개별 영역 기록시 독립 적으로 할당된 메모리 영역을 사용하는 것을 특징으로 하는 디지털 영상 코덱.
  12. 제10항 또는 제11항에 있어서,
    메모리 제어기는 MCB 라인 데이터의 처음 한 행을 개별 영역에 기록하고, 나머지 행은 공용 영역에 기록하는 것을 특징으로 하는 디지털 영상 코덱.
  13. 제1항에 있어서,
    상기 메모리 제어기는 MCB 라인 데이터의 개별 영역 기록시 지그재그 방식에 의해 블록 형태로 기록하는 것을 특징으로 하는 디지털 영상 코덱.
  14. 제13항에 있어서,
    압축 부호화 싸이클 당 처리되는 MCB의 수가 k일 때, 상기 블록의 수평 사이즈는MCB 수평 사이즈의 k 배인 것을 것을 특징으로 하는 디지털 영상 코덱.
  15. 제1항에 있어서,
    상기 개별 영역은 MCB 라인 데이터의 한 행에 해당하는 영상 데이터를 기록할 수 있는 메모리 공간을 갖는 제1영역 및 제2영역을 포함하고,
    상기 메모리 제어기는, 압축 부호화 싸이클 당 처리되는MCB의 수가 k라 할 때, 제1영역과 공용 영역에 기록된 MCB 라인 데이터의 최초 압축 부호화 싸이클 진행시 제2영역에 다음 MCB 라인 데이터의 한 행을 기록하고, 제2영역과 공용 영역에 기록된 MCB 라인 데이터의 최초 압축 싸이클 진행시 제1영역에 다음 MCB 라인 데이터의 한 행을 기록하는 것을 특징으로 하는 디지털 영상 코덱.
  16. 제1항에 있어서,
    상기 메모리 제어기는, 공용 영역에 MCB 라인 데이터를 기록할 때 기록 대상 행의 수로 공용 영역을 블록화하여 각 메모리 블록에 MCB 라인 데이터의 한 행을 개별적으로 기록하는 것을 특징으로 하는 디지털 영상 코덱.
  17. 제16항에 있어서,
    압축 부호화 싸이클 당 처리되는MCB의 수가 k일 때, 상기 메모리 블록의 수평 사이즈는 MCB 수평 사이즈의k 배인 것을 특징으로 하는 디지털 영상 코덱.
  18. 제1항에 있어서,
    상기 메모리 제어기는, 압축 부호화 싸이클 당 처리되는MCB의 수가 k일 때, n번째(n≥2, n은 정수) 압축 부호화 사이클이 진행되는 동안, 압축 부호화 리드 방식과 동일한 방식으로 다음 MCB 라인 데이터의 n행(n≥2, n은 정수)을 압축 부호화가 이미 완료된 공용 영역에 기록하는 것을 특징으로 하는 디지털 영상 코덱.
  19. 제1항에 있어서,
    상기 메모리 제어기는 MCB 라인 데이터의 순서에 따라 리니어 방식 또는 지 그재그 방식을 교대로 적용하여 공용 영역에 MCB 라인 데이터를 기록하고,
    상기 공용 영역에는 MCB 라인 데이터의 기록 방식 차이에 따른 보충 메모리 공간이 할당되는 것을 특징으로 하는 디지털 영상 코덱.
  20. 제19항에 있어서,
    압축 부호화 싸이클 당 처리되는 MCB의 수가 k일 때,
    상기 보충 메모리 공간은 'MCB 수평 사이즈 x k x 공용 영역에 기록되는MCB 라인 데이터의 행 수'와 MCB 라인 데이터의 수평 사이즈 차이에 대응하는 메모리 공간인 것을 특징으로 하는 디지털 영상 코덱.
  21. 제1항에 있어서,
    상기 메모리 제어기는 영상의 회전 각도에 따라 MCB 라인 데이터의 기록 시작 위치와 기록 진행 방향을 변경하여 개별 영역 및 공용 영역에 MCB 라인 데이터를 기록하고,
    상기 영상 인코더는 영상 회전 각도에 따라 압축 부호화를 위한 영상 데이터 리드 시작 위치와 리드 진행 방향을 변경하여 압축 부호화를 수행하는 것을 특징으로 하는 디지털 영상 코덱.
  22. 제1항에 있어서,
    압축 부호화된 영상 비트 스트림을 수신하여 MCB 단위로 신장을 한 후 블록 단위로 다운 스케일링하여 버퍼 메모리에 기록하는 영상 디코더를 더 포함하고,
    상기 메모리 제어기는 버퍼 메모리의 용량에 상응하는 영상 데이터가 버퍼 메모리에 기록되면 영상 재생이 가능하도록 영상 데이터를 리드하여 프레임 메모리에 누적 기록하는 것을 특징으로 하는 디지털 영상 코덱.
  23. 제22항에 있어서,
    상기 영상 디코더는 재생 대상 영상의 수평 사이즈가 버퍼 메모리의 수평 사이즈를 초과하지 않도록 신장이 완료된 영상 데이터를 블록 단위로 다운 스케일링하는 것을 특징으로 하는 디지털 영상 코덱.
  24. 제22항 또는 제23항에 있어서,
    상기 MCB의 사이즈는 NⅹN이고,
    상기 영상 디코더는 {Nⅹ(1/2)r}ⅹ{Nⅹ(1/2)r}(r=1, 2, 3)의 사이즈를 갖는 블록 단위로 다운 스케일링하는 것을 특징으로 하는 디지털 영상 코덱.
  25. 서로 다른 MCB(Minimum Coded Block) 라인 데이터가 개별적으로 기록되는 개별 영역과, 상기 서로 다른 MCB 라인 데이터가 공통적으로 기록되는 공용 영역을 구비한 버퍼 메모리를 이용하여 영상 데이터를 인코딩하는 방법에 있어서,
    (a) MCB 라인 데이터를 상기 개별 영역 및 공용 영역에 분할하여 기록하는 단계
    (b) 개별 영역과 공용 영역에 기록된 영상 데이터를 블록 단위로 조합하여 압축 부호화하는 단계 및
    (c) 상기 압축 부호화가 수행되는 동안 압축 부호화가 완료된 공용 영역의 메모리 구조에 상응하는 기록 방식으로 다른 MCB 라인 데이터를 압축 부호화가 완료된 공용 영역에 기록하는 단계를 포함하는 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  26. 제25항에 있어서,
    상기 개별 영역은 서로 다른 MCB 라인 데이터의 독립적 기록을 위해 할당된제1 및 제2영역을 포함하고,
    상기 (a) 단계는, MCB 라인 데이터의 순서에 따라 '제1영역+공용 영역' 및 '제2영역+공용 영역'을 교대로 선택하여 MCB 라인 데이터를 분할 저장하는 단계인 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  27. 제26항에 있어서,
    상기 MCB 라인 데이터의 사이즈는 P x N(P와 N은 각각 영상 데이터의 가로 사이즈와 MCB의 수직 사이즈)이고, 상기 제1영역 및 제2영역은 MCB 라인 데이터의 한 행에 해당하는 영상 데이터를 수록할 수 있는 메모리 사이즈를 갖고,
    상기 (a) 단계는, MCB 라인 데이터의 제1행은 제1영역 또는 제2영역에, 제2행 내지 제N행은 공용 영역에 저장하는 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  28. 제25항에 있어서,
    상기 (a) 단계는, 압축 부호화를 위한 공용 영역 리드 방식과 동일한 방식으로 MCB 라인 데이터를 공용 영역에 기록하는 단계인 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  29. 제28항에 있어서,
    상기 (a) 단계는, MCB 라인 데이터의 순서에 따라 리니어 방식 또는 지그재그 방식을 교대로 선택하여 MCB 라인 데이터를 공용 영역에 기록하는 단계인 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  30. 제29항에 있어서,
    상기 지그재그 방식은 MCB 라인 데이터의 각 행을 블록 단위로 저장하고, 압축 부호화 싸이클 당 처리되는 MCB의 수가 k일 때, 상기 블록의 수평 사이즈는 MCB 수평 사이즈의 k배인 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  31. 제25항에 있어서,
    상기 (a) 단계에서 개별 영역에 MCB 라인 데이터를 저장할 때 지그재그 방식 에 의해 블록 형태로 저장하고,
    압축 부호화 싸이클 당 처리되는 MCB의 수가 k일 때, 상기 블록의 수평 사이즈는 MCB 수평 사이즈의 k 배인 것을 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  32. 제25항에 있어서,
    상기 개별 영역은 MCB 라인 데이터의 한 행에 해당하는 영상 데이터를 기록할 수 있는 메모리 공간을 갖는 제1영역 및 제2영역을 포함하고,
    상기 (a) 단계에서, 압축 부호화 싸이클 당 처리되는MCB의 수가 k라 할 때, 제1영역과 공용 영역에 기록된 MCB 라인 데이터의 최초 압축 부호화 싸이클 진행시 제2영역에 다음 MCB 라인 데이터의 한 행을 기록하고, 제2영역과 공용 영역에 기록된 MCB 라인 데이터의 최초 압축 싸이클 진행시 제1영역에 다음 MCB 라인 데이터의 한 행을 기록하는 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  33. 제25항에 있어서,
    상기 (a) 단계에서, 공용 영역에 MCB 라인 데이터를 저장할 때, 기록 대상 행의 수로 공용 영역을 블록화하여 각 메모리 블록에 MCB 라인 데이터의 한 행을 개별적으로 기록하고,
    압축 부호화 싸이클 당 처리되는 MCB의 수가 k일 때, 상기 메모리 블록의 수평 사이즈는 MCB 수평 사이즈의 k 배인 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  34. 제25항에 있어서,
    상기 (a) 단계에서, 압축 부호화 싸이클 당 처리되는MCB의 수가 k일 때, n번째(n≥2, n은 정수) 압축 부호화 사이클이 진행되는 동안, 압축 부호화 리드 방식과 동일한 방식으로 다음 MCB 라인 데이터의 n행(n≥2, n은 정수)을 압축 부호화가 이미 완료된 공용 영역에 기록하는 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  35. 제25항에 있어서,
    상기 (a) 단계에서, 영상의 회전 각도에 따라 MCB 라인 데이터의 기록 시작 위치와 기록 진행 방향을 변경하여 개별 영역 및 공용 영역에 MCB 라인 데이터를 기록하고, 상기 (b) 단계에서, 영상 회전 각도에 따라 압축 부호화를 위한 영상 데이터 리드 시작 위치와 리드 진행 방향을 변경하여 압축 부호화를 수행하는 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  36. 제25항에 있어서,
    (d) 압축 부호화된 영상 비트 스트림을 수신하여 MCB 단위로 신장을 한 후 블록 단위로 다운 스케일링하여 버퍼 메모리에 기록하는 단계 및
    (e) 상기 버퍼 메모리의 용량에 상응하는 영상 데이터가 버퍼 메모리에 기록 되면 영상 재생이 가능하도록 영상 데이터를 리드하여 프레임 메모리에 누적 기록하는 단계를 더 포함하는 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  37. 제36항에 있어서,
    상기 (d) 단계는, 재생 대상 영상의 수평 사이즈가 버퍼 메모리의 수평 사이즈를 초과하지 않도록 신장이 완료된 영상 데이터를 블록 단위로 다운 스케일링하는 단계인 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
  38. 제36항 또는 제37항에 있어서,
    상기 MCB의 사이즈는 NⅹN이고,
    상기 (d) 단계는, 신장이 완료된 영상 데이터를 {Nⅹ(1/2)r}ⅹ{Nⅹ(1/2)r}(r=1, 2, 3)의 사이즈를 갖는 블록 단위로 다운 스케일링하는 단계인 것을 특징으로 하는 디지털 영상 코덱 제어 방법.
KR1020070042683A 2007-05-02 2007-05-02 버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어방법 KR100793286B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020070042683A KR100793286B1 (ko) 2007-05-02 2007-05-02 버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어방법
PCT/KR2008/001057 WO2008136572A1 (en) 2007-05-02 2008-02-22 Digital video codec using small-sized buffer memory
EP08723095A EP2153656A4 (en) 2007-05-02 2008-02-22 DIGITAL VIDEO CODEC USING A SMALL BUFFER MEMORY
US12/079,180 US8184714B2 (en) 2007-05-02 2008-03-24 Digital video codec using small-sized buffer memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070042683A KR100793286B1 (ko) 2007-05-02 2007-05-02 버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어방법

Publications (1)

Publication Number Publication Date
KR100793286B1 true KR100793286B1 (ko) 2008-01-10

Family

ID=39217360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070042683A KR100793286B1 (ko) 2007-05-02 2007-05-02 버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어방법

Country Status (4)

Country Link
US (1) US8184714B2 (ko)
EP (1) EP2153656A4 (ko)
KR (1) KR100793286B1 (ko)
WO (1) WO2008136572A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8184714B2 (en) 2007-05-02 2012-05-22 Core Logic, Inc. Digital video codec using small-sized buffer memory
KR20190101409A (ko) * 2017-05-12 2019-08-30 구글 엘엘씨 이미지 프로세서 런타임 효율성을 개선하기 위한 프로그램 코드 변환

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8922573B1 (en) 2009-07-14 2014-12-30 Imagination Technologies Limited Video non-buffered line memory
JP2011199414A (ja) * 2010-03-17 2011-10-06 Toshiba Corp 素材収録装置及び素材収録方法
JP2012010182A (ja) * 2010-06-25 2012-01-12 Sony Corp 情報処理装置と情報処理方法
US9531915B2 (en) 2013-12-04 2016-12-27 Aspeed Technology Inc. Image encoding system and method thereof
US10490238B2 (en) * 2017-06-29 2019-11-26 SK Hynix Inc. Serializer and memory device including the same
US11470250B2 (en) * 2019-12-31 2022-10-11 Gopro, Inc. Methods and apparatus for shear correction in image projections

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930015868A (ko) * 1991-12-14 1993-07-24 정장호 화상 회의용 비디오 코덱 시스템에서의 전송버퍼 회로
KR20010068232A (ko) * 2000-01-03 2001-07-23 김종태 영상 휴대 전화기 및 그의 제어방법
KR20060014605A (ko) * 2004-08-11 2006-02-16 삼성전기주식회사 디지탈 영상 처리 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768445A (en) * 1996-09-13 1998-06-16 Silicon Graphics, Inc. Compression and decompression scheme performed on shared workstation memory by media coprocessor
US6330366B1 (en) * 1998-12-21 2001-12-11 Intel Corporation Method and apparatus for buffer management in video processing
CN100477735C (zh) * 1999-02-08 2009-04-08 三洋电机株式会社 移动图像记录装置与数码照相机
US7266254B2 (en) * 2002-02-13 2007-09-04 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
JP2005217734A (ja) * 2004-01-29 2005-08-11 Sanyo Electric Co Ltd 画像信号処理装置及び画像信号処理方法
TWI277013B (en) * 2005-02-01 2007-03-21 Ind Tech Res Inst Method for reducing buffered-frame memory sizes and accesses in a video codec
US7496235B2 (en) * 2005-08-03 2009-02-24 Micron Technology, Inc. Scan line to block re-ordering buffer for image compression
US7925120B2 (en) * 2005-11-14 2011-04-12 Mediatek Inc. Methods of image processing with reduced memory requirements for video encoder and decoder
KR100793286B1 (ko) 2007-05-02 2008-01-10 주식회사 코아로직 버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930015868A (ko) * 1991-12-14 1993-07-24 정장호 화상 회의용 비디오 코덱 시스템에서의 전송버퍼 회로
KR20010068232A (ko) * 2000-01-03 2001-07-23 김종태 영상 휴대 전화기 및 그의 제어방법
KR20060014605A (ko) * 2004-08-11 2006-02-16 삼성전기주식회사 디지탈 영상 처리 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8184714B2 (en) 2007-05-02 2012-05-22 Core Logic, Inc. Digital video codec using small-sized buffer memory
KR20190101409A (ko) * 2017-05-12 2019-08-30 구글 엘엘씨 이미지 프로세서 런타임 효율성을 개선하기 위한 프로그램 코드 변환
KR102278021B1 (ko) 2017-05-12 2021-07-15 구글 엘엘씨 이미지 프로세서 런타임 효율성을 개선하기 위한 프로그램 코드 변환

Also Published As

Publication number Publication date
US8184714B2 (en) 2012-05-22
EP2153656A4 (en) 2012-04-25
US20080273598A1 (en) 2008-11-06
EP2153656A1 (en) 2010-02-17
WO2008136572A1 (en) 2008-11-13

Similar Documents

Publication Publication Date Title
US10096082B2 (en) Upscaling and downscaling in a camera architecture
KR100793286B1 (ko) 버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어방법
JP4151684B2 (ja) 符号化装置、符号化方法および符号化プログラム、並びに撮像装置
KR100347508B1 (ko) 촬상 장치
JP5520122B2 (ja) データ変換装置
JP4513487B2 (ja) 映像データ圧縮装置
JP4559785B2 (ja) 信号処理方法および信号処理装置
JP2013219682A (ja) 撮像装置
JP2007074616A (ja) 符号化装置
JP2014017648A (ja) 動画像復号装置およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140102

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee