KR101484101B1 - 동영상 변환 장치 - Google Patents

동영상 변환 장치 Download PDF

Info

Publication number
KR101484101B1
KR101484101B1 KR20100020586A KR20100020586A KR101484101B1 KR 101484101 B1 KR101484101 B1 KR 101484101B1 KR 20100020586 A KR20100020586 A KR 20100020586A KR 20100020586 A KR20100020586 A KR 20100020586A KR 101484101 B1 KR101484101 B1 KR 101484101B1
Authority
KR
South Korea
Prior art keywords
image
image frame
processing
unit
image processing
Prior art date
Application number
KR20100020586A
Other languages
English (en)
Other versions
KR20110101530A (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 KR20100020586A priority Critical patent/KR101484101B1/ko
Publication of KR20110101530A publication Critical patent/KR20110101530A/ko
Application granted granted Critical
Publication of KR101484101B1 publication Critical patent/KR101484101B1/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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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/436Methods 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 using parallelised computational 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Abstract

본 발명은 동영상 변환 장치에 관한 것으로서, 상세하게는 하나의 형식으로 된 동영상 정보를 디코딩하여 이미지 프레임 리스트로 변환하고, 상기 이미지 프레임 리스트 대하여 그래픽 처리를 한 후에, 그래픽 처리된 이미지 프레임 리스트를 다시 동영상 정보로 변환하는 동영상 변환 장치에 관한 것으로서, 동영상 변환과 이미지 처리에 소요되는 시간을 획기적으로 줄이는 방안을 제시함으로써, 동영상 변환과 이미지 처리의 속도를 향상시키고, 실시간으로 동영상 변환을 할 수 있도록 하는 장점을 제공한다.

Description

동영상 변환 장치 {Moving Picture Tranformation Device }
본 발명은 동영상 변환 장치에 관한 것으로서, 상세하게는 하나의 형식으로 된 동영상 정보를 디코딩하여 이미지 프레임으로 변환하고, 상기 이미지 프레임에 대하여 그래픽 처리를 한 후에, 그래픽 처리된 이미지 프레임을 다시 동영상 정보로 변환하는 동영상 변환 장치에 관한 것이다.
휴대폰, PMP(Portable Media Playr), 네비게이션 시스템, DMB(Digital Multimedia Broadcasting) 시스템, IPTV(Internet Protocol Television), MP3 재생기, MP4 재생기 등과 같은 디지털 시스템이 많이 보급되고, 일반 사용자는 디지털 기술 기반의 영상과 음성을 쉽게 보고들을 수 있는 환경은 지속적으로 확대되고 있다.
휴대폰이나 PMP 등과 같이 동영상을 재생할 수 있는 시스템은 각 기기의 용도에 따라서 기기에 의존적인 동영상에 관한 다양한 특성이 있다. 예를 들어서 각 디지털 시스템은 출력 해상도가 다를 수가 있는데, 휴대폰의 경우에는 320 by 240 의 QVGA(Quarter Video Graphics Array))의 출력 해상도를 가지는 경우가 있고, IPTV의 경우에는 720 by 480의 SD(Standard Definition)급의 TV나 HD(High Definition)급의 TV 출력 해상도를 가지는 경우가 많이 있다. 또한 PMP 에서는 720 by 480 급의 SD 급 혹은 HD 급의 해상도를 지원하는 경우가 있다. 반면에, MP3 재생기의 경우에는 출력해상도가 QVGA 급 이하의 낮은 출력해상도를 가지는 경우가 보통이다. 또한 이와 같은 출력 해상도와 별도로, 초당 프레임의 수도 각 기기별로 다를 수가 있는데, 초당 29.97 개의 프레임 출력에서부터, 24 프레임과 그 이하의 초당 프레임 출력을 가지는 경우가 많이 있다.
그외에도 각 디지털 시스템 기기는 디지털 동영상을 재생하기 디코딩 기술을 다르게 구성하는 경우가 많이 있다. 예를 들어서, AVI(Audio Video Interleaving) 기술을 동영상 재생기술로 사용하는 기기가 있을 수 있고, 혹은 MPEG(Moving Picture Experts Group)2, MPEG4, MPEG7 등의 압축 기술을 사용하는 기기가 있을 수도 있으며, 그 외 다른 표준 포맷으로 H.264와 같은 압축 기술을 사용할 수도 있을 것이다.
동영상 정보는 개인이나 영업으로 목적으로 하는 사업자에 의해서 배포되는데, 배포되는 동영상 정보는 압축 기술의 방법에 따라서, 다양한 형태의 압축기술을 사용하여 배포되고, 동일한 압축 기술 내에서도 초당 프레임의 수와 출력 해상도 등 다양한 기술적인 차이를 가지면서 배포된다.
각 디지털 시스템 기기에서 재생할 수 있는 압축기술과 초당 프레임 수와 출력 해상도를 포함한 특징은 일반적으로 고정되는 경우가 많은데, 동영상 정보의 압축기술과 압축기술 내에서의 개별적인 특징과 디지털 시스템 기기에서 디코딩할 수 있는 압축기술과 압축기술 내의 개별적으로 실행할 수 있는 특징의 차이를 극복하고 디지털 시스템 기기에서 동영상 정보를 실행할 수 있도록 하기 위하여 특정 디지털 시스템 기기에서 실행될 수 있는 형태의 동영상의 변환 작업이 필요하게 된다.
도 1은 종래에 특정 디지털 시스템에서 실행될 수 있는 동영상으로 변환하는 동영상 변환 작업을 시간 축을 기준으로 도시한 순서 도면이다. 동영상 변환 작업이 이루어지기 위해서는 압축된 동영상을 이미지 프레임 정보의 리스트로 변환하는 디코딩과정과 이미지 프레임 정보로 변환된 프레임들에 대한 이미지 처리를 수행하는 그래픽 처리과정과 그래픽 처리과정 후에 다시 특정 디지털 시스템 기기에서 구동할 수 있는 형태로 압축하는 인코딩과정으로 이루어지게 된다. 도 1에 따르면, 첫 번째 이미지 프레임을 디코딩한 후에, 이어서 그래픽 처리를 하고, 다시 인코딩 과정을 통해서 첫 번째 이미지 프레임을 처리한다. 첫 번째 이미지 프레임을 처리한 후에 다시 두 번째 이미지 프레임을 처리하는 형태의 순차적인 형식을 취하고 있음을 알 수 있다.
도 1과 같은 종래 동영상 변환 작업이 이루어지는 개인용 PC(Personal Computer) 나 내장형 시스템 등에서 리소스의 제한과 CPU의 수행능력의 한계, 혹은 프로그램인 프로세서(Process)나 쓰레드(Thread)의 사용 갯수의 제한 등으로 인하여, 디코딩 과정과 인코딩 과정이 병렬로 수행되지 못하고 또한 그래픽 처리과정 은 PC 에 탑재된 그래픽 카드나 내장형 시스템에 탑재된 그래픽 실행 유닛(GPU-Graphic Processor Unit을 포함한다)이 탑재되어 있어 디코딩과 인코딩과는 별개로 병렬적으로 실행할 수 있음에도 디코딩과 인코딩이 실행되는 코덱장치에서 병렬적으로 실행할 수 없음에 따라 그래픽 처리 또한 디코딩과 인코딩과 함께 순차적으로 실행되어 동영상 변환 작업에 상당한 시간이 소요되는 문제가 있었다. 그래픽 처리과정은 픽셀(Pixel)단위로 구성된 이미지에 대한 화질 등의 향상을 위한 처리로서, 특히 동영상 변환 작업과 같이 출력 해상도의 변환이 있는 경우에는 일반적으로 스케일링 처리와 같은 그래픽 처리가 수반된다. 그래픽 처리과정은 이미지를 구성하는 각각 픽셀별로 그래픽 처리를 처리하게 됨에 따라서, 생성된 일반 동영상의 초당 이미지 프레임의 갯수와 출력 해상도가 높아지는 추세에 따라, 동영상 변환 작업에 상당한 시간을 소요하는 문제점을 가지고, 그래픽 처리의 난이도에 따라서는 디코딩과 인코딩 처리과정보다 더 많은 시간이 걸리는 경우가 많다. 이와 같이 개인 사용자나 사업자 입장에서 특정 동영상만을 실행할 수 있는 특정 디지털 시스템 기기에서 동영상을 재생하기 위해서는 별도의 동영상 변환 작업을 실시해야 하고, 동영상 변환 작업이 완료되기까지 오랜 시간이 걸리는 문제점이 있으며, 동영상 변환 작업을 완료한 후에야 특정 디지털 시스템 기기에 동영상 변환 파일을 옮겨서 재생할 수 있다는 불편함을 가지고 있었다.
본 발명은 상기에서 언급한 문제점을 해결하기 위하여 제안되는 것으로서,
본 발명은 동영상 정보에서 이미지 프레임 정보의 리스트로 변환하는 디코딩 작업과 디코딩 작업에서 변환된 이미지 프레임 정보의 리스트로부터 이미지 처리를 하는 그래픽 처리 작업과 그래픽 처리 작업에서 처리된 이미지 프레임 정보리스트를 압축하는 인코딩 작업에 대하여, 인코딩 작업과 디코딩 작업을 비동기적으로 처리하고, 효율적인 그래픽 처리를 함으로써 속도를 향상할 수 있는 동영상 변환 장치를 제공함에 있다.
본 발명의 동영상 변환 장치는 압축된 동영상 정보를 일련의 2개 이상의 이미지 프레임을 포함하는 이미지 프레임 정보 리스트(N 이미지 프레임, N > 1 이상)로 변환하는 디코딩과 일련의 이미지 프레임 정보 리스트에서 압축 동영상을 생성하는 인코딩을 수행하는 코덱 장치와 상기 코덱 장치에서 디코딩된 일련의 이미지 프레임 정보 리스트에 대하여 그래픽 처리(Graphic Processing)를 하고 상기 코덱 장치에서 인코딩을 하기 위해 그래픽 처리된 일련의 이미지 프레임 정보 리스트를 제공하는 이미지 처리 장치를 포함하며, 상기 코덱 장치에서 i 번째 이미지 프레임(1 <= i <= N)의 인코딩이 완료되기 전에, i + 1 이후의 이미지 프레임에 대한 디코딩이 상기 코덱 장치에서 수행되는 것을 특징으로 하는 동영상 변환 장치에 관한 발명이다.

제안되는 바와 같은 동영상 변환 장치에 의해서, 동영상 변환 시간을 획기적으로 줄일 수 있도록 제공하는 장점과 동일한 동영상 변환 시간을 사용하는 경우에는 기존의 방식에 비하여 더욱더 높은 수준의 그래픽 처리를 할 수 있는 장점을 가지며 본 발명인 동영상 변환 장치가 탑재된 기기에서는 속도 향상으로 인하여 실시간으로 처리 가능하여 일반 사용자가 동영상 변환이 이루어짐을 알지 못하고 변환되는 편리함을 제공할 수 있다.
도 1은 종래 동영상 변환 작업을 시간 축을 기준으로 이미지 프레임별로 진행되는 순서를 도시한 도면이다.
도 2는 동영상 변환 장치의 일 실시예를 설명하는 블록도이다.
도 3은 본 발명인 동영상 변환 장치에서 동영상 변환 작업을 이미지 프레임별로 진행되는 순서를 도시한 일 실시예이다.
도 4는 본 발명인 동영상 변환 장치에서 동영상 변환 작업을 이미지 프레임별로 진행되는 순서를 도시한 또 다른 실시예이다.
도 5는 코덱 장치(1000)의 구성요소를 구체화한 일 실시예를 나타낸 블록도이다.
도 6은 코덱 장치(1000)중 중앙 처리부(1300)의 구성의 일 실시예를 나타낸 블록도이다.
도 7은 이미지 처리 장치(2000)에 대한 구체적인 일 실시예를 나타낸 블록도이다.
도 8과 도9 는 이미지 처리 장치(2000) 중 중앙 처리부(2200)의 일 실시예를 각각 나타낸 블록도이다.
도 10은 스케일링 필터를 적용하기 위한 일반적인 실시형태를 그림으로 나타낸 도면이다.
도 11은 스케일링 필터를 적용하기 위하여 트랜스포즈를 적용한 실시형태를 그림으로 나타낸 도면이다.
이하에서는 본 발명의 바람직한 실시 예를 첨부되는 도면을 참조하여 상세하게 설명한다. 다만, 본 발명의 사상이 제시되는 실시 예에 제한되지 아니하며, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서, 구성요소의 부가, 변경, 삭제, 추가 등에 의해서 다른 실시 예를 용이하게 제안할 수 있을 것이나, 이 또한 본 발명의 사상의 범위 내에 든다고 할 것이다.
도 2는 본 발명의 사상에 따른 동영상 변환 장치의 일 실시예를 설명하는 블록도이다.
도 2를 참조하면, 동영상 변환 장치는 코덱 장치(1000)와 이미지 처리장치(2000)와 통신부(3000)를 포함하며, 이에 더하여 외부저장 매체(5000)와 전역 메모리(4000)을 포함할 수 있다. 외부저장 매체(5000)에 저장된 동영상 정보나 혹은 그 외 인터넷 등과 같은 환경에서 전달되는 동영상 정보를 임시로 전역 메모리(4000)에 저장하고, 코덱 장치(1000)는 동영상 정보를 일련의 이미지 프레임의 리스트로 변환하고, 이미지 처리 장치(2000)는 코덱 장치에서 변환된 이미지 프레임 각각에 대해서 그래픽 처리를 수행한다. 이어서 코덱 장치(1000)는 이미지 처리 장치(2000)에서 처리된 이미지 프레임 정보의 리스트에 대해서 다시 원하는 형식의 동영상 정보로 압축하여 이를 인터넷 등의 통신으로 실시간으로 전달할 수도 있고 혹은 외부저장 매체(5000)에 저장할 수도 있다. 이하에서는 각각의 구성요소에 대해서 상세히 설명하도록 한다.
코덱 장치(1000)는 압축된 동영상 정보를 일련의 이미지 프레임 리스트로 변환하는 디코딩과 그래픽 처리된 이미지 프레임 리스트로부터 압축된 동영상 정보로 변환하는 인코딩 역할을 담당한다. 이미지 프레임이란 압축된 동영상 정보로부터 디코딩된 고정된 형태의 이미지 픽셀의 집합으로서, 일련의 시간순으로 순서를 가진 이미지 프레임의 집합이 동영상을 구성하여 사용자에게 동영상을 보여줄 수 있다. 이미지 프레임의 형태는 정사각형이나, 직사각형 등의 형태를 띠고 있을 수도 있고, 혹은 다른 형태를 띠고 있을 수도 있다. 이미지 프레임 내의 픽셀 정보는 RGB(Red-Green-Blue)의 형식으로 표현될 수도 있으며, 혹은 YUV 포맷의 밝기 정보와 색차신호 정보로 표현한 컬러 스페이스를 가진 정보일 수도 있고, 그외 다른 컬러 스페이스 형태로 표현할 수도 있다. 동영상의 압축포맷에는 다양한 압축포맷이 있는데, 디지털 TV 등에서 사용하는 MPEG 2,4 와 같은 압축 포맷이 있을 수 있고, DMB 시스템에서 사용되는 H.264 포맷이 있고, 그 외 AVI 포맷 등이 있다. 이 외에도 표준화되지 않은 동영상 압축 포맷이 있을 수 있고, 필요에 따라서 새로운 압축 포맷이 생겨날 수 있다. 상기 코덱 장치(1000)는 특정 압축 포맷으로 이루어진 동영상 정보를 픽셀 단위로 접근 가능한 하나 이상의 이미지 프레임으로 구성된 이미지 프레임 리스트로 변환한다. 이 변환된 이미지 프레임 리스트는 초당 프레임의 숫자를 반영하고 있고, 프레임에 대한 크기를 알 수 있으며, 표현된 픽셀의 컬러 스페이스 정보를 알 수 있다. 변환된 이미지 프레임 리스트는 이미지 처리장치(2000)에서 그래픽 처리를 한 후에, 다시 코덱 장치(1000)에서 특정 포맷의 동영상 정보로 압축하는 과정을 통해서 동영상 변환 과정이 이루어지게 되어 개인 사용자는 원하는 동영상 포맷으로 변환하고, 특정 기기에서 실행할 수 있는 동영상으로 변환할 수 있다.
이미지 처리 장치(2000)는 코덱 장치(1000)에서 디코딩된 이미지 프레임 리스트에 대해서 그래픽 처리를 담당한다. 그래픽 처리는 각 이미지 프레임에 대해서 이루어지거나 혹은 이미지 프레임 간에 그래픽 처리가 이루어질 수도 있다. 그래픽 처리를 하는 목적은 다양한데, 예를 들어서, 낮은 해상도의 이미지를 높은 해상도의 이미지로 높이는 그래픽 처리가 있을 수도 있고, 그 반대로 높은 해상도에서 낮은 해상도로 낮추기 위한 처리가 있을 수도 있다. 또는 초당 이미지 프레임의 숫자를 낮추거나 높이기 위한 처리를 고려할 수 있다. 이와 같이 이미지 처리 장치(2000)에서 이루어지는 그래픽 처리에는 일반적으로 이미지 정보에 대해서 이루어질 수 있는 그래픽 처리로서 예를 들어 ,이미지 프레임의 크기를 확대 또는 축소하는 스케일링 기법이나 인터폴레이션(Interpolation) 기법, 무뎌진 이미지 프레임 정보를 선명하게 개선 시키는 샤프닝(Sharpening) 기법, RGB(Red-Green-Black)신호를 YUV 신호나 그 반대로 변환시키는 색차변환 기법 등이 있다. 그래픽 처리 기법은 일반적으로 이미지 프레임 내의 픽셀 단위별로 처리가 되며, 처리된 출력 픽셀은 다른 출력과 의존관계를 가지지 않아 병렬로 수행될 수 있는 특징이 있어, 메모리의 저장방식을 고려하여 이미지 프레임이 정사각형 내지 직사각형의 형태로 이루어진 경우에는 수평 방향으로 처리를 한 후에 다시 수직 방향으로 처리할 수 있다. 물론 그 반대 방향으로도 처리할 수 있다. 또한 이미지 처리 장치(2000)는 통신부(3000)와 통신을 위한 입력 버퍼와 출력 버퍼를 구비할 수 있다. 입력 버퍼는 코덱 장치(1000)에서 디코딩된 이미지 프레임의 전부 혹은 일부를 통신부(3000)를 통해서 수신하고 임시로 저장한 후에 이미지 처리 장치(2000)에 전달한다. 출력 버퍼는 이미지 처리 장치(2000)에서 그래픽 처리 결과를 통신부(3000)를 통해서 코덱 장치(1000)에 전달하기 위한 임시 저장 영역이다. 입력 버퍼와 출력 버퍼는 이미지 처리 장치(2000)와 코덱 장치(1000)간의 병렬적인 처리를 수행하기 위해서 2 개 이상의 구별된 저장영역으로 할당하여, 이미지 처리 장치(2000)와 코덱 장치(1000)간의 병렬적인 수행을 더욱더 높일 수 있도록 구성할 수 있다.
통신부(3000)는 이미지 처리 장치(2000)와 코덱 장치(1000) 간에 정보를 전달하는 기능을 담당하고 있다. 통신부(3000)는 소프트웨어적인 구성이나 하드웨어 적인 구성 또는 이의 조합으로 구성될 수 있는데, 소프트웨어적인 구성으로는 예를 들어, OS(Operating System)에서 사용하는 신호(Signal), 세마포어(Semaphore)와 공유영역을 사용해서 구성할 수도 있고 반면에 하드웨어적인 구성으로서는 하드웨어적인 SMT 된 보드에서 사용되는 버스나 칩셋(Chipset) 내부에서 사용되는 시스템 버스 등의 예를 고려할 수 있을 것이다. 물론 이러한 소프트웨어와 하드웨어의 조합으로 통신부(3000)가 이루어지는 것은 일반적일 것이다. 상기 통신부(3000)를 사용하여 이미지 처리장치와 코덱 장치(1000)는 이미지 프레임 리스트를 전달하게 된다. 전달된 정보는 이미지 처리 장치 또는 코덱 장치에서 제어가능한 메모리에 저장되고, 저장된 정보를 사용하여 수행하게 될 것이다.
통신부(3000)가 구현되는 하드웨어적인 구성에는 다양한 표준 버스 시스템이 있을 수 있다. 이미지 처리 장치(2000)와 코덱 장치(1000)가 별개의 칩으로 패키지 된 경우에는 보드 상에서 정보를 전달할 수 있는 버스로 구성된다. 이러한 구성에는 유선의 방식이 일반적인 구성으로서, 보드 상에서 사용할 수 있는 PCI(Peripheral Component Interconnect) 통신 방식, ISA(Industry Standard Architecture) 버스 방식이 있을 수 있고, 하드디스크나 DVD(Digital Versatile Disk) 등에서 사용하는 ATA(Advanced Technology Attachment) 방식이나 SATA(Serail ATA),E-SATA(External SATA) 통신방식을 사용할 수도 있다. 그 외 IEEE1394 통신 방식을 고려할 수도 있을 것이며, 또한 유선의 방식이 아닌 무선의 방식을 고려할 수도 있을 것이다. 반대로 이미지 처리 장치(2000)와 코덱 장치(1000)가 하나의 칩셋(Chipset) 내에 존재하는 경우도 상정할 수 있는데 이때에는 칩셋(Chipset) 내에서 사용하는 시스템 버스로 통신부(3000)를 구성할 수 있다. 이러한 시스템 버스에는 인텔(Intel) 타입의 버스나 모토롤라(Motorola) 타입의 버스와 같이 특정 CPU(Central Processing Unit)에 의존적인 버스형태를 사용할 수도 있고, 반대로 표준 버스형태로서 예를 들어 암바(AMBA)와 같은 형태로 구성할 수도 있고, 그 외 다양한 형태의 표준 시스템 버스나 혹은 임의로 시스템 버스를 설계할 수도 있을 것이다. 그 외 코덱 장치(1000)와 이미지 처리 장치(2000) 간의 정보 전달을 위해서 비디오 정보와 오디오 정보를 전달할 수 있는 특화된 버스를 사용할 수도 있을 것이고, 그 외 아날로그 정보(오디오와 비디오 정보)를 전달할 수 있는 매체를 사용하여 통신부(3000)를 구성할 수도 있을 것이다.
전역 메모리(4000)는 코덱 장치(1000)에서 변환할 동영상 정보를 임시로 저장하는 역할을 담당하여, 외부 저장매체(5000)에서 동영상 정보를 읽어 들여서, 전역 메모리(4000)에 저장되면, 코덱 장치(1000)가 압축된 동영상 정보로부터 순차적인 이미지 프레임 정보 리스트로 변경한다. 상기 전역 메모리는 일반적으로는 S-DRAM,DDR-DRAM 등과 같이 휘발성 메모리를 사용하여 구성할 수도 있고, NAND-Flash, NOR-Flash와 같이 비휘발성 메모리를 사용하여 구성할 수도 있을 것이다. 전역 메모리(4000)에 저장되는 정보는 일반적인 압축된 동영상 정보 중에서 일부를 포함하여 저장되며, 그래픽 처리 후에 다시 동영상 정보로 압축하기 위해서 사용되는 정보를 포함한다. 물론 전역 메모리(4000)는 프로그램 등을 포함하여 코덱 장치에 탑재된 프로세서를 구동할 수도 있을 것이다.
외부 저장매체(5000)는 동영상 변환 장치를 거치기 전의 동영상 정보를 저장하고 있거나 혹은 동영상 변환 장치에서 변환 후 결과인 동영상 정보를 포함하여 저장하기 위한 매체이다. 상기 외부 저장매체는 다양한 형태나 방식으로 존재할 수 있는 데, 일 예로서 ,하드디스크(HDD)나 DVD(Digital Versatile Disk) 나 CD(Compact Disk) 와 같은 형식의 대용량 저장 매체로 구성할 수도 있을 것이고, NOR Flash 나 NAND Flash를 사용한 방식으로 구성하거나 혹은 착탈식 방식으로도 구성할 수도 있을 것이며, 외부 저장매체를 사용하지 않고, 인터넷이나 무선 방식을 사용해서, 저장없이 전송하는 방식을 취할 수도 있을 것이다.
도 3과 도 4는 본 발명인 동영상 변환 장치에서 동영상 변환 작업을 이미지 프레임을 기준으로 도시한 순서 도면이다. 도 3과 도 4에서 각각의 이미지 프레임에는 숫자를 표시하여 디코딩되는 이미지 프레임의 시간상의 선후 관계를 나타낼 수도 있고, 혹은 디코딩 시 혹은 인코딩시의 압축 선후 관계를 나타낼 수도 있다. 예를 들어서, 엠펙(MPEG) 영상에서 I(Intermidiate), B(Bidirectional), P(Preditive) 프레임에 대하여 디코딩 시에는 I 프레임이 비록 영상이 사용자에게 보이는 시간상에서는 뒤인 경우에도, 디코딩시에는 프레임간의 의존 관계로 먼저 디코딩될 수도 있을 것이다. 또한 인코딩 과정 또한 이해의 편의상 디코딩에서 이미지 프레임의 숫자를 동일한 형태로 인코딩이 되는 것으로 표시를 하였으나, 인코딩되는 압축의 형태에 따라서는 디코딩에서의 이미지 프레임의 순서와는 달리 인코딩이 될 수도 있다.
도 3에 따르면 첫 번째 이미지 프레임인 프레임 '1'은 가장 먼저 디코딩되고 이어서 그래픽 처리가 된 후에 다시 인코딩 과정을 거쳐서 프레임 '1'에 대한 동영상 변환 작업이 완료되고 프레임 '2'와 '3'도 역시 마찬가지 과정을 거치게 되며, 이미지 프레임 '2'에 대한 디코딩 작업은 이미지 프레임 '1'의 인코딩 작업이 완료되기 전에, 실행되어 완료되는 실시 예이다. 이하에서는 각각의 도면에 대해서 상세히 살펴보도록 한다.
도 3에 따른 동영상 변환 작업은 동영상의 디코딩과 인코딩 처리는 코덱 장치(1000)에서 이루어지며 그래픽 처리는 이미지 처리 장치(2000)에서 이루어진다. 하나의 이미지 프레임을 처리하기 위해서는 디코딩과 그래픽 처리와 인코딩이 순차적으로 이루어져야 한다. 반면에 다수의 이미지 프레임을 처리하는 경우에는 물론 하나의 이미지 프레임에 대한 디코딩과 그래픽 처리와 인코딩의 순서를 지켜야 하여서, 이미지 프레임 '1'의 디코딩과 그래픽 처리와 인코딩은 순서를 지켜서 이루어지며, 마찬가지로 이미지 프레임 '2'와 '3' 도 순서를 지키고 있다. 반면에 이미지 프레임 '1'과 이미지 프레임 '2'사이의 실행 순서를 살펴보면, 이미지 프레임 '1'에 대한 인코딩을 하기 전에, 이미지 프레임 '2'에 대한 디코딩을 수행함을 도 3에서 알 수 있고, 이미지 프레임 '2'와 이미지 프레임 '3' 사이의 관계에서 그리고 그 이하의 순서에서도 동일하게 디코딩과 인코딩 순서가 변경되어 있음을 알 수 있다.
이를 일반화하면, N(N은 2 이상의 정수)개의 이미지 프레임으로 구성된 동영상을 디코딩과 그래픽 처리와 인코딩을 수행하여 동영상을 변환하는 동영상 변환장치에서, 코덱 장치(1000)에서는 인코딩과 디코딩이 교대로 실행되고 코덱 장치(1000)와 병렬로 수행할 수 있는 이미지 처리 장치(2000)로 되어 있는 경우에, i(i는 1보다 크고 N-1 보다 작은 이미지 프레임을 나타낸다) 번째 이미지 프레임이 코덱 장치(1000)에서 인코딩이 완료되기 전에, i + 1 이후의 이미지 프레임이 코덱 장치(1000)에서 디코딩되는 것으로 일반화할 수 있을 것이고, i + 1 이후의 이미지 프레임은 물론 i+1번째에서 N번째까지의 이미지 프레임을 나타내는 것으로 볼 수 있다. 상기 N개의 이미지 프레임에서의 순서(1 ~ N)는 이미지 프레임이 동영상으로 실행되는 시간순일 수도 있고, 혹은 디코딩되는 프레임 순서일 수도 있을 것이고 혹은 그외 다른 순서일 수도 있을 것이다. 또한 비록 디코딩과 인코딩을 같은 이미지 프레임 인덱스로 지칭하였지만, 본 발명의 동일한 아이디어를 사용하는 예를 들어서, 코덱 장치(1000)에서 디코딩되는 프레임수와 인코딩되는 프레임수가 다른 경우에도 동일한 형태로 판단할 수 있어서 인코딩되는 프레임수가 적거나 많은 경우에도 디코딩되는 프레임을 기준으로 선후 관계와 이미지 프레임의 인덱스를 판단할 수 있다. 또한 한 이미지 프레임에 대한 디코딩과 인코딩 과정이 한 번의 실행으로 완료되지 않는 경우 예를 들어 쓰레드(Thread)나 프로세서(Process)와 같은 OS 소프트웨어의 지원으로 OS에 의한 타임 쉐어링(Time Sharing)이 되는 경우에도 역시 동일하게 동일한 기술적 사상을 적용될 수 있을 것이다.
이와 같이 디코딩과 인코딩 순서를 변경함으로써, 이전 프레임의 인코딩을 완료되기 전에, 이후 프레임의 디코딩을 수행할 수 있도록 하여, 코덱 장치(1000)와 이미지 처리 장치(2000)가 같은 수행 시간에 병렬적으로 수행할 수 있는 경우에, 코덱 장치에서 디코딩과 인코딩을 병렬로 수행할 수 없는 경우에도 본 발명에 따라서 그래픽 처리와 인코딩 또는 디코딩에 소요되는 수행시간 중 중복(Overlap)되는 시간만큼 속도를 향상할 수 있는 장점을 가지게 된다. 물론, 도 3의 도면에서, 이미지 처리장치(2000)에서 수행되는 그래픽 처리의 수행시간이 인코딩의 수행시간보다 길어지는 경우에는 그래픽 처리와 디코딩 수행간에도 시간축으로 겹치는 영역이 발생하여(도 4a,도 4b 참조) 이미지 처리장치(2000)의 그래픽 처리와 코덱 장치(1000)의 디코딩도 병렬로 처리될 것은 자명할 것이다.
도 4a 와 4b는 본 발명의 또 다른 일 실시예를 나타낸 도면이다. 도 4a 와 4b는 도 3과는 달리, 그래픽 처리에 수행되는 시간이 코덱 장치(1000)에서 수행되는 디코딩 또는 인코딩의 수행 시간보다 긴 예로서, 일반적으로 그래픽 처리가 이미지 프레임의 픽셀 단위로 이루어지고 픽셀의 숫자가 상당히 많은 것을 고려하고, 그래픽 처리에 높은 품질을 요구한다는 것을 고려한다면 일반적인 예에 해당할 것이다. 이하에서는 각 도면에 대해서 설명하도록 한다.
도 4a 는 디코딩과 인코딩은 디코딩과 인코딩이 병렬로 수행할 수 없는 코덱 장치(1000)에서 실행되며, 그래픽 처리는 코덱 장치와는 별도로 구성된 병렬로 수행가능한 이미지 처리 장치(2000)에서 실행되는 또 다른 예이다. 도 4a에 따른면 이미지 프레임 1,2,3에 대해서, 코덱 장치에서 디코딩을 연속적으로 수행하고, 디코딩을 통해 변환된 이미지 프레임 대해서는 이미지 처리 장치에서 코덱 장치와는 병렬로 수행되며, 인코딩은 이미지 프레임 3에 대한 그래픽 처리를 이미지 처리 장치에서 수행되는 시점에 시작을 하고 있다. 인코딩과 디코딩은 코덱 장치에서 교대로 수행되며, 그래픽 처리는 이미지 처리 장치에서 코덱 장치와 병렬로 수행되는 경우로서, 본 예에서 보면, 이미지 프레임에 대한 처리 시간이 인코딩과 디코딩을 처리하는 데 수행되는 시간과 유사한 경우에는 동영상 변환에 소요되는 시간을 인코딩과 디코딩의 합산의 시간으로 변환 속도를 향상할 수 있는 장점이 있다. 본 예에서도 다음 이미지 프레임의 디코딩을 인코딩의 순서에 앞서서 수행함으로써, 수행속도를 향상할 수 있게 된다.
도 4b는 또 다른 실시 예로서, 본 예에서는 코덱 장치(1000)에서 디코딩과 인코딩의 과정이 연속적인 프레임에 대해서 연속적으로 수행되는 예를 보여주고 있다. 도 4b에서는 이미지 프레임 '1'의 인코딩 과정을 제외하고는 디코딩과 인코딩 과정이 3개씩 이루어지고 있다. 예에서, 이전 이미지 프레임의 인코딩 과정이 완료되기 전에 다음 이미지 프레임에 대한 디코딩을 수행함으로써, 동영상 변환의 속도향상을 기할 수 있음을 역시 볼 수 있는데, 디코딩과 인코딩이 이루어지는 코덱 장치에는 디코딩과 인코딩을 실행하기 위한 프로세서(Processor)를 탑재하고 상기 프로세서에서 디코딩과 인코딩 과정이 실행된다. 디코딩과 인코딩 과정이 실행될 때, 압축의 특성상, 이웃하는 이미지 프레임의 정보를 참조하는 것이 일반적이어서, 디코딩이나, 인코딩을 연속적으로 실행하는 것이 메모리의 접근 속도 향상을 가져올 수 있고, 프로세서(Processor)상에서의 디코딩과 인코딩 프로그램의 전환에 따른 비용을 고려한다면 도 4b와 같이 연속적으로 디코딩과 인코딩을 실행하도록 구성하여, 효율적인 메모리 관리와 프로그램 전환에 따른 비용을 감소하도록 구성할 수도 있다. 도 3, 4a 및 도 4b는 본 발명의 아이디어를 구체화한 일 실시예를 나타낸 것이며, 이 외에도 다양한 실시의 형태로 구현할 수 있을 것이다.
도 5는 코덱 장치(1000)의 구성요소를 구체화한 일 실시예를 나타낸 블록도이다. 도 5에 따르면 코덱 장치(1000)는 디코더부(1100)과 인코더부(1200)와 중앙 처리부(1300)을 포함하고 있다. 디코더부(1100)는 압축된 동영상 정보를 일련의 이미지 프레임 리스트로 변환하는 작업을 담당한다. 압축된 동영상 정보는 전역메모리(4000)에서 읽어내고 디코딩하여 이를 전역메모리에 저장하거나 혹은 이미지 처리 장치(2000)에 직접 디코딩 이미지 프레임 리스트를 직접 전달할 수도 있을 것이다. 인코더부(1200)는 이미지 처리 장치(2000)에서 그래픽 처리된 이미지 프레임 리스트에 대해서 다시 원하는 형식의 동영상 정보로 인코딩을 한다. 인코딩되는 표준은 특정 디지털 시스템 기기에서 실행할 수 있는 표준으로 인코딩을 하는 것이 일반적일 것이다. 중앙 처리부(1300)는 디코더부(1100)와 인코더부(1200)가 실행되는(수행되는) 처리 유닛으로서, 중앙 처리부(1300)에서 디코더부와 인코더부가 교대로 수행된다. 교대로 수행되는 경우로서, 중앙 처리부(1300)가 디코더부(1100)와 인코더부(1200)에서 요구하는 자원(Resource - Processor 개수, HW Accelator 제약, 프로그램이 수행되는 Thread의 할당 부족, Process의 할당 부족 등)을 정상적으로 배분하지 못하는 경우에는 디코더부와 인코더부가 병렬로 수행할 수 없는데 예로서 일반 개인용 PC에서 프로그램이 가용가능한 쓰레드(Thread)의 부족으로 불가능한 경우도 있으며 내장형 시스템에서는 다양한 이유로 병렬로 수행할 수 없는 것이 일반적이다.
도 6은 코덱 장치(1000)중 중앙 처리부(1300)의 구성의 일 실시예를 나타낸 블록도이다. 도 6에 따르면 중앙 처리부(1300)는 하나 이상의 프로세서 유닛(1310)을 포함할 수 있고 하드웨어 가속기(1350)와 그외 메모리 제어기(1330)와 외부 메모리 제어기(1340)과 시스템 버스(1320)으로 구성되어 있다. 중앙 처리부(1300)에서 실행되는 디코더부(1100)과 인코더부(1200)는 다양한 형태로 수행될 수 있을 것이다. 예를 들어서, 디코더부(1100)의 실행은 프로세서 유닛1에서 4까지 할당 받아서 수행하고 인코더부(1200)는 반대로 프로세서 유닛1과 유닛2 그리고 하드웨어 가속기에 맵핑되어 실행되는 것을 산정할 수도 있고 다양한 형태로 수행되는 것을 산정할 수 있다. 비록 중앙 처리부에 하나 이상의 프로세서가 탑재되어 있다고 하더라도, 프로세서나 쓰레드(Thread) 할당의 제약이나, 하드웨어 자원 할당의 제약으로 인코더부와 디코더부가 교대로 수행을 할 수밖에 없는 경우가 있고 교대로 수행을 하는 것이 전원 관리나, 프로세서 관리 등에서 장점으로 인정 받을 수도 있다.
도 7은 이미지 처리 장치(2000)에 대한 구체적인 일 실시예를 나타낸 블록도이다. 도 7에 따르면 이미지 처리 장치(2000)는 이미지 처리부(2100)와 중앙 처리부(2200)와 공유 메모리(2300)를 포함한다.
이미지 처리부(2100)는 이미지 프레임에 대한 그래픽 처리를 담당하는 것으로서, 그래픽 처리 후에는 코덱 장치(1000)에 그래픽 처리된 이미지 프레임을 제공하여 특정 포맷의 동영상으로 인코딩이 될 수 있도록 한다. 이미지 처리부에서 처리하는 그래픽 처리는 일반적으로 스케일링(Scaling),샤프닝(Sharpening),노이즈 감쇠(Noise Reduction), 디블록킹(Deblocking) 필터 등과 같이 이미지 프레임의 크기를 조절하거나, 이미지 품질 향상을 위한 이미지 프레임 전체에 대해서 픽셀단위의 처리이다. 상기 그래픽 처리에는 이 외에도 색차 변환 작업도 포함될 수 있다. 색차 변환 작업은 특정 포맷의 컬러 스페이스(Color Space)로부터 다른 포맷의 컬러 스페이스(Color Space)로의 변환으로서 예를 들어서 YUV 신호를 RGB 신호로 혹은 반대로 변환하는 작업등을 들 수 있다. 도 7에 따르면 이미지 처리부(2100)는 수평축 이미지 처리부(2110)와 수직축 이미지 처리부(2120)를 포함하여 구성할 수 있다. 그래픽 처리는 이미지 프레임 내에 존재하는 픽셀 각각에 대하여 그래픽 처리를 하는 것으로서, 대부분의 그래픽 처리는 하나의 픽셀에 대한 결과 값을 산출하기 위해서는 인접하는 연속하는 픽셀로부터 산출한다. 픽셀의 결과 값을 이미지 프레임에서 정형적으로 산출하고 공유 메모리(2300)를 효율적으로 활용하여 속도향상을 위해서, 수평축 이미지 처리부(2110)에서 이미지 프레임에 대해서 수평축으로 정형적으로 각 픽셀별로 그래픽 처리를 한 후에 다시 수직축 이미지 처리부(2120)에서 이미지 프레임의 수직축 방향으로 픽셀별로 그래픽 처리를 함으로써 공유 메모리(2300)에서 픽셀간의 인접성(Locality)을 효율적으로 활용하여 속도를 향상할 수 있다.
중앙 처리부(2200)는 이미지 처리부(2100)가 실행되는(수행되는) 처리 유닛으로서, 상기 중앙 처리부의 구성의 형태와 OS(Operating System)의 환경에 따라서, 상기 이미지 처리부에서 수행되는 이미지 프레임의 각 픽셀의 계산이 병렬로 계산될 수도 있고, 혹은 순차적으로 계산될 수도 있을 것이다.
공유 메모리(2300)는 코덱 장치(1000)에서 디코딩된 이미지 프레임을 일시적으로 저장하고, 상기 이미지 처리부(2100)가 그래픽 처리를 하기 위한 메모리 공간을 제공한다. 상기 공유 메모리는 일련의 이미지 프레임 전체를 포함하여 저장할 수도 있고, 혹은 하나의 이미지 프레임 정보 중 일부만을 가지고 있을 수도 있다.
도 8과 도9 각각은 이미지 처리 장치(2000) 중 중앙 처리부(2200)의 일 실시예를 나타낸 블록도이다. 도 8에 따르면, 중앙 처리부(2200)는 동일한 기능을 수행하는 하나 이상의 스트림 프로세서(2210)와 명령어 캐쉬(2260)와 시스템 버스(2220)을 포함한다. 각각의 스트림 프로세서는 명령어 캐쉬(2260)로부터 명령어를 수신하여, 특정 픽셀에 대한 그래픽 처리를 수행할 수 있으며, 다른 스트림 프로세서도 마찬가지로 같은 명령어를 명령어 캐쉬(2260)에서 수신하며, 다만 스트림 프로세서 각각은 다른 픽셀에 대해서 동일한 명령을 각각의 프로세서에서 수행할 수 있도록 함으로써 하나의 명령어 캐쉬(2260)와 공유 메모리(2300)에 저장된 동일한 이미지 프레임 정보를 활용하여 효율적으로 그리고 병렬적으로 그래픽 처리를 할 수 있도록 한다. 물론 공유 메모리(2300)는 수신된 이미지 프레임 정보 중 일부만을 가지도록 구성할 수도 있고, 이미지 처리부(2100)에서 처리된 일부의 결과를 저장할 수도 있고, 혹은 그외 기타 상수 관련된 정보도 포함할 수도 있다. 도 9는 또 다른 이미지 처리 장치(2000)의 중앙 처리부(2200)에 대한 다른 실시예를 나타내고 있는데, 도 9는 도 8에 언급한 중앙 처리부(2200)의 개념이 확장된 형태인 계층화된 구조로 된 중앙 처리부(2200)를 나타낸 도면이다. 도 9에 따르면, 하나 이상의 멀티 스트림 프로세서 유닛(2290)과 멀티 스트림 프로세서 유닛 외부에 위치한 공유 메모리(2300)을 포함하고 있다. 멀티 스트림 프로세서 유닛(2290)은 하나 이상의 스트림 프로세서(2210,도면- 'SP'로 명함)와 공유 메모리(2300,도면 - 'SM'으로 명함)와 명령어 캐쉬(2260)을 포함한다. 각각의 멀티 스트림 프로세서 유닛은 그래픽 처리의 병렬성을 활용해서, 그래픽 처리를 할 이미지 프레임 중에서, 각각 다른 영역을 병렬로 처리하게 함으로써, 그래픽 처리의 효율적인 처리와 속도 향상을 꾀할 수 있는 프로세서이다. 멀티 스트림 프로세서 유닛(2290) 내부에 위치한 공유 메모리(2300)와 멀티 스트림 프로세서 유닛(2290) 외부에 위치한 공유 메모리(2300)를 계층적으로 구성함으로써, 이미지 프레임에 존재하는 병렬성과 인접성(Spatial Locality)를 활용하여 속도 향상을 꾀할 수도 있을 것이다. 예를 들어서 멀티 스트림 프로세서 유닛(2290)외부에 위치한 공유 메모리는 DRAM 등의 대용량을 지원하고 저렴한 비용인 하드웨어 구조를 가지고 이미지 프레임 전체에 대한 정보를 저장하고 멀티 스트림 프로세서 유닛(2290) 내부에 위치한 공유 메모리는 레지스터(Register)나 Nor Flash 형태의 하드웨어 구조를 가지며 접근 속도가 빠른 메모리로 구성하여 멀티 스트림 프로세서 유닛의 스트림 프로세서 각각이 처리하는 일부의 이미지 프레임 정보만을 저장하고, 계산된 결과를 저장하도록 계층화된 공유 메모리를 구성할 수도 있다.
이하에서는 도 10과 도 11의 그래픽 처리의 일 실시 예를 사용하여 이미지 처리 장치(2000)에서의 그래픽 처리의 방법과 속도 향상의 방법을 같이 검토하도록 한다. 그래픽 처리에는 다양한 형태의 처리가 필요하며, 이하에서는 그래픽 처리의 일태양인 스케일링 필터를 이용하여 속도 향상 방법에 대해서 살펴보도록 한다.
도 10은 스케일링 필터를 적용하기 위한 일반적인 실시형태를 그림으로 나타낸 도면이다. 스케일링 필터를 적용하기 위해서는 입력되는 이미지 프레임의 크기와 출력되는 이미지 프레임의 크기가 정의되고, 스케일링에 사용될 필터의 종류도 지정이 되어야 한다. 스케일링 필터에는 복잡도에 따라 다양한 종류의 스케일링 필터가 존재하며, 이 스케일링 필터는 일반적으로 출력되는 이미지 프레임의 각 픽셀별로 입력 이미지 프레임의 픽셀의 조합으로 출력값을 계산하기에 시간 복잡도가 아주 높은 경향이 있다. 공개된 오픈소스 코드에서의 실험에 따르면, 동영상 변환 프로그램에서 스케일링 필터는 스케일링 필터의 종류에 따라서 약 30%에서 60% 정도까지의 수행시간 비중이 있는 것으로 알려져 있다. 즉 복잡한 스케일링 필터를 사용하는 경우에는 디코딩과 스케일링 필터 그리고 인코딩 과정 중에서 스케일링 필터가 수행시간에서 차지하는 과정이 약 60 % 전후까지의 시간을 차지함을 알 수 있고, 따라서 이러한 스케일링 필터 혹은 그래픽 처리의 시간을 줄이는 것은 전체 수행시간의 병목지점(Bottle-neck)으로서 전체 수행시간을 줄일 수 있는 효과적인 방안이 된다.
도 10에 따른 일반적인 스케일링 필터 처리방법은 이미지 처리 장치(2000)의 이미지 처리부(2100)의 수평축 이미지 처리부(2110)에서 입력된 이미지 프레임을 수평축 방향으로 스케일링을 처리(도 10-a)를 하고 수직축 이미지 처리부(2120)에서 수평축 방향의 스케일링 처리가 된 결과를 바탕으로 다시 수직축으로 스케일링 처리를 하여 출력 이미지 프레임(도 10-b 의 우측 이미지)을 생성한다. 도 10-a의 예에서, 'b'와 'd'영역의 픽셀 출력 값을 계산하기 위해서는 원본 이미지 프레임에서 'a'와 'c' 영역의 픽셀들을 샘플링하고 샘플링 된 값에서 스케일링 필터의 벡터 곱을 수행하여 'b'와 'd'의 값을 계산한다. 마찬가지로 수도 10-b에서는 수직축으로 'b'와 'd'를 계산하기 위하여 수평축 방향과 유사한 방식으로 계산이 이루어진다. 도 10에서 예시된 스케일링 필터 처리방법은 처리되는 중앙 처리부(2200)의 구조와 공유 메모리(2300)의 구조에 따라서 하드웨어적으로 그리고 소프트웨어적으로 구현되는 방식은 다양하게 달라질 수 있을 것이다. 이미지 프레임에 대한 메모리 접근의 효율성에 따라서 살펴보면, 공유 메모리(2300)를 포함하여, 하드웨어적으로 제공되는 메모리는 인접하는 메모리 주소 영역에 대해서는 빠른 속도로 정보에 접근할 수 있고 반면에 연속적인 인접 메모리가 아닌 경우에는 상대적으로 늦은 속도로 정보를 접근할 수 있다. 이러한 특성은 특히 DRAM 이나 NAND Flash와 같은 메모리에서 두드러진다. DRAM과 같은 메모리는 연속적인 읽기와 쓰기가 가능하여 첫번째 접근하는 주소의 정보는 일정 주기의 시간(예 : 3 Cycle Time)이 필요하나 연속되는 주소의 정보는 즉각적(예 : 1 Cycle Time)으로 제공할 수 있다. 따라서, 이미지 프레임의 정보가 수평축 방향(X 축)으로 연속적인 메모리 영역에 저장되는 경우에는 수평축 방향으로 인접하는 픽셀 정보는 연속적인 메모리 영역에 저장되어 수평축 이미지 처리부(2110)에서 이미지 프레임 정보에 대한 접근은 신속히 이루어질 수 있다. 반면에, 수직축 이미지 처리부(2120)에서는 인접하는 수직 방향의 픽셀 정보는 물리적으로 메모리에 인접되지 않아 수직축으로 출력 값을 계산하기 위해서는 픽셀 접근의 속도 저하를 야기한다. 이러한 속도 저하를 방지하기 위해서, 수평축 이미지 처리부(2110)에서 처리된 결과를 저장할 때, 이미지 프레임의 수평축과 수직축을 변경하여 저장하면, 수평축 이미지 처리부에서 처리된 일련의 각 픽셀 결과 값은 수직축 방향으로 저장되며(예를 들어, (10,1)의 X,Y 좌표에 결과를 저장할 값을 (1,10)의 X,Y 좌표의 주소에 저장하며, (10,2) 좌표에 저장할 값은 (2,10)으로 계산된 주소에 저장되어 양 좌표값은 물리적으로 연속적이지 않은 위치에 존재하도록 구성하고, 반면에, (1,10)에 (2,10)의 위치에 저장할 값은 연속적인 주소에 위치하도록 구성한다.), 저장된 후에 수직축 이미지 처리부에서 처리를 할 때는 수평축 이미지 처리부에서 수평축과 수직축을 변경하여 저장함에 따라서 수직축으로 접근시에는 인접한 연속적인 메모리에서 읽어 들일 수 있으므로 그래픽 처리의 속도를 향상할 수 있는 장점을 가지게 된다. 도 11은 수평축 이미지 처리부(2110)에서 수평축 이미지 처리를 하고 난 후의 결과를 수평방향에서 수직방향으로 위치를 변경하여(트랜스포즈-Transpose) 저장하고(도 11-a), 수직축 이미지 처리부(2120)에서 처리된 이미지 프레임 결과를 인접하는 연속적인 메모리에서 수직 방향의 픽셀 정보를 순차적으로 읽어 들이고 이를 바탕으로 스케일링 처리를 한 결과이다(도 11-b). 물론 이러한 저장되는 축을 변경하는 것은 수직방향으로 먼저 처리한 후에 수평 방향으로 처리하는 경우에도 쉽게 적용할 수 있을 것이며, 이러한 트랜스포즈 형식의 중간 처리 결과의 저장 방식은 다른 그래픽 처리에도 쉽게 적용될 수 있고 속도 향상을 기할 수 있다.
또한 그래픽 처리의 한 종류인 색차변환 방법은 다른 그래픽 처리의 전후에 혹은 독자적인 그래픽 처리로서 이루어진다. 색차변환 방법은 예를 들어, RGB 신호를 YUV 신호로 변경하기 위해서는 복잡한 실수 연산을 수반한다. 이러한 실수 연산은 소요시간을 많이 차지하며, 특정한 시스템에서는 정수연산으로의 시뮬레이션을 통해서 이루어지기도 한다. 따라서 실수연산을 사용하지 않는 것이 속도 향상을 위해서는 좋은 방안이 되는데, 공유 메모리(2300)나 혹은 이미지 처리 장치(2000)에 탑재된 다른 메모리(예 : 상수 메모리)에 참조방식(Lookup Table Method)으로 변환 테이블을 구성하여, 단지 메모리의 접근 시간만으로 색차변환이 이루어지도록 하여 그래픽 처리의 속도 향상을 꾀할 수도 있고 이는 동영상 변환의 속도 향상을 꾀할 수 있을 것이다.
1000 : 코덱 장치
1100 : 디코더부
1200 : 인코더부
1300 : 중앙 처리부
1310 : 프로세서 유닛
1320 : 시스템 버스
1330 : 메모리 제어기
1340 : 외부 메모리 제어기
1350 : 하드웨어 가속기
2000 : 이미지 처리 장치
2100 : 이미지 처리부
2110 : 수평축 이미지 처리부
2120 : 수직축 이미지 처리부
2200 : 중앙 처리부
2210 : 스트림 프로세서
2220 : 시스템 버스
2240 : 외부 메모리 제어기
2250 : 하드웨어 가속기
2260 : 명령어 캐쉬
2300 : 공유 메모리
3000 : 통신부
4000 : 전역 메모리
5000 : 외부저장 매체

Claims (12)

  1. 압축된 동영상 정보를 일련의 2개 이상의 이미지 프레임을 포함하는 이미지 프레임 리스트(N개의 이미지 프레임, N > 1 이상)로 변환하는 디코딩과 일련의 이미지 프레임 리스트에서 압축 동영상을 생성하는 인코딩을 교대로 수행하는 코덱 장치; 및
    상기 코덱 장치에서 디코딩된 일련의 이미지 프레임 리스트에 대하여 그래픽 처리(Graphic Processing)를 하고 상기 코덱 장치에서 인코딩을 하기 위해 그래픽 처리된 일련의 이미지 프레임 리스트를 제공하는 이미지 처리 장치;를 포함하며,
    상기 이미지 프레임 리스트의 하나의 이미지 프레임에 대한 상기 이미지 처리 장치에서의 그래픽 처리의 처리 시간은 상기 코덱 장치의 상기 하나의 이미지 프레임에 대한 디코딩 및 인코딩 처리 시간 보다 길고,
    상기 이미지 처리 장치가 상기 하나의 이미지 프레임에 대한 그래픽 처리를 수행하는 동안에, 상기 코덱 장치는 상기 하나의 이미지 프레임 이전의 이미지 프레임에 대안 인코딩과 인코딩 이후에 상기 하나의 이미지 프레임 이후의 이미지 프레임에 대한 디코딩을 교대로 수행하는 것을 특징으로 하는 동영상 변환 장치.
  2. 제1항에 있어서,
    상기 코덱 장치는
    압축된 동영상 정보로부터 일련의 이미지 프레임 리스트로 변환하는 디코더부;
    상기 이미지 처리 장치에서 처리된 일련의 이미지 프레임 리스트에서 압축된 동영상 정보를 생성하는 인코더부; 및
    상기 디코더부와 상기 인코더부가 수행되는 중앙 처리부를 포함하는 것을 특징으로 하는 동영상 변환 장치.
  3. 제1항에 있어서,
    인코딩되는 상기 이전의 이미지 프레임과 상기 하나의 이미지 프레임 사이에 또는 디코딩되는 상기 이후의 이미지 프레임과 상기 하나의 이미지 프레임 사이에는 동영상 변환이 이루어져야 하는 이미지 프레임이 존재하는 것을 특징으로 하는 동영상 변환 장치.
  4. 제2항에 있어서,
    상기 인코더부와 상기 디코더부가 상기 중앙처리부에서 수행될 때, 인코더부와 디코더부가 교대로 수행되는 것을 특징으로 하는 동영상 변환 장치.
  5. 제1항에 있어서,
    상기 이미지 처리 장치는 그래픽 처리를 수행할 수 있는 둘 이상의 프로세서(Processor)를 포함하며, 상기 이미지 처리부에서 처리되는 상기 그래픽 처리에는 스케일링(Scaling) 필터 , 디블록킹(Deblocking) 필터 , 샤프닝(Sharpening) 필터 , 인터폴레이션(Interpolation) , 노이지 감쇄 처리 및 색차변환 중 하나인 것을 특징으로 하는 동영상 변환 장치.
  6. 제5항에 있어서,
    상기 이미지 처리 장치에서 상기 그래픽 처리가 스케일링 필터 , 디블록킹 필터 , 샤프닝 필터 또는 노이지 감쇄 처리인 경우, 상기 이미지 처리부가 그래픽 처리된 이미지 프레임에 대하여 색차변환을 더 처리하는 것을 특징으로 하는 동영상 변환 장치.
  7. 제5항에 있어서,
    상기 이미지 처리 장치는 상기 이미지 프레임을 읽고 쓸 수 있는 공유메모리를 더 포함하며,
    각각의 프로세서는 상기 공유메모리에서 이미지 프레임의 일부를 읽어 들이고, 그래픽 처리를 수행한 후에 처리된 정보를 상기 공유메모리에 저장하는 것을 특징으로 하는 동영상 변환 장치.
  8. 제7항에 있어서,
    상기 이미지 처리 장치는 이미지 프레임에 대하여 수평축으로 그래픽을 처리하는 수평축 이미지 처리부와 상기 이미지 프레임에 대하여 수직축으로 그래픽을 처리하는 수직축 이미지 처리부로 구성되며,
    상기 수평축 이미지 처리부와 상기 수직축 이미지 처리부의 처리 결과는 상기 공유메모리에 저장되는 것을 특징으로 하는 동영상 변환 장치.
  9. 제8항에 있어서,
    상기 공유 메모리는 연속적인(Burst) 읽기 또는 쓰기가 가능한 것을 특징으로 하며,
    상기 수평축 이미지 처리부 또는 상기 수직축 이미지 처리부의 그래픽 처리결과가 저장될 때 저장되는 주소가 트랜스포즈(Transpose)되는 것을 특징으로 하는 동영상 변환 장치.
  10. 제5항 또는 제6항에 있어서,
    상기 그래픽 처리가 색차변환인 경우, 참조방식(Table Lookup Method)으로 이루어지는 것을 특징으로 하는 동영상 변환 장치.
  11. 제3항에 있어서,
    상기 코덱 장치와 상기 이미지 처리 장치 간에 이미지 프레임 리스트를 포함한 정보를 송수신하는 통신부;를 더 포함하며,
    상기 통신부의 통신 방식이 디지털 통신 방식이고,
    상기 이미지 처리 장치는
    통신부와 송수신되는 정보를 임시로 저장하기 위한 입력 버퍼와 출력 버퍼를 포함하며,
    상기 입력 버퍼는 상기 코덱 장치에서 디코딩된 이미지 프레임을 포함한 정보를 수신하여 저장하고, 상기 출력 버퍼는 상기 이미지 처리 장치에서 그래픽 처리한 이미지 프레임을 포함한 정보를 저장하여 출력하는 것을 특징으로 하는 동영상 변환 장치.
  12. 제11항에 있어서,
    상기 입력 버퍼와 출력 버퍼는 각각 2개의 분리된 저장 공간으로 구성되며, 상기 입력 버퍼와 상기 출력 버퍼의 상기 2개의 분리된 저장 공간에 저장되는 이미지 프레임은 다른 이미지 프레임인 것을 특징으로 하는 동영상 변환 장치.
KR20100020586A 2010-03-08 2010-03-08 동영상 변환 장치 KR101484101B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20100020586A KR101484101B1 (ko) 2010-03-08 2010-03-08 동영상 변환 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20100020586A KR101484101B1 (ko) 2010-03-08 2010-03-08 동영상 변환 장치

Publications (2)

Publication Number Publication Date
KR20110101530A KR20110101530A (ko) 2011-09-16
KR101484101B1 true KR101484101B1 (ko) 2015-01-16

Family

ID=44953530

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100020586A KR101484101B1 (ko) 2010-03-08 2010-03-08 동영상 변환 장치

Country Status (1)

Country Link
KR (1) KR101484101B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074240B1 (ko) 2018-10-17 2020-02-06 네오컨버전스 주식회사 동영상 변환방법 및 장치
WO2021177478A1 (ko) * 2020-03-02 2021-09-10 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 영상표시장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000310984A (ja) * 1999-03-30 2000-11-07 Matsushita Electric Ind Co Ltd 組み合わされたビデオおよびコンピュータ生成画像をスケーリングするシステムおよび方法
KR20070033417A (ko) * 2004-07-08 2007-03-26 프리스케일 세미컨덕터, 인크. 디블록킹 필터링을 수행하는 방법 및 시스템
KR20090021588A (ko) * 2007-08-27 2009-03-04 중앙대학교 산학협력단 Dsp 기반 분산 트랜스코딩 장치 및 방법
US20090060032A1 (en) * 2007-05-11 2009-03-05 Advanced Micro Devices, Inc. Software Video Transcoder with GPU Acceleration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000310984A (ja) * 1999-03-30 2000-11-07 Matsushita Electric Ind Co Ltd 組み合わされたビデオおよびコンピュータ生成画像をスケーリングするシステムおよび方法
KR20070033417A (ko) * 2004-07-08 2007-03-26 프리스케일 세미컨덕터, 인크. 디블록킹 필터링을 수행하는 방법 및 시스템
US20090060032A1 (en) * 2007-05-11 2009-03-05 Advanced Micro Devices, Inc. Software Video Transcoder with GPU Acceleration
KR20090021588A (ko) * 2007-08-27 2009-03-04 중앙대학교 산학협력단 Dsp 기반 분산 트랜스코딩 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074240B1 (ko) 2018-10-17 2020-02-06 네오컨버전스 주식회사 동영상 변환방법 및 장치
WO2021177478A1 (ko) * 2020-03-02 2021-09-10 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 영상표시장치

Also Published As

Publication number Publication date
KR20110101530A (ko) 2011-09-16

Similar Documents

Publication Publication Date Title
KR102627189B1 (ko) 2차원 포인트 클라우드들을 인코딩 및 디코딩하기 위한 방법 및 장치
US20140086309A1 (en) Method and device for encoding and decoding an image
CN103310820B (zh) 一种对多媒体播放器进行优化的方法
CN1997155B (zh) 混合多比特深度视频处理体系结构
CN101908035B (zh) 视频编解码方法、gpu及其与cpu的交互方法及系统
CN101248430B (zh) 视频处理的转置缓冲
TWI582689B (zh) 用於多重格式影像處理之可組配緩衝器分派技術
JP4519082B2 (ja) 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
KR20180054797A (ko) 프리-페칭에 의한 효율적 디스플레이 프로세싱
US11769234B2 (en) Methods and apparatus for histogram based tone mapping
US20140219361A1 (en) Image data encoding for access by raster and by macroblock
US20110316862A1 (en) Multi-Processor
KR102231975B1 (ko) 순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술
US8612981B2 (en) Task distribution method
US7958321B2 (en) Apparatus and method for reducing memory access conflict
US7636497B1 (en) Video rotation in a media acceleration engine
KR101484101B1 (ko) 동영상 변환 장치
CN101304533B (zh) 一种视频处理装置
CN110324668A (zh) 图像块编码中的变换方法、解码中的反变换方法及装置
CN116700943A (zh) 一种视频播放系统、方法以及电子设备
TWI565303B (zh) 影像處理系統及影像處理方法
US20030123555A1 (en) Video decoding system and memory interface apparatus
US20060170708A1 (en) Circuits for processing encoded image data using reduced external memory access and methods of operating the same
CN100527818C (zh) 数字影音资料的内存存取方法及装置
JP2011160077A (ja) 復号装置および方法

Legal Events

Date Code Title Description
A201 Request for 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: 20180105

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200113

Year of fee payment: 6