KR20110101530A - Moving picture tranformation device - Google Patents

Moving picture tranformation device Download PDF

Info

Publication number
KR20110101530A
KR20110101530A KR1020100020586A KR20100020586A KR20110101530A KR 20110101530 A KR20110101530 A KR 20110101530A KR 1020100020586 A KR1020100020586 A KR 1020100020586A KR 20100020586 A KR20100020586 A KR 20100020586A KR 20110101530 A KR20110101530 A KR 20110101530A
Authority
KR
South Korea
Prior art keywords
image
image frame
image processing
video
processing
Prior art date
Application number
KR1020100020586A
Other languages
Korean (ko)
Other versions
KR101484101B1 (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 KR20100020586A priority Critical patent/KR101484101B1/en
Publication of KR20110101530A publication Critical patent/KR20110101530A/en
Application granted granted Critical
Publication of KR101484101B1 publication Critical patent/KR101484101B1/en

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

본 발명은 동영상 변환 장치에 관한 것으로서, 상세하게는 하나의 형식으로 된 동영상 정보를 디코딩하여 이미지 프레임 리스트로 변환하고, 상기 이미지 프레임 리스트 대하여 그래픽 처리를 한 후에, 그래픽 처리된 이미지 프레임 리스트를 다시 동영상 정보로 변환하는 동영상 변환 장치에 관한 것으로서, 동영상 변환과 이미지 처리에 소요되는 시간을 획기적으로 줄이는 방안을 제시함으로써, 동영상 변환과 이미지 처리의 속도를 향상시키고, 실시간으로 동영상 변환을 할 수 있도록 하는 장점을 제공한다. The present invention relates to a video converting apparatus. In detail, the present invention relates to a video converting apparatus. In detail, the present invention relates to a video converting apparatus. The present invention relates to a video converting device that converts information into information, and proposes a method of drastically reducing the time required for video converting and image processing, thereby improving the speed of video converting and image processing and converting video in real time. To provide.

Description

동영상 변환 장치 {Moving Picture Tranformation Device }Moving Picture Tranformation Device

본 발명은 동영상 변환 장치에 관한 것으로서, 상세하게는 하나의 형식으로 된 동영상 정보를 디코딩하여 이미지 프레임으로 변환하고, 상기 이미지 프레임에 대하여 그래픽 처리를 한 후에, 그래픽 처리된 이미지 프레임을 다시 동영상 정보로 변환하는 동영상 변환 장치에 관한 것이다. The present invention relates to a video converting apparatus. In detail, the present invention relates to a video converting apparatus. In detail, the video information is decoded into an image frame, the graphics frame is processed, and the graphic processed image frame is converted into the video information. A video converting apparatus to convert.

휴대폰, PMP(Portable Media Playr), 네비게이션 시스템, DMB(Digital Multimedia Broadcasting) 시스템, IPTV(Internet Protocol Television), MP3 재생기, MP4 재생기 등과 같은 디지털 시스템이 많이 보급되고, 일반 사용자는 디지털 기술 기반의 영상과 음성을 쉽게 보고들을 수 있는 환경은 지속적으로 확대되고 있다. Digital systems such as mobile phones, portable media players (PMPs), navigation systems, digital multimedia broadcasting (DMB) systems, IPTV (Internet Protocol Television), MP3 players, and MP4 players are widely available. Easily seeing and hearing voices continues to expand.

휴대폰이나 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 프레임과 그 이하의 초당 프레임 출력을 가지는 경우가 많이 있다. A system capable of playing video, such as a mobile phone or a PMP, has various characteristics regarding video depending on the device depending on the purpose of each device. For example, each digital system may have a different output resolution. In the case of mobile phones, it may have an output resolution of QVGA (Quarter Video Graphics Array) (QVGA) of 320 by 240, and SD (Standard of 720 by 480) for IPTV. There are many cases of having a definition-class TV or a high-definition TV output resolution. In addition, PMP may support 720 or 480 SD or HD resolution. On the other hand, in the case of an MP3 player, the output resolution usually has a low output resolution of QVGA or less. Apart from this output resolution, the number of frames per second can also vary from device to device, with 29.97 frame outputs per second, often with 24 and less frames per second.

그외에도 각 디지털 시스템 기기는 디지털 동영상을 재생하기 디코딩 기술을 다르게 구성하는 경우가 많이 있다. 예를 들어서, AVI(Audio Video Interleaving) 기술을 동영상 재생기술로 사용하는 기기가 있을 수 있고, 혹은 MPEG(Moving Picture Experts Group)2, MPEG4, MPEG7 등의 압축 기술을 사용하는 기기가 있을 수도 있으며, 그 외 다른 표준 포맷으로 H.264와 같은 압축 기술을 사용할 수도 있을 것이다. In addition, each digital system device may have a different decoding technology for playing digital video. For example, a device may use AVI (Audio Video Interleaving) technology as a video playback technology, or a device may use compression technology such as Moving Picture Experts Group (MPEG) 2, MPEG4, MPEG7, Other standard formats may use compression techniques such as H.264.

동영상 정보는 개인이나 영업으로 목적으로 하는 사업자에 의해서 배포되는데, 배포되는 동영상 정보는 압축 기술의 방법에 따라서, 다양한 형태의 압축기술을 사용하여 배포되고, 동일한 압축 기술 내에서도 초당 프레임의 수와 출력 해상도 등 다양한 기술적인 차이를 가지면서 배포된다. The video information is distributed by operators for the purpose of personal or business purposes. The video information is distributed using various types of compression techniques, depending on the method of compression technology, and the number of frames per second and output resolution within the same compression technology. It is distributed with various technical differences.

각 디지털 시스템 기기에서 재생할 수 있는 압축기술과 초당 프레임 수와 출력 해상도를 포함한 특징은 일반적으로 고정되는 경우가 많은데, 동영상 정보의 압축기술과 압축기술 내에서의 개별적인 특징과 디지털 시스템 기기에서 디코딩할 수 있는 압축기술과 압축기술 내의 개별적으로 실행할 수 있는 특징의 차이를 극복하고 디지털 시스템 기기에서 동영상 정보를 실행할 수 있도록 하기 위하여 특정 디지털 시스템 기기에서 실행될 수 있는 형태의 동영상의 변환 작업이 필요하게 된다.
Compression techniques that can be played on each digital system device, and features such as frames per second and output resolution, are often fixed. Individual features within the compression technology and compression technology of video information can be decoded by digital system devices. In order to overcome the difference between the compression technology and the features that can be individually executed within the compression technology and to enable the video information to be executed in the digital system device, it is necessary to convert the video in the form that can be executed in the specific digital system device.

도 1은 종래에 특정 디지털 시스템에서 실행될 수 있는 동영상으로 변환하는 동영상 변환 작업을 시간 축을 기준으로 도시한 순서 도면이다. 동영상 변환 작업이 이루어지기 위해서는 압축된 동영상을 이미지 프레임 정보의 리스트로 변환하는 디코딩과정과 이미지 프레임 정보로 변환된 프레임들에 대한 이미지 처리를 수행하는 그래픽 처리과정과 그래픽 처리과정 후에 다시 특정 디지털 시스템 기기에서 구동할 수 있는 형태로 압축하는 인코딩과정으로 이루어지게 된다. 도 1에 따르면, 첫 번째 이미지 프레임을 디코딩한 후에, 이어서 그래픽 처리를 하고, 다시 인코딩 과정을 통해서 첫 번째 이미지 프레임을 처리한다. 첫 번째 이미지 프레임을 처리한 후에 다시 두 번째 이미지 프레임을 처리하는 형태의 순차적인 형식을 취하고 있음을 알 수 있다.1 is a flowchart illustrating a video conversion operation for converting a video into a video that can be executed in a specific digital system based on a time axis. In order to perform a video conversion operation, a specific digital system device is decoded to convert a compressed video into a list of image frame information, a graphic processing to perform image processing on frames converted into image frame information, and a graphic processing process. It consists of an encoding process that compresses into a form that can be driven by. According to FIG. 1, after decoding the first image frame, graphics processing is then performed, and the first image frame is processed again through an encoding process. It can be seen that after processing the first image frame, it takes a sequential form of processing the second image frame again.

도 1과 같은 종래 동영상 변환 작업이 이루어지는 개인용 PC(Personal Computer) 나 내장형 시스템 등에서 리소스의 제한과 CPU의 수행능력의 한계, 혹은 프로그램인 프로세서(Process)나 쓰레드(Thread)의 사용 갯수의 제한 등으로 인하여, 디코딩 과정과 인코딩 과정이 병렬로 수행되지 못하고 또한 그래픽 처리과정 은 PC 에 탑재된 그래픽 카드나 내장형 시스템에 탑재된 그래픽 실행 유닛(GPU-Graphic Processor Unit을 포함한다)이 탑재되어 있어 디코딩과 인코딩과는 별개로 병렬적으로 실행할 수 있음에도 디코딩과 인코딩이 실행되는 코덱장치에서 병렬적으로 실행할 수 없음에 따라 그래픽 처리 또한 디코딩과 인코딩과 함께 순차적으로 실행되어 동영상 변환 작업에 상당한 시간이 소요되는 문제가 있었다. 그래픽 처리과정은 픽셀(Pixel)단위로 구성된 이미지에 대한 화질 등의 향상을 위한 처리로서, 특히 동영상 변환 작업과 같이 출력 해상도의 변환이 있는 경우에는 일반적으로 스케일링 처리와 같은 그래픽 처리가 수반된다. 그래픽 처리과정은 이미지를 구성하는 각각 픽셀별로 그래픽 처리를 처리하게 됨에 따라서, 생성된 일반 동영상의 초당 이미지 프레임의 갯수와 출력 해상도가 높아지는 추세에 따라, 동영상 변환 작업에 상당한 시간을 소요하는 문제점을 가지고, 그래픽 처리의 난이도에 따라서는 디코딩과 인코딩 처리과정보다 더 많은 시간이 걸리는 경우가 많다. 이와 같이 개인 사용자나 사업자 입장에서 특정 동영상만을 실행할 수 있는 특정 디지털 시스템 기기에서 동영상을 재생하기 위해서는 별도의 동영상 변환 작업을 실시해야 하고, 동영상 변환 작업이 완료되기까지 오랜 시간이 걸리는 문제점이 있으며, 동영상 변환 작업을 완료한 후에야 특정 디지털 시스템 기기에 동영상 변환 파일을 옮겨서 재생할 수 있다는 불편함을 가지고 있었다.
In the conventional personal computer (PC) or an embedded system in which the conventional video conversion work such as FIG. 1 is performed, the resource limitation and the CPU performance limit, or the limit of the number of processors or threads used as a program, etc. Therefore, the decoding process and encoding process cannot be performed in parallel, and the graphics processing process includes a graphics card installed in a PC or a graphics execution unit (including a GPU-Graphic Processor Unit) mounted in an embedded system. In addition to being able to execute in parallel with each other, it is not possible to execute in parallel in a codec device that performs decoding and encoding. Therefore, graphics processing is executed sequentially with decoding and encoding, which takes considerable time for video conversion. there was. The graphics process is a process for improving the image quality of an image composed of pixels, and in particular, when there is a conversion of an output resolution such as a video converting operation, graphics processing such as scaling process is generally accompanied. As the graphics processing processes graphics processing for each pixel constituting the image, there is a problem that the video conversion operation takes a considerable time according to the number of image frames per second and the output resolution of the generated general video increases. However, depending on the difficulty of graphics processing, it may take more time than decoding and encoding. As such, in order to play a video on a specific digital system device capable of executing only a specific video from an individual user or a business operator, a separate video conversion task must be performed, and it takes a long time to complete a video conversion task. Only after the conversion was completed did the inconvenience of moving and playing the video conversion file to a specific digital system device.

본 발명은 상기에서 언급한 문제점을 해결하기 위하여 제안되는 것으로서, The present invention is proposed to solve the above-mentioned problems,

본 발명은 동영상 정보에서 이미지 프레임 정보의 리스트로 변환하는 디코딩 작업과 디코딩 작업에서 변환된 이미지 프레임 정보의 리스트로부터 이미지 처리를 하는 그래픽 처리 작업과 그래픽 처리 작업에서 처리된 이미지 프레임 정보리스트를 압축하는 인코딩 작업에 대하여, 인코딩 작업과 디코딩 작업을 비동기적으로 처리하고, 효율적인 그래픽 처리를 함으로써 속도를 향상할 수 있는 동영상 변환 장치를 제공함에 있다.The present invention provides a decoding operation for converting a moving image information into a list of image frame information, and an encoding for compressing an image processing information list processed in the graphics processing operation and a graphics processing operation for performing image processing from the list of image frame information converted in the decoding operation. The present invention provides a video converting apparatus which can improve the speed by asynchronously processing an encoding task and a decoding task and performing an efficient graphics process.

본 발명의 동영상 변환 장치는 압축된 동영상 정보를 일련의 2개 이상의 이미지 프레임을 포함하는 이미지 프레임 정보 리스트(N 이미지 프레임, N > 1 이상)로 변환하는 디코딩과 일련의 이미지 프레임 정보 리스트에서 압축 동영상을 생성하는 인코딩을 수행하는 코덱 장치와 상기 코덱 장치에서 디코딩된 일련의 이미지 프레임 정보 리스트에 대하여 그래픽 처리(Graphic Processing)를 하고 상기 코덱 장치에서 인코딩을 하기 위해 그래픽 처리된 일련의 이미지 프레임 정보 리스트를 제공하는 이미지 처리 장치를 포함하며, 상기 코덱 장치에서 i 번째 이미지 프레임(1 <= i <= N)의 인코딩이 완료되기 전에, i + 1 이후의 이미지 프레임에 대한 디코딩이 상기 코덱 장치에서 수행되는 것을 특징으로 하는 동영상 변환 장치에 관한 발명이다.The video converting apparatus of the present invention decodes the compressed video information into an image frame information list (N image frames, N> 1 or more) including a series of two or more image frames, and compresses the video in the series of image frame information lists. Performs a graphic processing on the codec device for encoding the codec device and the series of image frame information lists decoded by the codec device, and performs a graphic processing on the codec device. And an image processing apparatus for providing, wherein decoding of an image frame after i + 1 is performed in the codec apparatus before encoding of an i-th image frame (1 <= i <= N) is completed in the codec apparatus. The invention relates to a video conversion device.


제안되는 바와 같은 동영상 변환 장치에 의해서, 동영상 변환 시간을 획기적으로 줄일 수 있도록 제공하는 장점과 동일한 동영상 변환 시간을 사용하는 경우에는 기존의 방식에 비하여 더욱더 높은 수준의 그래픽 처리를 할 수 있는 장점을 가지며 본 발명인 동영상 변환 장치가 탑재된 기기에서는 속도 향상으로 인하여 실시간으로 처리 가능하여 일반 사용자가 동영상 변환이 이루어짐을 알지 못하고 변환되는 편리함을 제공할 수 있다.
By using the video conversion device as proposed, the video conversion time is significantly reduced compared to the existing method in the case of using the same video conversion time. In the device equipped with the video conversion device of the present invention can be processed in real time due to the improved speed can provide the convenience that the general user can convert without knowing the video conversion.

도 1은 종래 동영상 변환 작업을 시간 축을 기준으로 이미지 프레임별로 진행되는 순서를 도시한 도면이다.
도 2는 동영상 변환 장치의 일 실시예를 설명하는 블록도이다.
도 3은 본 발명인 동영상 변환 장치에서 동영상 변환 작업을 이미지 프레임별로 진행되는 순서를 도시한 일 실시예이다.
도 4는 본 발명인 동영상 변환 장치에서 동영상 변환 작업을 이미지 프레임별로 진행되는 순서를 도시한 또 다른 실시예이다.
도 5는 코덱 장치(1000)의 구성요소를 구체화한 일 실시예를 나타낸 블록도이다.
도 6은 코덱 장치(1000)중 중앙 처리부(1300)의 구성의 일 실시예를 나타낸 블록도이다.
도 7은 이미지 처리 장치(2000)에 대한 구체적인 일 실시예를 나타낸 블록도이다.
도 8과 도9 는 이미지 처리 장치(2000) 중 중앙 처리부(2200)의 일 실시예를 각각 나타낸 블록도이다.
도 10은 스케일링 필터를 적용하기 위한 일반적인 실시형태를 그림으로 나타낸 도면이다.
도 11은 스케일링 필터를 적용하기 위하여 트랜스포즈를 적용한 실시형태를 그림으로 나타낸 도면이다.
1 is a diagram illustrating a procedure of performing a conventional video conversion operation for each image frame based on a time axis.
2 is a block diagram illustrating an embodiment of a video conversion apparatus.
3 is a diagram illustrating an example of a procedure of performing a video conversion job for each image frame in the present invention.
4 is another embodiment illustrating a procedure of performing a video conversion operation for each image frame in the video conversion apparatus of the present invention.
FIG. 5 is a block diagram illustrating an embodiment of components of the codec device 1000.
FIG. 6 is a block diagram illustrating an exemplary embodiment of the central processing unit 1300 of the codec apparatus 1000.
7 is a block diagram illustrating a specific embodiment of an image processing apparatus 2000.
8 and 9 are block diagrams each illustrating an example of the central processing unit 2200 of the image processing apparatus 2000.
10 is a diagram illustrating a general embodiment for applying a scaling filter.
11 is a diagram illustrating an embodiment in which a transpose is applied to apply a scaling filter.

이하에서는 본 발명의 바람직한 실시 예를 첨부되는 도면을 참조하여 상세하게 설명한다. 다만, 본 발명의 사상이 제시되는 실시 예에 제한되지 아니하며, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서, 구성요소의 부가, 변경, 삭제, 추가 등에 의해서 다른 실시 예를 용이하게 제안할 수 있을 것이나, 이 또한 본 발명의 사상의 범위 내에 든다고 할 것이다.
Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in detail. However, the spirit of the present invention is not limited to the embodiments in which the present invention is presented, and those skilled in the art who understand the spirit of the present invention may easily add other embodiments by adding, changing, deleting or adding components within the scope of the same idea. It may be suggested, but this will also fall within the scope of the spirit of the present invention.

도 2는 본 발명의 사상에 따른 동영상 변환 장치의 일 실시예를 설명하는 블록도이다. 2 is a block diagram illustrating an embodiment of a video conversion apparatus according to the spirit of the present invention.

도 2를 참조하면, 동영상 변환 장치는 코덱 장치(1000)와 이미지 처리장치(2000)와 통신부(3000)를 포함하며, 이에 더하여 외부저장 매체(5000)와 전역 메모리(4000)을 포함할 수 있다. 외부저장 매체(5000)에 저장된 동영상 정보나 혹은 그 외 인터넷 등과 같은 환경에서 전달되는 동영상 정보를 임시로 전역 메모리(4000)에 저장하고, 코덱 장치(1000)는 동영상 정보를 일련의 이미지 프레임의 리스트로 변환하고, 이미지 처리 장치(2000)는 코덱 장치에서 변환된 이미지 프레임 각각에 대해서 그래픽 처리를 수행한다. 이어서 코덱 장치(1000)는 이미지 처리 장치(2000)에서 처리된 이미지 프레임 정보의 리스트에 대해서 다시 원하는 형식의 동영상 정보로 압축하여 이를 인터넷 등의 통신으로 실시간으로 전달할 수도 있고 혹은 외부저장 매체(5000)에 저장할 수도 있다. 이하에서는 각각의 구성요소에 대해서 상세히 설명하도록 한다.Referring to FIG. 2, the video converting apparatus may include a codec device 1000, an image processing device 2000, a communication unit 3000, and may further include an external storage medium 5000 and a global memory 4000. . The moving picture information stored in the external storage medium 5000 or the moving picture information transmitted from an environment such as the Internet is temporarily stored in the global memory 4000, and the codec device 1000 stores the moving picture information as a list of a series of image frames. The image processing apparatus 2000 performs graphics processing on each of the image frames converted by the codec apparatus. Subsequently, the codec apparatus 1000 may compress the list of image frame information processed by the image processing apparatus 2000 into video information of a desired format and deliver the same in real time through communication such as the Internet or the external storage medium 5000. Can also be stored in Hereinafter, each component will be described in detail.

코덱 장치(1000)는 압축된 동영상 정보를 일련의 이미지 프레임 리스트로 변환하는 디코딩과 그래픽 처리된 이미지 프레임 리스트로부터 압축된 동영상 정보로 변환하는 인코딩 역할을 담당한다. 이미지 프레임이란 압축된 동영상 정보로부터 디코딩된 고정된 형태의 이미지 픽셀의 집합으로서, 일련의 시간순으로 순서를 가진 이미지 프레임의 집합이 동영상을 구성하여 사용자에게 동영상을 보여줄 수 있다. 이미지 프레임의 형태는 정사각형이나, 직사각형 등의 형태를 띠고 있을 수도 있고, 혹은 다른 형태를 띠고 있을 수도 있다. 이미지 프레임 내의 픽셀 정보는 RGB(Red-Green-Blue)의 형식으로 표현될 수도 있으며, 혹은 YUV 포맷의 밝기 정보와 색차신호 정보로 표현한 컬러 스페이스를 가진 정보일 수도 있고, 그외 다른 컬러 스페이스 형태로 표현할 수도 있다. 동영상의 압축포맷에는 다양한 압축포맷이 있는데, 디지털 TV 등에서 사용하는 MPEG 2,4 와 같은 압축 포맷이 있을 수 있고, DMB 시스템에서 사용되는 H.264 포맷이 있고, 그 외 AVI 포맷 등이 있다. 이 외에도 표준화되지 않은 동영상 압축 포맷이 있을 수 있고, 필요에 따라서 새로운 압축 포맷이 생겨날 수 있다. 상기 코덱 장치(1000)는 특정 압축 포맷으로 이루어진 동영상 정보를 픽셀 단위로 접근 가능한 하나 이상의 이미지 프레임으로 구성된 이미지 프레임 리스트로 변환한다. 이 변환된 이미지 프레임 리스트는 초당 프레임의 숫자를 반영하고 있고, 프레임에 대한 크기를 알 수 있으며, 표현된 픽셀의 컬러 스페이스 정보를 알 수 있다. 변환된 이미지 프레임 리스트는 이미지 처리장치(2000)에서 그래픽 처리를 한 후에, 다시 코덱 장치(1000)에서 특정 포맷의 동영상 정보로 압축하는 과정을 통해서 동영상 변환 과정이 이루어지게 되어 개인 사용자는 원하는 동영상 포맷으로 변환하고, 특정 기기에서 실행할 수 있는 동영상으로 변환할 수 있다. The codec device 1000 is responsible for decoding the compressed video information into a series of image frame lists and encoding for converting the compressed video information into compressed video information. An image frame is a set of fixed shape image pixels decoded from compressed video information, and a set of image frames having a sequence in chronological order may constitute a video to show a video to a user. The image frame may be in the form of a square, a rectangle, or the like, or may have a different shape. The pixel information in the image frame may be expressed in the form of RGB (Red-Green-Blue), or may be information having a color space represented by brightness information and color difference signal information of the YUV format, or other color space. It may be. There are various compression formats of the video. There may be a compression format such as MPEG 2 and 4 used in digital TV, an H.264 format used in a DMB system, and an AVI format. In addition, there may be non-standardized movie compression formats, and new compression formats may be created as needed. The codec device 1000 converts video information in a specific compression format into an image frame list including one or more image frames accessible in units of pixels. The converted image frame list reflects the number of frames per second, the size of the frame, and the color space information of the expressed pixel. The converted image frame list is subjected to graphic processing by the image processing apparatus 2000, and then the video conversion process is performed by compressing the codec apparatus 1000 into video information of a specific format. To a video that can be played on a specific device.

이미지 처리 장치(2000)는 코덱 장치(1000)에서 디코딩된 이미지 프레임 리스트에 대해서 그래픽 처리를 담당한다. 그래픽 처리는 각 이미지 프레임에 대해서 이루어지거나 혹은 이미지 프레임 간에 그래픽 처리가 이루어질 수도 있다. 그래픽 처리를 하는 목적은 다양한데, 예를 들어서, 낮은 해상도의 이미지를 높은 해상도의 이미지로 높이는 그래픽 처리가 있을 수도 있고, 그 반대로 높은 해상도에서 낮은 해상도로 낮추기 위한 처리가 있을 수도 있다. 또는 초당 이미지 프레임의 숫자를 낮추거나 높이기 위한 처리를 고려할 수 있다. 이와 같이 이미지 처리 장치(2000)에서 이루어지는 그래픽 처리에는 일반적으로 이미지 정보에 대해서 이루어질 수 있는 그래픽 처리로서 예를 들어 ,이미지 프레임의 크기를 확대 또는 축소하는 스케일링 기법이나 인터폴레이션(Interpolation) 기법, 무뎌진 이미지 프레임 정보를 선명하게 개선 시키는 샤프닝(Sharpening) 기법, RGB(Red-Green-Black)신호를 YUV 신호나 그 반대로 변환시키는 색차변환 기법 등이 있다. 그래픽 처리 기법은 일반적으로 이미지 프레임 내의 픽셀 단위별로 처리가 되며, 처리된 출력 픽셀은 다른 출력과 의존관계를 가지지 않아 병렬로 수행될 수 있는 특징이 있어, 메모리의 저장방식을 고려하여 이미지 프레임이 정사각형 내지 직사각형의 형태로 이루어진 경우에는 수평 방향으로 처리를 한 후에 다시 수직 방향으로 처리할 수 있다. 물론 그 반대 방향으로도 처리할 수 있다. 또한 이미지 처리 장치(2000)는 통신부(3000)와 통신을 위한 입력 버퍼와 출력 버퍼를 구비할 수 있다. 입력 버퍼는 코덱 장치(1000)에서 디코딩된 이미지 프레임의 전부 혹은 일부를 통신부(3000)를 통해서 수신하고 임시로 저장한 후에 이미지 처리 장치(2000)에 전달한다. 출력 버퍼는 이미지 처리 장치(2000)에서 그래픽 처리 결과를 통신부(3000)를 통해서 코덱 장치(1000)에 전달하기 위한 임시 저장 영역이다. 입력 버퍼와 출력 버퍼는 이미지 처리 장치(2000)와 코덱 장치(1000)간의 병렬적인 처리를 수행하기 위해서 2 개 이상의 구별된 저장영역으로 할당하여, 이미지 처리 장치(2000)와 코덱 장치(1000)간의 병렬적인 수행을 더욱더 높일 수 있도록 구성할 수 있다.
The image processing apparatus 2000 is responsible for graphics processing on the image frame list decoded by the codec apparatus 1000. Graphics processing may be performed for each image frame or graphics processing may be performed between image frames. The purpose of graphics processing is various, for example, there may be graphics processing to raise a low resolution image into a high resolution image, or vice versa. Or consider processing to lower or increase the number of image frames per second. As such, the graphic processing performed by the image processing apparatus 2000 is generally a graphic processing that can be performed on image information. For example, a scaling technique, an interpolation technique, or a dull image frame, which enlarge or reduce the size of an image frame, is performed. Sharpening techniques that sharply improve information, and color difference conversion techniques that convert red-green-black (RGB) signals into YUV signals and vice versa. Graphic processing techniques are generally processed on a pixel-by-pixel basis within an image frame, and the processed output pixels do not have a dependency on other outputs and can be performed in parallel, so that image frames are square in consideration of memory storage. In the case of a rectangular shape, the treatment may be performed in the horizontal direction and then again in the vertical direction. You can, of course, do the opposite. Also, the image processing apparatus 2000 may include an input buffer and an output buffer for communicating with the communication unit 3000. The input buffer receives all or part of an image frame decoded by the codec device 1000 through the communication unit 3000, temporarily stores the image frame, and then transmits the image buffer to the image processing device 2000. The output buffer is a temporary storage area for transferring the graphic processing result from the image processing apparatus 2000 to the codec device 1000 through the communication unit 3000. The input buffer and the output buffer are allocated to two or more separate storage areas in order to perform parallel processing between the image processing device 2000 and the codec device 1000, and thus, between the image processing device 2000 and the codec device 1000. It can be configured to further increase parallel execution.

통신부(3000)는 이미지 처리 장치(2000)와 코덱 장치(1000) 간에 정보를 전달하는 기능을 담당하고 있다. 통신부(3000)는 소프트웨어적인 구성이나 하드웨어 적인 구성 또는 이의 조합으로 구성될 수 있는데, 소프트웨어적인 구성으로는 예를 들어, OS(Operating System)에서 사용하는 신호(Signal), 세마포어(Semaphore)와 공유영역을 사용해서 구성할 수도 있고 반면에 하드웨어적인 구성으로서는 하드웨어적인 SMT 된 보드에서 사용되는 버스나 칩셋(Chipset) 내부에서 사용되는 시스템 버스 등의 예를 고려할 수 있을 것이다. 물론 이러한 소프트웨어와 하드웨어의 조합으로 통신부(3000)가 이루어지는 것은 일반적일 것이다. 상기 통신부(3000)를 사용하여 이미지 처리장치와 코덱 장치(1000)는 이미지 프레임 리스트를 전달하게 된다. 전달된 정보는 이미지 처리 장치 또는 코덱 장치에서 제어가능한 메모리에 저장되고, 저장된 정보를 사용하여 수행하게 될 것이다. The communication unit 3000 is responsible for transferring information between the image processing device 2000 and the codec device 1000. The communication unit 3000 may be configured in a software configuration, a hardware configuration, or a combination thereof. The software configuration may include, for example, a signal, a semaphore, and a shared area used in an operating system (OS). The hardware configuration may be an example of a bus used in a hardware SMT board or a system bus used in a chipset. Of course, it will be common for the communicator 3000 to be a combination of such software and hardware. The image processing apparatus and the codec apparatus 1000 transmit the image frame list by using the communication unit 3000. The transmitted information is stored in a controllable memory in the image processing apparatus or the codec apparatus and will be performed using the stored information.

통신부(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)를 구성할 수도 있을 것이다. There may be various standard bus systems in the hardware configuration in which the communication unit 3000 is implemented. When the image processing apparatus 2000 and the codec apparatus 1000 are packaged as separate chips, the image processing apparatus 2000 and the codec apparatus 1000 may be configured as buses capable of transferring information on a board. In this configuration, the wired method is a general configuration, and may include a Peripheral Component Interconnect (PCI) communication method that can be used on a board, an Industry Standard Architecture (ISA) bus method, and a hard disk or a digital versatile disk (DVD). You can also use Advanced Technology Attachment (ATA), Secure ATA (SATA), or External SATA (E-SATA) communications. In addition, the IEEE 1394 communication method may be considered, and the wireless method may be considered instead of the wired method. On the contrary, it may be assumed that the image processing apparatus 2000 and the codec apparatus 1000 exist in one chipset. In this case, the communication unit 3000 may be configured by a system bus used in the chipset. have. Such a system bus may use a bus type that is dependent on a specific CPU (Central Processing Unit), such as an Intel type bus or a Motorola type bus. In contrast, the standard bus type is, for example, AMBA. It may be configured in the form of, or may be designed for a variety of other standard system bus or arbitrary system bus. In addition, a specialized bus capable of transmitting video information and audio information may be used to transmit information between the codec device 1000 and the image processing device 2000, and other analog information (audio and video information) may be transmitted. The communication unit 3000 may be configured using a medium.

전역 메모리(4000)는 코덱 장치(1000)에서 변환할 동영상 정보를 임시로 저장하는 역할을 담당하여, 외부 저장매체(5000)에서 동영상 정보를 읽어 들여서, 전역 메모리(4000)에 저장되면, 코덱 장치(1000)가 압축된 동영상 정보로부터 순차적인 이미지 프레임 정보 리스트로 변경한다. 상기 전역 메모리는 일반적으로는 S-DRAM,DDR-DRAM 등과 같이 휘발성 메모리를 사용하여 구성할 수도 있고, NAND-Flash, NOR-Flash와 같이 비휘발성 메모리를 사용하여 구성할 수도 있을 것이다. 전역 메모리(4000)에 저장되는 정보는 일반적인 압축된 동영상 정보 중에서 일부를 포함하여 저장되며, 그래픽 처리 후에 다시 동영상 정보로 압축하기 위해서 사용되는 정보를 포함한다. 물론 전역 메모리(4000)는 프로그램 등을 포함하여 코덱 장치에 탑재된 프로세서를 구동할 수도 있을 것이다. The global memory 4000 temporarily stores video information to be converted by the codec device 1000, and reads the video information from the external storage medium 5000 and stores the video information in the global memory 4000. 1000 changes from the compressed video information to a sequential image frame information list. In general, the global memory may be configured using volatile memory such as S-DRAM, DDR-DRAM, or the like, or may be configured using nonvolatile memory such as NAND-Flash or NOR-Flash. The information stored in the global memory 4000 is stored including some of the general compressed moving picture information, and includes information used to compress the moving picture information again after graphic processing. Of course, the global memory 4000 may drive a processor mounted in the codec device, including a program.

외부 저장매체(5000)는 동영상 변환 장치를 거치기 전의 동영상 정보를 저장하고 있거나 혹은 동영상 변환 장치에서 변환 후 결과인 동영상 정보를 포함하여 저장하기 위한 매체이다. 상기 외부 저장매체는 다양한 형태나 방식으로 존재할 수 있는 데, 일 예로서 ,하드디스크(HDD)나 DVD(Digital Versatile Disk) 나 CD(Compact Disk) 와 같은 형식의 대용량 저장 매체로 구성할 수도 있을 것이고, NOR Flash 나 NAND Flash를 사용한 방식으로 구성하거나 혹은 착탈식 방식으로도 구성할 수도 있을 것이며, 외부 저장매체를 사용하지 않고, 인터넷이나 무선 방식을 사용해서, 저장없이 전송하는 방식을 취할 수도 있을 것이다.
The external storage medium 5000 is a medium for storing video information before passing through the video conversion apparatus or including video information that is a result after conversion in the video conversion apparatus. The external storage medium may exist in various forms or ways. For example, the external storage medium may be configured as a mass storage medium such as a hard disk (HDD), a digital versatile disk (DVD), or a compact disk (CD). For example, it may be configured using NOR Flash or NAND Flash, or may be configured as a removable method, or may be transmitted without using an external storage medium and using the Internet or wireless.

도 3과 도 4는 본 발명인 동영상 변환 장치에서 동영상 변환 작업을 이미지 프레임을 기준으로 도시한 순서 도면이다. 도 3과 도 4에서 각각의 이미지 프레임에는 숫자를 표시하여 디코딩되는 이미지 프레임의 시간상의 선후 관계를 나타낼 수도 있고, 혹은 디코딩 시 혹은 인코딩시의 압축 선후 관계를 나타낼 수도 있다. 예를 들어서, 엠펙(MPEG) 영상에서 I(Intermidiate), B(Bidirectional), P(Preditive) 프레임에 대하여 디코딩 시에는 I 프레임이 비록 영상이 사용자에게 보이는 시간상에서는 뒤인 경우에도, 디코딩시에는 프레임간의 의존 관계로 먼저 디코딩될 수도 있을 것이다. 또한 인코딩 과정 또한 이해의 편의상 디코딩에서 이미지 프레임의 숫자를 동일한 형태로 인코딩이 되는 것으로 표시를 하였으나, 인코딩되는 압축의 형태에 따라서는 디코딩에서의 이미지 프레임의 순서와는 달리 인코딩이 될 수도 있다. 3 and 4 are flowcharts illustrating a video conversion operation based on an image frame in the video conversion apparatus of the present invention. In FIG. 3 and FIG. 4, each image frame may be denoted by a number to indicate a temporal relationship between the decoded image frames or a compression relationship between decoding or encoding. For example, when decoding an I (Intermidiate), B (Bidirectional), or P (Preditive) frame in an MPEG image, even if the I frame is later in time when the image is visible to the user, It may be decoded first as a dependency. In addition, the encoding process is also indicated that the number of image frames are encoded in the same form in decoding for convenience of understanding, but may be encoded differently from the order of image frames in decoding depending on the type of compression to be encoded.

도 3에 따르면 첫 번째 이미지 프레임인 프레임 '1'은 가장 먼저 디코딩되고 이어서 그래픽 처리가 된 후에 다시 인코딩 과정을 거쳐서 프레임 '1'에 대한 동영상 변환 작업이 완료되고 프레임 '2'와 '3'도 역시 마찬가지 과정을 거치게 되며, 이미지 프레임 '2'에 대한 디코딩 작업은 이미지 프레임 '1'의 인코딩 작업이 완료되기 전에, 실행되어 완료되는 실시 예이다. 이하에서는 각각의 도면에 대해서 상세히 살펴보도록 한다. According to FIG. 3, the first image frame, frame '1', is decoded first, and then subjected to graphic processing, and then encoded again to complete a video conversion operation on frame '1', and also to frames '2' and '3'. In the same manner, the decoding operation for the image frame '2' is executed and completed before the encoding operation for the image frame '1' is completed. Hereinafter, each drawing will be described in detail.

도 3에 따른 동영상 변환 작업은 동영상의 디코딩과 인코딩 처리는 코덱 장치(1000)에서 이루어지며 그래픽 처리는 이미지 처리 장치(2000)에서 이루어진다. 하나의 이미지 프레임을 처리하기 위해서는 디코딩과 그래픽 처리와 인코딩이 순차적으로 이루어져야 한다. 반면에 다수의 이미지 프레임을 처리하는 경우에는 물론 하나의 이미지 프레임에 대한 디코딩과 그래픽 처리와 인코딩의 순서를 지켜야 하여서, 이미지 프레임 '1'의 디코딩과 그래픽 처리와 인코딩은 순서를 지켜서 이루어지며, 마찬가지로 이미지 프레임 '2'와 '3' 도 순서를 지키고 있다. 반면에 이미지 프레임 '1'과 이미지 프레임 '2'사이의 실행 순서를 살펴보면, 이미지 프레임 '1'에 대한 인코딩을 하기 전에, 이미지 프레임 '2'에 대한 디코딩을 수행함을 도 3에서 알 수 있고, 이미지 프레임 '2'와 이미지 프레임 '3' 사이의 관계에서 그리고 그 이하의 순서에서도 동일하게 디코딩과 인코딩 순서가 변경되어 있음을 알 수 있다.  In the video conversion operation according to FIG. 3, the decoding and encoding processing of the video is performed by the codec device 1000, and the graphic processing is performed by the image processing device 2000. To process a single image frame, decoding, graphics processing, and encoding must be performed sequentially. On the other hand, when processing multiple image frames, of course, the decoding, graphics processing and encoding of one image frame must be followed, and the decoding, graphics processing and encoding of image frame '1' are performed in the same order. Image frames '2' and '3' are also in order. On the other hand, referring to the execution order between the image frame '1' and the image frame '2', it can be seen from FIG. 3 that the decoding of the image frame '2' is performed before encoding the image frame '1'. It can be seen that the decoding and encoding order have been changed in the same relationship between the image frame '2' and the image frame '3' and in the following order.

이를 일반화하면, 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)이 되는 경우에도 역시 동일하게 동일한 기술적 사상을 적용될 수 있을 것이다. In general, in a video converter that converts a video by decoding, graphics processing, and encoding a video including N (N is an integer greater than or equal to 2) image frames, the codec device 1000 performs encoding and decoding alternately. And i (i represents an image frame larger than 1 and smaller than N-1) in the case of the image processing apparatus 2000 that can be performed in parallel with the codec apparatus 1000. Before encoding is completed, it may be generalized that image frames after i + 1 are decoded by the codec device 1000, and i + 1th to Nth images as well as image frames after i + 1. It can be seen as representing a frame. The order (1 to N) in the N image frames may be a chronological order in which the image frames are executed as a moving picture, or may be a sequential frame order to be decoded, or may be in other order. In addition, although decoding and encoding are referred to as the same image frame index, for example using the same idea of the present invention, even if the number of frames to be decoded and the number of frames to be encoded in the codec device 1000 may be determined to be the same. Therefore, even when the number of frames to be encoded is small or large, the posterior relationship and the index of the image frame may be determined based on the decoded frame. Also, if the decoding and encoding process for one image frame is not completed in one execution, for example, time sharing by the OS is supported by the OS software such as Thread or Processor. In the same way, the same technical spirit may be applied.

이와 같이 디코딩과 인코딩 순서를 변경함으로써, 이전 프레임의 인코딩을 완료되기 전에, 이후 프레임의 디코딩을 수행할 수 있도록 하여, 코덱 장치(1000)와 이미지 처리 장치(2000)가 같은 수행 시간에 병렬적으로 수행할 수 있는 경우에, 코덱 장치에서 디코딩과 인코딩을 병렬로 수행할 수 없는 경우에도 본 발명에 따라서 그래픽 처리와 인코딩 또는 디코딩에 소요되는 수행시간 중 중복(Overlap)되는 시간만큼 속도를 향상할 수 있는 장점을 가지게 된다. 물론, 도 3의 도면에서, 이미지 처리장치(2000)에서 수행되는 그래픽 처리의 수행시간이 인코딩의 수행시간보다 길어지는 경우에는 그래픽 처리와 디코딩 수행간에도 시간축으로 겹치는 영역이 발생하여(도 4a,도 4b 참조) 이미지 처리장치(2000)의 그래픽 처리와 코덱 장치(1000)의 디코딩도 병렬로 처리될 것은 자명할 것이다.
By changing the decoding and encoding order as described above, it is possible to decode the subsequent frame before the encoding of the previous frame is completed, so that the codec device 1000 and the image processing device 2000 can execute the same execution time in parallel. In this case, even if the decoding and encoding cannot be performed in parallel in the codec device, the speed can be increased by the overlapping time of the execution time required for the graphic processing and encoding or decoding according to the present invention. You have the advantage. Of course, in the drawing of FIG. 3, when the execution time of the graphic processing performed in the image processing apparatus 2000 is longer than the execution time of the encoding, a region overlapping the time axis occurs between the graphic processing and the decoding performance (FIG. 4A, FIG. 4). It will be apparent that the graphic processing of the image processing apparatus 2000 and the decoding of the codec apparatus 1000 will also be processed in parallel.

도 4a 와 4b는 본 발명의 또 다른 일 실시예를 나타낸 도면이다. 도 4a 와 4b는 도 3과는 달리, 그래픽 처리에 수행되는 시간이 코덱 장치(1000)에서 수행되는 디코딩 또는 인코딩의 수행 시간보다 긴 예로서, 일반적으로 그래픽 처리가 이미지 프레임의 픽셀 단위로 이루어지고 픽셀의 숫자가 상당히 많은 것을 고려하고, 그래픽 처리에 높은 품질을 요구한다는 것을 고려한다면 일반적인 예에 해당할 것이다. 이하에서는 각 도면에 대해서 설명하도록 한다. 4A and 4B illustrate another embodiment of the present invention. 4A and 4B are examples in which the time performed for graphic processing is longer than that for decoding or encoding performed in the codec apparatus 1000, unlike in FIG. 3. In general, graphic processing is performed in pixel units of an image frame. Considering the large number of pixels and the high quality required for graphics processing, this would be a common example. Hereinafter, each drawing will be described.

도 4a 는 디코딩과 인코딩은 디코딩과 인코딩이 병렬로 수행할 수 없는 코덱 장치(1000)에서 실행되며, 그래픽 처리는 코덱 장치와는 별도로 구성된 병렬로 수행가능한 이미지 처리 장치(2000)에서 실행되는 또 다른 예이다. 도 4a에 따른면 이미지 프레임 1,2,3에 대해서, 코덱 장치에서 디코딩을 연속적으로 수행하고, 디코딩을 통해 변환된 이미지 프레임 대해서는 이미지 처리 장치에서 코덱 장치와는 병렬로 수행되며, 인코딩은 이미지 프레임 3에 대한 그래픽 처리를 이미지 처리 장치에서 수행되는 시점에 시작을 하고 있다. 인코딩과 디코딩은 코덱 장치에서 교대로 수행되며, 그래픽 처리는 이미지 처리 장치에서 코덱 장치와 병렬로 수행되는 경우로서, 본 예에서 보면, 이미지 프레임에 대한 처리 시간이 인코딩과 디코딩을 처리하는 데 수행되는 시간과 유사한 경우에는 동영상 변환에 소요되는 시간을 인코딩과 디코딩의 합산의 시간으로 변환 속도를 향상할 수 있는 장점이 있다. 본 예에서도 다음 이미지 프레임의 디코딩을 인코딩의 순서에 앞서서 수행함으로써, 수행속도를 향상할 수 있게 된다. 4A shows that decoding and encoding are executed in a codec apparatus 1000 in which decoding and encoding cannot be performed in parallel, and graphics processing is performed in an image processing apparatus 2000 that can be performed in parallel configured separately from the codec apparatus. Yes. In the image frame 1,2,3 according to FIG. 4a, decoding is continuously performed in the codec device, and image frames converted through decoding are performed in parallel with the codec device in the image processing device, and encoding is performed in the image frame. Graphics processing for 3 is started at the time when the image processing apparatus is performed. Encoding and decoding are performed alternately in the codec device, and graphics processing is performed in parallel with the codec device in the image processing device. In this example, processing time for image frames is performed to process encoding and decoding. In the case of time, the conversion speed can be improved by using the time required for video conversion to be the sum of encoding and decoding. Also in this example, the decoding of the next image frame is performed prior to the encoding order, thereby improving the performance speed.

도 4b는 또 다른 실시 예로서, 본 예에서는 코덱 장치(1000)에서 디코딩과 인코딩의 과정이 연속적인 프레임에 대해서 연속적으로 수행되는 예를 보여주고 있다. 도 4b에서는 이미지 프레임 '1'의 인코딩 과정을 제외하고는 디코딩과 인코딩 과정이 3개씩 이루어지고 있다. 예에서, 이전 이미지 프레임의 인코딩 과정이 완료되기 전에 다음 이미지 프레임에 대한 디코딩을 수행함으로써, 동영상 변환의 속도향상을 기할 수 있음을 역시 볼 수 있는데, 디코딩과 인코딩이 이루어지는 코덱 장치에는 디코딩과 인코딩을 실행하기 위한 프로세서(Processor)를 탑재하고 상기 프로세서에서 디코딩과 인코딩 과정이 실행된다. 디코딩과 인코딩 과정이 실행될 때, 압축의 특성상, 이웃하는 이미지 프레임의 정보를 참조하는 것이 일반적이어서, 디코딩이나, 인코딩을 연속적으로 실행하는 것이 메모리의 접근 속도 향상을 가져올 수 있고, 프로세서(Processor)상에서의 디코딩과 인코딩 프로그램의 전환에 따른 비용을 고려한다면 도 4b와 같이 연속적으로 디코딩과 인코딩을 실행하도록 구성하여, 효율적인 메모리 관리와 프로그램 전환에 따른 비용을 감소하도록 구성할 수도 있다. 도 3, 4a 및 도 4b는 본 발명의 아이디어를 구체화한 일 실시예를 나타낸 것이며, 이 외에도 다양한 실시의 형태로 구현할 수 있을 것이다.
FIG. 4B illustrates another example. In this example, the decoding and encoding processes are successively performed on consecutive frames in the codec apparatus 1000. In FIG. 4B, except for encoding the image frame '1', three decoding and encoding processes are performed. In the example, it can also be seen that by performing decoding on the next image frame before the encoding process of the previous image frame is completed, it is possible to improve the speed of the video conversion. It is equipped with a processor for execution, and the decoding and encoding process is executed in the processor. When decoding and encoding processes are performed, due to the nature of compression, it is common to refer to the information of neighboring image frames, so that successive decoding or encoding operations can result in faster access to the memory and on the processor. Considering the cost of the decoding and the switching of the encoding program can be configured to execute the decoding and encoding continuously as shown in Figure 4b, it can be configured to reduce the cost of efficient memory management and program switching. 3, 4a and 4b shows an embodiment that embodies the idea of the present invention, in addition to that can be implemented in various embodiments.

도 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)의 부족으로 불가능한 경우도 있으며 내장형 시스템에서는 다양한 이유로 병렬로 수행할 수 없는 것이 일반적이다.
FIG. 5 is a block diagram illustrating an embodiment of components of the codec device 1000. Referring to FIG. 5, the codec device 1000 includes a decoder 1100, an encoder 1200, and a central processor 1300. The decoder 1100 is responsible for converting the compressed video information into a series of image frame lists. The compressed video information may be read and decoded in the global memory 4000 and stored in the global memory, or the decoded image frame list may be directly transmitted to the image processing apparatus 2000. The encoder 1200 encodes the image frame list processed by the image processing apparatus 2000 into video information of a desired format again. The standard to be encoded is typically the encoding that can be implemented in a particular digital system device. The central processing unit 1300 is a processing unit in which the decoder unit 1100 and the encoder unit 1200 are executed (performed), and the decoder unit and the encoder unit are alternately performed in the central processing unit 1300. In this case, the central processing unit 1300 requests the resources of the decoder 1100 and the encoder 1200 (Resource-Processor number, HW Accelator constraints, insufficient thread allocation, and process allocation). In case of not properly distributing, etc., the decoder unit and encoder unit cannot be executed in parallel. For example, it may not be possible due to the lack of thread available to the program in a general personal PC. It is common to be unable.

도 6은 코덱 장치(1000)중 중앙 처리부(1300)의 구성의 일 실시예를 나타낸 블록도이다. 도 6에 따르면 중앙 처리부(1300)는 하나 이상의 프로세서 유닛(1310)을 포함할 수 있고 하드웨어 가속기(1350)와 그외 메모리 제어기(1330)와 외부 메모리 제어기(1340)과 시스템 버스(1320)으로 구성되어 있다. 중앙 처리부(1300)에서 실행되는 디코더부(1100)과 인코더부(1200)는 다양한 형태로 수행될 수 있을 것이다. 예를 들어서, 디코더부(1100)의 실행은 프로세서 유닛1에서 4까지 할당 받아서 수행하고 인코더부(1200)는 반대로 프로세서 유닛1과 유닛2 그리고 하드웨어 가속기에 맵핑되어 실행되는 것을 산정할 수도 있고 다양한 형태로 수행되는 것을 산정할 수 있다. 비록 중앙 처리부에 하나 이상의 프로세서가 탑재되어 있다고 하더라도, 프로세서나 쓰레드(Thread) 할당의 제약이나, 하드웨어 자원 할당의 제약으로 인코더부와 디코더부가 교대로 수행을 할 수밖에 없는 경우가 있고 교대로 수행을 하는 것이 전원 관리나, 프로세서 관리 등에서 장점으로 인정 받을 수도 있다.
FIG. 6 is a block diagram illustrating an exemplary embodiment of the central processing unit 1300 of the codec apparatus 1000. According to FIG. 6, the central processing unit 1300 may include one or more processor units 1310 and includes a hardware accelerator 1350, other memory controllers 1330, an external memory controller 1340, and a system bus 1320. have. The decoder 1100 and the encoder 1200 executed by the central processing unit 1300 may be performed in various forms. For example, the execution of the decoder unit 1100 may be performed by allocating the processor units 1 to 4 and the encoder unit 1200 may calculate that the execution is mapped to the processor unit 1, the unit 2, and the hardware accelerator. It can be estimated to be performed as. Although more than one processor is installed in the central processing unit, there are cases in which the encoder unit and the decoder unit have to perform alternately due to constraints of processor or thread allocation or hardware resource allocation. It may be recognized as an advantage in power management or processor management.

도 7은 이미지 처리 장치(2000)에 대한 구체적인 일 실시예를 나타낸 블록도이다. 도 7에 따르면 이미지 처리 장치(2000)는 이미지 처리부(2100)와 중앙 처리부(2200)와 공유 메모리(2300)를 포함한다. 7 is a block diagram illustrating a specific embodiment of an image processing apparatus 2000. According to FIG. 7, the image processing apparatus 2000 may include an image processor 2100, a central processor 2200, and a shared memory 2300.

이미지 처리부(2100)는 이미지 프레임에 대한 그래픽 처리를 담당하는 것으로서, 그래픽 처리 후에는 코덱 장치(1000)에 그래픽 처리된 이미지 프레임을 제공하여 특정 포맷의 동영상으로 인코딩이 될 수 있도록 한다. 이미지 처리부에서 처리하는 그래픽 처리는 일반적으로 스케일링(Scaling),샤프닝(Sharpening),노이즈 감쇠(Noise Reduction), 디블록킹(Deblocking) 필터 등과 같이 이미지 프레임의 크기를 조절하거나, 이미지 품질 향상을 위한 이미지 프레임 전체에 대해서 픽셀단위의 처리이다. 상기 그래픽 처리에는 이 외에도 색차 변환 작업도 포함될 수 있다. 색차 변환 작업은 특정 포맷의 컬러 스페이스(Color Space)로부터 다른 포맷의 컬러 스페이스(Color Space)로의 변환으로서 예를 들어서 YUV 신호를 RGB 신호로 혹은 반대로 변환하는 작업등을 들 수 있다. 도 7에 따르면 이미지 처리부(2100)는 수평축 이미지 처리부(2110)와 수직축 이미지 처리부(2120)를 포함하여 구성할 수 있다. 그래픽 처리는 이미지 프레임 내에 존재하는 픽셀 각각에 대하여 그래픽 처리를 하는 것으로서, 대부분의 그래픽 처리는 하나의 픽셀에 대한 결과 값을 산출하기 위해서는 인접하는 연속하는 픽셀로부터 산출한다. 픽셀의 결과 값을 이미지 프레임에서 정형적으로 산출하고 공유 메모리(2300)를 효율적으로 활용하여 속도향상을 위해서, 수평축 이미지 처리부(2110)에서 이미지 프레임에 대해서 수평축으로 정형적으로 각 픽셀별로 그래픽 처리를 한 후에 다시 수직축 이미지 처리부(2120)에서 이미지 프레임의 수직축 방향으로 픽셀별로 그래픽 처리를 함으로써 공유 메모리(2300)에서 픽셀간의 인접성(Locality)을 효율적으로 활용하여 속도를 향상할 수 있다. The image processor 2100 is responsible for graphic processing of the image frame, and after the graphic processing, provides a graphic image frame to the codec device 1000 to be encoded into a video of a specific format. Graphic processing in the image processing unit generally controls image frames such as scaling, sharpening, noise reduction, deblocking filters, or the like to improve image quality. It is the processing in pixels for the whole. The graphic processing may also include a color difference conversion operation. The color difference conversion job is a conversion from a color space of a specific format to a color space of another format, for example, a job of converting a YUV signal into an RGB signal or vice versa. According to FIG. 7, the image processor 2100 may include a horizontal axis image processor 2110 and a vertical axis image processor 2120. Graphics processing is to perform graphics processing for each pixel existing in an image frame, and most graphics processing is performed from adjacent consecutive pixels in order to calculate a result value for one pixel. In order to improve the speed by calculating the result value of the pixel in the image frame and utilizing the shared memory 2300 efficiently, the horizontal axis image processing unit 2110 performs graphics processing for each pixel formally on the horizontal axis with respect to the image frame. Afterwards, the vertical axis image processing unit 2120 performs graphic processing for each pixel in the vertical axis direction of the image frame, thereby improving speed by efficiently utilizing locality between pixels in the shared memory 2300.

중앙 처리부(2200)는 이미지 처리부(2100)가 실행되는(수행되는) 처리 유닛으로서, 상기 중앙 처리부의 구성의 형태와 OS(Operating System)의 환경에 따라서, 상기 이미지 처리부에서 수행되는 이미지 프레임의 각 픽셀의 계산이 병렬로 계산될 수도 있고, 혹은 순차적으로 계산될 수도 있을 것이다. The central processing unit 2200 is a processing unit in which the image processing unit 2100 is executed (performed), and according to the configuration of the central processing unit and the environment of an operating system (OS), each of the image frames performed in the image processing unit is performed. The calculation of the pixels may be calculated in parallel, or may be calculated sequentially.

공유 메모리(2300)는 코덱 장치(1000)에서 디코딩된 이미지 프레임을 일시적으로 저장하고, 상기 이미지 처리부(2100)가 그래픽 처리를 하기 위한 메모리 공간을 제공한다. 상기 공유 메모리는 일련의 이미지 프레임 전체를 포함하여 저장할 수도 있고, 혹은 하나의 이미지 프레임 정보 중 일부만을 가지고 있을 수도 있다.
The shared memory 2300 temporarily stores an image frame decoded by the codec device 1000, and provides a memory space for the image processor 2100 to perform graphics processing. The shared memory may store the entire series of image frames or may have only some of one image frame information.

도 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 형태의 하드웨어 구조를 가지며 접근 속도가 빠른 메모리로 구성하여 멀티 스트림 프로세서 유닛의 스트림 프로세서 각각이 처리하는 일부의 이미지 프레임 정보만을 저장하고, 계산된 결과를 저장하도록 계층화된 공유 메모리를 구성할 수도 있다.
8 and 9 are block diagrams each illustrating an example of the central processing unit 2200 of the image processing apparatus 2000. According to FIG. 8, the central processing unit 2200 includes one or more stream processors 2210, an instruction cache 2260, and a system bus 2220 that perform the same function. Each stream processor may receive instructions from the instruction cache 2260 to perform graphics processing for a particular pixel, while other stream processors may similarly receive the same instructions from the instruction cache 2260, provided that each of the stream processors By allowing the same instruction to be executed in each processor for different pixels, graphics processing can be efficiently and parallelized by utilizing the same image frame information stored in one instruction cache 2260 and shared memory 2300. do. Of course, the shared memory 2300 may be configured to have only a part of the received image frame information, may store a result of a part processed by the image processor 2100, or may include other constant related information. FIG. 9 illustrates another embodiment of the central processing unit 2200 of another image processing apparatus 2000. FIG. 9 is a layered structure in which the concept of the central processing unit 2200 mentioned in FIG. 8 is extended. The central processing unit 2200 is shown. 9, one or more multi-stream processor units 2290 and shared memory 2300 located outside the multi-stream processor units are included. Multi-stream processor unit 2290 includes one or more stream processors 2210 (business card as 'SP'), shared memory 2300 (business card as 'SM') and instruction cache 2260. Each of the multi-stream processor units is a processor capable of efficiently processing and speeding up graphic processing by utilizing parallelism of graphics processing to process different areas in parallel among image frames to be processed. By hierarchically configuring the shared memory 2300 located inside the multi-stream processor unit 2290 and the shared memory 2300 located outside the multi-stream processor unit 2290, the parallelism and the spatial locality existing in the image frame are provided. You can also use it to speed up. For example, the shared memory located outside the multi-stream processor unit 2290 has a low-cost hardware structure that supports a large capacity such as DRAM and stores information on the entire image frame, and is located inside the multi-stream processor unit 2290. The memory has a hardware structure in the form of registers or Nor Flash, and is composed of fast access memory, which stores only a part of image frame information processed by each stream processor of the multi-stream processor unit, and stores the calculated results. Shared memory can be configured.

이하에서는 도 10과 도 11의 그래픽 처리의 일 실시 예를 사용하여 이미지 처리 장치(2000)에서의 그래픽 처리의 방법과 속도 향상의 방법을 같이 검토하도록 한다. 그래픽 처리에는 다양한 형태의 처리가 필요하며, 이하에서는 그래픽 처리의 일태양인 스케일링 필터를 이용하여 속도 향상 방법에 대해서 살펴보도록 한다. Hereinafter, the method of graphic processing in the image processing apparatus 2000 and the method of improving speed will be considered together by using the graphic processing of FIGS. 10 and 11. Graphic processing requires various types of processing. Hereinafter, a method of improving speed using a scaling filter, which is an aspect of graphic processing, will be described.

도 10은 스케일링 필터를 적용하기 위한 일반적인 실시형태를 그림으로 나타낸 도면이다. 스케일링 필터를 적용하기 위해서는 입력되는 이미지 프레임의 크기와 출력되는 이미지 프레임의 크기가 정의되고, 스케일링에 사용될 필터의 종류도 지정이 되어야 한다. 스케일링 필터에는 복잡도에 따라 다양한 종류의 스케일링 필터가 존재하며, 이 스케일링 필터는 일반적으로 출력되는 이미지 프레임의 각 픽셀별로 입력 이미지 프레임의 픽셀의 조합으로 출력값을 계산하기에 시간 복잡도가 아주 높은 경향이 있다. 공개된 오픈소스 코드에서의 실험에 따르면, 동영상 변환 프로그램에서 스케일링 필터는 스케일링 필터의 종류에 따라서 약 30%에서 60% 정도까지의 수행시간 비중이 있는 것으로 알려져 있다. 즉 복잡한 스케일링 필터를 사용하는 경우에는 디코딩과 스케일링 필터 그리고 인코딩 과정 중에서 스케일링 필터가 수행시간에서 차지하는 과정이 약 60 % 전후까지의 시간을 차지함을 알 수 있고, 따라서 이러한 스케일링 필터 혹은 그래픽 처리의 시간을 줄이는 것은 전체 수행시간의 병목지점(Bottle-neck)으로서 전체 수행시간을 줄일 수 있는 효과적인 방안이 된다. 10 is a diagram illustrating a general embodiment for applying a scaling filter. In order to apply the scaling filter, the size of the input image frame and the size of the output image frame are defined, and the type of the filter to be used for scaling must also be specified. There are various kinds of scaling filters according to the complexity, and scaling filters generally tend to have a very high time complexity in calculating output values by a combination of pixels of an input image frame for each pixel of an output image frame. . According to experiments in the open source code, it is known that the scaling filter has about 30% to 60% execution time depending on the type of the scaling filter in the video conversion program. In other words, in the case of using a complex scaling filter, it can be seen that the scaling filter takes up to about 60% of the time between the decoding, the scaling filter, and the encoding process. Reducing is the bottleneck of the overall runtime, which is an effective way to reduce the overall runtime.

도 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). 물론 이러한 저장되는 축을 변경하는 것은 수직방향으로 먼저 처리한 후에 수평 방향으로 처리하는 경우에도 쉽게 적용할 수 있을 것이며, 이러한 트랜스포즈 형식의 중간 처리 결과의 저장 방식은 다른 그래픽 처리에도 쉽게 적용될 수 있고 속도 향상을 기할 수 있다.
In the general scaling filter processing method of FIG. 10, the image frame input from the horizontal axis image processing unit 2110 of the image processing unit 2100 of the image processing apparatus 2000 is processed in the horizontal axis direction (FIG. 10-a), and the vertical axis On the basis of the result of the scaling processing in the horizontal axis direction, the image processing unit 2120 performs scaling processing on the vertical axis again to generate an output image frame (the right image of FIG. 10-b). In the example of Fig. 10-a, in order to calculate the pixel output values of the areas 'b' and 'd', the pixels of the areas 'a' and 'c' are sampled in the original image frame and the vector product of the scaling filter is sampled from the sampled values. To calculate the values of 'b' and 'd'. Similarly, in the capital 10-b, the calculation is performed in a manner similar to that of the horizontal axis in order to calculate 'b' and 'd' on the vertical axis. The scaling filter processing method illustrated in FIG. 10 may be variously implemented in hardware and software depending on the structure of the central processing unit 2200 and the structure of the shared memory 2300. According to the efficiency of memory access to image frames, hardware provided hardware, including shared memory 2300, can access information at high speed for adjacent memory address regions, while contiguous contiguous memory. If not, the information can be accessed at a relatively slow rate. This is especially true for memories such as DRAM and NAND Flash. Memory such as DRAM can read and write continuously, so the information of the first accessing address requires a certain period of time (eg 3 Cycle Time), but the information of consecutive addresses is provided immediately (eg 1 Cycle Time). can do. Therefore, when the information of the image frame is stored in the continuous memory area in the horizontal axis direction (X axis), the pixel information adjacent to the horizontal axis direction is stored in the continuous memory area, so that the horizontal axis image processor 2110 may be used for the image frame information. Access can be made quickly. On the other hand, in the vertical axis image processing unit 2120, adjacent pixel information in the vertical direction is not physically adjacent to the memory, causing a slowing of the pixel access to calculate the output value on the vertical axis. In order to prevent such a decrease in speed, when the result processed by the horizontal axis image processing unit 2110 is stored and the horizontal axis and the vertical axis of the image frame are changed and stored, each series of pixel result values processed by the horizontal axis image processing unit is moved in the vertical axis direction. (E.g., store the result at the X, Y coordinate of (10,1) at the address of the X, Y coordinate at (1,10), and the value to store at the (10,2) coordinate is ( 2 coordinates are stored in an address calculated as 2,10 so that the coordinates exist at locations that are not physically contiguous, while values stored at (2,10) at (1,10) are consecutive addresses. When stored in the vertical image processing unit after processing, the horizontal axis and vertical axis are changed and stored in the horizontal image processing unit. It will have the advantage of being able to increase the speed of graphics processing. FIG. 11 illustrates a result of performing horizontal image processing in the horizontal image processing unit 2110, changing the position from the horizontal direction to the vertical direction (transpose), and storing the result (FIG. 11-a), and vertical image processing unit 2120. This is the result of sequentially reading the pixel information in the vertical direction from the adjacent contiguous memories and processing the scaling based on the image frame result processed in FIG. 11-b. Of course, changing the axis to be saved can be easily applied to the horizontal processing after the first processing in the vertical direction, the storage method of the intermediate processing result of the transpose format can be easily applied to other graphics processing and speed Can improve.

또한 그래픽 처리의 한 종류인 색차변환 방법은 다른 그래픽 처리의 전후에 혹은 독자적인 그래픽 처리로서 이루어진다. 색차변환 방법은 예를 들어, RGB 신호를 YUV 신호로 변경하기 위해서는 복잡한 실수 연산을 수반한다. 이러한 실수 연산은 소요시간을 많이 차지하며, 특정한 시스템에서는 정수연산으로의 시뮬레이션을 통해서 이루어지기도 한다. 따라서 실수연산을 사용하지 않는 것이 속도 향상을 위해서는 좋은 방안이 되는데, 공유 메모리(2300)나 혹은 이미지 처리 장치(2000)에 탑재된 다른 메모리(예 : 상수 메모리)에 참조방식(Lookup Table Method)으로 변환 테이블을 구성하여, 단지 메모리의 접근 시간만으로 색차변환이 이루어지도록 하여 그래픽 처리의 속도 향상을 꾀할 수도 있고 이는 동영상 변환의 속도 향상을 꾀할 수 있을 것이다.
In addition, the color difference conversion method, which is a kind of graphic processing, is performed before or after other graphic processing or as an independent graphic processing. The color-difference conversion method involves a complex real number operation, for example, to convert an RGB signal into a YUV signal. This real operation takes a lot of time, and in certain systems, it can be done by simulation with integer operation. Therefore, using a real number operation is a good way to improve the speed, but as a lookup method (Lookup Table Method) to the shared memory (2300) or other memory (e.g., constant memory) mounted in the image processing apparatus (2000) By constructing a conversion table, the color difference conversion can be performed only by the access time of the memory, which can improve the speed of graphic processing, which can improve the speed of video conversion.

1000 : 코덱 장치
1100 : 디코더부
1200 : 인코더부
1300 : 중앙 처리부
1310 : 프로세서 유닛
1320 : 시스템 버스
1330 : 메모리 제어기
1340 : 외부 메모리 제어기
1350 : 하드웨어 가속기
2000 : 이미지 처리 장치
2100 : 이미지 처리부
2110 : 수평축 이미지 처리부
2120 : 수직축 이미지 처리부
2200 : 중앙 처리부
2210 : 스트림 프로세서
2220 : 시스템 버스
2240 : 외부 메모리 제어기
2250 : 하드웨어 가속기
2260 : 명령어 캐쉬
2300 : 공유 메모리
3000 : 통신부
4000 : 전역 메모리
5000 : 외부저장 매체
1000: codec device
1100: decoder unit
1200: encoder
1300: central processing unit
1310: Processor Unit
1320: system bus
1330: Memory Controller
1340: external memory controller
1350: Hardware Accelerator
2000: image processing unit
2100: image processing unit
2110: horizontal axis image processing unit
2120: vertical axis image processing unit
2200 central processing unit
2210: Stream Processor
2220: system bus
2240: external memory controller
2250: Hardware Accelerator
2260 instruction cache
2300: shared memory
3000: communication unit
4000: global memory
5000: External storage medium

Claims (12)

압축된 동영상 정보를 일련의 2개 이상의 이미지 프레임을 포함하는 이미지 프레임 리스트(N개의 이미지 프레임, N > 1 이상)로 변환하는 디코딩과 일련의 이미지 프레임 리스트에서 압축 동영상을 생성하는 인코딩을 수행하는 코덱 장치와
상기 코덱 장치에서 디코딩된 일련의 이미지 프레임 리스트에 대하여 그래픽 처리(Graphic Processing)를 하고 상기 코덱 장치에서 인코딩을 하기 위해 그래픽 처리된 일련의 이미지 프레임 리스트를 제공하는 이미지 처리 장치를 포함하며,
상기 코덱 장치에서 i 번째 이미지 프레임(i는 1 <= i <= (N -1)의 범위 내의 이미지 프레임)의 인코딩이 완료되기 전에, i + 1 이후의 이미지 프레임에 대한 디코딩이 상기 코덱 장치에서 수행되는 것을 특징으로 하는 동영상 변환 장치.
A codec that performs the decoding to convert the compressed video information into an image frame list (N image frames, N> 1 or more) that contains a series of two or more image frames, and the encoding that generates the compressed movie from the series of image frame lists. Device and
And an image processing apparatus for performing a graphic processing on the series of image frame lists decoded by the codec device and providing a series of image frame lists that are graphic processed for encoding in the codec device.
Before the encoding of the i-th image frame (i is an image frame in the range of 1 <= i <= (N -1)) in the codec device is completed, decoding for image frames after i + 1 is performed in the codec device. Video conversion device, characterized in that performed.
제 1항에 있어서,
상기 코덱 장치는
압축된 동영상 정보로부터 일련의 이미지 프레임 리스트로 변환하는 디코더부;
상기 이미지 처리 장치에서 처리된 일련의 이미지 프레임 리스트에서 압축된 동영상 정보를 생성하는 인코더부; 및
상기 디코더부와 상기 인코더부가 수행되는 중앙 처리부를 포함하는 것을 특징으로 하는 동영상 변환 장치.
The method of claim 1,
The codec device is
A decoder for converting the compressed video information into a series of image frame lists;
An encoder unit generating compressed video information from a series of image frame lists processed by the image processing apparatus; And
And a central processor configured to perform the decoder and the encoder.
제 1항에 있어서,
상기 코덱 장치와 상기 이미지 처리 장치 간에 이미지 프레임 리스트를 포함한 정보를 송수신하는 통신부를 더 포함하며, 상기 통신부의 통신 방식이 디지털 통신 방식인 것을 특징으로 하는 동영상 변환 장치.
The method of claim 1,
And a communication unit which transmits and receives information including an image frame list between the codec device and the image processing device, wherein the communication method is a digital communication method.
제 2항에 있어서,
상기 인코더부와 상기 디코더부가 상기 중앙처리부에서 수행될 때, 인코더부와 디코더부가 교대로 수행되는 것을 특징으로 하는 동영상 변환 장치.
The method of claim 2,
And the encoder unit and the decoder unit are alternately performed when the encoder unit and the decoder unit are executed in the central processing unit.
제 1 항에 있어서, 상기 이미지 처리 장치는 그래픽 처리를 수행할 수 있는 둘 이상의 프로세서(Processor)를 포함하며, 상기 이미지 처리부에서 처리되는 상기 그래픽 처리에는 스케일링(Scaling) 필터 , 디블록킹(Deblocking) 필터 , 샤프닝(Sharpening) 필터 , 인터폴레이션(Interpolation) , 노이지 감쇄 처리 및 색차변환 중 하나인 것을 특징으로 하는 동영상 변환 장치.
The image processing apparatus of claim 1, wherein the image processing apparatus includes two or more processors capable of performing graphics processing, and the graphics processing processed by the image processing unit includes a scaling filter and a deblocking filter. , A sharpening filter, interpolation, noise reduction processing, and color difference conversion.
제 5항에 있어서, 상기 이미지 처리 장치에서 상기 그래픽 처리가 스케일링 필터 , 디블록킹 필터 , 샤프닝 필터 또는 노이지 감쇄 처리인 경우, 상기 이미지 처리부가 그래픽 처리된 이미지 프레임에 대하여 색차변환을 더 처리하는 것을 특징으로 하는 동영상 변환 장치.
The image processing apparatus of claim 5, wherein when the graphic processing is a scaling filter, a deblocking filter, a sharpening filter, or a noisy attenuation process, the image processing unit further processes color difference conversion for the image-processed image frame. Video converter.
제 5항에 있어서, 상기 이미지 처리 장치는 상기 이미지 프레임을 읽고 쓸 수 있는 공유메모리를 더 포함하며,
상기 각각의 프로세서는 상기 공유메모리에서 이미지 프레임의 일부를 읽어 들이고, 그래픽 처리를 수행한 후에 처리된 정보를 상기 공유메모리에 저장하는 것을 특징으로 하는 동영상 변환 장치.
The apparatus of claim 5, wherein the image processing apparatus further comprises a shared memory capable of reading and writing the image frame.
And each processor reads a part of an image frame from the shared memory and stores processed information in the shared memory after performing graphics processing.
제 7항에 있어서,
상기 이미지 처리 장치는 이미지 프레임에 대하여 수평축으로 그래픽을 처리하는 수평축 이미지 처리부와 상기 이미지 프레임에 대하여 수직축으로 그래픽을 처리하는 수직축 이미지 처리부로 구성되며,
상기 수평축 이미지 처리부와 상기 수직축 이미지 처리부의 처리 결과는 상기 공유메모리에 저장되는 것을 특징으로 하는 동영상 변환 장치.
The method of claim 7, wherein
The image processing apparatus includes a horizontal axis image processing unit for processing graphics in a horizontal axis with respect to the image frame and a vertical axis image processing unit for processing graphics in a vertical axis with respect to the image frame,
And a processing result of the horizontal axis image processing unit and the vertical axis image processing unit is stored in the shared memory.
제 8항에 있어서,
상기 공유 메모리는 연속적인(Burst) 읽기 또는 쓰기가 가능한 것을 특징으로 하며,
상기 수평축 이미지 처리부 또는 상기 수직축 이미지 처리부의 그래픽 처리결과가 저장될 때 저장되는 주소가 트랜스포즈(Transpose)되는 것을 특징으로 하는 동영상 변환 장치.
The method of claim 8,
The shared memory may be a continuous read or write,
And a stored address is transposed when the graphic processing result of the horizontal image processing unit or the vertical image processing unit is stored.
제 5항 또는 제 6항에 있어서, 상기 그래픽 처리가 색차변환인 경우, 참조방식(Table Lookup Method)으로 이루어지는 것을 특징으로 하는 동영상 변환 장치.
The apparatus for converting a video according to claim 5 or 6, wherein when the graphic process is color difference conversion, a video lookup method is performed.
제 3항에 있어서,
상기 이미지 처리 장치는
통신부와 송수신되는 정보를 임시로 저장하기 위한 입력 버퍼와 출력 버퍼를 포함하며,
상기 입력 버퍼는 상기 코덱 장치에서 디코딩된 이미지 프레임을 포함한 정보를 수신하여 저장하고, 상기 출력 버퍼는 상기 이미지 처리 장치에서 그래픽 처리한 이미지 프레임을 포함한 정보를 저장하여 출력하는 것을 특징으로 하는 동영상 변환 장치.
The method of claim 3, wherein
The image processing device
It includes an input buffer and an output buffer for temporarily storing information transmitted and received with the communication unit,
And the input buffer receives and stores information including image frames decoded by the codec device, and the output buffer stores and outputs information including image frames processed by the image processing device. .
제 11항에 있어서,
상기 입력 버퍼와 출력 버퍼는 각각 2개의 분리된 저장 공간으로 구성되며, 상기 입력 버퍼와 상기 출력 버퍼의 상기 2개의 분리된 저장 공간에 저장되는 이미지 프레임은 다른 이미지 프레임인 것을 특징으로 하는 동영상 변환 장치.


12. The method of claim 11,
The input buffer and the output buffer are each composed of two separate storage spaces, and the video frame stored in the two separate storage spaces of the input buffer and the output buffer is a different image frame, characterized in that .


KR20100020586A 2010-03-08 2010-03-08 Moving Picture Tranformation Device KR101484101B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20100020586A KR101484101B1 (en) 2010-03-08 2010-03-08 Moving Picture Tranformation Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20100020586A KR101484101B1 (en) 2010-03-08 2010-03-08 Moving Picture Tranformation Device

Publications (2)

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

Family

ID=44953530

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100020586A KR101484101B1 (en) 2010-03-08 2010-03-08 Moving Picture Tranformation Device

Country Status (1)

Country Link
KR (1) KR101484101B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074240B1 (en) 2018-10-17 2020-02-06 네오컨버전스 주식회사 Method and apparatus of converting vedio
US20230164370A1 (en) * 2020-03-02 2023-05-25 Lg Electronics Inc. Signal processing device and image display device comprising same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6424749B1 (en) * 1999-03-30 2002-07-23 Matsushita Electric Industrial Co., Ltd. System and method for scaling combined video and computer generated imagery
US7738563B2 (en) * 2004-07-08 2010-06-15 Freescale Semiconductor, Inc. Method and system for performing deblocking filtering
US8233527B2 (en) * 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
KR100935493B1 (en) * 2007-08-27 2010-01-06 중앙대학교 산학협력단 Apparatus and method for transcoding based on distributed digital signal processing

Also Published As

Publication number Publication date
KR101484101B1 (en) 2015-01-16

Similar Documents

Publication Publication Date Title
JP7191240B2 (en) Video stream decoding method, device, terminal equipment and program
KR102627189B1 (en) Method and apparatus to encode and decode two-dimension point clouds
US20140086309A1 (en) Method and device for encoding and decoding an image
US8683184B1 (en) Multi context execution on a video processor
JP4519082B2 (en) Information processing method, moving image thumbnail display method, decoding device, and information processing device
US8395634B2 (en) Method and apparatus for processing information
CN108206937B (en) Method and device for improving intelligent analysis performance
TWI582689B (en) Configurable buffer allocation for multi-format video processing
KR20180054797A (en) Efficient display processing by pre-fetching
US20170220283A1 (en) Reducing memory usage by a decoder during a format change
KR102274747B1 (en) CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC
WO2014187112A1 (en) Frame dropping method and system for video image
CN107533752A (en) The adaptive memory address scan based on surface format for graphics process
CN105791952A (en) Screen shooting method and device for streaming media video data, and electronic device
US20140146869A1 (en) Sub picture parallel transcoding
US8190582B2 (en) Multi-processor
US8612981B2 (en) Task distribution method
CN112804410A (en) Multi-display-screen synchronous display method and device, video processing equipment and storage medium
CN105681893A (en) Method and device for decoding stream media video data
KR101484101B1 (en) Moving Picture Tranformation Device
KR102035759B1 (en) Multi-threaded texture decoding
US20160142723A1 (en) Frame division into subframes
JPWO2014167609A1 (en) Information processing apparatus, control method, program, and recording medium
EP2475172A2 (en) Video processing apparatus capable of dynamically controlling processed picture quality based on runtime memory bandwidth utilization
TWI565303B (en) Image processing system and image processing method

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