KR100504772B1 - Coding Algorithm Selection Method - Google Patents

Coding Algorithm Selection Method Download PDF

Info

Publication number
KR100504772B1
KR100504772B1 KR1019970075318A KR19970075318A KR100504772B1 KR 100504772 B1 KR100504772 B1 KR 100504772B1 KR 1019970075318 A KR1019970075318 A KR 1019970075318A KR 19970075318 A KR19970075318 A KR 19970075318A KR 100504772 B1 KR100504772 B1 KR 100504772B1
Authority
KR
South Korea
Prior art keywords
frame rate
encoding
level
rate
target frame
Prior art date
Application number
KR1019970075318A
Other languages
Korean (ko)
Other versions
KR19990055385A (en
Inventor
이승일
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1019970075318A priority Critical patent/KR100504772B1/en
Publication of KR19990055385A publication Critical patent/KR19990055385A/en
Application granted granted Critical
Publication of KR100504772B1 publication Critical patent/KR100504772B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

본 발명은 부호화 알고리즘 선택 방법에 관한 것으로 특히, 피씨(PC)상의 화상 회의 과정에서 부호화 시간을 계속적으로 궤환하여 피씨의 성능에 최적화된 부호화 알고리즘을 선택적으로 적용하도록 함을 목적으로 한다. 이러한 목적의 본 발명은 수행 시간 및 복잡도를 고려하여 N개의 부호화 레벨을 분류하는 제1 단계와, 상기에서 분류된 N개의 부호화 레벨중 복잡도가 가장 높은 부호화 레벨부터 매 프레임을 부호화하면서 M개의 프레임에 대한 평균 수행 속도를 산출하는 제2 단계와, 상기에서 산출한 평균 수행 속도가 타겟 프레임 속도보다 클 때까지 다음으로 높은 레벨의 부호화 알고리즘을 선택하는 동작을 반복 수행하는 제3 단계와, 상기에서 선택한 레벨의 부호화 알고리즘에 의한 타겟 프레임 속도를 오프셋 프레임 속도만큼 증가시켜 매 프레임을 부호화하면서 M개의 프레임에 대한 평균 수행 속도를 산출하는 제4 단계와, 상기에서 산출한 평균 수행 속도가 (타겟프레임 속도~(타겟프레임 속도 + 오프셋 프레임 속도))의 범위에 속할 때까지 부호화 알고리즘의 레벨을 가감하는 동작을 반복하는 제5 단계와, 상기에서 산출한 평균 수행 속도가 (타겟프레임 속도~(타겟프레임 속도 + 오프셋 프레임 속도))의 범위에 속하는 경우 현재 선택된 부호화 알고리즘을 현재의 부호화 방법으로 유지시키는 제6 단계를 반복 수행함을 특징으로 한다.The present invention relates to a method of selecting an encoding algorithm. In particular, an object of the present invention is to selectively apply an encoding algorithm optimized for PC performance by continuously feeding back encoding time in a video conference process on a PC. In accordance with the present invention, a first step of classifying N coding levels in consideration of execution time and complexity, and encoding each frame from the coding level having the highest complexity among the N coding levels classified above are performed on M frames. A second step of calculating an average execution rate for the second step; a third step of repeatedly performing an operation of selecting a next higher level encoding algorithm until the calculated average execution rate is greater than the target frame rate; A fourth step of calculating an average performance rate for M frames while encoding each frame by increasing the target frame rate by the level encoding algorithm by an offset frame rate, and the average performance rate calculated above is (target frame rate ~ (Target frame rate + offset frame rate)) A fifth step of repeating the operation of adding or subtracting a bell; and if the average execution speed calculated above is in a range of (target frame rate to (target frame rate + offset frame rate)), the currently selected encoding algorithm is applied to the current encoding method. It characterized by repeating the sixth step of maintaining as.

Description

부호화 알고리즘 선택 방법Coding Algorithm Selection Method

본 발명은 화상 회의 시스템에 관한 것으로 특히, 부호화 알고리즘 선택 방법에 관한 것이다.The present invention relates to a videoconferencing system, and more particularly, to a method of selecting an encoding algorithm.

화상 회의를 위한 비디오 부호화/복호화 기술의 경우 표준화라는 과정을 통하여 현재 널리 사용되고 있다.Video encoding / decoding techniques for video conferencing are now widely used through a process called standardization.

ITU-T 에서 정의한 표준화 고안으로는 공중 통신망을 위한 비디오 부호화 표준안인 H.263, 종합 정보 통신망(ISDN)을 위한 비디오 부호화 표준안인 H.261 등이 사용되고 있다.Standardization schemes defined by ITU-T include H.263, a video coding standard for public telecommunications networks, and H.261, a video coding standard for ISDNs.

이러한 H.261,H.263 표준화 고안을 만족하는 부호화기/복호화기를 구현하기 위한 노력이 진행되고 있으며 특히, 최근에는 가격 경쟁력을 가지기 위한 소프트웨어로 부호화기/복호화기를 구현하는 노력이 진행되고 있다.Efforts have been made to implement an encoder / decoder that satisfies the H.261 and H.263 standardization schemes. In particular, efforts have recently been made to implement an encoder / decoder with software for cost competitiveness.

소프트웨어로 부호화기/복호화기를 구현하기 위해서는 크게 아래와 같은 두가지의 제한적 요소를 고려하여야 한다.In order to implement an encoder / decoder in software, two limitations should be considered.

1) 망의 종류1) Type of net

2) 피씨(PC)의 성능2) Performance of PC

즉, 하드웨어로 구현한 기기는 주로 상기 1)의 제한 조건만을 고려하는 반면에 소프트웨어로 부호화/복호화기를 구현하기 위해서는 상기 1)의 제한 조건뿐만 아니라 2)의 제한 조건인 피씨(PC)의 성능도 중요한 요소가 된다.In other words, the hardware-implemented device mainly considers only the constraints of 1), but in order to implement an encoder / decoder with software, the performance of PC, which is a constraint of 2), is also limited. It is an important factor.

그러나, 종래의 소프트웨어로 구현한 제품은 소프트웨어가 실제로 수행되는 피씨(PC)의 성능은 무시한 채 단지 속도를 빨리하는 고속 알고리즘 위주의 개발이 상당히 진행되고 있다.However, the development of the conventional software is progressing a high-speed algorithm-oriented development that only speeds up, ignoring the performance of the PC (PC) that the software is actually performed.

그런데, 부호화 과정중 수행시간과 품질사이에는 대략적으로 비례 관계가 성립하며 복잡도와 품질사이에도 역시 대략적으로 비례 관계가 성립한다.However, a roughly proportional relationship is established between execution time and quality during the encoding process, and roughly a proportional relationship is established between complexity and quality.

물론, 정확한 비례 관계는 아니지만 더 많은 수행 속도를 가지는 복잡한 알고리즘의 경우는 그렇지 못한 경우보다 품질이 좋기 마련이다.Of course, complex algorithms that are not precisely proportional, but have more execution speed, are of better quality than otherwise.

따라서, 피씨의 성능을 무시한 채 하나의 고속 부호화 알고리즘만을 사용한다는 것은 복잡도와 품질이 어느 피씨에서나 일정하게 되는 현상이 발생하며 피씨의 성능이 좋아진다고 하더라도 더 나은 품질을 만들어 낼 수가 없다.Therefore, using only one high-speed encoding algorithm, ignoring the performance of the PC, the complexity and the quality become constant in any PC, and even if the performance of the PC improves, it cannot produce better quality.

예를 들어, 실제 화상회의 소프트웨어가 수행되는 피씨(PC)에 그 피씨의 성능을 무시한 고속 알고리즘 위주의 부호화/복호화기를 적용하는 경우 잠재적으로 피씨(PC)의 성능을 최대로 이용하지 못하게 하는 단점이 있다.For example, applying a fast algorithm-based encoder / decoder that ignores the PC's performance to the PC running the actual videoconferencing software potentially has the disadvantage of maximizing the PC's performance. have.

즉, 종래에는 프로그램이 수행되는 피씨(PC)의 성능을 무시한채 고속 알고리즘을 위주로 비디오 부호화를 수행함으로 피씨(PC)의 성능에 따라 그 효율이 차이가 나는 문제점이 있다.That is, in the related art, the video encoding is performed based on a fast algorithm while ignoring the performance of the PC on which the program is performed. Thus, the efficiency of the PC varies depending on the performance of the PC.

만일, 피씨의 성능이 현재 설정된 타겟 프레임 속도만큼을 부호화할 수 있다면 가능한한 복잡도를 증가시켜 최적의 품질을 내게 하는 것이 더 좋은 방법이 될 수 있으며 반대로, 현재 응용이 수행되는 피씨의 성능이 좋지 못한 경우는 가장 빠른 고속 알고리즘을 사용함으로써 품질의 손해를 보더라도 비교적 원하는 프레임 레이트를 얻을 수 있다.If the performance of the PC is able to encode the target frame rate currently set, it may be better to increase the complexity to give the best quality, and on the contrary, the performance of the PC where the current application is performed is poor. In this case, by using the fastest and fastest algorithm, a relatively desired frame rate can be obtained even at a loss of quality.

따라서, 움직임 추정 과정, 데이터 콘트롤, 변환 부호화, 양자화 등의 부호화 요소들과 성능을 향상시키기 위한 다양한 부호화 과정을 수행하기 위하여 피씨의 성능을 고려한 부호화 알고리즘의 선택이 필요하다.Therefore, in order to perform various encoding processes for improving performance and encoding elements such as motion estimation, data control, transform encoding, and quantization, it is necessary to select an encoding algorithm considering the performance of PC.

특히, H.263 부호화 표준안과 현재 진행중인 H.263+ 표준안의 많은 선택 사양들의 사용 여부를 피씨(PC)의 성능을 기준으로 선택하는 것이 바람직하다.In particular, it is desirable to select whether to use the many options of the H.263 coding standard and the H.263 + standard currently in progress based on the performance of the PC.

본 발명은 종래의 문제점을 개선하기 위하여 피씨(PC)상의 화상 회의 과정에서 부호화 시간을 계속적으로 궤환하여 피씨의 성능에 최적화된 부호화 알고리즘을 선택적으로 적용하도록 창안한 부호화 알고리즘 선택 방법을 제공함에 목적이 있다.An object of the present invention is to provide a method for selecting an encoding algorithm, which is designed to selectively apply an encoding algorithm optimized for PC performance by continuously feeding back encoding time in a video conference process on a PC. have.

즉, 본 발명은 초기에 부호화 레벨을 선택하고 이 후, 매 프레임마다 실제 수행 속도를 계산하여 주기적으로 평균 수행 속도를 산출한 후 소정 속도 범위에 속하는지를 판별함에 의해 부호화 레벨을 재선택함으로써 피씨의 성능에 최적인 부호화 방법을 선택함에 목적이 있다.That is, the present invention initially selects an encoding level, and then calculates an actual execution rate every frame, periodically calculates an average execution rate, and then reselects the encoding level by determining whether the encoding level falls within a predetermined rate range. The purpose is to select an encoding method that is optimal for performance.

본 발명은 상기의 목적을 달성하기 위하여 수행 시간 및 복잡도를 고려하여 N개의 부호화 레벨을 분류하는 단계와, 상기에서 분류된 N개의 부호화 레벨중 복잡도가 가장 높은 부호화 레벨부터 선택하여 매 프레임을 부호화하면서 M개의 프레임에 대한 평균 수행 속도를 산출하는 단계와, 상기에서 산출한 평균 수행 속도가 타겟 프레임 속도보다 클 때까지 다음으로 높은 레벨의 부호화 알고리즘을 선택하는 단계를 반복 수행하여 초기에 부호화 알고리즘의 레벨을 선택하는 과정과, 상기 과정에서 선택한 레벨의 부호화 알고리즘에 의한 타겟 프레임 속도를 오프셋 프레임 속도만큼 증가시켜 매 프레임을 부호화하면서 M개의 프레임에 대한 평균 수행 속도를 산출하는 단계와, 상기에서 산출한 평균 수행 속도가 소정 속도 범위(타겟프레임속도~(타겟프레임속도 + 오프셋 프레임속도))에 속할 때까지 부호화 알고리즘의 레벨을 가감하는 동작을 반복하는 단계와, 상기에서 산출한 평균 수행 속도가 소정 속도 범위에 속하는 경우 현재의 부호화 알고리즘을 현재의 부호화 방법으로 재선택하는 단계를 반복 수행하여 소정 주기마다 부호화 알고리즘을 재선택하는 과정으로 이루어짐을 특징으로 한다.In order to achieve the above object, the present invention comprises the steps of classifying N coding levels in consideration of execution time and complexity, and encoding every frame by selecting from the coding level having the highest complexity among the N coding levels classified above. Calculating an average performance rate for M frames, and repeatedly selecting a next higher level encoding algorithm until the calculated average performance rate is larger than a target frame rate, thereby initially performing a level of the encoding algorithm. Calculating an average performance rate for M frames while encoding each frame by increasing the target frame rate by the encoding algorithm of the level selected in the above step by an offset frame rate, and calculating the average Execution speed is a certain speed range (target frame rate-(target frame) Repeating the operation of adding or subtracting the level of the encoding algorithm until the frame rate is equal to the impingement speed + offset frame rate), and if the average execution speed calculated above is within the predetermined speed range, replace the current encoding algorithm with the current encoding method. It is characterized in that the re-selection step is performed repeatedly to reselect the encoding algorithm every predetermined period.

상기에서 부호화 알고리즘 재선택 과정에서 M개의 프레임에 대한 평균 수행 속도가 타겟 프레임 속도보다 작은 경우 1단계 증가된 부호화 방법을 선택하고 큰 경우 1단계 감소된 부호화 방법을 선택하는 것을 특징으로 한다.In the encoding algorithm reselection process, when the average performance speed of the M frames is smaller than the target frame rate, the encoding method may be selected in one step.

이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the drawings.

도1 은 본 발명의 실시예인 초기의 부호화 레벨 선택을 위한 신호 흐름도로서 이에 도시한 바와 같이, 수행 시간 및 복잡도를 고려하여 N개의 부호화 레벨을 분류하는 제1 단계와, 상기 제1 에서 분류된 N개의 부호화 레벨중 복잡도가 가장 높은 부호화 레벨로 매 프레임을 부호화하는 제2 단계와, 상기 제2 단계에서 부호화한 매 프레임의 실제 수행 속도를 누적 계산하여 평균 수행 속도를 산출하는 제3 단계와, 상기 제4 단계에서 산출한 평균 수행 속도와 타겟 프레임 속도를 비교하는 제5 단계와, 상기 제5 단계에서 평균 프레임 속도가 타겟 프레임 속도보다 작으면 복잡도가 다음으로 높은 부호화 레벨을 설정하여 매 프레임의 실제 수행 속도를 누적 산출한 후 평균 수행 속도를 산출하는 상기 제3 단계를 반복 수행하고 평균 프레임 속도가 타겟 프레임 속도보다 크면 현재의 부호화 레벨을 계속 수행하는 제6 단계를 반복적으로 수행함을 특징으로 한다.1 is a signal flow diagram for selecting an initial encoding level according to an embodiment of the present invention. As shown therein, a first step of classifying N encoding levels in consideration of execution time and complexity, and N classified in the first A second step of encoding every frame at a coding level having the highest complexity among the two encoding levels, a third step of cumulatively calculating an actual execution speed of each frame encoded in the second step, and calculating an average execution speed; A fifth step of comparing the average performance rate calculated in the fourth step with the target frame rate; and in the fifth step, if the average frame rate is smaller than the target frame rate, the next higher complexity level is used to set an actual coding level of each frame. After the cumulative calculation of the execution speed, the third step of calculating the average execution speed is repeatedly performed, and the average frame rate is the target frame. Degrees larger and a sixth step of continuing with the current level of the coding, characterized by carrying out an iterative.

또한, 본 발명의 실시예는 상기와 같이 초기에 부호화 방법을 선택한 경우 이 후 부호화 과정에서 부호화 레벨을 주기적으로 재선택하기 위하여 도2 의 신호 흐름도에 도시한 바와 같이, 현재 부호화 과정의 타겟 프레임 속도의 값을 오프셋 프레임 속도만큼 증가시켜 부호화하는 제1 단계와, 상기 제1 단계에서 부호화한 매 프레임의 실제 수행 속도를 누적 계산하여 평균 수행 속도를 산출하는 제2 단계와, 상기 제2 단계에서 산출한 평균 수행 속도가 소정속도 범위(타겟프레임 속도~(타겟프레임 속도 + 오프셋 프레임 속도))에 속하는지 비교하는 제3 단계와, 상기 제3 단계에서 평균 수행 속도가 소정 속도 범위에 속하지 않는 경우 그 평균 수행 속도가 타겟 프레임 속도보다 작은지 판단하는 제4 단계와, 상기 제4 단계에서 평균 수행 속도가 타겟 프레임 속도보다 작은 경우 1단계 증가된 부호화 방법을 선택하고 타겟 프레임 속도보다 큰 경우 1단계 감소된 부호화 방법을 선택한 후 매 프레임의 실제 수행 속도를 누적 계산하여 평균 수행 속도를 산출하는 상기 제 2 단계를 반복 수행하는 제5 단계와, 상기 제4 단계에서 평균 수행 속도가 소정 속도 범위에 속하는 경우 현재의 부호화 단계를 계속 진행하는 제6 단계를 소정 주기마다 반복 수행함을 특징으로 한다.In addition, in the embodiment of the present invention, when the encoding method is initially selected as described above, the target frame rate of the current encoding process is shown in the signal flow diagram of FIG. 2 to periodically reselect the encoding level in the subsequent encoding process. The first step of encoding by increasing the value of the value by the offset frame rate, the second step of calculating the average execution speed by cumulative calculation of the actual execution speed of each frame encoded in the first step, and the calculation in the second step A third step of comparing whether the average performance speed falls within a predetermined speed range (target frame rate-(target frame rate + offset frame rate)), and if the average performance speed does not belong to the predetermined speed range in the third step, A fourth step of determining whether the average performance rate is smaller than the target frame rate, and in the fourth step, the average performance rate is a target frame If it is smaller than the figure, select the one-step increased encoding method, if it is larger than the target frame rate, and then repeat the second step of calculating the average execution speed by cumulatively calculating the actual execution speed of each frame. The fifth step of performing and the sixth step of continuing the current encoding step is repeated at every predetermined period when the average performance rate in the fourth step falls within a predetermined speed range.

이와같이 구성한 본 발명의 실시예에 대한 동작 및 작용 효과를 설명하면 다음과 같다.Referring to the operation and effect of the embodiment of the present invention configured as described above are as follows.

화상 회의를 위한 영상, 음성, 데이터, 멀티플렉싱, 모뎀 등의 전체적인 표준안인 H.324표준안은 도1 의 블럭도와 같은 구성으로 이루어진다.The H.324 standard, which is the overall standard of video, audio, data, multiplexing, modem, etc. for video conferencing, is composed of the block diagram of FIG.

본 발명은 H.324 표준안을 예로 들어 설명하기로 한다.The present invention will be described taking the H.324 standard as an example.

본 발명은 H.324 의 모든 구성 요소들의 처리 과정 후에 전체적인 수행 속도를 계산하는 과정을 부가하는 것이다.The present invention adds the process of calculating the overall performance rate after the processing of all components of H.324.

먼저, 본 발명은 도2 와 같은 과정을 수행하여 초기에 부호화 알고리즘의 레벨을 선택하는데 우선, 소프트웨어의 수행 시간 및 그 복잡도를 고려하여 부호화 레벨의 종류를 분류한다.First, the present invention performs a process as shown in FIG. 2 and initially selects a level of an encoding algorithm. First, the type of encoding level is classified in consideration of the execution time of the software and its complexity.

즉, 속도(프레임 처리 시간)와 품질을 고려하여 부호화기의 여러 요소들을 다양한 레벨로 나눈다.That is, the elements of the encoder are divided into various levels in consideration of speed (frame processing time) and quality.

예를 들면, 움직임 추정 및 변환 부호화를 고려하여 레벨을 나눈다면 다음과 같이 나눌 수 있다.For example, if the level is divided by considering motion estimation and transform coding, it can be divided as follows.

LEVEL 1 : 움직임 추정(Full search BMA) + 변환 부호화(8*8 DCT)LEVEL 1: Motion search (Full search BMA) + transform coding (8 * 8 DCT)

LEVEL 2 : 움직임 추정(3-step search with fast exit + zero motion vector bias) + 변환 부호화(4*4 DCT)LEVEL 2: 3-step search with fast exit + zero motion vector bias + transform coding (4 * 4 DCT)

LEVEL 3 : 움직임 추정(preclassify + 3-step search with fast exit + zero motion vector bias) + 변환 부호화(2*2 DCT)LEVEL 3: Preclassify + 3-step search with fast exit + zero motion vector bias + Transform Coding (2 * 2 DCT)

LEVEL 4 : 움직임 추정(No half-pel search + zero motion vector bias) + 변환 부호화(DC DCT)LEVEL 4: No half-pel search + zero motion vector bias + transform coding (DC DCT)

여기서, full search BMA : 추정범위내에서 하나의 화소단위로 이동하며 최소의 SAD(Sum of Difference)를 가지는 움직임 벡터를 찾아내는 방법이다.Here, full search BMA is a method of finding a motion vector having a minimum sum of difference (SAD) moving in one pixel unit within an estimated range.

3-step search with fast exit : 3 step motion vector search 방법으로 움직임을 추정하며 각 단계마다 원하는 SAD 값 이하를 가질 경우 더 이상의 추정을 하지 않는 방법이다.3-step search with fast exit: This method estimates motion by 3 step motion vector search method and does not make further estimation if it has less than desired SAD value for each step.

zero motion vector bias : zero motion vector 에 일정한 값을 바이어스(bias)함으로써 많은 매크로블럭(MB)의 움직임 벡터가 '0' 이 되도록 하는 것으로, 상기에서 zero motion vector 를 선택한 후에는 더 이상의 추정을 하지 않기 때문에 수행 시간이 줄어든다.zero motion vector bias: By biasing a certain value to the zero motion vector, the motion vector of many macroblocks (MB) becomes '0'. After selecting the zero motion vector, no further estimation is made. This reduces execution time.

Preclassify : 움직임 추정시 미리 추정을 할 MB 를 결정하고 움직임을 추정하기로 결정된 매크로블럭에 대해서만 움직임 추정을 한다.Preclassify: Determines the MB to estimate in advance and estimates the motion only for the macroblock determined to estimate the motion.

No half-pel search : Integer pel 단위의 움직임만 추정하며 half-pel 추정은 하지 않는다.No half-pel search: Integer pel motion is estimated only. Half-pel estimation is not performed.

상기에서 수행 속도(시간)와 품질을 고려하여 나누어진 레벨이 ' LEVEL 1' 부터 ' LEVEL N' 까지 N개라고 할 때 가장 복잡하면서도 많은 수행 시간을 요구하는 성능이 우수한 알고리즘이 ' LEVEL 1'이고 가장 단순하면서도 짧은 수행 시간을 요구하는 성능의 알고리즘이 ' LEVEL N' 이라고 가정한다.When the level divided by considering the execution speed (time) and quality is N from 'LEVEL 1' to 'LEVEL N', the most complex algorithm and the high performance algorithm that requires more execution time are 'LEVEL 1'. Assume that the simplest, shortest-running algorithm is LEVEL N.

상기 ' LEVEL 1' 인 부호화 알고리즘은 일반적으로 망의 제한 조건인 데이터 속도에 의해서만 품질이 제한되어진다.The coding algorithm of 'LEVEL 1' is generally limited in quality only by the data rate, which is a limitation condition of the network.

따라서, N개의 부호화 알고리즘(LEVEL 1~LEVEL N)이 분류되면 첫 번째 프레임을 가장 복잡하면서 많은 수행 시간을 요구하는 성능이 우수한 알고리즘인 ' LEVEL 1' 을 이용하여 부호화한다.Therefore, when N coding algorithms LEVEL 1 to LEVEL N are classified, the first frame is encoded using 'LEVEL 1', which is a high performance algorithm that requires a lot of execution time and is the most complex.

이때, 매 프레임을 부호화하면서 현재 화상 회의 응용이 수행되는 피씨의 실제 수행 속도를 아래의 식과 같이 fps(; Frame per Second) 단위로 계산한다.At this time, the actual execution speed of the PC where the current video conferencing application is performed while encoding each frame is calculated in fps (; Frame per Second) unit as follows.

Performance(fps) = 1000(msec) / Total_Application_Time(msec/frame) --- 식(1)Performance (fps) = 1000 (msec) / Total_Application_Time (msec / frame) --- Expression (1)

즉, 현재 사용되는 화상 회의 응용이 피씨(PC) 상에서 동작하는 모든 상황을 고려한 실제 수행 속도를 얻을 수 있다.In other words, it is possible to obtain the actual performance speed considering all the situations in which the video conferencing application currently used operates on the PC.

이 후, M개의 프레임이 부화화되면 피씨의 평균 수행 속도(= 성능)를 계산하는데, 그 평균적으로 계산된 피씨(PC)의 성능(Performance)은 아래의 식과 같다.Thereafter, when M frames are hatched, the average performance speed (= performance) of the PC is calculated, and the average calculated performance of the PC is given by the following equation.

Average Performance(fps) = (sum{from 1 to N} PC performance)/M(frame) - 식(2)Average Performance (fps) = (sum {from 1 to N} PC performance) / M (frame)-equation (2)

이때, 상기에서 계산된 평균 수행 속도가 타겟 프레임 속도보다 작은지 비교하여 작은 경우 ' 1' 레벨 증가된 부호화 알고리즘을 선택한 후 매 프레임을 부호화하면서 상기의 동작을 반복 수행한다.In this case, when the average execution speed calculated above is smaller than the target frame rate, the above-described operation is repeated while encoding a frame after selecting an encoding algorithm having a '1' level increase.

따라서, 상기의 동작을 반복 수행함에 의해 현재 계산된 평균 수행 속도가 타겟 프레임 속도보다 크게 되면 현재 수행된 부호화 알고리즘을 초기 상태에서의 부호화 알고리즘으로 선택한다.Therefore, if the average performance rate currently calculated by repeating the above operation is larger than the target frame rate, the currently performed encoding algorithm is selected as the encoding algorithm in the initial state.

이 후, 초기 상태에서 선택된 부호화 알고리즘으로 프레임을 부호화하면서 도3 과 같은 과정을 수행하여 주기적으로 부호화 알고리즘을 재선택하는데, 그 과정은 다음과 같다.Thereafter, while encoding the frame with the encoding algorithm selected in the initial state, the encoding algorithm is periodically reselected by performing the process as shown in FIG. 3. The process is as follows.

먼저, 초기에 선택된 부호화 알고리즘에 의한 타겟 프레임 속도를 오프셋 프레임 속도만큼 증가시켜 매 프레임을 부호화하면서 상기 식(1)과 같이 현재 화상 회의에 사용되는 피씨의 실제 수행 속도를 계산한다.First, the actual frame rate of the PC used in the current video conference is calculated as shown in Equation (1) while encoding the frame by increasing the target frame rate by the initially selected encoding algorithm by the offset frame rate.

즉, 타겟 프레임 속도가 x(frame/sec)인 경우 {x + offset frame rate}의 값으로 부호화기의 타겟 프레임 레이트를 재세팅하여 피씨의 실제 수행 속도를 계산한다.That is, when the target frame rate is x (frame / sec), the actual frame rate of the PC is calculated by resetting the target frame rate of the encoder to a value of {x + offset frame rate}.

상기에서 오프셋 프레임 속도(offset frame rate)의 값이 필요한 이유는 소프트웨어 부호화기에서 타겟 프레임 속도값 근처로 속도 제어를 수행하기 때문에 실제로 오프셋(offset)만큼 증가된 프레임 속도값으로 세팅하여야만 실제 부호화기의 성능이 얻고자 하는 프레임 속도만큼을 부호화할 수 있는지 알 수 있기 때문이다.The reason why the value of the offset frame rate is needed is because the software coder performs the speed control near the target frame rate value. Therefore, the performance of the actual encoder must be set to the frame rate value increased by the offset. This is because it is possible to know whether encoding as much as the desired frame rate can be performed.

이때, 매 프레임을 부호화하여 M개의 프레임을 부호화한 경우 그 M 번째 프레임의 실제 수행 속도를 계산하고 M개의 프레임에 대한 평균 수행 속도를 상기 식(2)와 같은 연산으로 계산한다.In this case, when M frames are encoded by encoding every frame, the actual execution speed of the M-th frame is calculated, and the average performance speed of the M frames is calculated by the same operation as in Equation (2).

이에 따라, 평균 수행 속도가 소정 속도 범위(타겟 프레임 속도~타겟 프레임 속도 + 임의의 수렴 범위)에 속하는지 판단한다.This determines whether the average performance speed falls within a predetermined speed range (target frame rate to target frame rate + any convergence range).

따라서, 평균 수행 속도가 타겟 프레임 속도보다 작은 경우에는 ' 1' 레벨 증가된 부호화 알고리즘을 재선택한 후 매 프레임을 부호화하면서 상기의 동작을 반복 수행한다.Therefore, when the average execution speed is smaller than the target frame rate, the above operation is repeatedly performed while recoding the coding algorithm having a '1' level increase and encoding each frame.

만일, 평균 수행 속도가 타겟 프레임 속도와 소정 수렴 범위를 합한 속도보다 큰 경우에는 ' 1' 레벨 감소된 부호화 알고리즘을 재선택한 후 매 프레임을 부호화하면서 상기의 동작을 반복 수행한다.If the average execution speed is greater than the sum of the target frame rate and the predetermined convergence range, the above operation is repeated while reselecting the coding algorithm having a '1' level reduction and encoding each frame.

즉, 주기적으로 선택된 레벨의 부호화 알고리즘으로 매 프레임을 부호화하면서 타겟 프레임 속도가 변경되었거나 장면 변화가 일어난 경우에 대해 새롭게 부호화 알고리즘의 레벨을 결정한다.That is, while encoding every frame with the encoding algorithm of the periodically selected level, the level of the encoding algorithm is newly determined for a case where the target frame rate is changed or a scene change occurs.

이에 따라, M 프레임을 부호화한 평균 수행 속도가 소정 속도 범위(타겟 프레임 속도~타겟 프레임 속도 + 임의의 수렴 범위)에 속하게 되면 현재 수행된 부호화 알고리즘을 현재 단계의 부호화 알고리즘으로 선택한다.Accordingly, when the average performance speed of encoding the M frames falls within a predetermined speed range (target frame rate to target frame rate + arbitrary convergence range), the currently performed encoding algorithm is selected as the encoding algorithm of the current stage.

즉, 본 발명은 새롭게 설정되었거나 현재 설정중인 타겟 프레임의 속도값이 ' 4 frame/sec' 라고 할 때 오프섹 프레임의 속도값이 ' 2 frame/sec' 라 하면 우선, 부호화기의 타겟 프레임 속도를 ' 6 frame/sec' 로 설정하여 매 프레임을 부호화하면서 M개의 프레임을 부호화한 후 피씨의 평균 수행 속도(Performance)를 계산한다.That is, in the present invention, when the rate value of the newly set or currently set target frame is' 4 frame / sec ', and the rate value of the off-sec frame is' 2 frame / sec', the target frame rate of the encoder is set to ' 6 frames / sec 'is set to encode M frames while encoding each frame, and then the average performance of the PC is calculated.

이때, 상기에서 구한 평균 수행 속도가 실제 타겟 프레임 속도 ' 4 frame/sec' 이하이면 부호화 알고리즘의 레벨을 한단계 올리며 ' 5 frame/sec' 이상이면 부호화 알고리즘의 레벨을 한 단계 낮춘다.At this time, if the average performance rate obtained is less than the actual target frame rate '4 frame / sec', the level of the encoding algorithm is increased by one level, and if it is more than '5 frame / sec', the level of the encoding algorithm is reduced by one level.

다시 말해서, 상기의 과정은 부호화기가 '4 frame/sec' 이상의 평균 수행 속도(Average PC Performance)를 가질 때까지 부호화 알고리즘의 레벨을 가변하면서 최적의 부호화 알고리즘의 레벨을 선택하는 것이다.In other words, the above process is to select the optimal coding algorithm level while varying the coding algorithm level until the encoder has an average PC speed of 4 frames / sec or more.

이에 따라, 최종적으로 ' 5 frame' 정도의 피씨 성능에 맞는 부호화 알고리즘이 결정된다.As a result, an encoding algorithm suitable for PC performance of about 5 frames is finally determined.

본 발명은 상기에서 소정의 과정을 통해 초기에 부호화 알고리즘을 선택한 후 이 후 주기적으로 부호화 방법을 재선택하기 위한 과정을 수행하였으나, 다른 실시예로서 수행 시간과 복잡도를 고려하여 부호화 알고리즘의 레벨을 분류한 후 임의의 레벨의 부호화 알고리즘을 선택하여 도2 의 신호 흐름도와 동일한 과정으로 매 프레임을 부호화하면서 M개의 프레임에 대한 평균 수행 속도가 소정 속도 범위에 속할 때까지 부호화 알고리즘의 레벨을 가감하는 동작을 반복하여 최적의 부호화 알고리즘을 선택하도록 할 수 있다.In the present invention, the encoding algorithm is initially selected through a predetermined process, and then a process of periodically reselecting the encoding method is performed. However, in another embodiment, the level of the encoding algorithm is classified in consideration of execution time and complexity. After selecting an encoding algorithm of an arbitrary level and encoding every frame in the same process as the signal flow diagram of FIG. It may be repeated to select the optimal coding algorithm.

상기에서 상세히 설명한 바와 같이 본 발명은 피씨의 성능에 따라 적응적으로 부호화 알고리즘을 결정하여 현재 사용중인 피씨의 성능에 가장 적합한 부호화 알고리즘을 선택함으로써 영상의 품질을 향상시킬 수 있는 효과가 있다.As described in detail above, the present invention has an effect of adaptively determining an encoding algorithm according to the performance of the PC to select an encoding algorithm that is most suitable for the performance of the PC currently being used, thereby improving image quality.

즉, 본 발명은 부호화 알고리즘을 적응적으로 선택함으로써 피씨에 가장 최적인 화상회의 부호화기를 구현할 수 있다.That is, the present invention can implement the video conference encoder that is most suitable for PC by adaptively selecting the encoding algorithm.

도 1은 표준안 H.324 의 구성을 보인 블럭도.1 is a block diagram showing the configuration of standard H.324.

도 2는 본 발명의 초기에 부호화 알고리즘 선택을 위한 신호 흐름도.2 is a signal flow diagram for selecting an encoding algorithm at the beginning of the present invention.

도 3은 본 발명은 부호화 알고리즘 재선택을 위한 신호 흐름도.3 is a signal flow diagram for encoding algorithm reselection.

Claims (3)

수행 시간 및 복잡도를 고려하여 N개의 부호화 레벨(가장 복잡하고 긴 수행시간을 요구하는 경우를 레벨1, 가장 단순하면서 짧은 수행시간을 요구하는 경우를 레벨N로 설정)을 분류하고 복잡다고 높고 수행시간이 긴 알고리즘부터 선택하는 제1 단계와,Considering the execution time and complexity, N coding levels (level 1 for the most complex and long execution time are set as level N, and level N for the simplest and shortest execution time) are classified. The first step to choose from this long algorithm, 상기에서 선택한 부호화 알고리즘에 따른 타겟 프레임 속도를 오프셋 프레임 속도만큼 증가시켜 매 프레임을 부호화하면서 M개의 프레임에 대한 평균 수행 속도를 산출하는 제2 단계와,A second step of calculating an average performance rate for M frames while encoding each frame by increasing a target frame rate according to the encoding algorithm selected above by an offset frame rate; 상기에서 산출한 평균 수행 속도가 타겟프레임속도보다 높아질 때까지 부호화 알고리즘의 레벨을 가변시키는 동작을 반복하는 제3 단계와,A third step of repeating the operation of varying the level of the encoding algorithm until the calculated average performance rate is higher than the target frame rate; 상기에서 산출한 평균 수행 속도가 타겟프레임 속도보다 높아질 경우 현재 선택된 부호화 알고리즘을 부호화 방법으로 유지시키는 제4 단계를 반복 수행하여 소정 주기마다 부호화 알고리즘을 재선택함을 특징으로 하는 부호화 알고리즘 선택 방법.And if the average execution speed calculated above is higher than the target frame rate, repeating the fourth step of maintaining the currently selected encoding algorithm as the encoding method, and reselecting the encoding algorithm at predetermined intervals. 제1항에 있어서, 제3 단계의 부호화 알고리즘의 레벨 가변 동작은 평균 수행 속도가 타겟 프레임 속도보다 작은 경우 1레벨 높은 부호화 알고리즘을 선택하고 타겟 프레임 속도보다 큰 경우 1레벨 낮은 부호화 알고리즘을 선택하는 것을 특징으로 하는 부호화 알고리즘 선택 방법.The method of claim 1, wherein the level varying operation of the encoding algorithm of the third step is to select an encoding algorithm that is one level higher when the average performance rate is smaller than the target frame rate and to select an encoding algorithm that is one level lower when the average execution rate is larger than the target frame rate. A coding algorithm selection method characterized by the above-mentioned. 수행 시간 및 복잡도를 고려하여 N개의 부호화 레벨(가장 복잡하고 긴 수행시간을 요구하는 경우를 레벨1, 가장 단순하면서 짧은 수행시간을 요구하는 경우를 레벨N로 설정)을 분류하는 제1 단계와,A first step of classifying N encoding levels (level 1 for the most complicated and long execution time and level N for the simplest and shortest execution time) in consideration of execution time and complexity; 상기에서 분류된 N개의 부호화 레벨중 복잡도가 가장 높은 부호화 레벨부터 선택하여 매 프레임을 부호화하면서 M개의 프레임에 대한 평균 수행 속도를 산출하는 제2 단계와,A second step of calculating an average performance rate for M frames while encoding every frame by selecting from the coding levels having the highest complexity among the N coding levels classified above; 상기에서 산출한 평균 수행 속도가 타겟 프레임 속도보다 클 때까지 다음으로 높은 레벨의 부호화 알고리즘을 선택하는 동작을 반복 수행하는 제3 단계와,A third step of repeatedly performing an operation of selecting a next higher level encoding algorithm until the calculated average performance rate is greater than a target frame rate; 상기에서 선택한 레벨의 부호화 알고리즘에 의한 타겟 프레임 속도를 오프셋 프레임 속도만큼 증가시켜 매 프레임을 부호화하면서 M개의 프레임에 대한 평균 수행 속도를 산출하는 제4 단계와,A fourth step of calculating an average performance rate for M frames while encoding each frame by increasing the target frame rate by the encoding algorithm of the level selected above by an offset frame rate; 상기에서 산출한 평균 수행 속도가 (타겟프레임 속도~(타겟프레임 속도 + 오프셋 프레임 속도))의 범위에 속할 때가지 부호화 알고리즘의 레벨을 가감하는 동작을 반복하는 제5 단계와,A fifth step of repeating the operation of adding or subtracting the level of the encoding algorithm until the average execution speed calculated above falls in the range of (target frame rate ~ (target frame rate + offset frame rate)), 상기에서 산출한 평균 수행 속도가 (타겟프레임 속도~(타겟프레임 속도 + 오프셋프레임 속도))의 범위에 속하는 경우 현재 선택된 부호화 알고리즘을 현재의 부호화 방법으로 유지시키는 제6 단계를 반복 수행하여 소정 주기마다 부호화 알고리즘을 재선택함을 특징으로 하는 부호화 알고리즘 선택 방법.When the average execution speed calculated above is in the range of (target frame rate to (target frame rate + offset frame rate)), the sixth step of repeatedly maintaining the currently selected encoding algorithm as the current encoding method is repeated every predetermined period. A method of selecting an encoding algorithm, characterized by reselecting the encoding algorithm.
KR1019970075318A 1997-12-27 1997-12-27 Coding Algorithm Selection Method KR100504772B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970075318A KR100504772B1 (en) 1997-12-27 1997-12-27 Coding Algorithm Selection Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970075318A KR100504772B1 (en) 1997-12-27 1997-12-27 Coding Algorithm Selection Method

Publications (2)

Publication Number Publication Date
KR19990055385A KR19990055385A (en) 1999-07-15
KR100504772B1 true KR100504772B1 (en) 2005-10-21

Family

ID=37305560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970075318A KR100504772B1 (en) 1997-12-27 1997-12-27 Coding Algorithm Selection Method

Country Status (1)

Country Link
KR (1) KR100504772B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07274172A (en) * 1994-03-15 1995-10-20 Samsung Electron Co Ltd Rate controller for high efficiency coding of moving image signal
JPH0918873A (en) * 1995-04-28 1997-01-17 Sony Corp Image encoding method and device and image recording medium
KR970073157A (en) * 1996-04-30 1997-11-07 배순훈 IMPROVED IMAGE CODING SYSTEM HAVING FUNCTIONS FOR CONTROLLING GENERATED AMOUNT OF CODED BIT STREEM
KR19990015281A (en) * 1997-08-04 1999-03-05 구자홍 Adaptive Quantization Apparatus and Method Considering Image Complexity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07274172A (en) * 1994-03-15 1995-10-20 Samsung Electron Co Ltd Rate controller for high efficiency coding of moving image signal
JPH0918873A (en) * 1995-04-28 1997-01-17 Sony Corp Image encoding method and device and image recording medium
KR970073157A (en) * 1996-04-30 1997-11-07 배순훈 IMPROVED IMAGE CODING SYSTEM HAVING FUNCTIONS FOR CONTROLLING GENERATED AMOUNT OF CODED BIT STREEM
KR19990015281A (en) * 1997-08-04 1999-03-05 구자홍 Adaptive Quantization Apparatus and Method Considering Image Complexity

Also Published As

Publication number Publication date
KR19990055385A (en) 1999-07-15

Similar Documents

Publication Publication Date Title
KR100667607B1 (en) Variable bitrate video coding method and corresponding video coder
EP1170957B1 (en) Video encoding and decoding apparatus
Paul et al. A long-term reference frame for hierarchical B-picture-based video coding
US8279923B2 (en) Video coding method and video coding apparatus
US7031387B2 (en) B picture mode determining method and apparatus in video coding system
Merritt et al. x264: A high performance H. 264/AVC encoder
EP2250813B1 (en) Method and apparatus for predictive frame selection supporting enhanced efficiency and subjective quality
US7373004B2 (en) Apparatus for constant quality rate control in video compression and target bit allocator thereof
Huang et al. Adaptive fast block-matching algorithm by switching search patterns for sequences with wide-range motion content
US6553068B1 (en) Video signal coding method and device adapted to control code amounts according to the characteristics of pictures
Ebrahimi et al. Joint motion estimation and segmentation for very low bit rate video coding
JP3641172B2 (en) Video image sequence processing method
Park CU encoding depth prediction, early CU splitting termination and fast mode decision for fast HEVC intra-coding
US7409093B2 (en) Method and apparatus for encoding video signals
Youn et al. A fast motion vector composition method for temporal transcoding
US6577680B2 (en) Video signal coding method and coding device adapted to control code amounts according to the characteristics of pictures
EP3741122B1 (en) Restricted overlapped block motion compensation
KR100504772B1 (en) Coding Algorithm Selection Method
US7254176B2 (en) Apparatus for variable bit rate control in video compression and target bit allocator thereof
Yang et al. Efficient tree structured motion estimation using successive elimination
US5940131A (en) Method and apparatus for coding moving pictures
JP4718736B2 (en) Video encoding device
JP2005516501A (en) Video image encoding in PB frame mode
KR100778473B1 (en) Bit rate control method
Choi et al. Adaptive image quantization using total variation classification

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee