KR20130105374A - Image processing apparatus and control method thereof - Google Patents

Image processing apparatus and control method thereof Download PDF

Info

Publication number
KR20130105374A
KR20130105374A KR1020130022301A KR20130022301A KR20130105374A KR 20130105374 A KR20130105374 A KR 20130105374A KR 1020130022301 A KR1020130022301 A KR 1020130022301A KR 20130022301 A KR20130022301 A KR 20130022301A KR 20130105374 A KR20130105374 A KR 20130105374A
Authority
KR
South Korea
Prior art keywords
image
frame
output
input image
frames
Prior art date
Application number
KR1020130022301A
Other languages
Korean (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 US13/828,157 priority Critical patent/US20130242186A1/en
Publication of KR20130105374A publication Critical patent/KR20130105374A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • H04N21/4356Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen by altering the spatial resolution, e.g. to reformat additional data on a handheld device, attached to the STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals

Abstract

PURPOSE: Method of optimizing an image of an image processing device is provided to make video play easy and to reduce the occupancy of central processing unit (CPU) and system resource. CONSTITUTION: A video reception unit receives (S11) an input image. An image processing unit processes the input image and outputs an output image. A display unit displays the output image. A storage unit stores data and information of the input image. A control unit compares (S12) an image processing speed of the input image and a frame rate of the input image, configures (S13) a frame rate of the output image to be smaller than the frame rate of the input image when the frame rate of the input image is greater than the image processing speed of the input image and controls (S14) the number of processed frames of the input image according to a configured result to decrease. [Reference numerals] (AA) Start; (BB) End; (S11) Receive an input image; (S12) Is the frame rate of the input image larger than the image processing speed of the input image ?; (S13) Set the frame rate of an output image smaller than that of the input image; (S14) Reduce the number of processed frames of the input image according to the setting

Description

영상처리장치 및 그 제어방법{IMAGE PROCESSING APPARATUS AND CONTROL METHOD THEREOF}Image processing apparatus and control method thereof {IMAGE PROCESSING APPARATUS AND CONTROL METHOD THEREOF}

본 발명은 영상처리장치 영상의 재생기술에 관한 것으로, 특히 영상처리장치의 영상을 최적화하는 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a reproduction technology of an image processing apparatus, and more particularly to a method for optimizing an image of an image processing apparatus.

기존의 임베디드 설비 혹은 소정의 플랫폼에 기반한 영상처리장치는 사용자에게 동영상 하드웨어 디코딩/디스플레이, 소프트웨어 디코딩/디스플레이의 2가지 상이한 선택을 제공한다. 사용자가 하드웨어 디코딩/디스플레이 옵션을 선택시, 기존의 영상처리장치는 플랫폼 관련의 인터페이스를 이용하여 하드웨어 디코딩/디스플레이의 호출(Call)을 진행하되, 이에 관한 구현은 각 하드웨어 공급사에서 제공한다. 사용자가 소프트웨어 디코딩/디스플레이 옵션을 선택시, 기존의 영상처리장치는 소프트웨어 디코더를 사용하여 동영상 디코딩을 진행하고, 소프트웨어 디스플레이 인터페이스를 호출하여 디스플레이를 진행한다.An image processing apparatus based on an existing embedded facility or a given platform provides the user with two different choices: video hardware decoding / display and software decoding / display. When the user selects a hardware decoding / display option, the existing image processing apparatus performs a call of hardware decoding / display using a platform related interface, but an implementation thereof is provided by each hardware supplier. When the user selects the software decoding / display option, the existing image processing apparatus decodes a video using a software decoder and calls the software display interface to display.

기존의 임베디드 혹은 소정의 플랫폼에 기반한 영상처리장치 중 모든 모듈은 하드웨어 시스템과 관련이 없고, 멀티스레딩의 소프트웨어 재생 제어를 적용하며, CPU점유율 및 시스템 자원의 점유율이 비교적 높고 또한 디코딩 속도가 비교적 느리기 때문에, 소프트웨어 방안은 MPEG-4, H.264 등 SD, 720p, HD 해상도의 동영상을 원활하게 재생시킬 수 없다. 하지만 하드웨어 디코딩 방안을 사용시, 상이한 하드웨어의 밑층 인터페이스 및 구현이 다소 상이하므로, 하드웨어 디코딩 방안의 보편성 및 이식 가능성도 비교적 낮다. 한편, 하드웨어 디코더는 동영상 포맷(예를 들어, MPEG4, H.264) 및 차등(profile), 레벨(level)과 해상도 등에 대한 지원이 제한적이므로, 서로 다른 하드웨어 설비 상에서 상이한 표현이 있을 수 있다. 보편적인 소프트웨어 디코딩 방안을 사용함으로써, 하드웨어 디코딩 방안에 따른 문제를 극복할 수 있지만, 그 성능이 매우 제한되어 있다.All the modules in the existing embedded or platform based image processing system are not related to the hardware system, apply the multi-threaded software playback control, the CPU occupancy and occupancy of system resources are relatively high, and the decoding speed is relatively slow. However, the software solution cannot play video in SD, 720p, and HD resolutions smoothly, such as MPEG-4 and H.264. However, when using a hardware decoding scheme, the underlying interfaces and implementations of different hardware are somewhat different, so the universality and portability of the hardware decoding scheme is also relatively low. On the other hand, since the hardware decoder has limited support for video formats (eg, MPEG4, H.264) and profile, level and resolution, there may be different representations on different hardware facilities. By using a common software decoding scheme, the problems with the hardware decoding scheme can be overcome, but the performance is very limited.

기존의 동영상 플레이어의 최적화는 주로 디코더 자체의 최적화 및 메모리 감소 작업의 최적화에 집중되어 있고, 동영상 디코더 중의 IDCT, 역양자화, 엔트로피 디코딩, 모션 보상, 루프 필터 등의 각 모듈 그리고 해상도 저감 디코딩, 색상 전환, 화상 스케일 등 모듈에 대한 알고리즘 최적화 혹은 전문적인 하드웨어 최적화에 집중되어 있지만, 최적화의 보편성이 낮고 최적화 수준이 제한적인 문제점이 있다.The optimization of the existing video player is mainly focused on the optimization of the decoder itself and the memory reduction task, and each module such as IDCT, inverse quantization, entropy decoding, motion compensation, loop filter, and resolution reduction decoding and color conversion in the video decoder. However, the focus is on algorithm optimization or specialized hardware optimization for modules such as image scale, but there is a problem that the generality of the optimization is low and the optimization level is limited.

본 발명의 목적은 상술한 종래 영상처리장치의 문제점을 해결하기 위한 것으로, 동영상 재생의 원활성을 향상시키고 CPU 및 시스템 자원의 점유율을 감소시키는 재생영상를 최적화하는 영상처리장치 및 그 제어방법을 제공함에 있다.An object of the present invention is to solve the problems of the conventional image processing apparatus described above, to provide an image processing apparatus and a control method for optimizing a playback image to improve the smoothness of video playback and reduce the occupancy of CPU and system resources. have.

상기 본 발명의 해결과제를 달성하기 위한 영상처리장치는, 입력영상을 수신하는 영상수신부; 상기 입력영상을 처리하여 출력영상을 출력하는 영상처리부; 상기 출력영상을 표시하는 디스플레이부; 상기 입력영상의 데이터 및 정보를 저장하는 저장부; 상기 입력영상의 영상처리속도와 상기 입력영상의 프레임레이트를 비교하며, 상기 입력영상의 프레임레이트가 상기 입력영상의 영상처리속도보다 클 경우, 상기 출력영상의 프레임레이트를 상기 입력영상의 프레임레이트보다 작도록 설정하고, 설정된 결과에 따라 상기 입력영상의 영상처리되는 프레임의 개수가 감소되도록 제어하는 제어부를 포함하는 것을 특징으로 하는 영상처리장치에 의해 달성될 수 있다.The image processing apparatus for achieving the object of the present invention, the image receiving unit for receiving an input image; An image processor which processes the input image and outputs an output image; A display unit which displays the output image; A storage unit for storing data and information of the input image; The image processing speed of the input image is compared with the frame rate of the input image. When the frame rate of the input image is greater than the image processing speed of the input image, the frame rate of the output image is greater than the frame rate of the input image. It may be achieved by the image processing apparatus, characterized in that it comprises a control unit for setting to be small, so as to control the number of frames to be processed image of the input image according to the set result.

여기서, 상기 제어부는, 상기 입력영상의 영상처리속도 및 상기 출력영상의 프레임레이트에 따라 상기 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 상기 실시간감소율에 따라 상기 입력영상의 프레임의 다운샘플링을 수행할 수 있다.The control unit may calculate a real time reduction rate of a frame of the input image according to the image processing speed of the input image and the frame rate of the output image, and perform downsampling of the frame of the input image according to the calculated real time reduction rate. Can be done.

그리고, 상기 제어부는, 상기 다운샘플링으로 GOP(Group of Picture)구조에 따른 프레임우선순위에 따라 영상처리되는 프레임의 개수의 감소를 수행하기 위한 상기 입력영상의 소정 프레임을 선택하며, 선택된 상기 소정의 프레임은 영상처리 과정 없이 버릴 수 있다.The control unit may select a predetermined frame of the input image to perform a reduction of the number of frames processed by the frame priority according to a group of picture (GOP) structure by the downsampling, and select the predetermined Frames can be discarded without image processing.

여기서, 상기 제어부는, 상기 출력영상의 프레임레이트 및 상기 입력영상의 프레임레이트에 따라 상기 출력영상의 프레임의 감소율을 산출하며, Here, the control unit calculates a reduction rate of the frame of the output image according to the frame rate of the output image and the frame rate of the input image,

상기 소정의 프레임을 버리는 경우, 상기 출력영상의 프레임의 감소율에 따라 균등하게 상기 소정의 프레임을 버리며, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 상기 출력영상의 프레임의 감소율에 의한 상기 입력영상의 소정 프레임의 개수보다 작을 경우, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 모든 프레임을 버릴 수 있다.If the predetermined frame is discarded, the number of frames for which the predetermined frame is discarded equally according to the reduction rate of the frame of the output image, and the number of frames for which the image is processed may be reduced is the reduction rate of the frame of the output image. When the number of the frames of the input image is smaller than the number of frames, the number of frames for which the image processing is performed may be discarded.

그리고, 상기 제어부는, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 상기 출력영상의 프레임의 감소율에 의한 상기 입력영상의 소정 프레임의 개수보다 작을 경우, 상기 영상처리속도 및 상기 출력영상의 프레임레이트에 따라 상기 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 상기 실시간감소율에 따라 영상이 출력되도록 하는 프레임의 감소를 수행하기 위한 상기 입력영상의 소정 프레임을 선택하며, 상기 선택된 소정의 프레임은 영상출력없이 영상처리할 수 있다.The controller may determine the image processing speed and the value when the number of frames for which the reduction of the number of frames processed by the image is smaller than the number of predetermined frames of the input image by the reduction rate of the frames of the output image. Calculating a real-time reduction rate of the frame of the input image according to the frame rate of the output image, selecting a predetermined frame of the input image for performing a reduction of the frame to output the image according to the calculated real-time reduction rate, and selecting The predetermined frame can be image processed without image output.

여기서, 상기 제어부는, 상기 각 GOP내 상기 입력영상 중 하나의 프레임의 상기 영상처리속도와 영상처리된 상기 입력영상의 프레임의 평균 영상처리속도의 비율을 산출하며, 상기 산출된 비율과 영상이 출력되도록 하는 프레임의 감소에 의한 상기 출력영상의 프레임의 감소율을 곱하여 산출된 값을 상기 GOP내의 실시간감소률로 하며, 상기 GOP내의 실시간감소율을 사용하여 영상이 출력되도록 하는 프레임의 감소를 균등하게 수행할 수 있다.Herein, the control unit calculates a ratio of the image processing speed of one frame of the input image in each GOP to the average image processing speed of the frame of the input image image-processed, and the calculated ratio and the image are output. The value calculated by multiplying the reduction rate of the frame of the output image by the reduction of the frame to be the real-time reduction rate in the GOP, and the reduction of the frame to output the image evenly using the real-time reduction rate in the GOP. Can be.

그리고, 상기 영상처리부는 YCbCr포맷에서 RGB포맷으로 변환하는 변환부를 더 포함하고, 상기 제어부는, 상기 입력영상를 상기 YCbCr포맷에서 상기 RGB포맷으로 변환하는 경우, 소정의 변환연산을 포함하여 변환함으로써, 변환 시의 연산량을 감소할 수 있다.The image processing unit may further include a converting unit converting the YCbCr format from the RGB format, and the control unit converts the input image from the YCbCr format to the RGB format by including a predetermined conversion operation. The computational amount of time can be reduced.

여기서, 상기 제어부는, 상기 소정의 변환연산은 시프팅, 테이블 조사, 로직 작업 및 소량의 가법을 포함하여 변환연산을 할 수 있도록 하여 정점화, 제거 곱셈법, 멀티포인트 동시 연산, 테이블 조사법, 제거가법 및 폭제한 연산을 수행할 수 있다.Herein, the control unit may be configured to perform a conversion operation including shifting, table lookup, logic operation, and a small amount of addition, such that vertex, elimination multiplication, multipoint simultaneous operation, table lookup, and removal are performed. Law and limiting operations can be performed.

그리고, 영상신호에 관한 입력을 할 수 있는 사용자입력부를 더 포함하고, 상기 제어부는, 상기 사용자입력부로부터 원활한 재생우선에 관한 입력이 있는 경우, 상기 디스플레이부 화면영역의 크기에 기초하여 격점연산을 사용하여 상기 출력영상의 해상도를 저감시킬 수 있다.The apparatus may further include a user input unit capable of inputting a video signal, and wherein the controller uses a point calculation based on the size of the screen area of the display unit when there is an input regarding smooth reproduction priority from the user input unit. The resolution of the output image can be reduced.

여기서, 상기 영상처리부는 입력영상을 디코딩하는 디코딩부를 더 포함하고, 상기 제어부는, 상기 변환부와 상기 디코딩부를 직렬로 배치하여 상기 YCbCr포맷에서 상기 RGB포맷으로 변환과 상기 입력영상의 영상처리를 병행하여 수행할 수 있다.The image processor may further include a decoder configured to decode an input image, and the controller may be configured to convert the YCbCr format into the RGB format and perform image processing of the input image by arranging the converter and the decoder in series. Can be done.

그리고, 상기 제어부는, 1/2내지 1/16의 비율로 해상도를 저감시킬 수 있다.The controller may reduce the resolution at a ratio of 1/2 to 1/16.

여기서, 상기 저장부는 출력영상이 저장되는 출력영상저장부를 더 포함하고,Here, the storage unit further includes an output image storage unit for storing the output image,

상기 제어부는, 상기 영상처리부에 의해 처리된 상기 출력영상의 해상도와 상기 디스플레이부 화면영역의 크기를 비교하며, 비교된 결과에 기초하여 상기 출력영상 및 상기 입력영상을 표시하거나 상기 출력영상을 조정하여 영상을 표시할 수 있다.The control unit compares the resolution of the output image processed by the image processing unit with the size of the screen area of the display unit, and displays the output image and the input image or adjusts the output image based on the comparison result. The image can be displayed.

그리고, 상기 제어부는, 상기 출력영상의 해상도가 상기 디스플레이부 화면영역의 크기의 1/2보다 작을 경우, 상기 출력영상에 대하여 상기 입력영상의 종횡비를 유지하면서 이중선형 보간법을 사용하여 확대하며, 상기 출력영상의 가로변 또는 세로변 중 적어도 하나가 상기 디스플레이부의 화면영역에 대응되면 나머지 한 변을 상기 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시킬 수 있다.When the resolution of the output image is less than 1/2 of the size of the screen area of the display unit, the controller enlarges the image using the bilinear interpolation while maintaining the aspect ratio of the input image with respect to the output image. When at least one of the horizontal and vertical sides of the output image corresponds to the screen area of the display unit, the other side may be positioned at the center of the side corresponding to the screen area of the display unit.

여기서, 상기 제어부는, 상기 출력영상의 해상도가 상기 디스플레이부 화면영역의 크기보다 소정범위 이하로 작을 경우, 상기 출력영상 또는 상기 입력영상 중 하나를 상기 디스플레이부 화면영역의 중앙에 배치되도록 하여 영상을 표시할 수 있다.Herein, when the resolution of the output image is smaller than a size of the screen area of the display unit, the controller may arrange one of the output image or the input image in the center of the display unit screen area. I can display it.

그리고, 상기 제어부는, 상기 출력영상의 해상도가 디스플레이부 화면영역의 크기보다 소정범위 이상 클 경우, 상기 출력영상에 대하여 상기 입력영상의 종횡비를 유지하면서 최근린법을 사용하여 축소하며, 상기 출력영상의 가로변 또는 세로변 중 적어도 하나가 상기 디스플레이부의 화면영역에 대응되면 나머지 한 변을 상기 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시킬 수 있다.When the resolution of the output image is larger than a size of a display area of the display unit, the controller reduces the size of the output image using a recent Lean method while maintaining the aspect ratio of the input image. When at least one of the horizontal side or the vertical side corresponds to the screen area of the display unit, the other side may be positioned at the center of the side corresponding to the screen area of the display unit.

여기서, 상기 제어부는, 상기 최근린법과 상기 이중선형 보간법을 최적화하기 위하여 좌표연산에 대한 정점화를 수행하며, 프레임의 연산 시 변환에 필요한 좌표를 위한 테이블을 구축하며, 프레임의 상기 좌표는 연산없이 테이블 조사 및 가법연산을 통해 산출되고, 상기 최근린법의 연산으로 픽셀의 RGB 색상을 동시에 처리할 수 있다.Herein, the control unit performs vertices on coordinate operations in order to optimize the latest Lean method and the bilinear interpolation method, constructs a table for coordinates necessary for transformation during the calculation of the frame, and the coordinates of the frame are without calculation. It is calculated through table search and additive operation, and the RGB color of the pixel can be processed simultaneously by the calculation of the above-described method.

한편, 본 발명의 해결과제를 달성하기 위한 영상처리장치의 제어방법은, 입력영상을 수신하는 단계; 상기 입력영상의 영상처리속도와 상기 입력영상의 프레임레이트를 비교하는 단계; 상기 입력영상의 프레임레이트가 상기 입력영상의 영상처리속도보다 클 경우, 상기 출력영상의 프레임레이트를 상기 입력영상의 프레임레이트보다 작도록 설정하는 단계; 설정된 결과에 따라 상기 입력영상의 영상처리되는 프레임의 개수를 감소시키는 단계를 포함하는 영상처리장치의 제어방법에 의해 달성될 수 있다.On the other hand, the control method of the image processing apparatus for achieving the object of the present invention, the step of receiving an input image; Comparing the image processing speed of the input image with the frame rate of the input image; Setting the frame rate of the output image to be smaller than the frame rate of the input image if the frame rate of the input image is greater than the image processing speed of the input image; The method may be achieved by a method of controlling an image processing apparatus, the method including reducing the number of frames to be image-processed in the input image.

여기서, 상기 프레임의 개수를 감소시키는 단계는, 상기 입력영상의 영상처리속도 및 상기 출력영상의 프레임레이트에 따라 상기 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 상기 실시간감소율에 따라 상기 입력영상의 프레임의 다운샘플링을 수행하는 단계를 포함할 수 있다.The reducing of the number of frames may include calculating a real time reduction rate of a frame of the input image according to an image processing speed of the input image and a frame rate of the output image, and calculating the real time reduction rate of the input image according to the calculated real time reduction rate. And performing downsampling of the frames of the frames.

그리고, 상기 다운샘플링을 수행하는 단계는, 상기 다운샘플링으로 GOP(Group of Picture)구조에 따른 프레임우선순위에 따라 영상처리되는 프레임의 개수의 감소를 수행하기 위한 상기 입력영상의 소정 프레임을 선택하며, 선택된 상기 소정의 프레임은 영상처리 과정 없이 버리는 단계를 포함할 수 있다.The performing of the downsampling may include selecting a predetermined frame of the input image to reduce the number of frames processed by the frame priority according to a GOP (Group of Picture) structure by the downsampling. The predetermined frame may be discarded without image processing.

여기서, 상기 영상처리 과정 없이 버리는 단계는, 상기 출력영상의 프레임레이트 및 상기 입력영상의 프레임레이트에 따라 상기 출력영상의 프레임의 감소율을 산출하며, 상기 출력영상의 프레임의 감소율에 따라 균등하게 상기 소정의 프레임을 버리며, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 상기 출력영상의 프레임의 감소율에 의한 상기 입력영상의 소정 프레임의 개수보다 작을 경우, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 모든 프레임을 버리는 단계를 포함할 수 있다.The discarding without the image processing may include calculating a reduction rate of the frame of the output image according to the frame rate of the output image and the frame rate of the input image, and uniformly according to the reduction rate of the frame of the output image. If the number of frames for which the reduction of the number of frames to be image-processed is discarded is smaller than the number of frames of the input image by the reduction rate of the frame of the output image, Discarding all frames for which reduction may be performed may include.

그리고, 상기 영상처리 과정 없이 버리는 단계는, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 상기 출력영상의 프레임의 감소율에 의한 상기 입력영상의 소정 프레임의 개수보다 작을 경우, 상기 영상처리속도 및 상기 출력영상의 프레임레이트에 따라 상기 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 상기 실시간감소율에 따라 영상이 출력되도록 하는 프레임의 감소를 수행하기 위한 상기 입력영상의 소정 프레임을 선택하며, 상기 선택된 소정의 프레임은 영상출력없이 영상처리하는 단계를 더 포함할 수 있다.The discarding without the image processing may include: when the number of frames in which the reduction of the number of frames processed by the image is performed is smaller than the number of predetermined frames of the input image by the reduction rate of the frames of the output image. A predetermined frame of the input image for calculating a real-time reduction rate of the frame of the input image according to the image processing speed and the frame rate of the output image, and for reducing the frame to output the image according to the calculated real-time reduction rate The selected predetermined frame may further include image processing without image output.

여기서, 상기 모든 프레임을 버리는 단계는, 상기 각 GOP내 상기 입력영상 중 하나의 프레임의 상기 영상처리속도와 영상처리된 상기 입력영상의 프레임의 평균 영상처리속도의 비율을 산출하며, 상기 산출된 비율과 영상이 출력되도록 하는 프레임의 감소에 의한 상기 출력영상의 프레임의 감소율을 곱하여 산출된 값을 상기 GOP내의 실시간감소률로 하며, 상기 GOP내의 실시간감소율을 사용하여 영상이 출력되도록 하는 프레임의 감소를 균등하게 수행하는 단계를 더 포함할 수 있다.The discarding of all the frames may include calculating a ratio of the image processing speed of one frame of the input image in each GOP to the average image processing speed of the frame of the input image. And a value calculated by multiplying the reduction rate of the frame of the output image by the reduction of the frame for outputting the image as a real time reduction rate in the GOP, and reducing the frame for outputting the image using the real time reduction rate in the GOP. It may further comprise the step of performing evenly.

그리고, 상기 프레임의 개수를 감소시키는 단계는, 상기 입력영상을 YCbCr포맷에서 RGB포맷으로 변환하는 경우, 소정의 변환연산을 포함하여 변환함으로써, 변환 시의 연산량을 감소시키는 단계를 더 포함할 수 있다.The reducing of the number of frames may further include reducing a calculation amount during conversion by converting the input image from a YCbCr format to an RGB format by including a predetermined conversion operation. .

여기서, 상기 소정의 변환연산은 시프팅, 테이블 조사, 로직 작업 및 소량의 가법을 포함하여 변환연산을 할 수 있도록 하여 정점화, 제거 곱셈법, 멀티포인트 동시 연산, 테이블 조사법, 제거가법 및 폭제한 연산을 수행할 수 있다.Here, the predetermined transform operation may be transformed, including shifting, table checking, logic operation, and a small amount of additive methods, such as vertex, elimination multiplication, multipoint simultaneous operation, table checking, elimination, and limiting. You can perform the operation.

그리고, 상기 연산량을 감소시키는 단계는, 사용자에 의해 원활한 재생우선에 관한 입력이 있는 경우, 영상이 출력되는 화면영역의 크기에 기초하여 격점연산을 사용하여 상기 출력영상의 해상도를 저감시키는 단계를 포함할 수 있다.The reducing of the calculation amount may include reducing the resolution of the output image by using a point calculation based on the size of the screen region on which the image is output when there is an input regarding a smooth reproduction priority by the user. can do.

여기서, 상기 연산량을 감소시키는 단계는, 상기 YCbCr포맷에서 상기RGB포맷으로 변환하는 변환부와 상기 입력영상을 영상처리하는 디코딩부를 직렬로 배치하여 상기 YCbCr포맷에서 상기 RGB포맷으로 변환과 상기 입력영상의 영상처리를 병행하여 수행하는 단계를 포함할 수 있다.The reducing of the calculation amount may include converting the YCbCr format from the YCbCr format to the RGB format and a decoding unit configured to process the input image in series to convert from the YCbCr format to the RGB format. And performing image processing in parallel.

그리고, 상기 해상도를 저감시키는 단계는, 1/2내지 1/16의 비율로 해상도를 저감시킬 수 있다.In the reducing of the resolution, the resolution may be reduced by a ratio of 1/2 to 1/16.

여기서, 상기 프레임의 개수를 감소시키는 단계는, 상기 출력영상의 해상도와 상기 출력영상이 출력되는 화면영역의 크기를 비교하며, 비교된 결과에 기초하여 상기 출력영상 및 상기 입력영상을 표시하거나 상기 출력영상을 조정하여 영상을 표시하는 단계를 더 포함할 수 있다.The reducing of the number of the frames may include comparing the resolution of the output image and the size of the screen area on which the output image is output, and displaying or outputting the output image and the input image based on a result of the comparison. The method may further include displaying an image by adjusting the image.

그리고, 상기 영상을 표시하는 단계는, 상기 출력영상의 해상도와 상기 출력영상이 출력되는 화면영역의 크기의 1/2보다 작을 경우, 상기 출력영상에 대하여 상기 입력영상의 종횡비를 유지하면서 이중선형 보간법을 사용하여 확대하며, 상기 출력영상의 가로변 또는 세로변 중 적어도 하나가 상기 디스플레이부의 화면영역에 대응되면 나머지 한 변을 상기 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시키는 단계를 포함할 수 있다.In the displaying of the image, when the resolution of the output image is smaller than 1/2 of the size of the screen area to which the output image is output, the bilinear interpolation method is maintained while maintaining the aspect ratio of the input image with respect to the output image. The method may further include positioning the other side at the center of the side corresponding to the screen area of the display unit when the at least one of the horizontal side or the vertical side of the output image corresponds to the screen area of the display unit.

여기서, 상기 영상을 표시하는 단계는, 상기 출력영상의 해상도와 상기 출력영상이 출력되는 화면영역의 크기보다 소정범위 이하로 작을 경우, 상기 출력영상 또는 상기 입력영상 중 하나를 상기 출력영상이 출력되는 화면영역의 중앙에 배치되도록 하여 영상을 표시하는 단계를 포함할 수 있다.The displaying of the image may include outputting one of the output image or the input image when the output image is smaller than a resolution of the output image and the size of the screen area to which the output image is output. And displaying the image by being disposed at the center of the screen area.

그리고, 상기 영상을 표시하는 단계는, 상기 출력영상의 해상도가 상기 출력영상이 출력되는 화면영역의 크기보다 소정범위 이상 클 경우, 상기 출력영상에 대하여 상기 입력영상의 종횡비를 유지하면서 최근린법을 사용하여 축소하며, 상기 출력영상의 가로변 또는 세로변 중 적어도 하나가 상기 출력영상이 출력되는 화면영역에 대응되면 나머지 한 변을 상기 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시키는 단계를 포함할 수 있다.In the displaying of the image, when the resolution of the output image is larger than a size of a screen area in which the output image is output, the latest image is maintained while maintaining the aspect ratio of the input image with respect to the output image. And at least one of a horizontal side or a vertical side of the output image corresponds to a screen area on which the output image is output, and positioning the other side at the center of a side corresponding to the screen area of the display unit. .

여기서, 상기 최근린법과 상기 이중선형 보간법을 최적화하기 위하여 좌표연산에 대한 정점화를 수행하며, 프레임의 연산 시 변환에 필요한 좌표를 위한 테이블을 구축하며, 프레임의 상기 좌표는 연산없이 테이블 조사 및 가법연산을 통해 산출되고, 상기 최근린법의 연산으로 픽셀의 RGB 색상을 동시에 처리할 수 있다.Here, to optimize the recent Lean method and the bilinear interpolation method, it performs a vertex of the coordinate operation, and constructs a table for the coordinates necessary for the transformation during the calculation of the frame, the coordinates of the frame without the operation It is calculated through the calculation, and the RGB method of the pixel can be processed simultaneously by the calculation of the recent method.

본 발명에 의하면, 하드웨어와 관련이 없는 소프트웨어를 사용함으로써 실현되는 것으로, 이는 보편성을 구비한 멀티미디어 재생방법이고 또한 각종 동영상 포맷을 광범위하게 지원할 수 있다.According to the present invention, it is realized by using software that is not related to hardware, which is a multimedia playback method with universality and can support a wide range of video formats.

또한, 동영상 디코딩, 색상 전환, 화상 스케일, 디코딩 속도제어, 동영상 프레임 디스플레이, 시스템 메모리의 사용 및 프레임 버퍼에 대하여 최적화 조합을 진행함으로써, 동영상 재생의 원활성을 최종적인 목표로 하여, 보편성을 구비할 뿐만 아니라 또한 CPU 및 시스템 자원의 점유율을 효과적으로 감소시킬 수 있고 재생의 원활성을 향상시킬 수 있는 효과가 있다.In addition, by performing optimized combinations for video decoding, color conversion, image scale, decoding speed control, video frame display, system memory use, and frame buffer, it is possible to provide universality with the final goal of smoothness of video playback. In addition, it can also effectively reduce the occupancy of the CPU and system resources, and improve the smoothness of playback.

도 1은 본 발명의 일실시 예에 따른 소정의 플램폼에 기반한 영상처리장치 소프트웨어의 블록도이며,
도 2는 도1 중의 영상처리장치 소프트웨어의 로직 구성도이고, 모듈 구성, 기본공정 및 각 부분의 관계를 포함하고,
도 3은 본 발명의 일실시 예에 따른 영상처리장치의 RGB쾌속 전환 방법에 따른 폭제한 테이블 중 각 구간의 길이 및 수치에 관한 모식도이며,
도 4는 본 발명의 일실시 예에 따른 영상처리장치의 YCbCr 4:2:0서브 샘플링 포맷에서 RGB로 전환하는 방법 중 1차 전환산출을 통해 4개의 밝기 픽셀 및 2개의 색차 컴포넌트를 동시에 처리하는 모식도이고,
도 5는 본 발명의 일실시 예에 따른 영상처리장치의 YCbCr 4:2:0서브 샘플링 포맷에서 RGB로의 1/2 해상도 저감 전환 모식도이며,
도 6은 본 발명의 일실시 예에 따른 영상처리장치의 목표 화상에서 좌표변환을 거치고, 원 화상에 대응하는 픽셀의 위치S 및 원 화상이 S주변에서의 4개 근접 픽셀A, B, C, D의 모식도이고,
도 7은 본 발명의 일실시 예에 따른 영상처리장치의 구성을 나타내는 블록도이며,
도 8은 본 발명의 또 다른 일실시 예에 따른 영상처리장치의 구성을 나타내는 블록도이며,
도 9는 본 발명의 다른 일실시 예에 따른 영상처리장치의 제어흐름도이다.
1 is a block diagram of an image processing apparatus software based on a predetermined platform according to an embodiment of the present invention.
FIG. 2 is a logic diagram of the image processing apparatus software shown in FIG.
3 is a schematic diagram of the length and the numerical value of each section of the limiting table according to the RGB rapid switching method of the image processing apparatus according to an embodiment of the present invention,
4 is a diagram illustrating a method of simultaneously processing four brightness pixels and two chrominance components through first order conversion calculation in a method of converting from a YCbCr 4: 2: 0 sub-sampling format to RGB in an image processing apparatus according to an embodiment of the present invention; It is a schematic diagram,
5 is a schematic diagram showing a half resolution reduction conversion from YCbCr 4: 2: 0 sub-sampling format to RGB of an image processing apparatus according to an embodiment of the present invention.
FIG. 6 illustrates coordinates of a target image of an image processing apparatus according to an exemplary embodiment of the present invention, and positions S of pixels corresponding to the original image and four adjacent pixels A, B, C, It is a schematic diagram of D,
7 is a block diagram illustrating a configuration of an image processing apparatus according to an embodiment of the present invention.
8 is a block diagram illustrating a configuration of an image processing apparatus according to another embodiment of the present invention.
9 is a control flowchart of an image processing apparatus according to another embodiment of the present invention.

본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예들에 한정되지 않는다. 설명의 편의상 본 발명과 직접적으로 관련이 없는 부분은 생략하였고, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조부호를 부여하였다. The present invention may be embodied in many different forms and is not limited to the embodiments described herein. Parts which are not directly related to the present invention are omitted for convenience of description, and the same or similar components are denoted by the same reference numerals throughout the specification.

본 발명의 목적, 기술방안 및 장점이 더욱 명확해지도록, 이하 첨부된 도면을 참조하여 실시예에 따라 본 발명에 대하여 상세하게 설명한다.BRIEF DESCRIPTION OF THE DRAWINGS To make the objectives, technical solutions, and advantages of the present invention clearer, the present invention will be described in detail with reference to the accompanying drawings.

임베디드 설비 혹은 소정의 플랫폼에 기반한 영상처리장치의 소프트웨어 구조는 유사한 바, 도 1은 본 발명의 일실시 예에 따른 소정의 플램폼에 기반한 영상처리장치 소프트웨어의 구조를 도시한 것이다. 여기서, 최상층은 소정의 에플리케이션층이고, JAVA 및 JNI의 로컬 함수를 통해 플레이어의 호출을 실현한다. 영상처리장치는 미디어 분석 모듈과 플레이어 코어로 구성되는데 여기서, 미디어 분석 모듈은 파일 전송 프로토콜과 미디어 파일격식을 분석하고, 플레이어 코어는 전체 영상처리장치의 로직 코어로서 로직제어모듈, 동영상 디코딩 모듈, 오디오 디코딩 모듈, 동영상 디스플레이 모듈 및 오디오 재생 모듈로 구성되고, 매개 모듈은 하나의 스레드를 작동한다. 로직 제어 모듈은 메인 스레드를 작동하여 멀티미디어 데이터의 역다중화 및 전체 플레이어의 로직 제어를 진행한다. 기타 4개 모듈도 각각 하나의 스레드를 작동하여 동영상 디코딩, 디스플레이, 오디오 디코딩, 재생을 진행한다. 여기서, 오디오/동영상의 디코딩 모듈은 각각 오픈 소스의 영상처리장치 소프트웨어 프레임 FFMPEG을 호출하여 소프트웨어 디코딩을 진행한다. 소정의 어댑터 모듈의 호출을 통해, 동영상의 디스플레이 모듈은 소정의 플랫폼의 표면(Surface) 인터페이스를 이용하여 동영상의 디스플레이를 진행하고, 오디오의 재생 모듈은 소정의 시스템의 오디오트랙(Audio Track) 인터페이스를 이용하여 오디오의 재생을 진행한다. 여기서, 소정의의 Surface 및Audio Track는 모두 소정의 플랫폼 통용의 소프트웨어 인터페이스이다.The software structure of an image processing apparatus based on an embedded facility or a predetermined platform is similar. FIG. 1 illustrates a structure of image processing apparatus software based on a predetermined platform according to an embodiment of the present invention. Here, the uppermost layer is a predetermined application layer, and realizes a player call through local functions of JAVA and JNI. The image processing apparatus is composed of a media analysis module and a player core. The media analysis module analyzes a file transfer protocol and a media file format, and the player core is a logic core of the entire image processing apparatus. It is composed of decoding module, video display module and audio playback module, and each module operates one thread. The logic control module operates the main thread to demultiplex the multimedia data and control the logic of the entire player. The other four modules also run one thread each for video decoding, display, audio decoding, and playback. Here, the audio / video decoding module calls the open source image processing apparatus software frame FFMPEG, respectively, to perform software decoding. Through the call of a predetermined adapter module, the display module of the video proceeds to display the video using the surface interface of the predetermined platform, and the audio playback module uses the audio track interface of the predetermined system. Proceed with audio playback. Here, the predetermined surface and the audio track are both software interfaces for a predetermined platform.

멀티스레딩 플레이어 코어의 로직 구성은 도2와 같다. 역다중화 스레드는 버퍼를 입력함으로써, 입력한 멀티미디어 데이터를 리드하여 역다중화를 진행하고, 원시 스트림의 데이터 패킷(예를 들어, MPEG-4, H.264의 1프레임의 압축 데이터)을 출력하여 각각 오디오, 동영상 패킷 버퍼에 저장한다. 오디오, 동영상 디코딩 스레드는 각자의 입력 버퍼에서 데이터 패킷을 리드하고, FFMPEG소프트웨어 디코더를 호출하여 디코딩을 진행하며, 디코딩 후의 YCbCr데이터와 PCM데이터를 출력한다. 동영상 디코더가 출력한 YCbCr데이터에 대하여 RGB전환을 진행하고, 전환 후의 RGB데이터는 스케일을 거쳐 표면(Surface)프레임 버퍼와 동일한 사이즈로 조절되며, 표면(Surface)의 프레임 버퍼에 직접 기입된다. 이를 통해, 동영상 프레임을 디스플레이 할 경우, 할당 및 작업해야 하는 시스템 메모리를 생략할 수 있다. 동영상 디스플레이 스레드는 공유 데이터와 로직제어정보를 방문함으로써 매개 프레임 버퍼 중의 RGB데이터의 디스플레이 타이밍을 제어하고, 또한 오디오 재생 스레드와 동일한 로직제어를 진행함으로써 오디오/동영상 프레임의 동기화 재생을 완성한다.The logic configuration of the multithreaded player core is shown in FIG. The demultiplexing thread reads the input multimedia data and demultiplexes the buffer by inputting a buffer, and outputs a data packet of a raw stream (for example, compressed data of one frame of MPEG-4 and H.264). Store in audio and video packet buffers. The audio and video decoding thread reads data packets from its input buffer, calls the FFMPEG software decoder to perform decoding, and outputs the decoded YCbCr data and PCM data. RGB conversion is performed on the YCbCr data output by the video decoder, and the RGB data after the conversion is adjusted to the same size as the surface frame buffer through the scale, and written directly to the surface frame buffer. In this way, when displaying a video frame, system memory that needs to be allocated and worked can be omitted. The video display thread controls the display timing of the RGB data in each frame buffer by visiting the shared data and logic control information, and also performs the same logic control as the audio playback thread to complete the synchronized playback of the audio / video frame.

기존기술에 대한 분석에 기반하여, 본원 발명은 하기와 같은 몇몇 측면에서 기존기술에 대하여 개선을 진행한다.Based on the analysis of the existing technology, the present invention makes improvements to the existing technology in several aspects as follows.

1) 기존의 동영상 디코더에 대하여 최적화하는 기술방안 중, 일반적으로 각 모듈에 대하여 독립적으로 최적화를 진행하는 바, 각 모듈을 결부시켜 최적화하지 않고 있다. 따라서, 전체 동영상 플레이어를 최적화하는 적중성 및 보편성이 낮고, 최적화 수준이 제한되어 있다.1) Among the technical solutions for optimizing existing video decoders, optimization is generally performed independently for each module. Therefore, each module is not connected and optimized. Therefore, the hitability and universality for optimizing the entire video player is low, and the optimization level is limited.

2) 기존의 동영상 디코팅 최적화 방안 중, 소정 프레임 드로핑의 방법에 관하여 거의 모두 시간상의 균일한 리샘플링 혹은 화상 내용에 기반한 복잡한 소정 프레임 드로핑 알고리즘을 적용하고 있다.2) Almost all of the existing video decoding optimization methods apply a predetermined frame dropping algorithm based on uniform resampling or image content in time.

3) 기존의 색상 공간 전환의 최적화 알고리즘 중, 알고리즘 레벨의 최적화 및 하드웨어에 기반한 특정 최적화 작업을 적용함으로써 전환 속도를 향상시키고 있다.3) Among existing optimization algorithms for color space conversion, the conversion speed is improved by applying algorithm-level optimization and hardware-specific optimization.

본 발명에 따른 임베디드 설비 혹은 소정의 플랫폼에 기반한 영상처리장치의 소프트웨어 중 동영상 디코딩, 디스플레이 모듈에 관한 최적화 방법은 하기와 같은 몇몇 측면을 포함한다. 즉, 디코딩 속도에 기반한 동적 소정 프레임 드로핑 방법, YCbCr에서 RGB 색상 공간으로의 쾌속 전환 방법 및 임의의 비례의 화상 쾌속 스케일방법이다. 이하, 상기 방법에 대하여 상세하게 설명한다.Among the software of an image processing apparatus based on an embedded facility or a platform according to the present invention, an optimization method for a video decoding and display module includes several aspects as follows. That is, a dynamic predetermined frame dropping method based on the decoding speed, a fast switching method from YCbCr to RGB color space, and an image rapid scaling method of arbitrary proportion. Hereinafter, the method will be described in detail.

1) 디코딩 속도에 기반한 소정 프레임 드로핑 방법1) Predetermined Frame Dropping Method Based on Decoding Rate

상기 프레임 드로핑 방법의 작용은 시간축 상에서 동영상 프레임에 대하여 다운 샘플링(예를 들어, 30프레임/초인 동영상을 20프레임/초인 동영상으로 다운 샘플링할 경우, 샘플링율은 3:2이다)을 진행하는 것이고, 사용자의 소감을 낮추지 않는 전제하에 동영상의 프레임율을 낮추어 동영상 디코딩의 평균속도를 가속화하는 것이다. 상기 알고리즘은 디코딩 속도에 기반한 소정 프레임 드로핑 방법으로서, 로스 디코딩과 로스 디스플레이의 2개 단계를 포함한다. 전자는 버리기로 선정한 동영상 프레임에 대하여 처리하지 않고 입력 데이터를 직접 버리는 것이고, 후자는 버리기로 선정한 동영상 프레임에 대하여 우선 디코딩을 진행하지만 디코딩 출력한 동영상 프레임에 대하여 저장 및 디스플레이를 하지 않는 것이다. 본 방법은 구체적으로 하기와 같은 3개 부분을 포함한다.The action of the frame dropping method is to perform down sampling (e.g., when sampling down a video of 30 frames / second to a video of 20 frames / second, the sampling rate is 3: 2) on the video frame on the time axis. By lowering the frame rate of the video, the average speed of video decoding is accelerated under the assumption that the user's impression is not lowered. The algorithm is a predetermined frame dropping method based on the decoding speed, and includes two stages of loss decoding and loss display. The former discards input data directly without processing the video frame selected for discarding, while the latter performs decoding on the video frame selected for discarding first, but does not store and display the decoded video frame. The method specifically includes three parts as follows.

i) 로스 디코딩 및 로스 디스플레이의 선택 매커니즘i) Loss decoding and loss display selection mechanism

동영상 서열 중, 프레임간 예측의 존재로 인해 임의의 하나의 프레임 데이터를 버리고 디코딩을 진행하지 않을 경우, 후속 프레임의 디코딩이 참조 프레임이 결여되어 디코딩 매칭이 안되고 또 예측 링크 중의 오류 전파를 초래할 수 있다. 본 방법이 로스 디코딩 혹은 로스 디스플레이를 선택하는 의거는 하기와 같다. 즉, 목표 프레임율에 따라 로스 디코딩 시, 기타 프레임의 참조 프레임으로 하지 않는 화상을 우선적으로 선택하여 버리고, 만약 이런 화상이 존재하지 않거나 혹은 이런 화상을 버린 후 여전히 프레임율을 목표 프레임율로 낮출 수 없을 경우, 로스 디스플레이의 방법을 사용한다.In the moving picture sequence, if any one frame data is discarded due to the existence of inter-frame prediction and the decoding is not performed, decoding of subsequent frames may lack reference frames, resulting in decoded matching and error propagation in the prediction link. . The basis for selecting the loss decoding or the loss display is as follows. That is, when loss decoding according to the target frame rate, a picture that does not serve as a reference frame of other frames is preferentially selected, and if such a picture does not exist or is discarded, the frame rate can still be lowered to the target frame rate. If not, use the method of loss display.

ii) 로스 디코딩 방법ii) Ross decoding method

일반B프레임, 분급B프레임의 최하급B프레임, 분급P프레임의 최하급P프레임, 폐쇄루프GOP 내의 최후1프레임P프레임은 기타 프레임의 참조 화상으로 하지 않는다. 따라서, 본 방법에 따르면, 이런 프레임을 버림 가능한 프레임으로 선택할 수 있다. 목표 프레임율 및 원시 프레임율의 산출 결과에 따라, 디코더는 버림 가능한 프레임 중에서 선택할 수 있고, 전부 혹은 일부 버림 가능한 프레임을 선정하여 버릴 수 있다. 즉, 디코더는 이런 프레임의 입력 데이터에 대하여 처리를 진행하지 않고, 참조 화상의 버퍼 및 인덱스를 업데이트하지 않으며, 입력 데이터 패킷을 직접 버리고, 다음 프레임의 입력 데이터를 대기한다. 본 방법에 따르면, 일정량의 프레임에 관한 전체 프레임 디코딩, 색상공간 전환, 스케일 및 디스플레이에 필요한 시간을 절약할 수 있고, 동영상의 평균 디코딩 및 디스플레이 속도를 현저히 향상시킬 수 있다.The normal B frame, the lowest B frame of the classification B frame, the lowest P frame of the classification P frame, and the last 1 frame P frame in the closed loop GOP are not referred to as reference pictures of other frames. Therefore, according to the method, such a frame can be selected as a discardable frame. Depending on the result of the calculation of the target frame rate and the raw frame rate, the decoder can select from among the frames that can be discarded and select all or part of the frames that can be discarded. That is, the decoder does not process the input data of such a frame, does not update the buffer and index of the reference picture, directly discards the input data packet, and waits for input data of the next frame. According to the method, it is possible to save time required for full frame decoding, color space conversion, scale and display for a certain amount of frames, and to significantly improve the average decoding and display speed of a video.

iii) 로스 디스플레이 방법iii) Los display method

만약 GOP구조 중 B프레임, 분급P프레임, 폐쇄루프GOP가 존재하지 않거나, 혹은 ii)로스 디스플레이 방법중 로스 디코딩 방법을 통해 원시 프레임율을 목표 프레임율로 낮출 수 없을 경우, 본 방법에 따라 진일보로 로스 디스플레이의 방법을 선택한다. 상기 방법은 디코딩 과정을 개변시키지 않는다. 즉, 모든 동영상 프레임은 모두 디코딩을 진행하지만, 선택된 버림 가능한 프레임은 디코딩 후의 화상을 출력하지 않음으로써, 이런 프레임의 색상공간 전환, 스케일 및 디스플레이 시간을 절약할 수 있다. 버림 가능한 프레임을 선택하는 구체적인 방법은 하기와 같다.If there is no B frame, classification P frame, closed loop GOP in the GOP structure, or ii) the raw frame rate cannot be lowered to the target frame rate through the loss decoding method of the loss display method, it is further improved according to the present method. Choose the method of loss display. The method does not alter the decoding process. That is, all video frames are decoded, but the selected discardable frame does not output the decoded image, thereby saving color space conversion, scale, and display time of such frames. A detailed method of selecting a discardable frame is as follows.

본 단계에서 필요한 프레임 드로핑율f(목표 프레임 드로핑율에서 이전 단계의 프레임 드로핑율을 제거한다)을 산출하고, N프레임 간격으로 현재 프레임의 디코딩 시간 tc 및 현재 프레임 이전의 모든 프레임의 평균 디코딩 시간ta을 산출하며, 실시간 프레임 드로핑율을 fr=f×tc÷ta로 설정한다. 여기서, N프레임은 하나의 실시간 프레임 드로핑 단위이고, 하나의 실시간 프레임 드로핑 단위 중에서 균일 프레임 드로핑의 책략을 적용하며, 프레임 드로핑율을 fr로 하고, 하나의 실시간 프레임 드로핑 단위 내에서 상기 프레임 드로핑율에 따라 버림 가능한 프레임을 선택한다. 실시간 프레임 드로핑율을 사용하는 목적은, 디코딩이 비교적 느린 시간구간 내에서 프레임 드로핑율을 제고시키고, 디코딩이 비교적 빠른 시간구간 내에서 프레임 드로핑율을 낮추는 것이다. 또한, 하나의 N프레임의 단위 내에서 균일 프레임 드로핑의 책략을 선택함으로써 동영상 재생의 평균 속도를 향상시키면서 동영상 재생의 원활성 및 사용자 감상에 영향이 미치지 않도록 한다.Calculate the frame dropping rate f (remove the frame dropping rate of the previous step from the target frame dropping rate) required in this step, and decode time tc of the current frame in N frame intervals and average decoding timeta of all frames before the current frame. The real time frame dropping rate is set to fr = f × tc ÷ ta. Herein, the N frame is one real time frame dropping unit, and a scheme of uniform frame dropping is applied among one real time frame dropping unit, the frame dropping rate is fr, and the one frame is performed within one real time frame dropping unit. Select a frame that can be discarded according to the frame dropping rate. The purpose of using the real time frame dropping rate is to improve the frame dropping rate within a time period where decoding is relatively slow and to reduce the frame dropping rate within a time period where decoding is relatively fast. In addition, by selecting a strategy of uniform frame dropping within a unit of one N-frame, the average speed of video playback is improved and the smoothness of video playback and user's viewing are not affected.

한편, 이는 플레이어가 지각한 동영상 프레임을 버리는 방법과 무관하다. 본 방법에 따르면, 버리기로 선정한 동영상 프레임은 디코더에서 출력되지 않음으로써, 오디오/동영상 동기화 로직 중 지각한 동영상 프레임을 최대한 감소하려는 것이다.On the other hand, this is independent of how the player discards the perceived video frame. According to this method, the video frame selected for discard is not output from the decoder, so that the perceived video frame in the audio / video synchronization logic is reduced as much as possible.

2) YCbCr에서 RGB 색상 공간으로의 쾌속 전환 방법2) Rapid Switching Method from YCbCr to RGB Color Space

디코더에서 출력하는 YCbCr화상에 대하여 RGB색상 공간의 전환을 진행하는 중, 부동 소수점 연산, 메모리 작업, 축점 산출은 대량의 시스템 자원 및 산출량을 소모하므로, 본 발명은 상기 전환방법에 대하여 최적화를 진행하였으며, 주로 하기와 같은 단계를 포함한다.During the conversion of the RGB color space to the YCbCr image output from the decoder, floating point arithmetic, memory operations, and axis point calculation consume a large amount of system resources and outputs. Therefore, the present invention has optimized the conversion method. And, mainly, the following steps.

i)알고리즘 레벨 최적화i) Algorithm level optimization

알고리즘 레벨 최적화는 YCbCr에서 RGB으로의 전환 연산에 대한 정점화 방식, 제거 곱셈법, 멀티포인트 동시 연산, 테이블 조사법, 제거가법 및 폭제한 연산을 포함함으로써, CPU자원을 소모하는 연산을 대폭 감소시킨다.Algorithm-level optimization significantly reduces CPU-consuming operations by including vertexing, elimination multiplication, multipoint concurrency, table lookup, elimination and limiting operations for YCbCr to RGB conversion operations.

ii) 해상도 저감 RGB전환ii) RGB resolution reduction

YCbCr화상 해상도가 목표 디스플레이 버퍼의 사이즈보다 훨씬 크고 또한 사용자가 원활한 재생 우선의 재생 옵션을 선택 시, 본 발명은 디코딩 후의 화상에 대하여 비율 규칙(즉, 수평, 수직 방향으로의 동일 비율 축소)에 따른 해상도 저감 RGB전환을 진행함으로써, 전환 후의 RGB화상 사이즈가 목표 디스플레이 버퍼의 사이즈에 접근하도록 할 수 있다. 여기서,

Figure pat00001
,
Figure pat00002
,
Figure pat00003
....
Figure pat00004
의 비율 규칙에 따른 해상도 저감 RGB전환을 포함한다. 상기 방법을 통하여, RGB전환 연산에 참여하는 픽셀 포인트 수를 대폭 감소시켜 전환 속도를 향상시킨다.When the YCbCr picture resolution is much larger than the size of the target display buffer, and the user selects a smooth playback priority play option, the present invention is directed to a ratio rule (i.e., the same ratio reduction in the horizontal and vertical directions) for the image after decoding. By performing the resolution reduction RGB conversion, the RGB image size after the conversion can approach the size of the target display buffer. here,
Figure pat00001
,
Figure pat00002
,
Figure pat00003
....
Figure pat00004
Resolution RGB conversion according to the ratio rule of the. Through the above method, the number of pixel points participating in the RGB conversion operation is greatly reduced to improve the conversion speed.

iii) 병행 전환iii) parallel conversion

멀티스레딩 병행 디코딩을 지원하는 소프트웨어 디코더에 있어서, YCbCr에서 RGB으로의 전환 모듈은 매개 디코딩 스레드가 완료되기 전에 작업을 진행한다. 이를 통해, 전환 모듈과 각자 디코딩 스레드 내의 디코딩 모듈이 직렬되고, 매개 프레임 화상에 대한 전환 작업 역시 병행된다. 상기 방법은 멀티 코어 플랫폼의 최적화에 대하여 아주 효과적이고, 단일 코어 플랫폼에 대하여서도 일정 정도로 디코딩 및 전환의 속도를 향상시키면서 또한 전체 플레이어의 성능에 대하여 영향을 미치지 않는다.In software decoders that support multithreaded parallel decoding, the YCbCr to RGB conversion module does work before the intermediate decoding thread is completed. In this way, the switching module and the decoding module in the respective decoding thread are serialized, and the switching operation for each frame picture is also parallel. The method is very effective for the optimization of multi-core platforms and improves the speed of decoding and conversion to some extent even for a single core platform and does not affect the performance of the entire player.

3) 임의의 비례의 화상 쾌속 스케일방법3) Arbitrary proportional image rapid scaling method

전환 후의 RGB화상 사이즈는 목표 디스플레이 버퍼의 사이즈와 상이할 수 있다. 본 발명은 임의의 비례의 화상 쾌속 스케일 방법을 사용하여 출력 화상을 목표 디스플레이 버퍼의 사이즈로 스케일 할 수 있다. 구체적으로 하기와 같은 내용을 포함한다.The RGB image size after switching may be different from the size of the target display buffer. The present invention can scale the output image to the size of the target display buffer using any proportional image rapid scaling method. Specifically, the following content is included.

i) 목표 디스플레이 버퍼에 직접 기입하는 비메모리 작업i) Non-memory operation to write directly to the target display buffer

여분의 메모리 할당 및 메모리 작업을 방지하기 위하여, 스케일 모듈은 매개 프레임의 동영상 화상에 대하여 스케일을 진행하기 전에 어댑터층을 통해 목표 디스플레이 버퍼 주소의 포인트를 획득하고, 스케일 모듈은 목적 화상을 위해 메모리를 할당하지 않고 목적 화상을 상기 포인트가 가리키는 주소에 직접 기입하며, 이어 동영상 디스플레이 모듈은 상기 주소에 이미 기입된 RGB화상을 언제 디스플레이하는지 결정한다.In order to prevent extra memory allocation and memory operations, the scale module obtains the point of the target display buffer address through the adapter layer before scaling the moving picture of each frame, and the scale module stores the memory for the target picture. Without assignment, the target picture is written directly to the address indicated by the point, and the moving picture display module then determines when to display the RGB picture already written at the address.

ii) 스케일링에 따라 스케일 방법 및 디스플레이 모드를 선택ii) Select scaling method and display mode according to scaling

상이한 해상도의 화상에 대하여 서로 다른 스케일 혹은 디스플레이 모드를 적용한다.Different scales or display modes are applied to images of different resolutions.

화상 해상도가 화면 사이즈의 1/2보다 작을 경우(즉, 횡종 사이즈가 모두 목표 디스플레이 버퍼와 대응하는 사이즈의 1/2보다 작음), 화상에 대하여 이중선형 보간법을 적용하여 확대하고, 확대하는 과정에서 소스 화상의 종횡비를 유지하며, 전체화면 사이즈에 미치지 못하는 한 변을 디스플레이 영역과 대응되는 변의 중심위치에 놓아두고, 양측의 사이즈가 부족한 영역은 블랙변(RGB 컴포넌트는 모두 초기값 0이다)으로 디스플레이한다. 이는 작은 해상도의 화상의 디코딩 속도가 충분히 빠르기때문에, 산출량이 비교적 복잡하고 화상 확대 품질이 비교적 양호한 이중선형 보간법을 적용할 수 있다.If the image resolution is smaller than 1/2 of the screen size (i.e., both horizontal and horizontal sizes are smaller than 1/2 of the size corresponding to the target display buffer), the image is enlarged and enlarged by applying the bilinear interpolation method. The aspect ratio of the source image is maintained, and one side that does not reach the full screen size is placed at the center position of the side corresponding to the display area, and the area where the size of both sides is insufficient is displayed as the black side (all RGB components have initial values of 0). do. This is because the decoding speed of a small resolution image is sufficiently fast, so that the bilinear interpolation method with relatively high output and relatively good image enlargement quality can be applied.

그렇지 않을 경우, 화상 해상도가 화면 사이즈보다 작거나 같을 경우(즉, 횡종 사이즈가 모두 목표 디스플레이 버퍼와 대응하는 사이즈보다 작거나 같음), 화상에 대하여 스케일을 진행하지 않고, 화상을 직접 디스플레이 영역의 중심에 복사하며, 나머지 디스플레이 영역은 블랙변으로 디스플레이한다. 이는 화상 해상도가 디스플레이 사이즈와 비슷하기때문에, 원시 크기에 따라 직접 디스플레이할 경우 화상 확대에 따른 연산을 생략하고 시간을 절약할 수 있다.Otherwise, if the picture resolution is less than or equal to the screen size (that is, all the seedling sizes are less than or equal to the size corresponding to the target display buffer), the picture is directly centered in the display area without scaling. The remaining display area is displayed in black side. This is because the image resolution is similar to the display size, it is possible to save time and skip the calculation of the image magnification when displaying directly according to the raw size.

그렇지 않을 경우, 화상에 대하여 최근린법을 사용하여 화면 사이즈로 축소하고, 축소하는 과정에서 소스 화상의 종횡비를 유지하며, 전체화면 사이즈에 미치지 못하는 한 변을 디스플레이 영역과 대응되는 변의 중심위치에 놓아두고, 양측의 사이즈가 부족한 영역은 블랙변으로 디스플레이한다. 이는 최근린법에 따라 축소한 화상의 품질이 이중선형 보간법에 따른 화상의 품질과 비슷하지만, 연산량이 이중선형 보간법에 따른 연산량보다 훨씬 작기 때문이다.Otherwise, the image is reduced to the screen size using the most recent method, the aspect ratio of the source image is maintained during the reduction process, and one side that does not reach the full screen size is placed at the center position of the side corresponding to the display area. In other words, the areas with insufficient size on both sides are displayed as black sides. This is because the quality of the image reduced by the recent Lean method is similar to the quality of the image by the bilinear interpolation method, but the amount of calculation is much smaller than that of the bilinear interpolation method.

iii) 이중선형 보간법 및 최근린법의 알고리즘 레벨 최적화iii) Algorithm Level Optimization of Bilinear Interpolation and Recent Lean Methods

이중선형 보간법 및 최근린법은 모두 픽셀 좌표에 대하여 부동 소수점 연산이 필요하고 또한 좌표에 대한 산출은 최대의 산출량을 차지하므로, 본 발명은 우선 상기 두 방법에 대하여 정점화 방식의 최적화를 진행한다. 다음, 좌표 연산 중 사용하게 되는 좌표에 대하여 제1프레임의 연산시 테이블을 구축하고, 그 후 모든 프레임의 좌표는 산출할 필요 없이 테이블 조사 및 간단한 가법연산을 통해 구할 수 있다.Since both the bilinear interpolation method and the recent Lean method require floating point operations for pixel coordinates, and the calculation of coordinates occupies a maximum amount of output, the present invention first optimizes the vertex method for the two methods. Next, a table is constructed during the calculation of the first frame with respect to the coordinates to be used during the coordinate calculation, and after that, the coordinates of all the frames can be obtained through table inspection and simple additive operation without calculating.

최근린법은 픽셀값에 대하여 산출할 필요가 없으므로, 1차 연산을 통해 하나의 픽셀의 3개 색상 컴포넌트를 동시에 처리할 수 있다. 예를 들어, RGB565포맷에 대하여, 1차로 2개 바이트의 픽셀값 작업을 진행할 수 있고, 이로써 산출량을 진일보로 감소시킬 수 있다.Since the Lean method does not need to calculate pixel values, it is possible to process three color components of one pixel at the same time through a first order operation. For example, for the RGB565 format, two-byte pixel value operations can be performed first, thereby further reducing output.

본 발명에 따른 상기 기술방안은 하기와 같은 유리한 효과를 달성할 수 있다. 즉, 임베디드 설비 혹은 안드로이드(소정의) 플램폼에 기반한 멀티미디어 소프트웨어 플레이어 중의 동영상 디코딩과 디스플레이에 대하여 약간의 최적화를 진행한 후, 통상의 동영상 포맷(MPEG-1/2/4, H.264 등)의 SD(720×480p, 720×576i)해상도, 720p(1280×720p)해상도 및 부분 HD(1920×1080)해상도의 동영상의 원활한 재생을 지원할 수 있다. 여기서, 3가지 주요 최적화 단계는 최적화를 거치지 않은 대응하는 알고리즘에 비하여 각각 평균 30%(1/3프레임 드로핑율), 75%(RGB전환시, 해상도를 낮추지 않고, 더블 코어 CPU 상에서 6스레드 병행 디코딩 및 전환을 사용함) 및 90%(HD에서 1024×562해상도의 저감) 이상의 연산량을 감소시킬 수 있다.The technical solution according to the present invention can achieve the following advantageous effects. In other words, after performing some optimization on video decoding and display of embedded software or multimedia software player based on Android (predetermined) platform, normal video format (MPEG-1 / 2/4, H.264, etc.) It can support smooth playback of a video of SD (720 x 480p, 720 x 576i) resolution, 720p (1280 x 720p) resolution, and partial HD (1920 x 1080) resolution. Here, the three major optimization stages each average 30% (1/3 frame dropping rate) and 75% (6GB parallel decoding on a double-core CPU without lowering the resolution when compared to the corresponding unoptimized algorithm). And conversion) and 90% (the reduction of 1024 × 562 resolution in HD) can be reduced.

이하, 하나의 구체적인 실시예를 통해 본 발명에 대하여 진일보로 상세하게 설명한다.Hereinafter, the present invention will be described in detail with reference to one specific embodiment.

1) 보편성 멀티미디어 소프트웨어 플레이어의 기본적인 재생과정1) Basic playback process of universal multimedia software player

멀티미디어 소프트웨어 플레이어의 기본적인 재생과정은 하기와 같다.The basic playback process of the multimedia software player is as follows.

단계1: 사용자는 플레이어의 응용 프로그램을 작동시켜, 입력 파일을 선택하고, 플레이어를 작동시킨다.Step 1: The user launches the player's application, selects an input file, and activates the player.

단계2: 미디어 분석 모듈에서 파일 전송 프로토콜을 분석하고, 대응하는 프로토콜의 기능을 호출하여 멀티미디어 데이터를 리드하며, 파일 포맷 및 코딩/디코딩 정보를 분석하고, FFMPEG의 상응한 자원을 초기화하며, 플레이어 코어를 초기화한다.Step 2: Analyze the file transfer protocol in the media analysis module, call the function of the corresponding protocol to read the multimedia data, analyze the file format and coding / decoding information, initialize the corresponding resources of the FFMPEG, the player core Initialize

단계3: 플레이어 코어는 미디어 분석 모듈에서 출력하는 미디어 정보에 따라, 상응한 자원을 작동하고, 오디오/동영상 소프트웨어 디코더 및 오디오/동영상 플레이어를 오픈 및 배치하며, 메인 로직 제어 스레드, 동영상 디코딩 스레드, 디스플레이 스레드, 오디오 디코딩 스레드 및 재생 스레드를 작동시킨다.Step 3: The player core operates corresponding resources according to the media information output from the media analysis module, opens and positions the audio / video software decoder and the audio / video player, the main logic control thread, the video decoding thread, and the display. Activate thread, audio decoding thread and playback thread.

단계4: 메인 로직제어 스레드는 프레임 버퍼 영역의 사이즈 및 주소를 획득하고, 상기 사이즈를 동영상 디코딩 스레드에 배치시키며, 상기 사이즈 및 주소를 동영상 프레임 스케일 모듈에 배치시킨다.Step 4: The main logic control thread obtains the size and address of the frame buffer area, places the size in the video decoding thread, and places the size and address in the video frame scale module.

단계5: 동영상 디코딩 스레드는 FFMPEG 소프트웨어 디코더를 배치시키고, 멀티스레딩 디코딩 모드를 작동하여 병행 스레드 수 TC를 설정하며, FFMPEG는 배치에 따라 멀티 디코딩 스레드에 따라 입력 데이터의 병행 디코딩을 대기한다.Step 5: The video decoding thread places the FFMPEG software decoder, operates the multithreaded decoding mode to set the number of parallel threads TC, and FFMPEG waits for parallel decoding of the input data according to the multi-decoding thread according to the arrangement.

단계6: 메인 로직제어 스레드는 파일 데이터를 리드하기 시작하고, 도2 중의 입력 버퍼 영역에 저장한다. 상기 버퍼 영역의 데이터량이 설정한 한계치 TH1보다 클 경우, 메인 스레드는 FFMPEG를 사용하여 오디오/동영상 데이터에 대하여 역다중화를 진행하기 시작한다.Step 6: The main logic control thread starts reading the file data and stores it in the input buffer area in FIG. If the data amount of the buffer area is larger than the set threshold TH1, the main thread starts demultiplexing the audio / video data using FFMPEG.

단계7: 역다중화 후 출력하는 오디오/동영상 데이터는 각각 도2 중의 오디오 패캣 버퍼 영역 및 동영상 패캣 버퍼 영역에 저장된다. 모든 오디오/동영상 데이터가 패킷 버퍼에 저장하는 총량이 설정한 한계치TH2를 초과하고 또한 오디오 패킷의 수량 및 동영상 패캣의 수량이 모두 설정한 한계치TH3를 초과할 시, 오디오/동영상 디코딩 스레드는 버퍼 영역에서 각각 오디오/동영상 패킷을 리드하여 디코딩하기 시작한다. 여기서, 멀티스레딩 병행의 디코딩 과정 중에, YCbCr에서 RGB으로의 색상공간 전환을 병행으로 수행한다.Step 7: The audio / video data output after demultiplexing is stored in the audio packet buffer area and the video packet buffer area in FIG. 2, respectively. When the total amount of all audio / video data stored in the packet buffer exceeds the set threshold TH2 and the quantity of audio packets and the quantity of the video packet exceeds the set threshold TH3, the audio / video decoding thread is executed in the buffer area. Read and decode the audio / video packets, respectively. Here, the color space conversion from YCbCr to RGB is performed in parallel during the multi-threading decoding process.

단계8: 오디오/동영상가 디코딩을 시작한 후, 역다중화, 오디오/동영상 디코딩, 재생의 속도변화가 균일하지 않으므로, 메인 로직제어 스레드는 버퍼 매커니즘을 작동하여 메모리 사용량의 오버플로를 방지하고, 역다중화 출력 데이터의 입력 및 소모 속도를 상대적으로 안정되게 한다. 정상적으로 재생하기 시작할 때, 버퍼 상태는 플레잉(playing)이다. 오디오/동영상 패킷 버퍼 영역 내 오디오 혹은 동영상 데이터가 없을 경우, 오디오/동영상 디코딩 스레드 및 재생 스레드를 통지하여 수행을 잠시 정지시키고, 이때 오디오/동영상 패킷 버퍼 영역에 오직 입력만 존재하고 출력이 존재하지 않는 바, 이런 상태가 버퍼링(Buffering)상태이다. 버퍼링(Buffering)상태에 처할 경우, 만약 오디오/동영상 패킷 버퍼 영역 내의 오디오 및 동영상 데이터 총량이 설정한 한계치TH4를 초과하고 또한 오디오 패킷의 수량 및 동영상 패킷의 수량이 모두 설정한 한계치TH3를 초과할 경우, 오디오/동영상 디코딩 스레드 및 재생 스레드를 계속하여 수행하도록 통지하고, 버퍼 상태를 플레잉으로 개변한다. 플레잉상태에 처할 경우, 만약 오디오/동영상 패킷 버퍼 영역 내의 데이터 총량이 한계치TH2를 초과할 경우, 역다중화를 잠시 정지시키고, 이때 오디오/동영상 패킷 버퍼 영역에 오직 출력만 존재하고 입력이 존재하지 않음으로써, 메모리 사용의 오버플로를 방지하고, 상태를 컨슈밍(Consuming)으로 수정한다. 컨슈밍상태에 처할 경우, 만약 오디오/동영상 패킷 버퍼 영역 내의 오디오 및 동영상 데이터 총량이 설정한 한계치TH4보다 작을 경우, 역다중화를 회복하고, 상태를 개변시켜 정상적 재생인 플레잉 상태로 회복시킨다. 이때, 오디오/동영상 패킷 버퍼 영역에 입력과 출력이 동시에 존재한다.Step 8: After the audio / video starts decoding, the speed change of demultiplexing, audio / video decoding, and playback is not uniform, so the main logic control thread operates the buffer mechanism to prevent overflow of memory usage, and demultiplexing output. Make the data input and consumption rate relatively stable. When starting to play normally, the buffer state is playing. If there is no audio or video data in the audio / video packet buffer area, the audio / video decoding thread and playback thread are notified to stop the operation temporarily. At this time, only an input exists in the audio / video packet buffer area and no output exists. This state is the buffering state. In the case of buffering state, if the total amount of audio and video data in the audio / video packet buffer area exceeds the set threshold TH4 and both the quantity of audio packets and the quantity of video packets exceed the set threshold TH3. Notify the audio / video decoding thread and the playback thread to continue, changing the buffer state to playing. In the playing state, if the total amount of data in the audio / video packet buffer area exceeds the threshold TH2, the demultiplexing is temporarily stopped, where only output is present and no input is present in the audio / video packet buffer area. This prevents overflow of memory usage and modifies the state to consuming. In the case of the consumer state, if the total amount of audio and video data in the audio / video packet buffer area is smaller than the set threshold TH4, the demultiplexing is restored, and the state is changed to the normal playing state. At this time, an input and an output exist simultaneously in the audio / video packet buffer area.

단계9: 오디오/동영상 디코딩 스레드가 성공적으로 하나의 프레임 디코딩 후의 오디오/동영상 데이터를 출력한 후, 오디오 재생 스레드 및 동영상 디스플레이 스레드는 각각 상기 프레임 데이터를 리드하여, 현재 시스템 시각이 제1프레임 동영상 재생 시작 시각 사이에 대한 시간을 획득하여 시스템 클럭STC로 하고, 현재 디코딩 출력하는 하나의 프레임의 오디오 혹은 동영상의 디스플레이 타임 스탬프PTS와 비교한다. 만약 STC<PTS 또한 PTS-STC<TH5 일 경우, 혹은 STC>PTS 또한 STC-PTS<TH6일 경우, 현재 오디오 프레임을 오디오트랙(Audio Track)에 입력하여 재생하거나 혹은 현재 동영상 프레임의 RGB화상을 동영상 스케일 모듈에 출력한다. 그렇지 않을 경우, 만약 STC<PTS의 경우, 오디오 재생 스레드 혹은 동영상 디스플레이 스레드는 5밀리초를 대기한 후 계속하여 비교한다. 그렇지 않을 경우, 현재 오디오/동영상 프레임은 지각으로 판정되고, 여전히 상기 프레임에 대하여 재생 혹은 디스플레이를 진행하지만 시스템 클럭STC=STC-(STC-PTS)을 업데이트해야 한다. 이는 현재 오디오/동영상의 원활한 재생을 확보하기 위한 것이지만, 시스템 클럭을 늦추는 것을 허용한다.Step 9: After the audio / video decoding thread successfully outputs audio / video data after decoding one frame, the audio playback thread and the video display thread respectively read the frame data, so that the current system time is the first frame video playback. The time between the start time is obtained and the system clock STC is compared with the display time stamp PTS of the audio or video of one frame currently decoded and output. If STC <PTS is also PTS-STC <TH5, or STC> PTS is also STC-PTS <TH6, play the current audio frame into the Audio Track or play the RGB image of the current video frame. Output to the scale module. Otherwise, if STC <PTS, the audio playback thread or video display thread waits 5 milliseconds before continuing to compare. Otherwise, the current audio / video frame is determined to be perceptual and still proceeds with playback or display for that frame but requires updating the system clock STC = STC- (STC-PTS). This is to ensure smooth playback of the current audio / video, but allows slowing down the system clock.

단계10: 화상 스케일 모듈은 현재 동영상 프레임의 RGB화상을 획득한 후, 상기 화상을 빠른 속도로 표면(Surface) 프레임 버퍼의 사이즈로 스케일한 후, 목표 디스플레이 버퍼 영역에 직접 저장하고 디스플레이한다.Step 10: The image scale module acquires the RGB image of the current video frame, scales the image to the size of the surface frame buffer at a high speed, and stores and displays it directly in the target display buffer area.

상기 단계1~단계10은 미디어 파일을 정상적으로 오픈하고 재생할 시의 기본과정이다. 그 중의 한계치와 상수 TC, TH1, TH2, TH3, TH4, TH5, TH6는 사전 설정한 배치값이다(예를 들어, TC=6,TH1=TH2=5M바이트,TH3=30,TH4=3M바이트,TH5= TH6=10밀리초).Steps 1 to 10 are basic steps for normally opening and playing the media file. The limit values and the constants TC, TH1, TH2, TH3, TH4, TH5, and TH6 are preset batch values (for example, TC = 6, TH1 = TH2 = 5M bytes, TH3 = 30, TH4 = 3M bytes, TH5 = TH6 = 10 milliseconds).

2) 디코딩 속도에 기반한 동적 자아적응성 프레임 드로핑의 구체적인 실시형태2) Specific Embodiment of Dynamic Egonomic Frame Dropping Based on Decoding Rate

본 발명에 따른 디코딩 속도에 기반한 동적 자아적응성 프레임 드로핑 방법의 작용은 시간축 상에서 동영상 프레임에 대하여 다운 샘플링을 진행하는 것이고, 사용자의 감상을 감소하지 않는 전제하에 동영상의 프레임율을 낮추어 디코딩 동영상의 평균속도에 대하여 최적화를 진행하는 것이다. 주요 단계는 하기와 같다.The action of the dynamic self-adaptive frame dropping method based on the decoding speed according to the present invention is to perform down sampling on the video frame on the time axis, and lower the frame rate of the video on the premise that the user's viewing is not reduced. We are going to optimize for speed. The main steps are as follows.

단계1: 디코더는 코더/디코더 포맷의 정보를 획득한 후, 코더/디코더의 포맷, 비트율, 원시 프레임율f(프레임/초), 차등, 레벨 정보에 따라 목표 프레임율ft을 설정한다. 예를 들어, 일 실시예 중에서, H.264동영상, 1280×720 해상도, HP 차등, 4.0 레벨, 8M비트율, 30프레임/초 프레임율의 동영상에 대하여, 목표 프레임율을 20프레임/초로 설정할 경우, 시간상의 샘플링율은 3:2이다. 프레임 드로핑율 fd=f-ft을 산출하여 매초 버려야 하는 프레임수를 표시한다.Step 1: After the decoder acquires the information of the coder / decoder format, the decoder sets the target frame rate ft according to the format of the coder / decoder, the bit rate, the raw frame rate f (frame / second), the difference, and the level information. For example, in one embodiment, when a target frame rate is set to 20 frames / second for a H.264 video, 1280 × 720 resolution, HP differential, 4.0 level, 8M bit rate, 30 frame / second frame rate video, The sampling rate in time is 3: 2. The frame dropping rate fd = f-ft is calculated to indicate the number of frames to be discarded every second.

단계2: 코더/디코더 포맷의 정보에서 화상 집합(GOP)의 구조 정보를 획득하여 판단을 진행하고 하기 단계를 수행한다.Step 2: The structure information of the picture set (GOP) is obtained from the coder / decoder format information, and the determination is performed, and the following steps are performed.

a) GOP 중에 일반B프레임, 분급B프레임의 최하급B프레임, 분급P프레임의 최하급P프레임, 폐쇄루프GOP 내의 최후1프레임P가 존재할 경우, 이런 프레임을 버림 가능한 프레임으로 정의하고 D프레임으로 표기한다. 만약 D프레임의 빈도가 fD>fd일 경우, D프레임에 대하여 균일한 로스 디코딩을 진행한다. 즉, 매초마다 균일하게 fd 개의 D프레임을 버리고, 버려진 D프레임에 대하여 디코딩을 진행하지 않으며, 디코딩 데이터를 출력하지 않고, 참조 프레임의 버퍼 혹은 인덱스를 업데이트하지 않으며, 디코더는 D프레임이 버려진 입력 데이터를 방출한다. 또한, 본 방법은 후속의 단계를 더 이상 수행하지 않는다.a) If there are general B frames, lowest B frames of classification B frames, lowest P frames of classification P frames, and last one frame P in closed loop GOP, these frames are defined as discardable frames and marked as D frames. . If the frequency of the D frame is fD> fd, uniform loss decoding is performed for the D frame. That is, every fd D frames are uniformly discarded every second, no decoding is performed on the discarded D frames, no decoding data is output, the buffer or index of the reference frame is not updated, and the decoder does not output the input data. Emits. In addition, the method no longer performs subsequent steps.

b) 만약 GOP 중에 D프레임이 존재하고 D프레임의 빈도가 fD≤fd일 경우, D프레임을 전부 버리고, 버려진 D프레임에 대하여 디코딩을 진행하지 않으며, 디코딩 데이터를 출력하지 않고, 참조 프레임의 버퍼 혹은 인덱스를 업데이트하지 않으며, 디코더 입력 데이터를 방출한다. 만약 fD= fd일 경우, 본 방법은 후속의 단계를 더 이상 수행하지 않고, 그렇지 않을 경우 후속의 로스 디스플레이 단계를 수행한다.b) If there is a D frame in the GOP and the frequency of the D frame is fD ≤ fd, discard all the D frames, do not decode the discarded D frames, do not output the decoded data, and buffer the reference frame or It does not update the index, but emits decoder input data. If fD = fd, the method no longer performs the subsequent step, otherwise performs the subsequent loss display step.

c) 만약 GOP 중에 D프레임이 존재하지 않다면, fD=0로 표기한다.c) If there is no D frame in the GOP, denote fD = 0.

d) 로스 디스플레이를 산출하는 목표 빈도는 fR=fd-fD이고, 이는 매초 로스 디스플레이를 진행해야 하는 프레임수를 표시한다.d) The target frequency for calculating the loss display is fR = fd-fD, which indicates the number of frames for which the loss display should be performed every second.

e) 실시간 프레임 드로핑 단위의 길이 N과 GOP의 길이를 동일하게 설정한다.e) Set the length N of the real-time frame dropping unit and the length of the GOP equally.

f) N-1프레임을 간격으로, 현재 프레임의 디코딩 시간 tc 및 현재 프레임 이전의 모든 프레임의 평균 디코딩 시간 ta을 산출한다.f) Calculate the decoding time tc of the current frame and the average decoding time ta of all the frames before the current frame at intervals of N-1 frames.

g) 실시간 프레임 드로핑율을 산출한다. fr=fR×tc×ta.g) Calculate the real time frame dropping rate. fr = fR × tc × ta.

h) 하나의 실시간 프레임 드로핑 단위 내에서, 프레임 드로핑율fr을 사용하여 균일한 로스 디스플레이를 진행한다. 즉, 버려지기로 선택된 프레임은 디코딩 후의 화상을 출력하지 않음으로써, 이런 프레임의 색상공간 전환, 스케일 및 디스플레이에 필요되는 시간을 절약한다.h) Within one real time frame dropping unit, a uniform loss display is performed using the frame dropping rate fr. In other words, the frames selected to be discarded do not output a picture after decoding, thereby saving the time required for color space conversion, scale and display of such frames.

실시간 프레임 드로핑 책략을 사용함으로써, 디코딩이 비교적 느린 시간구간 내에서 프레임 드로핑율을 제고시키고, 디코딩이 비교적 빠른 시간구간 내에서 프레임 드로핑율을 낮출 수 있으며, 또한 하나의 N프레임의 단위 내에서 균일 프레임 드로핑의 책략을 선택함으로써 동영상 재생의 평균 속도를 향상시키면서 동영상 재생의 원활성 및 사용자의 감상에 영향이 미치지 않을 수 있다.By using a real-time frame dropping strategy, it is possible to improve the frame dropping rate within a time period where decoding is relatively slow, to reduce the frame dropping rate within a time period when decoding is relatively fast, and to uniformly within a unit of one N frame. By selecting the strategy of frame dropping, the average speed of video playback may be improved, and the smoothness of video playback and user's viewing may not be affected.

여기서 지적해야 할 점은, 본 방법 중의 목표 프레임율ft은 오직 하나의 산출 중의 참조값일 뿐 실제로 재생되는 프레임율이 아니다. 실제 재생하는 가변 프레임율일 수 있고, 그 평균 프레임율은 목표 프레임율에 근접한다. 역다중화스레드가 파일 포맷에 대한 분석 중에서 매개 오디오/동영상 패킷의 타임 스탬프를 이미 추출하였으므로, 일부 동영상 프레임의 디코딩 혹은 디스플레이를 포기하여도 기타 동영상 프레임의 디스플레이 및 오디오와의 동기화에 영향을 미치지 않는다. 한편, 이는 플레이어가 지각한 동영상 프레임을 버리는 방법과 무관하다. 본 방법에 따르면, 버리기로 선정한 동영상 프레임은 디코더에서 출력되지 않음으로써, 오디오/동영상 동기화 로직 중 지각한 동영상 프레임을 최대한 감소하자는 것이다.It should be pointed out here that the target frame rate ft in this method is only a reference value in one calculation and not a frame rate actually reproduced. It may be a variable frame rate for actual reproduction, the average frame rate of which is close to the target frame rate. Since the demultiplexing thread has already extracted the time stamp of each audio / video packet from the analysis of the file format, abandoning the decoding or display of some video frames does not affect the display and synchronization of other video frames. On the other hand, this is independent of how the player discards the perceived video frame. According to this method, the video frame selected for discard is not output from the decoder, so that the perceived video frame in the audio / video synchronization logic is reduced as much as possible.

3) YCbCr에서 RGB 색상 공간으로의 쾌속 전환의 구체적인 실시형태3) Specific Embodiment of Rapid Switching from YCbCr to RGB Color Space

목표 플렛폼에서 YCbCr 동영상 포맷의 디스플레이를 지원하지 않고 오직 RGB포맷의 화상 출력만 지원할 시, 플레이어는 디코더에서 출력하는 YCbCr 화상에 대하여 RGB 색상 공간으로의 전환을 진행해야 한다. 공지의 YCbCr에서 RGB으로의 색상전환의 방법은 하기와 같다.If the target platform does not support the display of YCbCr video format and only supports RGB format picture output, the player must proceed to the RGB color space for YCbCr picture output from the decoder. The known method of color conversion from YCbCr to RGB is as follows.

R = 1.164(Y-16) + 1.596(Cr-128)R = 1.164 (Y-16) + 1.596 (Cr-128)

G = 1.164(Y-16) - 0.813(Cr-128) - 0.391(Cb-128)G = 1.164 (Y-16)-0.813 (Cr-128)-0.391 (Cb-128)

B = 1.164(Y-16) + 2.018(Cb-128)B = 1.164 (Y-16) + 2.018 (Cb-128)

부동 소수점 연산, 메모리 작업, 축점 산출은 대량의 시스템 자원 및 산출량을 소모하므로, 본 발명에 따른 YCbCr 4:2:0서브 샘플링 포맷에서 RGB565포맷으로의 전환에 대하여 최적화하는 방법은 주로 하기와 같은 단계를 포함한다.Because floating point operations, memory operations, and axis point calculations consume a large amount of system resources and throughput, the method for optimizing for the transition from the YCbCr 4: 2: 0 subsampling format to the RGB565 format according to the present invention is mainly performed in the following steps. It includes.

단계1: 전환 연산에 대하여 알고리즘 레벨 최적화를 진행하는 과정은 하기와 같은 단계를 포함한다.Step 1: The process of performing algorithm level optimization on the conversion operation includes the following steps.

단계1-1: 부동 소수점 연산에 대하여 정점화 방식을 적용하고, 비례요소K=1024를 사용하여 변환 계수에 대하여 10비트 확대를 진행한 후 사사오입을 통해 단수처리 한다. 이를 통해, 상기 변환공식에 대한 정점화 방식 적용 결과는 하기와 같다.Step 1-1: The vertex method is applied to the floating-point arithmetic operation, 10-bit enlargement is performed on the transform coefficient using the proportional element K = 1024, and then rounded off through rounding. Through this, the result of applying the vertex method to the conversion formula is as follows.

Figure pat00005
Figure pat00005

여기서, R’, G’ 및 B’는 각각 R, G, B에 대하여 1024배 확대한 값이다. 즉,Here, R ', G' and B 'are magnified 1024 times with respect to R, G and B, respectively. In other words,

Figure pat00006
Figure pat00006

단계12: 환산표를 설정 및 사용하고, 제거 곱셈법으로 연산한다.Step 12: Set up and use the conversion table, and compute by elimination multiplication.

A) 3개 32비트의 환산표를 정의한다. 즉, 표T3T1, 표T4T2 및 표T5이다, 여기서 각 표의 인덱스는 모두 0~255의 Y, Cb 혹은 Cr 픽셀값이고, 각 표의 함의는 하기와 같다(여기서, “<<”는 좌측 시프팅 연산을 표시한다).A) Three conversion tables of 32 bits are defined. That is, Tables T3T1, T4T2, and T5, where the indices of each table are all Y, Cb, or Cr pixel values of 0 to 255, and the implications of each table are as follows (where “<<” is the left shifting operation). Is displayed).

aa) 표T3T1는 전환 중 Cr를 인덱스로 하는 부분을 표시한다. 여기서,aa) Table T3T1 indicates the portion where Cr is the index during conversion. here,

앞 16비트는 :

Figure pat00007
이고, The first 16 bits are:
Figure pat00007
ego,

뒤 16비트는 :

Figure pat00008
이며, The last 16 bits are:
Figure pat00008
Is,

이로써,

Figure pat00009
를 얻을 수 있다.As a result,
Figure pat00009
Can be obtained.

bb) 표T4T2는 전환 중 Cb를 인덱스로 하는 부분을 표시한다. 여기서,bb) Table T4T2 indicates a portion where Cb is the index during the switching. here,

앞 16비트는 :

Figure pat00010
이고, 이에 후속 단계의 폭제한 테이블 중 B 컴포넌트 시작 위치의 오프셋 4608을 포함한다.The first 16 bits are:
Figure pat00010
This includes offset 4608 of the B component start position in the delimiting table of the subsequent step.

뒤 16비트는 :

Figure pat00011
이고, 이에 후속 단계의 폭제한 테이블 중 G 컴포넌트 시작 위치의 오프셋 2304를 포함한다.The last 16 bits are:
Figure pat00011
This includes offset 2304 of the G component start position in the delimiting table of the subsequent step.

이로써,

Figure pat00012
를 얻을 수 있다.As a result,
Figure pat00012
Can be obtained.

cc)표T5는 전환 중 Y를 인덱스로 하는 부분을 표시한다. cc) Table T5 indicates the portion of the conversion whose Y is the index.

Figure pat00013
.
Figure pat00013
.

B)환산표를 사용하여 RGB값을 산출하되, 산출 방법은 하기와 같다.B) Using the conversion table to calculate the RGB value, the calculation method is as follows.

Figure pat00014
Figure pat00014

여기서, “>>”는 우측 시프팅 연산을 표시하고, (short)는 연산치의 아래 16비트를 취함을 표시하고, 하나의 픽셀의 RGB의 3개 컴포넌트는 16비트 unsigned short 유형의 하나의 변수로 저장할 수 있으며, 그 산출 방법은 하기와 같다.Where “>>” denotes a right shift operation, (short) denotes taking 16 bits below the computed value, and the three components of RGB of one pixel are one variable of type 16-bit unsigned short It can be stored, and the calculation method is as follows.

Figure pat00015
Figure pat00015

여기서, “|”는 로직 혹은 연산을 표시한다.Where "|" represents a logic or operation.

단계13: 폭제한 테이블을 설정 및 사용하고, 조건 폭제한을 제거하고 연산한다.Step 13: Set up and use the limiting table, remove the conditional limit and operate.

단계12에서 산출하여 얻은 RGB값은 [0, 255]구간을 초과할 수 있으므로, rgb를 산출하기 전에 RGB값에 대하여 폭제한을 진행해야 한다. 즉, The RGB value calculated in step 12 may exceed the range [0, 255], so the width limit must be applied to the RGB value before calculating rgb. In other words,

Figure pat00016
Figure pat00016

하지만 이런 1차 산출은 두차례의 비교를 도입하게 되고, 본 발명은 폭제한 테이블의 방법을 적용하여 이에 대하여 최적화한다. 폭제한 테이블에 대한 정의는 하기와 같다.However, this primary calculation introduces two comparisons, and the present invention optimizes this by applying the method of the explosive table. The definition of the limit table is as follows.

static unsigned short crop_shift[(256 + 2*1024)*3] = {0,}static unsigned short crop_shift [(256 + 2 * 1024) * 3] = {0,}

어레이crop_shift[]는 플레이어 코어가 초기화할 시 하기와 같이 값을 부여한다.The array crop_shift [] assigns values as follows when the player core initializes.

for(int i=0; i<1024; i++)for (int i = 0; i <1024; i ++)

{{

crop_shift[i] = 0;crop_shift [i] = 0;

crop_shift[2304 + i] = 0;    crop_shift [2304 + i] = 0;

crop_shift[4608 + i] = 0;     crop_shift [4608 + i] = 0;

crop_shift[i + 1024 + 256] = (0x1F << 11);    crop_shift [i + 1024 + 256] = (0x1F << 11);

crop_shift[2304 +(i +1024 + 256)] = (0x3F << 5);    crop_shift [2304 + (i +1024 + 256)] = (0x3F << 5);

crop_shift[4608 + (i + 1024 + 256)] = 0x1F;    crop_shift [4608 + (i + 1024 + 256)] = 0x1F;

}}

for(int i=0; i<256; i++)for (int i = 0; i <256; i ++)

{{

crop_shift[i + 1024] = ((i>>3)<<11);    crop_shift [i + 1024] = ((i >> 3) << 11);

crop_shift[2304 + (i + 1024)] = ((i>>2)<<5);    crop_shift [2304 + (i + 1024)] = ((i >> 2) << 5);

crop_shift[4608 + (i + 1024)] = (i>>3);    crop_shift [4608 + (i + 1024)] = (i >> 3);

}}

목표 포맷이 RGB565이고 또한 16비트 RGB데이터를 하나의 픽셀로 표시할 때의 시프팅 연산도 감안해야 하므로, 상기 어레이에서 각 구간의 데이터 길이 및 값은 도3에 도시된 바와 같다.Since the shift format when the target format is RGB565 and 16-bit RGB data is displayed as one pixel must also be taken into consideration, the data length and value of each section in the array are as shown in FIG.

도3은 3개의 2304개 데이터 길이인 구간으로 나누어 지는데, 여기서, 매개 구간은 또 1024+256+1024 3가지 데이터 길이의 서브 구간으로 나누어 총 9개 서브 구간이 존재한다. 3개 구간 중의 매개 서브 구간은 좌에서 우로 각각 하기 내용을 표시한다.3 is divided into three 2304 data length intervals, where each interval is further divided into 1024 + 256 + 1024 sub-intervals of three data lengths, for a total of nine sub-intervals. Each sub-section in three sections displays the following content from left to right, respectively.

1) 1024개 0값, 즉, RGB565 중에서 R/G/B 컴포넌트가 0보다 작을 경우, 0까지 폭제한을 진행한다.1) If the R / G / B component is smaller than 0 out of 1024 zero values, that is, RGB565, the limit is advanced to zero.

2) 256개 값의 0~255 통과 시프팅은 RGB565 중의 RGB565 중의 R/G/B컴포넌트의 5/6/5개 비트를 표시한다.2) 256 values of 0-255 pass-shifting represent 5/6/5 bits of the R / G / B component of RGB565 in RGB565.

3)1024개 R/G/B컴포넌트의 최대치 통과 시프팅은 RGB565 중의 R/G/B컴포넌트의 5/6/5개 비트를 표시한다.3) Maximum pass shifting of 1024 R / G / B components indicates 5/6/5 bits of the R / G / B component in RGB565.

단계14: 멀티포인트 동시 연산Step 14: Multipoint Concurrent Operation

도4와 같이, 출력 포맷이 YCbCr 4:2:0서브 샘플링 포맷의 화상에 있어서, 하나의 Cb 혹은 Cr 픽셀은 4개 Y 픽셀 포인트와 대응된다. 따라서, 동시에 4개 픽셀 포인트에 대하여 RGB 전환을 진행할 수 있다. As shown in Fig. 4, in an image having an output format of YCbCr 4: 2: 0 sub-sampling format, one Cb or Cr pixel corresponds to four Y pixel points. Therefore, RGB conversion can be performed for four pixel points at the same time.

단계1의 최적화를 거쳐, 한폭의 YCbCr 4:2:0서브 샘플링 포맷의 화상을 RGB565 화상으로 전환시키는 알고리즘의 예시 코드는 하기와 같다.Following the optimization of step 1, an example code of an algorithm for converting an image of a narrow YCbCr 4: 2: 0 sub-sampling format into an RGB565 image is as follows.

rgb0 = (unsigned short*)dest;rgb0 = (unsigned short *) dest;

rgb1 = rgb0 + width; rgb1 = rgb0 + width;

unsigned short *crop = crop_shift + 1024;unsigned short * crop = crop_shift + 1024;

for (h = height; h>0; h)for (h = height; h> 0; h)

{ {

for(w = width; w>0; w=4) for (w = width; w> 0; w = 4)

{ {

……... ...

……... ...

r_add = (short)(T3T1[Cr]);r_add = (short) (T3T1 [Cr]);

g_add = (short)T4T2[Cb] + (short)(T3T1[Cr]>>16));g_add = (short) T4T2 [Cb] + (short) (T3T1 [Cr] >> 16));

b_add = (short)(T4T2[Cb]>>16);b_add = (short) (T4T2 [Cb] >> 16);

y_add = T5[y0++]; y_add = T5 [y0 ++];

*rgb0++ = (unsigned short)(crop[y_add + r_add] | crop[y_add + g_add] | crop[y_add + b_add]); * rgb0 ++ = (unsigned short) (crop [y_add + r_add] | crop [y_add + g_add] | crop [y_add + b_add]);

y_add = T5[y0];y_add = T5 [y0];

*rgb0++ = (unsigned short) (crop[y_add + r_add] | crop[y_add + g_add] | crop[y_add + b_add]); * rgb0 ++ = (unsigned short) (crop [y_add + r_add] | crop [y_add + g_add] | crop [y_add + b_add]);

y_add = T5[y1++]; y_add = T5 [y1 ++];

*rgb1++ = (unsigned short) (crop[y_add + r_add] | crop[y_add + g_add] | crop[y_add + b_add]); * rgb1 ++ = (unsigned short) (crop [y_add + r_add] | crop [y_add + g_add] | crop [y_add + b_add]);

y_add = T5[y1]; y_add = T5 [y1];

*rgb1++ = (unsigned short) (crop[y_add + r_add] | crop[y_add + g_add] | crop[y_add + b_add]); * rgb1 ++ = (unsigned short) (crop [y_add + r_add] | crop [y_add + g_add] | crop [y_add + b_add]);

}}

……... ...

……... ...

} }

상기 코드 중에서, rgb0는 RGB565 화상 주소를 지향하는 포인트이고, rgb1는 rgb0의 다음 행 픽셀이며, width 과 height는 각각 화상의 너비와 높이이고, y0는 YCbCr화상의 밝기 픽셀 주소이며, y1는 y0의 다음 행 픽셀이고, Cb과 Cr는 크로마 픽셀값이다.In the above code, rgb0 is a point pointing to an RGB565 image address, rgb1 is the next row pixel of rgb0, width and height are the width and height of the image, respectively, y0 is the brightness pixel address of the YCbCr image, and y1 is the value of y0. Next row pixel, Cb and Cr are chroma pixel values.

단계2: 사용자가 재생 전에 “원활한 재생 우선”의 옵션을 선택할 경우, 격점 연산을 사용하여 해상도 저감의 RGB전환을 실현하고, 산출에 참여하는 픽셀 포인트 수를 감소하며, RGB전환의 속도를 진일보로 가속화시킨다. 도5는 1/2 해상도 저감 RGB 전환의 예시도이다. 도5에서, 오직 1/4 정도의 픽셀(점선에 포위된 픽셀포인트)수만 산출에 참여한다. 같은 이치로, 1/3 해상도 저감 RGB전환에서 오직 1/9 정도의 픽셀수만 산출에 참여한다. 이런 방식으로 계속하여 유추할 수 있다.Step 2: If the user selects the option of "Priority on smooth playback" before playback, use the dot calculation to realize RGB conversion of resolution reduction, reduce the number of pixel points participating in the calculation, and further advance the speed of RGB conversion. Accelerate 5 is an exemplary diagram of 1/2 resolution reduced RGB switching. In Fig. 5, only a quarter of the pixels (pixel points surrounded by dashed lines) participate in the calculation. In the same way, in the 1/3 resolution reduction RGB conversion, only 1/9 of the pixels participate in the calculation. You can continue to infer in this way.

해상도 저감 RGB 전환 방법의 단계는 하기와 같다.The steps of the resolution reduction RGB conversion method are as follows.

단계21: 원시 화상의 너비width 및 높이height 그리고 플레이어 코어에서 RGB전환 모듈에 배치시킨 목표 디스플레이 버퍼의 너비surface_width 및 높이surface_height에 따라, 해상도 저감의 비율1/R(R은 양의 정수임)을 산출하고, width/R 및 height/R과 surface_width 및 surface_height이 가장 가깝도록 한다. 즉,Step 21: calculate the resolution reduction ratio 1 / R (R is a positive integer) according to the width and height of the raw image and the surface_width and height surface_height of the target display buffer placed in the RGB conversion module in the player core. , make width / R and height / R closest to surface_width and surface_height. In other words,

Figure pat00017
Figure pat00017

단계22: 격점 산출 시, 도5와 같이, 오직 단계1의 산출 중에서, 수평 및 수직 방향상에서 (R1)개 픽셀을 간격으로 하나의 픽셀 포인트를 선택하여 연산에 참여한다. 따라서, 전체 화상에서 오직 width×height/R2개 픽셀 포인트만이 RGB전환에 참여한다. 전환 후의 RGB화상의 너비는 width/R, 높이는 height/R이고, 상기 너비와 높이를 다음 모듈에 입력시켜 후속 처리를 진행한다.Step 22: In calculating the gap point, as shown in Fig. 5, in the calculation of Step 1, only one pixel point is selected at intervals of (R1) pixels in the horizontal and vertical directions to participate in the calculation. Therefore, only width × height / R2 pixel points in the whole image participate in the RGB conversion. The width of the RGB image after the conversion is width / R, and the height is height / R. The width and height are input to the next module for further processing.

단계3: 상기 YCbCr에서 RGB으로의 전환모듈을 FFMPE의 매개 디코딩 스레드 내에서 디코딩 모듈과 직렬하여 병행된 RGB전환을 실현한다.Step 3: A parallel RGB conversion is realized by serially converting the YCbCr to RGB module with the decoding module in the FFMPE's intermediate decoding thread.

4) 임의의 비례의 화상 쾌속 스케일의 구체적인 실시형태4) Specific embodiments of an image rapid scale of any proportion

전환을 거친 RGB화상 사이즈는 width×height 혹은 (width/R)×(height/R)으로서, 목표 디스플레이 버퍼의 사이즈 surface_width×surface_height와 상이할 수 있다. 본 발명은 임의의 비례의 화상 쾌속 스케일 방법을 사용함으로써 출력 화상을 목표 디스플레이 버퍼의 사이즈로 스케일한다. 구체적인 실현 단계는 하기와 같다.The converted RGB image size is width × height or (width / R) × (height / R), which may be different from the size surface_width × surface_height of the target display buffer. The present invention scales the output image to the size of the target display buffer by using any proportional image rapid scaling method. Specific implementation steps are as follows.

단계1: 목표 디스플레이 버퍼에 직접 기입하는 비메모리 작업Step 1: Write Non-Memory Operations Directly to the Target Display Buffer

여분의 메모리 할당 및 메모리 작업을 방지하기 위하여, 스케일 모듈은 매개 프레임의 동영상 화상에 대하여 스케일을 진행하기 전에 어댑터층을 통해 목표 디스플레이 버퍼 주소의 포인트를 획득하고, 스케일 모듈은 목적 화상을 위해 메모리를 할당하지 않고 목적 화상을 상기 포인트가 가리키는 주소 중에 직접 기입하며, 이어 동영상 디스플레이 모듈은 상기 주소 중에 이미 기입된 RGB화상을 언제 디스플레이하는지 결정한다.In order to prevent extra memory allocation and memory operations, the scale module obtains the point of the target display buffer address through the adapter layer before scaling the moving picture of each frame, and the scale module stores the memory for the target picture. The target picture is directly written in the address indicated by the point without allocation, and the moving picture display module then determines when to display the RGB picture already written in the address.

단계2: 스케일링에 따라 스케일 방법 및 디스플레이 모드를 선택Step 2: choose scale method and display mode according to scaling

상이한 해상도의 화상에 대하여 서로 다른 스케일 혹은 디스플레이 모드를 적용한다.Different scales or display modes are applied to images of different resolutions.

단계21: 화상 해상도가 화면 사이즈의 1/2보다 작을 경우(즉, 횡종 사이즈가 모두 목표 디스플레이 버퍼와 대응하는 사이즈의 1/2보다 작음), 화상에 대하여 이중선형 보간법을 적용하여 확대하고, 확대하는 과정에서 소스 화상의 종횡비를 유지하며, 전체화면 사이즈에 미치지 못하는 한 변을 디스플레이 영역과 대응되는 변의 중심위치에 놓아두고, 양측의 사이즈가 부족한 영역은 블랙변(RGB 컴포넌트는 모두 초기값 0이다)으로 디스플레이한다. 이는 작은 해상도의 화상의 디코딩 속도가 충분히 빠르기때문에, 산출량이 비교적 복잡하고 화상 확대 품질이 비교적 양호한 이중선형 보간법을 적용할 수 있다.Step 21: If the image resolution is smaller than 1/2 of the screen size (i.e., all of the transverse sizes are smaller than 1/2 of the size corresponding to the target display buffer), the image is enlarged by applying the bilinear interpolation method and enlarged. In the process of maintaining the aspect ratio of the source image, one side that does not reach the full screen size is placed at the center position of the side corresponding to the display area, and the black side (the RGB components are all initial values 0). Display). This is because the decoding speed of a small resolution image is sufficiently fast, so that the bilinear interpolation method with relatively high output and relatively good image enlargement quality can be applied.

단계22: 그렇지 않을 경우, 화상 해상도가 화면 사이즈보다 작거나 같을 경우(즉, 횡종 사이즈가 모두 목표 디스플레이 버퍼와 대응하는 사이즈보다 작거나 같음), 화상에 대하여 스케일을 진행하지 않고, 화상을 직접 디스플레이 영역의 중심에 복사하며, 나머지 디스플레이 영역은 블랙변으로 디스플레이한다. 이는 화상 해상도가 디스플레이 사이즈와 비슷하기때문에, 원시 크기에 따라 직접 디스플레이할 경우 화상 확대에 따른 연산을 생략하고 시간을 절약할 수 있다.Step 22: Otherwise, if the picture resolution is less than or equal to the screen size (i.e., all the seedling sizes are less than or equal to the size corresponding to the target display buffer), display the picture directly without scaling the picture. Copies to the center of the area, and displays the remaining display area with black edges. This is because the image resolution is similar to the display size, it is possible to save time and skip the calculation of the image magnification when displaying directly according to the raw size.

단계23: 그렇지 않을 경우, 화상에 대하여 최근린법을 사용하여 화면 사이즈로 축소하고, 축소하는 과정에서 소스 화상의 종횡비를 유지하며, 전체화면 사이즈에 미치지 못하는 한 변을 디스플레이 영역과 대응되는 변의 중심위치에 놓아두고, 양측의 사이즈가 부족한 영역은 블랙변으로 디스플레이한다. 이는 최근린법에 따라 축소한 화상의 품질이 이중선형 보간법에 따른 화상의 품질과 비슷하지만, 연산량이 이중선형 보간법에 따른 연산량보다 훨씬 작기 때문이다.Step 23: Otherwise, the image is reduced to the screen size using the latest Lean method, maintains the aspect ratio of the source image in the process of reducing, and the center position of the side corresponding to the display area in which one side does not reach the full screen size. Placed in, the areas with insufficient size on both sides are displayed as black sides. This is because the quality of the image reduced by the recent Lean method is similar to the quality of the image by the bilinear interpolation method, but the amount of calculation is much smaller than that of the bilinear interpolation method.

단계3: 이중선형 보간법 및 최근린법의 알고리즘 레벨 최적화Step 3: Algorithm-level Optimization of Bilinear Interpolation and Recent Lean Methods

A)이중선형 보간법 및 최근린법에 따른 산출 방법A) Calculation method according to bilinear interpolation and recent Lean method

스케일이 필요한 화상의 너비를 W로 하고, 높이를 H로 하면, W=width혹은 width/R(해상도 저감 RGB전환을 사용),H=height 혹은 height/R(해상도 저감 RGB전환을 사용)이다. 목표 화상이 목표 디스플레이 버퍼이고, 사이즈는 surface_width와 surface_height이다. 스케일링r을 산출하면 하기와 같다.If the width of the image that needs to be scaled is W and the height is H, then W = width or width / R (using a resolution reduction RGB conversion), H = height or height / R (using a resolution reduction RGB conversion). The target picture is the target display buffer, and the sizes are surface_width and surface_height. The scaling r is calculated as follows.

Figure pat00018
Figure pat00018

여기서, r은 부동 소수점이고, min은 최소치를 취하며, r은 수평 및 수직 방향상에서 통일된 스케일링 요소이다. 도6과 같이, 목표 화상 중에서 좌표가 (x,y)인 임의의 한 점 S가 비율 r를 통해 원 화상과 대응하는 위치에 전환되는 좌표는

Figure pat00019
이고, 상기 좌표값은 부동 소수점이고, 이가 원 화상 중에서의 근접 픽셀은 A, B, C, D이다.Where r is a floating point, min is the minimum, and r is a unified scaling element in the horizontal and vertical directions. As shown in Fig. 6, any one point S whose coordinate is (x, y) in the target image is converted to a position corresponding to the original image through the ratio r is
Figure pat00019
And the coordinate value is a floating point, and the neighboring pixels in the original image are A, B, C, and D.

aa)최근린법에 따라 S점 픽셀값을 산출하는 방법은 하기와 같다.aa) The method for calculating the S point pixel value according to the recent method is as follows.

Figure pat00020
Figure pat00020

즉, 스케일 후의 화상 좌표를 역방향 전환을 통해 하나의 부동 소수점 좌표를 얻고, 이에 대하여 단수처리를 한후 정수형 좌표를 얻는다. 이 정수형 좌표가 원 화상에서 대응하는 픽셀값이 바로 스케일 후 목표 픽셀의 픽셀값이다. 상기 방법에 따르면, 산출이 간단하고 연산속도가 빠르지만, 스케일 후의 화상에 대하여 세레이션 효과를 초래할 수 있다.That is, one floating-point coordinate is obtained through reverse switching of the image coordinate after the scale, and the integer coordinate is obtained after the singular processing. The pixel value corresponding to this integer coordinate in the original image is the pixel value of the target pixel immediately after the scale. According to the above method, the calculation is simple and the calculation speed is high, but it can cause a serration effect on the image after the scale.

bb)이중선형 보간법에 따라 S점 픽셀값을 산출하는 방법은 하기와 같다.bb) A method for calculating the S point pixel value according to the bilinear interpolation method is as follows.

Figure pat00021
Figure pat00021

즉, 스케일 후의 화상 좌표를 역방향 전환을 통해 하나의 부동 소수점 좌표를 얻고, 부동 소수점의 원 화상과 대응되는 위치 주변의 4개 픽셀이 특정 가중치에 따라 가중치 연산을 진행하여 얻은 픽셀값이 바로 스케일 후 목표 픽셀의 픽셀값이다. 본 발명은 4개 1/4를 가중치로 적용한다. 즉, 4 taps 평균 필터이다. 이런 필터는 로우 패스 필터링의 평활작용이 있고, 일정한 정도 이상으로 세레이션을 제거할 수 있지만, 경물 윤곽의 흐릿함을 초래할 수도 있다.In other words, a single floating point coordinate is obtained by inverting the coordinate of the image after the scale, and the pixel value obtained by performing a weighting operation according to a specific weight on four pixels around the position corresponding to the original image of the floating point is immediately scaled. Pixel value of the target pixel. The present invention applies four quarters by weight. That's a 4 taps average filter. These filters have the smoothing of low pass filtering and can remove serrations to some extent, but can also cause blurring of the hard contours.

2가지 방법을 비교하면, 최근린법은 산출량이 작지만, 비교적 큰 비례로 화상을 확대할 시 화상 품질이 상대적으로 떨어지고, 세레이션이 비교적 많다. 하지만 비교적 큰 비례의 화상을 축소할 시, 두가지 방법에 따른 화상 품질은 비슷하다. 따라서, 본 발명은 단계2 중의 스케일 및 디스플레이의 선택방법을 적용하여 화상 품질 및 산출량에 대하여 트레이드 오프(tradeoff)를 진행한다.Comparing the two methods, the recent Lean method has a small output, but when the image is enlarged by a relatively large proportion, the image quality is relatively low, and serrations are relatively large. However, when reducing a relatively large proportional image, the image quality of the two methods is similar. Therefore, the present invention applies the scale and display selection method in step 2 to trade off the image quality and the yield.

B) 이중선형 보간법 및 최근린법에 따른 산출 방법의 최적화B) Optimization of calculation method according to bilinear interpolation and recent Lean method

두가지 방법을 사용하여 화상 스케일을 진행시, 시간을 가장 많이 소모하는 연산은 부동 소수점형의 픽셀좌표를 산출하는 것이다. 본 발명은 하기와 같은 단계를 적용하여 두가지 방법에 대하여 최적화를 진행한다.When the image is scaled using two methods, the most time-consuming operation is to produce floating point pixel coordinates. The present invention optimizes the two methods by applying the following steps.

aa)올림 플래그useX를 산출한다.aa) Calculate the raising flag useX.

만약

Figure pat00022
일 경우, useX = 1이고, 반대로, useX = 0이다.if
Figure pat00022
, UseX = 1, and vice versa.

useX는 x축의 스케일링을 사용하여 통일된 스케일링으로 하는지 여부를 표시하고, 값0은 y축의 스케일링을 사용하는 것을 표시하고, 값1은 x축의 스케일링을 사용하는 것을 표시한다.useX indicates whether to use the x-axis scaling to achieve unified scaling, a value of 0 indicates using the y-axis scaling, and a value of 1 indicates the use of the x-axis scaling.

bb) 목표 디스플레이 버퍼 중의 화면 디스플레이 영역의 왼쪽 상단 좌표 및 디스플레이 영역의 사이즈를 산출하면 하기와 같다.bb) The upper left coordinate of the screen display area in the target display buffer and the size of the display area are calculated as follows.

if(useX == 1)if (useX == 1)

{{

startX = 0;    startX = 0;

width = surface_width;    width = surface_width;

height = H * surface_width / W;    height = H * surface_width / W;

startY = MAX((surface_height height)/2 1, 0);    startY = MAX ((surface_height height) / 2 1, 0);

}}

elseelse

{{

startY = 0;    startY = 0;

width = W * surface_height / H;    width = W * surface_height / H;

height = surface_height;    height = surface_height;

startX = MAX((surface_width width)/2 1, 0);    startX = MAX ((surface_width width) / 2 1, 0);

}}

cc)4개 글로벌 어레이를 정의하여 정수형 좌표 환산표를 표시하면 하기와 같다.cc) Four global arrays are defined and the integer coordinate conversion table is expressed as follows.

static int* T_yWyH;static int * T_yWyH;

static int* T_xWxH;static int * T_xWxH;

static int* T_corDst; static int * T_corDst;

static int* T_corSrc;static int * T_corSrc;

제1프레임 동영상 화상을 스케일 할 경우, 하기와 같이 좌표 환산표에 대하여 공간을 할당하고 값을 부여한다.When the first frame video image is to be scaled, a space is assigned to a coordinate conversion table and assigned a value as follows.

T_yWyH = (int*)malloc((height+1) * sizeof(int));T_yWyH = (int *) malloc ((height + 1) * sizeof (int));

T_xWxH = (int*)malloc((width +1) * sizeof(int));T_xWxH = (int *) malloc ((width +1) * sizeof (int));

T_corDst = (int*)malloc((height+1) * sizeof(int));T_corDst = (int *) malloc ((height + 1) * sizeof (int));

T_corSrc = (int*)malloc((height+1) * sizeof(int));T_corSrc = (int *) malloc ((height + 1) * sizeof (int));

for(y=0; y<height; y++)for (y = 0; y <height; y ++)

{{

T_yWyH[y] = (useX? (y * W / surface_width) : (y * H / surface_height));T_yWyH [y] = (useX? (Y * W / surface_width): (y * H / surface_height));

T_corDst[y] = (y + startY) * surface_width; T_corDst [y] = (y + startY) * surface_width;

T_corSrc[y] = T_yWyH[y] * W; T_corSrc [y] = T_yWyH [y] * W;

}}

for(x=0; x<width; x++)for (x = 0; x <width; x ++)

{{

T_xWxH[x] = (useX? (x * W / surface_width) : (x * H / surface_height));T_xWxH [x] = (useX? (X * W / surface_width): (x * H / surface_height));

} }

dd) 매개 프레임의 스케일 과정 중, 목표 디스플레이 버퍼의 주소(16비트 무기호 short형 포인트 dest)를 향해 최종 화상의 픽셀값을 저장한다.dd) During the scaling process of each frame, the pixel value of the final image is stored toward the address (16-bit unsigned short type point dest) of the target display buffer.

하기와 같은 방법을 사용하여 최근린법의 스케일을 진행한다.The scale of the recent Lean method is advanced using the following method.

int destY, srcY;int destY, srcY;

for(y=0; y<height; y++)for (y = 0; y <height; y ++)

{{

destY = T_corDst[y];destY = T_corDst [y];

srcY = T_corSrc[y];srcY = T_corSrc [y];

for(x=0; x<width; x++)for (x = 0; x <width; x ++)

{{

dest[destY + (x+startX)] = src[srcY + T_xWxH[x]];        dest [destY + (x + startX)] = src [srcY + T_xWxH [x]];

}    }

}}

하기와 같은 방법을 사용하여 이중선형 보간법의 스케일을 진행한다.The scale of the bilinear interpolation is performed using the following method.

unsigned short destR, destG, destB; unsigned short destR, destG, destB;

unsigned short srcR00, srcG00, srcB00;unsigned short srcR00, srcG00, srcB00;

unsigned short srcR01, srcG01, srcB01;unsigned short srcR01, srcG01, srcB01;

unsigned short srcR10, srcG10, srcB10;unsigned short srcR10, srcG10, srcB10;

unsigned short srcR11, srcG11, srcB11;unsigned short srcR11, srcG11, srcB11;

int destY, srcY0, srcY1, srcX0, srcX1;int destY, srcY0, srcY1, srcX0, srcX1;

for(y=0; y<height; y++)for (y = 0; y <height; y ++)

{{

destY = T_corDst[y];destY = T_corDst [y];

srcY0 = T_corSrc[y];    srcY0 = T_corSrc [y];

srcY1 = T_corSrc[y+1];    srcY1 = T_corSrc [y + 1];

for(x=0; x<width; x++)    for (x = 0; x <width; x ++)

{    {

srcX0 = T_xWxH[x];        srcX0 = T_xWxH [x];

srcX1 = T_xWxH[x+1];        srcX1 = T_xWxH [x + 1];

srcR00 = ((src[srcY0 + srcX0] & 0xf800) >> 11) << 3;         srcR00 = ((src [srcY0 + srcX0] & 0xf800) >> 11) << 3;

srcG00 = ((src[srcY0 + srcX0] & 0x07e0) >> 5) << 2;        srcG00 = ((src [srcY0 + srcX0] & 0x07e0) >> 5) << 2;

srcB00 = (src[srcY0 + srcX0] & 0x001f) << 3;        srcB00 = (src [srcY0 + srcX0] & 0x001f) << 3;

srcR01 = ((src[srcY1 + srcX0] & 0xf800) >> 11) << 3;         srcR01 = ((src [srcY1 + srcX0] & 0xf800) >> 11) << 3;

srcG01 = ((src[srcY1 + srcX0] & 0x07e0) >> 5) << 2;        srcG01 = ((src [srcY1 + srcX0] & 0x07e0) >> 5) << 2;

srcB01 = (src[srcY1 + srcX0] & 0x001f) << 3;        srcB01 = (src [srcY1 + srcX0] & 0x001f) << 3;

srcR10 = ((src[srcY0 + srcX1] & 0xf800) >> 11) << 3;         srcR10 = ((src [srcY0 + srcX1] & 0xf800) >> 11) << 3;

srcG10 = ((src[srcY0 + srcX1] & 0x07e0) >> 5) << 2;        srcG10 = ((src [srcY0 + srcX1] & 0x07e0) >> 5) << 2;

srcB10 = (src[srcY0 + srcX1] & 0x001f) << 3;        srcB10 = (src [srcY0 + srcX1] & 0x001f) << 3;

srcR11 = ((src[srcY1 + srcX1] & 0xf800) >> 11) << 3;         srcR11 = ((src [srcY1 + srcX1] & 0xf800) >> 11) << 3;

srcG11 = ((src[srcY1 + srcX1] & 0x07e0) >> 5) << 2;        srcG11 = ((src [srcY1 + srcX1] & 0x07e0) >> 5) << 2;

srcB11 = (src[srcY1 + srcX1] & 0x001f) << 3;        srcB11 = (src [srcY1 + srcX1] & 0x001f) << 3;

destR = (srcR00 + srcR01 + srcR10 + srcR11) >> 2;        destR = (srcR00 + srcR01 + srcR10 + srcR11) >> 2;

destG = (srcG00 + srcG01 + srcG10 + srcG11) >> 2;        destG = (srcG00 + srcG01 + srcG10 + srcG11) >> 2;

destB = (srcB00 + srcB01 + srcB10 + srcB11) >> 2;        destB = (srcB00 + srcB01 + srcB10 + srcB11) >> 2;

dest[destY + (x+startX)] = ((destR>>3)<<11) | ((destG>>2)<<5) | (destB>>3);        dest [destY + (x + startX)] = ((destR >> 3) << 11) | ((destG >> 2) << 5) | (destB >> 3);

}}

}}

상기와 같이, 두가지 스케일 방법에 대하여 정점화 방식 및 좌표 환산표를 통한 최적화를 진행함으로써, 모두 정수 가법, 테이블 조사 및 간단한 로직연산만 포함하게 되므로, 산출량이 대폭적으로 낮아졌다. 한편, 상기로부터 알 수 있는 바와 같이, 이중선형 보간법의 산출량은 최근린법의 수십배에 달하고, 또한 최근린법은 하나의 픽셀의 16비트 RGB값에 대하여 동시에 처리할 수 있다. 따라서, 본 발명은 오직 이중선형 보간법을 사용하여 디코딩 속도가 충분히 빠른 극소 해상도 화상에 대하여 확대를 진행하고, 최근린법을 사용하여 디코딩이 비교적 느린 큰 화상에 대하여 축소를 진행한다.As described above, the optimization of the two scale methods through the vertex method and the coordinate conversion table includes only the integer addition method, the table search, and the simple logic operation, so the output is drastically lowered. On the other hand, as can be seen from the above, the yield of the bilinear interpolation method is several tens of times of the recent Lean method, and the recent Lean method can simultaneously process 16-bit RGB values of one pixel. Therefore, the present invention uses only bilinear interpolation to zoom in on a small resolution image having a sufficiently fast decoding speed, and uses the recent Lean method to zoom out on a large picture with relatively slow decoding.

최후1프레임 화상을 처리 완료 후, 4개 좌표 전환표의 공간을 방출하여 자원을 재배치한다.After processing the last one frame image, the space of four coordinate conversion tables is released to rearrange resources.

상기 실시예로부터 알 수 있는 바와 같이, 본 발명의 기술방안에 따른 최적화 후의 멀티미디어 소프트웨어 플레이어 중의 모든 모듈은 하드웨어와 관련이 없는 소프트웨어를 사용함으로써 실현되는 것으로, 이는 보편성을 구비한 멀티미디어 재생방법이고 또한 각종 동영상 포맷을 광범위하게 지원할 수 있다.As can be seen from the above embodiment, all the modules in the multimedia software player after optimization according to the technical solution of the present invention are realized by using software which is not related to hardware, which is a multimedia playback method with universality and various It can support a wide range of video formats.

또한, 본 발명은 동영상 디코딩, 색상 전환, 화상 스케일, 디코딩 속도제어, 동영상 프레임 디스플레이, 시스템 메모리의 사용 및 프레임 버퍼에 대하여 최적화 조합을 진행함으로써, 동영상 재생의 원활성을 최종적인 목표로 하여, 보편성을 구비할 뿐만 아니라 또한 CPU 및 시스템 자원의 점유율을 효과적으로 감소시킬 수 있고 재생의 원활성을 향상시킬 수 있다.In addition, the present invention performs an optimized combination of video decoding, color conversion, image scale, decoding speed control, video frame display, system memory use, and frame buffer, thereby achieving smoothness of video playback as a final goal. Not only that, but also it can effectively reduce the occupancy of the CPU and system resources and improve the smoothness of the reproduction.

본 발명의 일실시예에 따른 영상처리장치에 있어서, 상술한 실시예에서의 용어는 다음과 같이 정의될 수도 있다.In the image processing apparatus according to the embodiment of the present invention, the term in the above-described embodiment may be defined as follows.

프레임 드로핑은 프레임을 버리는 것일 수 있으며, 감소시키는 것을 의미할 수 있다. Frame dropping may mean dropping a frame and may mean reducing it.

프레임율은 이하에서는 프레임레이트라 할 수 있다.The frame rate may be referred to as frame rate below.

로스 디코딩은 영상처리되는 프레임의 개수를 감소시키거나 프레임을 버리는 것을 의미할 수 있다.Loss decoding may mean reducing the number of frames processed or discarding the frames.

로스 디스플레이는 영상처리되어 영상출력없이 프레임의 개수를 감소시키거나 프레임을 버리는 것을 의미할 수 있다.The loss display may mean image processing to reduce the number of frames or discard the frames without image output.

목표 프레임은 출력영상의 프레임일 수 있다.The target frame may be a frame of the output image.

목표 프레임율은 출력영상의 프레임레이트로 표현될 수 있다.The target frame rate may be expressed as a frame rate of the output image.

원시 프레임율은 입력영상의 프레임레이트일 수 있다.The raw frame rate may be a frame rate of the input image.

목표 프레임 드로핑율은 출력영상의 프레임의 개수를 감소시키거나 프레임을 버리는 것의 비율을 의미할 수 있다.The target frame dropping rate may mean a ratio of reducing the number of frames of the output image or discarding the frames.

실시간 프레임 드로핑율은 프레임의 실시간감소율을 의미할 수 있다.The real time frame dropping rate may mean a real time reduction rate of a frame.

디코더는 입력영상을 디코딩하는 디코딩부를 의미할 수 있다.The decoder may mean a decoding unit for decoding the input image.

상술한 용어들은 다음 기술할 본 발명의 일 실시예에따른 영상처리장치의 설명에 적용될 수 있다.The above terms may be applied to a description of an image processing apparatus according to an embodiment of the present invention to be described below.

여기서, 도 7은 본 발명의 일실시 예에 따른 영상처리장치의 구성을 나타내는 블록도이다. 본 발명의 일실시 예에 따른 영상처리장치는 영상수신부, 영상처리부, 디스플레이부, 저장부, 제어부를 포함할 수 있다.7 is a block diagram illustrating a configuration of an image processing apparatus according to an exemplary embodiment. An image processing apparatus according to an embodiment of the present invention may include an image receiver, an image processor, a display, a storage, and a controller.

영상수신부는 영상신호/영상데이터를 유선 또는 무선으로 수신하여 영상처리부에 전달한다. 영상수신부는 수신하는 영상신호의 규격 및 디스플레이장치(100)의 구현 형태에 대응하여 다양한 방식으로 마련될 수 있다. 예를 들면, 영상수신부는 RF(radio frequency)신호를 수신하거나, 컴포지트(composite) 비디오, 컴포넌트(component) 비디오, 슈퍼 비디오(super video), SCART, HDMI(high definition multimedia interface), 디스플레이포트(DisplayPort), UDI(unified display interface), 또는 와이어리스(wireless) HD 규격 등에 의한 영상신호를 수신할 수 있다. 영상수신부는 영상신호가 방송신호인 경우, 이 방송신호를 채널 별로 튜닝하는 튜너(tuner)를 포함할 수 있다. 수신부는 TV방송신호 등의 방송신호 송신장치(도시안됨)로부터 방송신호를 영상신호로서 수신하거나, DVD플레이어, BD플레이어 등의 영상기기로부터 영상신호를 수신하거나, PC로부터 영상신호를 수신하거나, 스마트폰, 스마트패드 등의 모바일기기로부터 영상신호를 수신하거나, 인터넷 등의 네트워크를 통해 영상신호를 수신하거나, USB저장매체와 같은 저장매체에 저장된 영상컨텐츠를 영상신호로서 입력할 수 있다. 다른 실시예로서, 영상신호는 수신부를 통해 수신되지 아니하고, 저장부(도시 안됨)에 저장되어 제공될 수도 있다.The image receiver receives the image signal / image data by wire or wirelessly and transmits the image signal / image data to the image processor. The image receiver may be provided in various ways according to the standard of the received image signal and the implementation form of the display apparatus 100. For example, the image receiver may receive a radio frequency (RF) signal, composite video, component video, super video, SCART, high definition multimedia interface (HDMI), and DisplayPort. ), A UDI (Unified Display Interface), or a wireless signal (wireless HD) standards, etc. can be received. The video receiver may include a tuner for tuning the broadcast signal for each channel if the video signal is a broadcast signal. The receiver receives a broadcast signal as a video signal from a broadcast signal transmitter (not shown) such as a TV broadcast signal, receives a video signal from a video device such as a DVD player or a BD player, receives a video signal from a PC, or A video signal may be received from a mobile device such as a phone or a smart pad, a video signal may be received through a network such as the Internet, or video content stored in a storage medium such as a USB storage medium may be input as the video signal. In another embodiment, the image signal may not be received through the receiver, but may be stored and provided in a storage unit (not shown).

영상처리부가 수행하는 영상처리 프로세스의 종류는 한정되지 않으며, 예를 들면 영상데이터의 영상 포맷에 대응하는 디코딩(decoding), 인터레이스(interlace) 방식의 영상데이터를 프로그레시브(progressive) 방식으로 변환하는 디인터레이싱(de-interlacing), 영상데이터를 기 설정된 해상도로 조정하는 스케일링(scaling), 영상 화질 개선을 위한 노이즈 감소(noise reduction), 디테일 강화(detail enhancement), 프레임 리프레시 레이트(frame refresh rate) 변환 등을 포함할 수 있다.The type of the image processing process performed by the image processing unit is not limited. For example, the decoding process corresponding to the image format of the image data, the deinterlacing process for converting the interlaced image data into the progressive process de-interlacing, scaling to adjust image data to a predetermined resolution, noise reduction for improving image quality, detail enhancement, and frame refresh rate conversion. can do.

영상처리부는 이러한 여러 기능을 통합시킨 SOC(system-on-chip), 또는 이러한 각 프로세스를 독자적으로 수행할 수 있는 개별적인 구성들이 인쇄회로기판 상에 장착됨으로써 영상처리보드(미도시)로 구현되어 디스플레이장치에 내장될 수 있다. 영상처리부는 소정 영상신호를 처리하여 영상이 표시될 수 있도록 한다. 또한, 영상처리부는 적어도 하나의 GUI의 항목이 포함된 영상이 표시되도록 처리한다. 영상처리부에 의해 처리된 영상은 모니터나, TV와 같은 디스플레이장치로 출력되어 표시될 수 있다.The image processing unit is implemented as an image processing board (not shown) by mounting on a printed circuit board a system-on-chip (SOC) that integrates these various functions, or individual components capable of independently performing each of these processes. It can be built into the device. The image processor processes a predetermined image signal to display an image. The image processor may be configured to display an image including an item of at least one GUI. The image processed by the image processor may be output to a monitor or a display device such as a TV and displayed.

영상처리부가 수행하는 영상처리 프로세스의 종류는 예를 들면 소정 신호를 각 특성별 신호로 분배하는 디멀티플렉싱(de-multiplexing), 영상신호의 영상 포맷에 대응하는 디코딩(decoding), 인터레이스(interlace) 방식의 영상신호를 프로그레시브(progressive) 방식으로 변환하는 디인터레이싱(de-interlacing), 영상 화질 개선을 위한 노이즈 감소(noise reduction), 디테일 강화(detail enhancement), 프레임 리프레시 레이트(frame refresh rate) 변환 등을 포함할 수 있으며, 인코딩된 소스영상의 영상 포맷에 대응하여 소스 영상을 디코딩하는 디코더(미도시) 및 디코딩된 소스영상을 프레임단위로 저장하는 프레임버퍼(미도시)를 포함할 수 있다. Types of image processing processes performed by the image processing unit include, for example, de-multiplexing for distributing a predetermined signal into signals for each characteristic, decoding, and interlace schemes corresponding to image formats of the image signals. De-interlacing to convert the video signal of the video signal progressively, noise reduction for image quality improvement, detail enhancement, frame refresh rate conversion, etc. It may include a decoder (not shown) for decoding the source image corresponding to the image format of the encoded source image and a frame buffer (not shown) for storing the decoded source image in units of frames.

디스플레이부는 영상처리부로부터 출력되는 영상신호에 기초하여 영상을 표시한다. 디스플레이부의 구현 방식은 한정되지 않는 바, 액정(liquid crystal), 플라즈마(plasma), 발광 다이오드(lightemitting diode), 유기발광 다이오드(organic lightemitting diode), 면전도 전자총(surfaceconduction electronemitter), 탄소 나노 튜브(carbon nanotube), 나노 크리스탈(nanocrystal) 등의 다양한 디스플레이 방식으로 구현될 수 있다. 디스플레이부는 그 구현 방식에 따라서 부가적인 구성을 추가적으로 포함할 수 있다. 예를 들면, 디스플레이부가 액정 방식인 경우, 디스플레이부 액정 디스플레이 패널(미도시)과, 이에 광을 공급하는 백라이트유닛(미도시)과, 패널(미도시)을 구동시키는 패널구동기판(미도시)을 포함할 수 있다.The display unit displays an image based on the image signal output from the image processor. The implementation of the display unit is not limited, such as liquid crystal, plasma, light emitting diode, organic light emitting diode, surfaceconduction electronemitter, carbon nanotube It can be implemented by various display methods such as nanotubes and nanocrystals. The display unit may further include additional components according to the implementation manner. For example, when the display unit is a liquid crystal type, the display unit liquid crystal display panel (not shown), a backlight unit (not shown) for supplying light thereto, and a panel driving substrate (not shown) for driving the panel (not shown) It may include.

저장부는 영상처리장치에 전원이 차단되더라도 데이터들이 남아있을 수 있도록 할 수 있으며, 사용자의 변동 사항을 반영할 수 있도록 쓰기 가능한 비휘발성 메모리(Writable ROM)로 마련되는 것이 바람직하다. 즉, 저장부는 플래쉬 메모리(Flash Memory) 또는 EPROM 또는 EEPROM 중 어느 하나로 마련될 수 있다.The storage unit may allow data to remain even when power is cut off from the image processing apparatus, and may be provided as a writable nonvolatile memory (Writable ROM) to reflect changes of the user. That is, the storage unit may be provided as one of a flash memory, an EPROM, and an EEPROM.

제어부는 영상처리장치 내의 전반적인 제어를 할 수 있다. 특히, 입력영상의 영상처리속도와 입력영상의 프레임레이트를 비교하며, 입력영상의 프레임레이트가 입력영상의 영상처리속도보다 클 경우, 출력영상의 프레임레이트를 입력영상의 프레임레이트보다 작도록 설정하고, 설정된 결과에 따라 입력영상의 영상처리되는 프레임의 개수가 감소되도록 제어할 수 있다. The controller may perform overall control in the image processing apparatus. In particular, the image processing speed of the input image is compared with the frame rate of the input image. When the frame rate of the input image is greater than the image processing speed of the input image, the frame rate of the output image is set to be smaller than the frame rate of the input image. The number of frames processed by the image of the input image may be reduced according to the set result.

도 8은 본 발명의 또 다른 일실시 예에 따른 영상처리장치의 구성을 나타내는 블록도이다. 본 발명의 일실시 예에 따른 영상처리장치는도 7에 도시된 영상처리장치에서 영상처리부의 변환부, 디코딩부와 저장부의 출력영상저장부, 사용자입력부를 더 포함하여 구성될 수 있다.8 is a block diagram illustrating a configuration of an image processing apparatus according to another exemplary embodiment. The image processing apparatus according to an exemplary embodiment of the present invention may further include a conversion unit, an output image storage unit of a decoding unit and a storage unit, and a user input unit in the image processing apparatus of FIG. 7.

변환부는 YCbCr포맷에서 RGB포맷으로 변환할 수 있도록 마련될 수 있다.The conversion unit may be provided to convert from the YCbCr format to the RGB format.

디코딩부는 영상처리부의 역할을 주로 하는 구성으로 다중화/역다중화를 구현할 수 있다.The decoding unit may implement multiplexing / demultiplexing with a configuration mainly serving as an image processing unit.

사용자입력부는 사용자의 조작 및 입력에 따라서 기 설정된 다양한 제어 커맨드 또는 정보를 제어부에 전달한다. 사용자입력부는 디스플레이장치 외측에 설치된 메뉴 키(menu-key) 또는 입력 패널(panel)이나, 디스플레이장치와 분리 이격된 리모트 컨트롤러(remote controller) 등으로 구현된다. 또는, 사용자입력부는 디스플레이부와 일체형으로 구현될 수 있는 바, 디스플레이부가 터치스크린(touch-screen)인 경우에 사용자는 디스플레이부에 표시된 입력메뉴(미도시)를 터치함으로써 기 설정된 커맨드를 제어부에 전달할 수 있다.The user input unit transmits various preset control commands or information to the controller according to a user's operation and input. The user input unit may be implemented as a menu key or an input panel installed outside the display device, or a remote controller separated from the display device. Alternatively, the user input unit may be integrally implemented with the display unit. When the display unit is a touch screen, the user may transmit a preset command to the controller by touching an input menu (not shown) displayed on the display unit. Can be.

여기서, 제어부는 입력영상의 영상처리속도 및 출력영상의 프레임레이트에 따라 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 실시간감소율에 따라 입력영상의 프레임의 다운샘플링을 수행할 수 있도록 영상처리부를 제어할 수 있다. Here, the control unit calculates a real time reduction rate of the frame of the input image according to the image processing speed of the input image and the frame rate of the output image, and the image processing unit to perform downsampling of the frame of the input image according to the calculated real time reduction rate. Can be controlled.

일반B프레임, 분급B프레임의 최하급B프레임, 분급P프레임의 최하급P프레임, 폐쇄루프GOP 내의 최후1프레임P의 프레임들은 버림 가능한 프레임으로 선택할 수 있다. 제어부는 다운샘플링으로 GOP(Group of Picture)구조에 따른 프레임우선순위에 따라 영상처리되는 프레임의 개수의 감소를 수행하기 위한 입력영상의 소정 프레임을 선택하며, 선택된 소정의 프레임은 영상처리 과정 없이 버릴 수 있다.Frames of the normal B frame, the lowest B frame of the classification B frame, the lowest P frame of the classification P frame, and the last 1 frame P in the closed loop GOP can be selected as discardable frames. The control unit selects a predetermined frame of the input image for performing the reduction of the number of frames processed according to the frame priority according to the GOP (Group of Picture) structure by downsampling, and discards the selected predetermined frame without image processing. Can be.

제어부는, 출력영상의 프레임레이트 및 상기 입력영상의 프레임레이트에 따라 출력영상의 프레임의 감소율을 산출하며, 소정의 프레임을 버리는 경우, 출력영상의 프레임의 감소율에 따라 균등하게 소정의 프레임을 버리며, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 출력영상의 프레임의 감소율에 의한 입력영상의 소정 프레임의 개수보다 작을 경우, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 모든 프레임을 버릴 수 있도록 제어할 수 있다.The control unit calculates a reduction rate of the frame of the output image according to the frame rate of the output image and the frame rate of the input image, and discards the predetermined frame evenly according to the reduction rate of the frame of the output image. When the number of frames on which the reduction of the number of frames to be imaged can be performed is smaller than the number of predetermined frames of the input image by the reduction rate of the frames of the output image, all of the reduction of the number of frames to be imaged can be performed. You can control to drop frames.

제어부는, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 출력영상의 프레임의 감소율에 의한 입력영상의 소정 프레임의 개수보다 작을 경우, 영상처리속도 및 출력영상의 프레임레이트에 따라 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 실시간감소율에 따라 영상이 출력되도록 하는 프레임의 감소를 수행하기 위한 입력영상의 소정 프레임을 선택하며, 선택된 소정의 프레임은 영상출력없이 영상처리할 수 있도록 제어할 수 있다.The controller may be configured according to the image processing speed and the frame rate of the output image when the number of frames in which the reduction of the number of frames to be processed is performed is smaller than the number of predetermined frames of the input image by the reduction rate of the frames of the output image. Calculate the real time reduction rate of the frame of the input image, select a predetermined frame of the input image to reduce the frame to output the image according to the calculated real time reduction rate, and the selected predetermined frame can be processed without image output. Can be controlled.

제어부는, 상기 각 GOP내 입력영상 중 하나의 프레임의 영상처리속도와 영상처리된 입력영상의 프레임의 평균 영상처리속도의 비율을 산출하며, 산출된 비율과 영상이 출력되도록 하는 프레임의 감소에 의한 출력영상의 프레임의 감소율을 곱하여 산출된 값을 GOP내의 실시간감소률로 하며, GOP내의 실시간감소율을 사용하여 영상이 출력되도록 하는 프레임의 감소를 균등하게 수행하도록 제어할 수 있다.The controller calculates a ratio between the image processing speed of one frame of the input images in each GOP and the average image processing speed of the frames of the input image, and by reducing the calculated ratio and the frame for outputting the image. The value calculated by multiplying the reduction rate of the frame of the output image may be a real time reduction rate in the GOP, and the control may be performed to uniformly reduce the frame for outputting the image using the real time reduction rate in the GOP.

제어부는, 입력영상를 상기 YCbCr포맷에서 RGB포맷으로 변환하는 경우, 소정의 변환연산을 포함하여 변환함으로써, 변환 시의 연산량을 감소시킬 수 있다.When the input image is converted from the YCbCr format to the RGB format, the control unit may include a predetermined conversion operation to convert the input image, thereby reducing the amount of computation during conversion.

제어부는, 소정의 변환연산은 시프팅, 테이블 조사, 로직 작업 및 소량의 가법을 포함하여 변환연산을 할 수 있도록 하여 정점화, 제거 곱셈법, 멀티포인트 동시 연산, 테이블 조사법, 제거가법 및 폭제한 연산을 수행하도록 제어할 수 있다.The control unit allows the predetermined conversion operation to be transformed, including shifting, table lookup, logic operations, and a small amount of additions, so that vertex, elimination multiplication, multipoint simultaneous operation, table lookup, elimination, and limiting operations can be performed. You can control to perform the operation.

제어부는, 사용자입력부로부터 원활한 재생우선에 관한 입력이 있는 경우, 디스플레이부 화면영역의 크기에 기초하여 격점연산을 사용하여 상기 출력영상의 해상도를 저감시킬 수 있다.The controller may reduce the resolution of the output image by using a point calculation based on the size of the screen area of the display unit when there is an input related to the smooth reproduction priority from the user input unit.

제어부는, 변환부와 디코딩부를 직렬로 배치하여 YCbCr포맷에서 RGB포맷으로 변환과 입력영상의 영상처리를 병행하여 수행하도록 제어할 수 있다. 제어부는, 1/2내지 1/16의 비율로 해상도를 저감시킬 수 있다.The controller may arrange the converter and the decoder in series to perform a conversion from the YCbCr format to the RGB format and image processing of the input image in parallel. The controller can reduce the resolution at a ratio of 1/2 to 1/16.

제어부는, 영상처리부에 의해 처리된 출력영상의 해상도와 디스플레이부 화면영역의 크기를 비교하며, 비교된 결과에 기초하여 출력영상 및 입력영상을 표시하거나 출력영상을 조정하여 영상을 표시하도록 영상처리부를 제어할 수 있다.The controller compares the resolution of the output image processed by the image processor and the size of the display screen area, and displays the image by displaying the output image and the input image or adjusting the output image based on the result of the comparison. Can be controlled.

제어부는, 출력영상의 해상도가 디스플레이부 화면영역의 크기의 1/2보다 작을 경우, 출력영상에 대하여 입력영상의 종횡비를 유지하면서 이중선형 보간법을 사용하여 확대하며, 출력영상의 가로변 또는 세로변 중 적어도 하나가 디스플레이부의 화면영역에 대응되면 나머지 한 변을 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시키도록 영상처리부를 제어할 수 있다.If the resolution of the output image is less than 1/2 of the size of the screen area of the display, the controller enlarges the image using the bilinear interpolation while maintaining the aspect ratio of the input image. If at least one corresponds to the screen area of the display unit, the image processor may be controlled to position the other side at the center of the side corresponding to the screen area of the display unit.

제어부는, 출력영상의 해상도가 디스플레이부 화면영역의 크기보다 소정범위 이하로 작을 경우, 출력영상 또는 입력영상 중 하나를 디스플레이부 화면영역의 중앙에 배치되도록 하여 영상을 표시하도록 제어할 수 있다.If the resolution of the output image is smaller than the size of the display area, the controller may control the display of the image by arranging one of the output image or the input image in the center of the display area.

제어부는, 출력영상의 해상도가 디스플레이부 화면영역의 크기보다 소정범위 이상 클 경우, 출력영상에 대하여 입력영상의 종횡비를 유지하면서 최근린법을 사용하여 축소하며, 출력영상의 가로변 또는 세로변 중 적어도 하나가 디스플레이부의 화면영역에 대응되면 나머지 한 변을 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시키도록 제어할 수 있다.If the resolution of the output image is larger than the size of the screen area of the display unit, the controller reduces the size of the output image by using the latest method while maintaining the aspect ratio of the input image, and at least one of the horizontal and vertical sides of the output image. When the control panel corresponds to the screen area of the display unit, the other side may be controlled to be positioned at the center of the side corresponding to the screen area of the display unit.

제어부는, 최근린법과 이중선형 보간법을 최적화하기 위하여 좌표연산에 대한 정점화를 수행하며, 프레임의 연산 시 변환에 필요한 좌표를 위한 테이블을 구축하며, 프레임의 좌표는 연산없이 테이블 조사 및 가법연산을 통해 산출되고, 최근린법의 연산으로 픽셀의 RGB 색상을 동시에 처리하도록 영상처리부를 제어할 수 있다.The control unit vertices the coordinate operation to optimize the Lean method and the bilinear interpolation method, constructs a table for the coordinates necessary for the transformation when the frame is calculated, and coordinates of the frame without the operation The image processor may control the image processor to simultaneously process the RGB colors of the pixels by calculating the latest method.

도 9는 본 발명의 다른 일실시 예에 따른 영상처리장치의 제어흐름도이다. 도 9를 통하여 본 발명의 일실시 예에 따른 영상처리장치의 동작을 설명한다.9 is a control flowchart of an image processing apparatus according to another embodiment of the present invention. The operation of the image processing apparatus according to an embodiment of the present invention will be described with reference to FIG. 9.

영상수신부를 통하여 입력영상이 수신된다(S11). 저장부는 입력영상의 영상에 관한 정보 즉, 영상처리부의 디코딩부의 포맷, 비트율, 입력영상의 프레임레이트, 해상도 등의 정보를 저장한다. 제어부는 입력영상의 프레임레이트가 입력영상의 영상처리속도보다 큰가를 비교한다(S12). 입력영상의 프레임레이트가 입력영상의 영상처리속도보다 클 경우, 출력영상의 프레임레이트를 입력영상의 프레임레이트보다 작도록 설정한다(S13). 입력영상의 영상처리속도가 입력영상의 프레임레이트보다 클 경우, 영상처리부는 정상적인 영상처리를 수행한다. 설정된 출력영상의 프레임레이트에 따라 입력영상의 처리되는 프레임의 개수를 감소시키도록 한다(S14).The input image is received through the image receiver (S11). The storage unit stores information about an image of the input image, that is, a format, a bit rate, a frame rate of the input image, a resolution, and the like of the decoding unit of the image processor. The controller compares whether the frame rate of the input image is greater than the image processing speed of the input image (S12). If the frame rate of the input image is greater than the image processing speed of the input image, the frame rate of the output image is set to be smaller than the frame rate of the input image (S13). If the image processing speed of the input image is larger than the frame rate of the input image, the image processor performs normal image processing. The number of frames processed in the input image is reduced according to the frame rate of the set output image (S14).

상술한 설명에 의해 영상을 최적화하기 위하여 소정의 프레임은 영상출력이 되지 않도록 프레임을 감소시키는 방법과 입력영상를 YCbCr포맷에서 RGB포맷으로 변환하면서 연산량을 감소하는 방법(해상도 저감, 영상처리와 변환 병행처리, 소정의 연산법) 및 출력영상을 조정하여 영상을 최적화하는 방법을 도 9의 영상처리장치의 동작과 더불어 병행 및 단독으로 수행할 수 있다.As described above, in order to optimize an image, a method of reducing a frame so that a predetermined frame does not become an image output and a method of reducing an amount of calculation while converting an input image from a YCbCr format to an RGB format (resolution reduction, image processing and conversion parallel processing) , A predetermined calculation method) and a method of optimizing the image by adjusting the output image may be performed in parallel and alone with the operation of the image processing apparatus of FIG. 9.

이에 의해서, 사용자는 시청 중 멈춤현상 즉, 버퍼링없이 원활한 영상의 시청을 할 수 있다. As a result, the user can watch a smooth image without stopping during viewing, that is, without buffering.

또한, 본 발명은 동영상 디코딩, 색상 전환, 화상 스케일, 디코딩 속도제어, 동영상 프레임 디스플레이, 시스템 메모리의 사용 및 프레임 버퍼에 대하여 최적화 조합을 진행함으로써, 동영상 재생의 원활성을 최종적인 목표로 하여, 보편성을 구비할 뿐만 아니라 또한 CPU 및 시스템 자원의 점유율을 효과적으로 감소시킬 수 있고 재생의 원활성을 향상시킬 수 있다.In addition, the present invention performs an optimized combination of video decoding, color conversion, image scale, decoding speed control, video frame display, system memory use, and frame buffer, thereby achieving smoothness of video playback as a final goal. Not only that, but also it can effectively reduce the occupancy of the CPU and system resources and improve the smoothness of the reproduction.

상기 내용은 오직 본발명의 바람직한 실시예에 관한 설명일 뿐 본 발명을 제한하고자 하는 것은 아니다. 본 발명의 정신 및 원칙하에서의 모든 수정, 균등 대체, 개선 등은 모두 본 발명의 보호범위에 속해야 한다.The above description is only a description of a preferred embodiment of the present invention and is not intended to limit the present invention. All modifications, equivalent replacements, improvements, and the like, within the spirit and principles of the present invention, should all fall within the protection scope of the present invention.

지금까지 본 발명의 실시예가 도시되고 설명되었지만, 본 발명이 속하는 기술분야의 통상의 지식을 가진 당업자라면 본 발명의 원칙이나 정신에서 벗어나지 않으면서 실시예를 변형할 수 있을 것이다. 따라서, 발명의 범위는 지금까지 설명된 실시예로 정해지는 것이 아니라 첨부된 청구항과 그 균등물에 의해 정해질 것이다.While the embodiments of the present invention have been shown and described, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope or spirit of this invention. Accordingly, the scope of the invention is not to be determined by the embodiments described so far but on the basis of the appended claims and their equivalents.

1 : 영상처리장치
100 : 제어부
110 : 저장부
112 : 출력영상저장부
120 : 영상수신부
130 : 영상처리부
132 : 변환부
134 : 디코딩부
140 : 디스플레이부
1: Image processing device
100:
110: storage unit
112: output image storage unit
120: video receiver
130:
132: converter
134: decoding unit
140:

Claims (32)

영상처리장치에 있어서,
입력영상을 수신하는 영상수신부;
상기 입력영상을 처리하여 출력영상을 출력하는 영상처리부;
상기 출력영상을 표시하는 디스플레이부;
상기 입력영상의 데이터 및 정보를 저장하는 저장부;
상기 입력영상의 영상처리속도와 상기 입력영상의 프레임레이트를 비교하며, 상기 입력영상의 프레임레이트가 상기 입력영상의 영상처리속도보다 클 경우, 상기 출력영상의 프레임레이트를 상기 입력영상의 프레임레이트보다 작도록 설정하고, 설정된 결과에 따라 상기 입력영상의 영상처리되는 프레임의 개수가 감소되도록 제어하는 제어부를 포함하는 것을 특징으로 하는 영상처리장치.
An image processing apparatus comprising:
An image receiving unit which receives an input image;
An image processor which processes the input image and outputs an output image;
A display unit which displays the output image;
A storage unit for storing data and information of the input image;
The image processing speed of the input image is compared with the frame rate of the input image. When the frame rate of the input image is greater than the image processing speed of the input image, the frame rate of the output image is greater than the frame rate of the input image. And a controller configured to reduce the number and control the number of frames processed by the input image to be reduced according to the set result.
제1항에 있어서,
상기 제어부는, 상기 입력영상의 영상처리속도 및 상기 출력영상의 프레임레이트에 따라 상기 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 상기 실시간감소율에 따라 상기 입력영상의 프레임의 다운샘플링을 수행하는 것을 특징으로 하는 영상처리장치.
The method of claim 1,
The control unit calculates a real time reduction rate of a frame of the input image according to the image processing speed of the input image and the frame rate of the output image, and performs downsampling of the frame of the input image according to the calculated real time reduction rate. Image processing apparatus, characterized in that.
제2항에 있어서,
상기 제어부는, 상기 다운샘플링으로 GOP(Group of Picture)구조에 따른 프레임우선순위에 따라 영상처리되는 프레임의 개수의 감소를 수행하기 위한 상기 입력영상의 소정 프레임을 선택하며, 선택된 상기 소정의 프레임은 영상처리 과정 없이 버리는 것을 특징으로 하는 영상처리장치.
3. The method of claim 2,
The control unit may select a predetermined frame of the input image to perform a reduction in the number of frames processed by the frame priority according to a GOP (Group of Picture) structure by the downsampling. An image processing apparatus, characterized in that discarded without an image processing process.
제3항에 있어서,
상기 제어부는, 상기 출력영상의 프레임레이트 및 상기 입력영상의 프레임레이트에 따라 상기 출력영상의 프레임의 감소율을 산출하며,
상기 소정의 프레임을 버리는 경우, 상기 출력영상의 프레임의 감소율에 따라 균등하게 상기 소정의 프레임을 버리며, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 상기 출력영상의 프레임의 감소율에 의한 상기 입력영상의 소정 프레임의 개수보다 작을 경우, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 모든 프레임을 버리는 것을 특징으로 하는 영상처리장치.
The method of claim 3,
The controller calculates a reduction rate of a frame of the output image according to the frame rate of the output image and the frame rate of the input image.
If the predetermined frame is discarded, the number of frames for which the predetermined frame is discarded equally according to the reduction rate of the frame of the output image, and the number of frames for which the image is processed may be reduced is the reduction rate of the frame of the output image. If less than the number of the predetermined frame of the input image by the image processing apparatus, characterized in that for discarding all the frames that can be reduced the number of frames to be processed image.
제3항에 있어서,
상기 제어부는, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 상기 출력영상의 프레임의 감소율에 의한 상기 입력영상의 소정 프레임의 개수보다 작을 경우, 상기 영상처리속도 및 상기 출력영상의 프레임레이트에 따라 상기 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 상기 실시간감소율에 따라 영상이 출력되도록 하는 프레임의 감소를 수행하기 위한 상기 입력영상의 소정 프레임을 선택하며, 상기 선택된 소정의 프레임은 영상출력없이 영상처리하는 것을 특징으로 하는 영상처리장치.
The method of claim 3,
The controller may control the image processing speed and the output image when the number of frames in which the reduction of the number of frames to be processed may be performed is smaller than the number of predetermined frames of the input image by the reduction rate of the frames of the output image. Calculating a real-time reduction rate of a frame of the input image according to a frame rate of the selected image, selecting a predetermined frame of the input image for performing a reduction of a frame to output an image according to the calculated real-time reduction rate, and selecting the selected predetermined The frame is an image processing apparatus, characterized in that the image processing without image output.
제4항에 있어서,
상기 제어부는, 상기 각 GOP내 상기 입력영상 중 하나의 프레임의 상기 영상처리속도와 영상처리된 상기 입력영상의 프레임의 평균 영상처리속도의 비율을 산출하며, 상기 산출된 비율과 영상이 출력되도록 하는 프레임의 감소에 의한 상기 출력영상의 프레임의 감소율을 곱하여 산출된 값을 상기 GOP내의 실시간감소률로 하며, 상기 GOP내의 실시간감소율을 사용하여 영상이 출력되도록 하는 프레임의 감소를 균등하게 수행하는 것을 특징으로 하는 영상처리장치.
5. The method of claim 4,
The controller calculates a ratio between the image processing speed of one frame of the input images in each GOP and the average image processing speed of a frame of the input image processed, and outputs the calculated ratio and the image. The value calculated by multiplying the reduction rate of the frame of the output image by the reduction of the frame is used as the real time reduction rate in the GOP, and the reduction of the frame for outputting the image is performed using the real time reduction rate in the GOP. An image processing apparatus.
제1항에 있어서,
상기 영상처리부는 YCbCr포맷에서 RGB포맷으로 변환하는 변환부를 더 포함하고,
상기 제어부는, 상기 입력영상를 상기 YCbCr포맷에서 상기 RGB포맷으로 변환하는 경우, 소정의 변환연산을 포함하여 변환함으로써, 변환 시의 연산량을 감소하는 것을 특징으로 하는 영상처리장치.
The method of claim 1,
The image processing unit further includes a conversion unit for converting from YCbCr format to RGB format,
And converting the input image from the YCbCr format to the RGB format by including a predetermined conversion operation to reduce the amount of computation during conversion.
제7항에 있어서,
상기 제어부는, 상기 소정의 변환연산은 시프팅, 테이블 조사, 로직 작업 및 소량의 가법을 포함하여 변환연산을 할 수 있도록 하여 정점화, 제거 곱셈법, 멀티포인트 동시 연산, 테이블 조사법, 제거가법 및 폭제한 연산을 수행하는 것을 특징으로 하는 영상처리장치.
The method of claim 7, wherein
The control unit may be configured to perform a conversion operation including shifting, table lookup, logic operation, and a small amount of addition, such that vertex, elimination multiplication, multipoint simultaneous operation, table lookup, removal addition, and the like. And an exponential limiting operation.
제7항에 있어서,
영상신호에 관한 입력을 할 수 있는 사용자입력부를 더 포함하고,
상기 제어부는, 상기 사용자입력부로부터 원활한 재생우선에 관한 입력이 있는 경우, 상기 디스플레이부 화면영역의 크기에 기초하여 격점연산을 사용하여 상기 출력영상의 해상도를 저감시키는 것을 특징으로 하는 영상처리장치.
The method of claim 7, wherein
Further comprising a user input unit for inputting a video signal,
And the controller is further configured to reduce the resolution of the output image by using a point calculation based on the size of the screen area of the display unit when there is an input related to a smooth reproduction priority from the user input unit.
제7항에 있어서,
상기 영상처리부는 입력영상을 디코딩하는 디코딩부를 더 포함하고,
상기 제어부는, 상기 변환부와 상기 디코딩부를 직렬로 배치하여 상기 YCbCr포맷에서 상기 RGB포맷으로 변환과 상기 입력영상의 영상처리를 병행하여 수행하는 것을 특징으로 하는 영상처리장치.
The method of claim 7, wherein
The image processing unit further includes a decoding unit for decoding the input image,
And the controller is configured to perform the conversion of the YCbCr format to the RGB format and image processing of the input image in parallel by arranging the converter and the decoder in series.
제9항에 있어서,
상기 제어부는, 1/2내지 1/16의 비율로 해상도를 저감시키는 것을 특징으로 하는 영상처리장치.
10. The method of claim 9,
And the control unit reduces the resolution at a ratio of 1/2 to 1/16.
제1항에 있어서,
상기 저장부는 출력영상이 저장되는 출력영상저장부를 더 포함하고,
상기 제어부는, 상기 영상처리부에 의해 처리된 상기 출력영상의 해상도와 상기 디스플레이부 화면영역의 크기를 비교하며, 비교된 결과에 기초하여 상기 출력영상 및 상기 입력영상을 표시하거나 상기 출력영상을 조정하여 영상을 표시하는 것을 특징으로 하는 영상처리장치.
The method of claim 1,
The storage unit further includes an output image storage unit for storing the output image,
The control unit compares the resolution of the output image processed by the image processing unit with the size of the screen area of the display unit, and displays the output image and the input image or adjusts the output image based on the comparison result. An image processing apparatus characterized by displaying an image.
제12항에 있어서,
상기 제어부는, 상기 출력영상의 해상도가 상기 디스플레이부 화면영역의 크기의 1/2보다 작을 경우, 상기 출력영상에 대하여 상기 입력영상의 종횡비를 유지하면서 이중선형 보간법을 사용하여 확대하며, 상기 출력영상의 가로변 또는 세로변 중 적어도 하나가 상기 디스플레이부의 화면영역에 대응되면 나머지 한 변을 상기 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시키는 것을 특징으로 하는 영상처리장치.
The method of claim 12,
When the resolution of the output image is less than 1/2 of the size of the screen area of the display unit, the controller enlarges the image using the bilinear interpolation while maintaining the aspect ratio of the input image with respect to the output image. And at least one of the horizontal side and the vertical side of the display unit is positioned at the center of the side corresponding to the screen region of the display unit.
제12항에 있어서,
상기 제어부는, 상기 출력영상의 해상도가 상기 디스플레이부 화면영역의 크기보다 소정범위 이하로 작을 경우, 상기 출력영상 또는 상기 입력영상 중 하나를 상기 디스플레이부 화면영역의 중앙에 배치되도록 하여 영상을 표시하는 것을 특징으로 하는 영상처리장치.
The method of claim 12,
When the resolution of the output image is smaller than a size of the screen area of the display unit, the controller is configured to display an image by arranging one of the output image or the input image in the center of the display unit screen area. Image processing apparatus, characterized in that.
제12항에 있어서,
상기 제어부는, 상기 출력영상의 해상도가 디스플레이부 화면영역의 크기보다 소정범위 이상 클 경우, 상기 출력영상에 대하여 상기 입력영상의 종횡비를 유지하면서 최근린법을 사용하여 축소하며, 상기 출력영상의 가로변 또는 세로변 중 적어도 하나가 상기 디스플레이부의 화면영역에 대응되면 나머지 한 변을 상기 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시키는 것을 특징으로 하는 영상처리장치.
The method of claim 12,
When the resolution of the output image is larger than a size of a display area of the display unit, the controller reduces the size of the output image using a recent Lean method while maintaining the aspect ratio of the input image. And when at least one of the vertical sides corresponds to the screen area of the display unit, the other side is positioned at the center of the side corresponding to the screen area of the display unit.
제13항 또는 제15항에 있어서,
상기 제어부는, 상기 최근린법과 상기 이중선형 보간법을 최적화하기 위하여 좌표연산에 대한 정점화를 수행하며, 프레임의 연산 시 변환에 필요한 좌표를 위한 테이블을 구축하며, 프레임의 상기 좌표는 연산없이 테이블 조사 및 가법연산을 통해 산출되고, 상기 최근린법의 연산으로 픽셀의 RGB 색상을 동시에 처리하는 것을 특징으로 하는 영상처리장치.
16. The method according to claim 13 or 15,
The control unit performs vertices on coordinate operations in order to optimize the latest Lean method and the bilinear interpolation method, constructs a table for coordinates necessary for transformation during operation of the frame, and the coordinates of the frame are examined without a table. And an additive operation, and simultaneously processing the RGB colors of the pixels by calculating the latest Lean method.
영상처리장치의 제어방법에 있어서,
입력영상을 수신하는 단계;
상기 입력영상의 영상처리속도와 상기 입력영상의 프레임레이트를 비교하는 단계;
상기 입력영상의 프레임레이트가 상기 입력영상의 영상처리속도보다 클 경우, 상기 출력영상의 프레임레이트를 상기 입력영상의 프레임레이트보다 작도록 설정하는 단계;
설정된 결과에 따라 상기 입력영상의 영상처리되는 프레임의 개수를 감소시키는 단계를 포함하는 영상처리장치의 제어방법.
A method of controlling an image processing apparatus,
Receiving an input image;
Comparing the image processing speed of the input image with the frame rate of the input image;
Setting the frame rate of the output image to be smaller than the frame rate of the input image if the frame rate of the input image is greater than the image processing speed of the input image;
And reducing the number of frames to be image-processed of the input image according to a set result.
제17항에 있어서,
상기 프레임의 개수를 감소시키는 단계는,
상기 입력영상의 영상처리속도 및 상기 출력영상의 프레임레이트에 따라 상기 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 상기 실시간감소율에 따라 상기 입력영상의 프레임의 다운샘플링을 수행하는 단계를 포함하는 영상처리장치의 제어방법.
18. The method of claim 17,
Reducing the number of frames,
Calculating a real time reduction rate of a frame of the input image according to the image processing speed of the input image and the frame rate of the output image, and performing downsampling of the frame of the input image according to the calculated real time reduction rate; Control method of an image processing apparatus.
제18항에 있어서,
상기 다운샘플링을 수행하는 단계는,
상기 다운샘플링으로 GOP(Group of Picture)구조에 따른 프레임우선순위에 따라 영상처리되는 프레임의 개수의 감소를 수행하기 위한 상기 입력영상의 소정 프레임을 선택하며, 선택된 상기 소정의 프레임은 영상처리 과정 없이 버리는 단계를 포함하는 영상처리장치의 제어방법.
19. The method of claim 18,
The downsampling may include:
The downsampling selects a predetermined frame of the input image to reduce the number of frames processed according to a frame priority according to a group of picture (GOP) structure, and the predetermined frame is selected without performing image processing. Control method of the image processing apparatus comprising the step of discarding.
제19항에 있어서,
상기 영상처리 과정 없이 버리는 단계는,
상기 출력영상의 프레임레이트 및 상기 입력영상의 프레임레이트에 따라 상기 출력영상의 프레임의 감소율을 산출하며,
상기 출력영상의 프레임의 감소율에 따라 균등하게 상기 소정의 프레임을 버리며, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 상기 출력영상의 프레임의 감소율에 의한 상기 입력영상의 소정 프레임의 개수보다 작을 경우, 영상처리되는 프레임의 개수의 감소가 수행될 수 있는 모든 프레임을 버리는 단계를 포함하는 영상처리장치의 제어방법.
20. The method of claim 19,
Discarding without the image processing process,
Calculating a reduction rate of the frame of the output image according to the frame rate of the output image and the frame rate of the input image,
The predetermined frames of the input image are discarded evenly according to the reduction rate of the frames of the output image, and the number of frames for which the reduction of the number of frames processed by the image is performed is determined by the reduction rate of the frames of the output image. If less than the number of, the control method of the image processing apparatus comprising the step of discarding all the frames that can be reduced the number of frames to be processed image.
제19항에 있어서,
상기 영상처리 과정 없이 버리는 단계는,
영상처리되는 프레임의 개수의 감소가 수행될 수 있는 프레임의 개수가 상기 출력영상의 프레임의 감소율에 의한 상기 입력영상의 소정 프레임의 개수보다 작을 경우, 상기 영상처리속도 및 상기 출력영상의 프레임레이트에 따라 상기 입력영상의 프레임의 실시간감소율을 산출하고, 산출된 상기 실시간감소율에 따라 영상이 출력되도록 하는 프레임의 감소를 수행하기 위한 상기 입력영상의 소정 프레임을 선택하며, 상기 선택된 소정의 프레임은 영상출력없이 영상처리하는 단계를 더 포함하는 영상처리장치의 제어방법.
20. The method of claim 19,
Discarding without the image processing process,
When the number of frames in which the reduction of the number of frames to be imaged can be performed is smaller than the number of predetermined frames of the input image by the reduction rate of the frames of the output image, the image processing speed and the frame rate of the output image Calculating a real time reduction rate of a frame of the input image and selecting a predetermined frame of the input image for reducing a frame for outputting an image according to the calculated real time reduction rate, wherein the selected predetermined frame is an image output And controlling the image without the image.
제20항에 있어서,
상기 모든 프레임을 버리는 단계는,
상기 각 GOP내 상기 입력영상 중 하나의 프레임의 상기 영상처리속도와 영상처리된 상기 입력영상의 프레임의 평균 영상처리속도의 비율을 산출하며, 상기 산출된 비율과 영상이 출력되도록 하는 프레임의 감소에 의한 상기 출력영상의 프레임의 감소율을 곱하여 산출된 값을 상기 GOP내의 실시간감소률로 하며, 상기 GOP내의 실시간감소율을 사용하여 영상이 출력되도록 하는 프레임의 감소를 균등하게 수행하는 단계를 더 포함하는 영상처리장치의 제어방법.
21. The method of claim 20,
Discarding all the frames,
Calculating a ratio between the image processing speed of one frame of the input image and the average image processing speed of the frame of the input image in the GOP, and reducing the frame to output the calculated ratio and the image. And a value calculated by multiplying a reduction rate of the frame of the output image by a real time reduction rate in the GOP, and uniformly reducing a frame for outputting an image using the real time reduction rate in the GOP. Control method of processing device.
제17항에 있어서,
상기 프레임의 개수를 감소시키는 단계는,
상기 입력영상을 YCbCr포맷에서 RGB포맷으로 변환하는 경우, 소정의 변환연산을 포함하여 변환함으로써, 변환 시의 연산량을 감소시키는 단계를 더 포함하는 영상처리장치의 제어방법.
18. The method of claim 17,
Reducing the number of frames,
And converting the input image from the YCbCr format to the RGB format, including a predetermined conversion operation, thereby reducing the amount of computation during conversion.
제23항에 있어서,
상기 소정의 변환연산은 시프팅, 테이블 조사, 로직 작업 및 소량의 가법을 포함하여 변환연산을 할 수 있도록 하여 정점화, 제거 곱셈법, 멀티포인트 동시 연산, 테이블 조사법, 제거가법 및 폭제한 연산을 수행하는 것을 특징으로 하는 영상처리장치의 제어방법.
24. The method of claim 23,
The predetermined transform operation can perform a transform operation including shifting, table lookup, logic operation, and a small amount of additions to perform vertexing, elimination multiplication, multipoint simultaneous operation, table lookup, elimination, and limiting operations. Control method of an image processing apparatus, characterized in that performed.
제23항에 있어서,
상기 연산량을 감소시키는 단계는,
사용자에 의해 원활한 재생우선에 관한 입력이 있는 경우, 영상이 출력되는 화면영역의 크기에 기초하여 격점연산을 사용하여 상기 출력영상의 해상도를 저감시키는 단계를 포함하는 영상처리장치의 제어방법.
24. The method of claim 23,
Reducing the amount of calculation,
And reducing the resolution of the output image by using a point calculation based on the size of the screen region on which the image is output when there is an input related to a smooth reproduction priority by a user.
제23항에 있어서,
상기 연산량을 감소시키는 단계는,
상기 YCbCr포맷에서 상기RGB포맷으로 변환하는 변환부와 상기 입력영상을 영상처리하는 디코딩부를 직렬로 배치하여 상기 YCbCr포맷에서 상기 RGB포맷으로 변환과 상기 입력영상의 영상처리를 병행하여 수행하는 단계를 포함하는 영상처리장치의 제어방법.
24. The method of claim 23,
Reducing the amount of calculation,
And converting the YCbCr format from the YCbCr format to the RGB format in parallel by arranging a converting unit converting the YCbCr format into the RGB format and performing a video processing of the input image. Control method of an image processing apparatus.
제25항에 있어서,
상기 해상도를 저감시키는 단계는,
1/2내지 1/16의 비율로 해상도를 저감시키는 것을 특징으로 하는 영상처리장치의 제어방법.
26. The method of claim 25,
Reducing the resolution,
A method of controlling an image processing apparatus, characterized by reducing the resolution at a ratio of 1/2 to 1/16.
제17항에 있어서,
상기 프레임의 개수를 감소시키는 단계는,
상기 출력영상의 해상도와 상기 출력영상이 출력되는 화면영역의 크기를 비교하며, 비교된 결과에 기초하여 상기 출력영상 및 상기 입력영상을 표시하거나 상기 출력영상을 조정하여 영상을 표시하는 단계를 더 포함하는 영상처리장치의 제어방법.
18. The method of claim 17,
Reducing the number of frames,
Comparing the resolution of the output image with the size of the screen area on which the output image is output, and displaying the image by displaying the output image and the input image or adjusting the output image based on a result of the comparison. Control method of an image processing apparatus.
제28항에 있어서,
상기 영상을 표시하는 단계는,
상기 출력영상의 해상도와 상기 출력영상이 출력되는 화면영역의 크기의 1/2보다 작을 경우, 상기 출력영상에 대하여 상기 입력영상의 종횡비를 유지하면서 이중선형 보간법을 사용하여 확대하며, 상기 출력영상의 가로변 또는 세로변 중 적어도 하나가 상기 디스플레이부의 화면영역에 대응되면 나머지 한 변을 상기 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시키는 단계를 포함하는 영상처리장치의 제어방법.
29. The method of claim 28,
Displaying the image,
When the resolution of the output image and the output image are smaller than 1/2 of the size of the screen area to be output, the image is enlarged using a double linear interpolation while maintaining the aspect ratio of the input image. If at least one of a horizontal side or a vertical side corresponds to the screen area of the display unit, positioning the other side at the center of the side corresponding to the screen area of the display unit.
제28항에 있어서,
상기 영상을 표시하는 단계는,
상기 출력영상의 해상도와 상기 출력영상이 출력되는 화면영역의 크기보다 소정범위 이하로 작을 경우, 상기 출력영상 또는 상기 입력영상 중 하나를 상기 출력영상이 출력되는 화면영역의 중앙에 배치되도록 하여 영상을 표시하는 단계를 포함하는 영상처리장치의 제어방법.
29. The method of claim 28,
Displaying the image,
If the resolution of the output image and the output image is smaller than the size of the screen area to be output, less than a predetermined range, one of the output image or the input image is placed in the center of the screen area to which the output image is output image Control method of the image processing apparatus comprising the step of displaying.
제28항에 있어서,
상기 영상을 표시하는 단계는,
상기 출력영상의 해상도가 상기 출력영상이 출력되는 화면영역의 크기보다 소정범위 이상 클 경우, 상기 출력영상에 대하여 상기 입력영상의 종횡비를 유지하면서 최근린법을 사용하여 축소하며, 상기 출력영상의 가로변 또는 세로변 중 적어도 하나가 상기 출력영상이 출력되는 화면영역에 대응되면 나머지 한 변을 상기 디스플레이부의 화면영역에 대응되는 변 중앙에 위치시키는 단계를 포함하는 영상처리장치의 제어방법.
29. The method of claim 28,
Displaying the image,
When the resolution of the output image is larger than a size of a screen area in which the output image is output, the image is reduced by using the latest Lean method while maintaining the aspect ratio of the input image with respect to the output image. And when the at least one of the vertical sides corresponds to the screen area on which the output image is output, positioning the other side at the center of the side corresponding to the screen area of the display unit.
제29항 또는 제31항에 있어서,
상기 최근린법과 상기 이중선형 보간법을 최적화하기 위하여 좌표연산에 대한 정점화를 수행하며, 프레임의 연산 시 변환에 필요한 좌표를 위한 테이블을 구축하며, 프레임의 상기 좌표는 연산없이 테이블 조사 및 가법연산을 통해 산출되고, 상기 최근린법의 연산으로 픽셀의 RGB 색상을 동시에 처리하는 것을 특징으로 하는 영상처리장치의 제어방법.
32. The method of claim 29 or 31,
In order to optimize the most recent method and the bilinear interpolation method, a vertex of coordinate operations is performed, and a table for coordinates necessary for transforming a frame is calculated, and the coordinates of the frame are used for table search and additive operation without calculation. The control method of the image processing apparatus, which is calculated through, and simultaneously processing the RGB color of the pixel by the operation of the latest method.
KR1020130022301A 2012-03-14 2013-02-28 Image processing apparatus and control method thereof KR20130105374A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/828,157 US20130242186A1 (en) 2012-03-14 2013-03-14 Image processing apparatus and control method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210066502.5A CN103310820B (en) 2012-03-14 2012-03-14 A kind of method that multimedia player is optimized
CN201210066502.5 2012-03-14

Publications (1)

Publication Number Publication Date
KR20130105374A true KR20130105374A (en) 2013-09-25

Family

ID=49135952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130022301A KR20130105374A (en) 2012-03-14 2013-02-28 Image processing apparatus and control method thereof

Country Status (2)

Country Link
KR (1) KR20130105374A (en)
CN (1) CN103310820B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102021441B1 (en) * 2019-05-17 2019-11-04 정태웅 Method and monitoring camera for detecting intrusion in real time based image using artificial intelligence
KR20200129593A (en) * 2019-05-09 2020-11-18 이세홍 Apparatus and method for distributing of ultra high definition videos using scalers
CN113965813A (en) * 2021-10-21 2022-01-21 广州方硅信息技术有限公司 Video playing method and system in live broadcast room and computer equipment
CN114222182A (en) * 2021-12-15 2022-03-22 湖南快乐阳光互动娱乐传媒有限公司 Video playing method and device

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103561252A (en) * 2013-11-21 2014-02-05 无锡硅奥科技有限公司 Method for color space conversion from HSL to RGB
CN103686311B (en) * 2013-11-22 2017-02-15 乐视致新电子科技(天津)有限公司 Audio-video playing method and audio-video playing device
CN103856812B (en) * 2014-03-25 2018-08-07 北京奇艺世纪科技有限公司 A kind of video broadcasting method and device
CN104822008B (en) * 2014-04-25 2019-01-08 腾讯科技(北京)有限公司 video synchronization method and device
CN104240739B (en) * 2014-09-04 2017-05-24 广东欧珀移动通信有限公司 Music playing method and device for mobile terminal
CN104506882B (en) * 2014-12-29 2017-11-10 上海昌视网络科技有限公司 Internet stream media is converted into the server and its conversion method of IPTV forms
CN105898348A (en) * 2015-12-15 2016-08-24 乐视网信息技术(北京)股份有限公司 Method and device for reducing CPU temperature of video play terminal
CN106856573B (en) * 2016-11-29 2019-07-26 福建天泉教育科技有限公司 A kind of optimization method and system of video playing power consumption
CN106780336B (en) * 2016-12-19 2020-04-03 广东威创视讯科技股份有限公司 Image reduction method and device
CN106603543B (en) * 2016-12-22 2019-08-09 努比亚技术有限公司 Correct the synchronous method and device of stream medium audio and video
CN106817614B (en) * 2017-01-20 2020-08-04 浙江瑞华康源科技有限公司 Audio and video frame loss device and method
CN107291468B (en) * 2017-06-21 2021-03-19 深圳Tcl新技术有限公司 Method for playing power-on/power-off animation, terminal and computer readable storage medium
CN110572712B (en) * 2018-06-05 2021-11-02 杭州海康威视数字技术股份有限公司 Decoding method and device
CN110740383B (en) * 2018-07-20 2021-10-08 宏碁股份有限公司 Multimedia file management method, terminal device, service device and file management system
CN109117813A (en) * 2018-08-24 2019-01-01 北京新界教育科技有限公司 Method for processing video frequency and device
CN109743628A (en) * 2019-01-10 2019-05-10 四川长虹电器股份有限公司 A kind of method that IP set-top box promotes video on live smoothness
CN112702649A (en) * 2019-10-22 2021-04-23 高新兴科技集团股份有限公司 Live video playing fluency optimization method of mobile terminal, storage medium and electronic equipment
CN111491207A (en) * 2020-04-17 2020-08-04 北京三体云联科技有限公司 Video data processing method and device in live broadcast and electronic equipment
CN111669599A (en) * 2020-06-18 2020-09-15 Oppo广东移动通信有限公司 Video decoding method, video decoding device and terminal equipment
CN113301332A (en) * 2021-04-12 2021-08-24 阿里巴巴新加坡控股有限公司 Video decoding method, system and medium
CN117837151A (en) * 2021-08-10 2024-04-05 深圳Tcl新技术有限公司 Streaming media data transmission method and device and terminal equipment
CN114153414A (en) * 2021-11-27 2022-03-08 深圳曦华科技有限公司 Image anti-tearing method and related device
CN114153408B (en) * 2021-11-27 2024-01-16 深圳曦华科技有限公司 Image display control method and related equipment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4612845B2 (en) * 2005-01-27 2011-01-12 キヤノン株式会社 Image processing apparatus and method
US8897371B2 (en) * 2006-04-04 2014-11-25 Qualcomm Incorporated Video decoding in a receiver
CN100515068C (en) * 2006-05-23 2009-07-15 中国科学院声学研究所 Static frame loss method in video playing
CN100502508C (en) * 2006-11-16 2009-06-17 无敌科技(西安)有限公司 A method to accelerate film playing
CN101330340B (en) * 2008-07-31 2010-09-29 中兴通讯股份有限公司 Method for self-adaption adjusting receiving speed to buffer play by a mobile multimedia broadcast terminal

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200129593A (en) * 2019-05-09 2020-11-18 이세홍 Apparatus and method for distributing of ultra high definition videos using scalers
KR102021441B1 (en) * 2019-05-17 2019-11-04 정태웅 Method and monitoring camera for detecting intrusion in real time based image using artificial intelligence
WO2020235819A1 (en) * 2019-05-17 2020-11-26 Jeong Tae Woong Image-based real-time intrusion detection method and surveillance camera using artificial intelligence
CN113965813A (en) * 2021-10-21 2022-01-21 广州方硅信息技术有限公司 Video playing method and system in live broadcast room and computer equipment
CN113965813B (en) * 2021-10-21 2024-04-23 广州方硅信息技术有限公司 Video playing method, system, equipment and medium in live broadcasting room
CN114222182A (en) * 2021-12-15 2022-03-22 湖南快乐阳光互动娱乐传媒有限公司 Video playing method and device
CN114222182B (en) * 2021-12-15 2024-02-09 湖南快乐阳光互动娱乐传媒有限公司 Video playing method and device

Also Published As

Publication number Publication date
CN103310820B (en) 2016-03-09
CN103310820A (en) 2013-09-18

Similar Documents

Publication Publication Date Title
KR20130105374A (en) Image processing apparatus and control method thereof
US8928678B2 (en) Media workload scheduler
US8897365B2 (en) Video rate control processor for a video encoding process
AU2020210276B2 (en) Method, apparatus and system for encoding and decoding video data
US20130242186A1 (en) Image processing apparatus and control method thereof
CN109640167B (en) Video processing method and device, electronic equipment and storage medium
TWI733986B (en) Method, apparatus and system for encoding and decoding video data
US10484690B2 (en) Adaptive batch encoding for slow motion video recording
JP2007316405A (en) Multi-screen display device
CN105072353A (en) Image decoding mosaic control algorism based on multiple GPUs
JP2009111932A (en) Moving image decoding device
EP4017005A1 (en) Offloading video coding processes to hardware for achieving latency-quality tradeoffs
US10200697B2 (en) Display stream compression pixel format extensions using subpixel packing
US10356439B2 (en) Flexible frame referencing for display transport
JP5694674B2 (en) Image coding apparatus, image coding / decoding system, image coding method, and image display method
US10484640B2 (en) Low power video composition using a stream out buffer
KR20160008011A (en) Apparatus for Processing super resolution image
US20110311152A1 (en) Image processing device and image processing method
US20210136378A1 (en) Adaptive quality boosting for low latency video coding
JP2010141775A (en) Display device driving circuit and display device
JP2008066973A (en) Image encoder, image encoding method, image decoder, and image decoding method
JPH1051767A (en) Picture reproduction device
JP2010041731A (en) Moving image generating apparatus, method, and program

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination