KR20140110221A - 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법 - Google Patents

비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법 Download PDF

Info

Publication number
KR20140110221A
KR20140110221A KR1020130023694A KR20130023694A KR20140110221A KR 20140110221 A KR20140110221 A KR 20140110221A KR 1020130023694 A KR1020130023694 A KR 1020130023694A KR 20130023694 A KR20130023694 A KR 20130023694A KR 20140110221 A KR20140110221 A KR 20140110221A
Authority
KR
South Korea
Prior art keywords
image
scene change
intra
size
video
Prior art date
Application number
KR1020130023694A
Other languages
English (en)
Inventor
라병두
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020130023694A priority Critical patent/KR20140110221A/ko
Priority to US14/191,707 priority patent/US20140254660A1/en
Priority to CN201410081646.7A priority patent/CN104038762A/zh
Publication of KR20140110221A publication Critical patent/KR20140110221A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/142Detection of scene cut or scene change

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

영상 그룹에 기초하여 비디오 데이터를 매크로블록 단위로 부호화하는 비디오 인코더의 제어 방법이 제공된다. 인트라 예측 및 인터 예측을 수행하여 매크로블록 단위로 부호화 모드를 결정한다. 부호화 모드를 결정하기 위한 인트라 예측의 결과 및 인터 예측의 결과에 기초하여 영상 단위로 장면 전환을 검출한다. 장면 전환의 검출 결과에 기초하여 영상 그룹의 사이즈를 조절한다. 장면 전환 검출에 기초한 적응적 영상 그룹 설정에 의하여 스트림 사이즈 및 화질의 변동성을 감소시킨다.

Description

비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법{Video encoder, method of detecting scene change and method of controlling video encoder}
본 발명은 비디오 데이터의 압축에 관한 것으로서, 더욱 상세하게는 적응적으로 영상 그룹의 사이즈를 조절하기 위한 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법에 관한 것이다.
비디오 부호화는 국제표준기구인 ISO/IEC 산하의 MPEG (Moving Picture Expert Group)과 ITU-T 산하의 VCEG (Video Coding Expert Group)에서 국제 표준을 주도해 오고 있다. MPEG과 VCEG은 공동으로 JVT (Joint Video Team)를 결성하여 비디오 부호화 국제표준인 H.264/AVC (Advanced Video Coding)을 완료하였다. H.264/AVC는 기존의 다른 비디오 코덱(예를 들어, MPEG-2, MPEG-4, H.261, H.263)과 달리 가변 블록 사이즈 움직임 추정(Variable Blcok Size Motion Estimation), 1/4 픽셀 움직임 벡터 해상도(1/4 pixel Motion Vector Resolution), 다중 참조 영상 움직임 추정(Multiple Reference Picture Motion Estimation) 등이 도입됨으로써 기존 코덱 대비 탁월한 압축 성능을 보여준다.
이러한 기능들의 추가에 의해서 부호화기의 복잡도 및 압축된 데이터의 스트림 사이즈가 증가하게 되었으며, 실시간 비디오 부호화기와 같은 응용 애플리케이션에서는 적용하기가 용이하지 않다.
부호화기에서 압축 성능을 향상시키기 위한 방법으로서 전처리(pre-processing)를 통해 장면 전환을 검출하고, 장면 전환으로 검출된 영상을 기준으로 새로운 영상 그룹(GOP: group of pictures)을 시작하는 방법이 있다. 그러나 전처리를 위하여 비디오 인코더의 복잡도가 증가하고 동작 속도가 저하되는 문제가 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 효율적으로 장면 전환을 검출하고, 장면 전환 검출시 적응적으로 영상 그룹의 사이즈를 조절할 수 있는 비디오 인코더의 제어 방법을 제공하는 것이다.
본 발명의 다른 목적은, 후처리(post-processing)를 통하여 정밀하게 장면 전환을 검출할 수 있는 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 효율적으로 장면 전환을 검출하고, 장면 전환 검출시 적응적으로 영상 그룹의 사이즈를 조절할 수 있는 비디오 인코더를 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따라 다른 영상을 참조하지 않고 부호화되는 인트라 영상(intra picture) 및 다른 영상을 참조하여 부호화되는 인터 영상(inter picture)의 할당에 의해 결정되는 영상 그룹(GOP: group of pictures)에 기초하여 비디오 데이터를 매크로블록(macroblock) 단위로 부호화하는 비디오 인코더의 제어 방법이 제공된다.
상기 비디오 인코더의 제어 방법은, 인트라 예측(intra prediction) 및 인터 예측(inter prediction)을 수행하여 매크로블록 단위로 부호화 모드를 결정하는 단계, 상기 부호화 모드를 결정하기 위한 상기 인트라 예측의 결과 및 상기 인터 예측의 결과에 기초하여 영상 단위로 장면 전환을 검출하는 단계, 및 상기 장면 전환의 검출 결과에 기초하여 상기 영상 그룹의 사이즈를 조절하는 단계를 포함할 수 있다.
상기 영상 그룹의 사이즈를 조절하는 단계는, 상기 장면 전환이 검출되지 않는 경우, 상기 인트라 영상을 규칙적으로 할당하여 상기 영상 그룹의 사이즈를 노말 사이즈로 설정하는 단계, 및 상기 장면 전환이 검출되는 경우, 상기 장면 전환으로 검출된 영상을 포함하는 상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계를 포함할 수 있다.
상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계는, 상기 장면 전환으로 검출된 제1 영상의 이후에 상기 노말 사이즈에 따라서 상기 인트라 영상으로 할당될 제2 영상을 상기 인터 영상으로 대체하는 단계를 포함할 수 있다.
상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계는, 상기 인터 영상으로 대체된 제2 영상 이후 상기 인트라 영상을 할당하기 이전에 상기 장면 전환이 재차 검출되는 경우, 상기 장면 전환으로 재차 검출된 제3 영상의 이후에 상기 노말 사이즈에 따라서 상기 인트라 영상으로 할당될 제4 영상을 상기 인터 영상으로 재차 대체하는 단계를 더 포함할 수 있다.
상기 제2 영상 및 상기 제4 영상은 이전의 영상을 참조하여 부호화되는 P-영상으로 대체될 수 있다.
상기 장면 전환으로 검출된 적어도 하나의 영상을 포함하는 상기 영상 그룹의 사이즈는 상기 노말 사이즈의 M 배(M은 2 이상의 자연수)로 증가할 수 있다.
상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계는, 상기 장면 전환으로 검출된 제1 영상의 바로 다음의 영상부터 부가 사이즈만큼 이후의 영상을 상기 인트라 영상으로 할당하는 단계를 포함할 수 있다.
상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계는, 상기 제1 영상 이후 상기 인트라 영상을 할당하기 이전에 상기 장면 전환이 재차 검출되는 경우, 상기 장면 전환으로 재차 검출된 제2 영상의 바로 다음의 영상부터 상기 부가 사이즈만큼 이후의 영상을 상기 인트라 영상으로 할당하는 단계를 더 포함할 수 있다.
상기 장면 전환으로 검출된 적어도 하나의 영상을 포함하는 상기 영상 그룹의 사이즈는 상기 이전의 인트라 영상부터 상기 장면 전환으로 최후에 검출된 영상까지의 영상들의 개수 및 상기 부가 사이즈의 합으로 증가할 수 있다.
상기 부가 사이즈는 상기 노말 사이즈와 동일하게 설정될 수 있다.
상기 영상 그룹의 사이즈를 조절하는 단계는, 상기 장면 전환이 검출되지 않는 경우, 상기 인트라 영상을 규칙적으로 할당하여 상기 영상 그룹의 사이즈를 노말 사이즈로 설정하는 단계, 상기 이전의 인트라 영상부터 K번째(K는 상기 노말 사이즈보다 작은 자연수) 영상까지 상기 장면 전환이 검출되는 경우, 상기 장면 전환으로 검출된 영상을 포함하는 상기 영상 그룹의 사이즈를 상기 노말 사이즈로 설정하는 단계, 및 상기 K번째 영상의 이후에 상기 장면 전환이 검출되는 경우, 상기 장면 전환으로 검출된 영상을 포함하는 상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계를 포함할 수 있다.
상기 부호화 모드를 결정하는 단계는, 각각의 매크로블록에 대하여 상기 인트라 예측에 의한 최소 인트라 율-왜곡 코스트 및 상기 인터 예측에 의한 최소 인터 율-왜곡 코스트를 계산하는 단계, 및 상기 최소 인트라 율-왜곡 코스트 및 상기 최소 인터 율-왜곡 코스트 중에서 작은 값에 상응하는 모드를 상기 매크로블록의 부호화 모드로 결정하는 단계를 포함할 수 있다.
상기 장면 전환을 검출하는 단계는, 하나의 영상에 포함되는 복수의 매크로블록들에 대하여, 상기 최소 인트라 율-왜곡 코스트들을 합산한 인트라 누적 값 및 상기 최소 인터 율-왜곡 코스트들을 합산한 인터 누적 값을 계산하는 단계, 및 상기 인트라 누적 값 및 상기 인터 누적 값에 기초하여 상기 장면 전환의 발생 여부를 결정하는 단계를 포함할 수 있다.
상기 장면 전환의 발생 여부를 결정하는 단계는, 상기 인터 누적 값에 대한 상기 인트라 누적 값의 비율을 계산하는 단계, 상기 비율이 기준 값보다 작거나 같은 경우 상기 장면 전환이 발생한 것으로 결정하는 단계, 및 상기 비율이 기준 값보다 큰 경우 상기 장면 전환이 발생하지 않은 것으로 결정하는 단계를 포함할 수 있다.
상기 장면 전환을 검출하는 단계는, 상기 장면 전환의 발생 여부를 나타내는 플래그 신호를 발생하는 단계를 더 포함할 수 있다.
상기 장면 전환의 검출은 상기 인트라 영상에 대해서는 생략되고 상기 인터 영상에 대해서만 수행될 수 있다.
상기 장면 전환의 검출은 상기 인트라 영상 및 이전의 영상과 이후의 영상을 참조하여 부호화되는 B-영상에 대해서는 생략되고 이전의 영상을 참조하여 부호화되는 P-영상에 대해서만 수행될 수 있다.
상기 장면 전환의 검출은 상기 이전의 인트라 영상부터 K번째(K는 상기 영상 그룹의 노말 사이즈보다 작은 자연수) 영상까지의 영상들에 대해서는 생략되고 상기 K번째 영상 이후의 영상들에 대해서만 수행될 수 있다.
상기 부호화 모드를 결정하기 위한 상기 인트라 예측의 결과 및 상기 인터 예측의 결과에 기초하여, 부호화되는 데이터의 비트율을 제어하는 단계를 더 포함할 수 있다.
상기 부호화되는 데이터의 비트율을 제어하는 단계는, 각각의 매크로블록에 대한 최소 인트라 율-왜곡 코스트 및 최소 인터 율-왜곡 코스트에 기초하여 매크로블록 단위로 양자화 계수를 조절하는 단계를 포함할 수 있다.
상기 부호화되는 데이터의 비트율을 제어하는 단계는, 하나의 영상에 포함되는 복수의 매크로블록들에 대한 최소 인트라 율-왜곡 코스트들 및 최소 인터 율-왜곡 코스트들을 각각 합산한 인트라 누적 값 및 인터 누적 값에 기초하여 영상 단위로 양자화 계수를 조절하는 단계를 포함할 수 있다.
상기 비디오 인코더는 H.264 표준에 부합할 수 있다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따라 다른 영상을 참조하지 않고 부호화되는 인트라 영상(intra picture) 및 다른 영상을 참조하여 부호화되는 인터 영상(inter picture)의 할당에 의해 결정되는 영상 그룹(GOP: group of pictures)에 기초하여 비디오 데이터를 매크로블록 단위로 부호화하는 비디오 인코더가 제공된다.
상기 비디오 인코더는 인코딩 모듈 및 제어 모듈을 포함한다. 상기 인코딩 모듈은 인트라 예측(intra prediction) 및 인터 예측(inter prediction)을 수행하여 매크로블록 단위로 부호화 모드를 결정하고, 상기 부호화 모드에 따라 비디오 데이터를 매크로블록 단위로 부호화한다. 상기 제어 모듈은 상기 인코딩 모듈로부터 제공되는 상기 인트라 예측의 결과 및 상기 인터 예측의 결과에 기초하여 영상 단위로 장면 전환을 검출하고, 상기 장면 전환의 검출 결과에 기초하여 상기 영상 그룹의 사이즈를 조절한다.
상기 제어 모듈은, 상기 인코딩 모듈로부터 매크로블록 단위로 제공되는 최소 인트라 율-왜곡 코스트들 및 최소 인터 율-왜곡 코스트들을 각각 영상 단위로 합산한 인트라 누적 값 및 인터 누적 값에 기초하여 상기 장면 전환의 발생 여부를 나타내는 플래그 신호를 발생하는 장면 전환 검출부, 및 상기 플래그 신호에 기초하여 상기 영상 그룹의 사이즈를 조절하는 영상 타입 결정부를 포함할 수 있다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 비디오 데이터의 장면 전환 검출 방법은, 각각의 매크로블록에 대하여 상기 인트라 예측에 의한 최소 인트라 율-왜곡 코스트 및 상기 인터 예측에 의한 최소 인터 율-왜곡 코스트를 계산하는 단계, 하나의 영상에 포함되는 복수의 매크로블록들에 대하여, 상기 최소 인트라 율-왜곡 코스트들을 합산한 인트라 누적 값 및 상기 최소 인터 율-왜곡 코스트들을 합산한 인터 누적 값을 계산하는 단계, 및 상기 인트라 누적 값 및 상기 인터 누적 값에 기초하여 상기 장면 전환의 발생 여부를 결정하는 단계를 포함한다.
본 발명의 실시예들에 따른 비디오 인코더 및 그 제어 방법은 장면 전환의 검출 결과에 기초하여 영상 그룹의 사이즈를 적응적으로 조절함으로써 화질의 변동성(fluctuation)을 감소하면서 부호화되는 데이터의 비트수, 즉 스트림 사이즈를 감소할 수 있다.
본 발명의 실시예들에 따른 비디오 인코더의 장면 전환 검출 방법은 부호화 모드를 결정하기 위한 예측의 결과에 기초한 후처리(post-processing) 방식을 채택하여, 전처리(pre-processing) 방식의 장면 전환 검출에서 요구되는 소프트웨어 및 하드웨어의 추가적인 부담 없이 정밀하게 장면 전환을 검출할 수 있고 비디오 인코더의 집적도를 향상시키며 동작 속도를 증가시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 비디오 인코더의 제어 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 비디오 인코더를 나타내는 블록도이다.
도 3은 규칙적인 영상 그룹 설정의 일 예를 나타내는 도면이다.
도 4는 본 발명의 실시예들에 따른 영상 그룹을 적응적으로 설정하는 방법을 나타내는 순서도이다.
도 5, 6 및 7은 본 발명의 실시예들에 따른 적응적 영상 그룹 설정의 예들을 나타내는 도면들이다.
도 8은 도 2의 비디오 인코더에 포함되는 영상 타입 결정부의 일 예를 나타내는 블록도이다.
도 9는 도 8의 영상 타입 결정부의 동작을 나타내는 도면이다.
도 10은 규칙적인 영상 그룹 설정에 따른 영상의 비트수를 나타내는 도면이다.
도 11, 12 및 13은 도 10의 일부 영상들을 나타내는 도면들이다.
도 14는 적응적 영상 그룹 설정에 따른 영상의 비트수를 나타내는 도면이다.
도 15는 도 14의 일부 영상을 나타내는 도면이다.
도 16은 비트율에 따른 피크 신호-잡음비를 나타내는 도면이다.
도 17 및 18은 본 발명의 실시예들에 따른 적응적 영상 그룹 설정의 예들을 나타내는 도면들이다.
도 19는 본 발명의 실시예들에 따른 영상 그룹을 적응적으로 설정하는 방법을 나타내는 순서도이다.
도 20은 본 발명의 실시예들에 따른 적응적 영상 그룹 설정의 예를 나타내는 도면이다.
도 21은 도 2의 비디오 인코더에 포함되는 영상 타입 결정부의 일 예를 나타내는 블록도이다.
도 22는 도 21 영상 타입 결정부의 동작을 나타내는 도면이다.
도 23은 본 발명의 실시예들에 따른 적응적 영상 그룹 설정의 예를 나타내는 도면이다.
도 24는 본 발명의 실시예들에 따른 비디오 인코더의 동작 방법을 나타내는 순서도이다.
도 25는 본 발명의 실시예들에 따른 장면 전환 검출 방법을 나타내는 순서도이다.
도 26은 도 2의 비디오 인코더에 포함되는 장면 전환 검출부의 일 예를 나타내는 블록도이다.
도 27은 도 2의 비디오 인코더에 포함되는 인에이블 신호 발생기의 일 예를 나타내는 블록도이다.
도 28은 본 발명의 실시예들에 따른 비디오 인코더의 동작 방법을 나타내는 순서도이다.
도 29는 영상 타입에 따른 참조 영상들을 설명하기 위한 도면이다.
도 30, 31 및 32는 장면 전환 검출과 실제 장면 전환의 관계를 설명하기 위한 도면들이다.
도 33은 본 발명의 실시예들에 따른 비디오 인코더를 나타내는 블록도이다.
도 34는 본 발명의 실시예들에 따른 비디오 인코더를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 35는 도 34의 컴퓨팅 시스템에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 비디오 인코더의 제어 방법을 나타내는 순서도이다.
도 1에는 영상 그룹(GOP: group of pictures)에 기초하여 비디오 데이터를 매크로블록 단위로 부호화하는 비디오 인코더의 제어 방법이 도시되어 있다. 영상 그룹은 다른 영상을 참조하지 않고 부호화되는 인트라 영상(intra picture) 및 다른 영상을 참조하여 부호화되는 인터 영상(inter picture)의 할당에 의해 결정된다.
도 1을 참조하면, 인트라 예측(intra prediction) 및 인터 예측(inter prediction)을 수행하여 매크로블록 단위로 부호화 모드를 결정한다(단계 S100). MPEG, H.261, H.262, H.263, H.264 등의 표준에 따른 비디오 인코더는 비디오 데이터를 영상(picture) 단위로 부호화(coding)한다. 여기서 영상은 순차 스캔 방식(progressive scan form)에서의 프레임(frame)에 상응할 수도 있고 비월 스캔 방식(interlaced scan form)에서의 필드(field)에 상응할 수도 있다. 부호화된 영상은 다시 복원된 후 복원 영상 버퍼(DPB: decoded picture buffer)와 같은 메모리에 저장되고 다음에 입력되는 영상을 부호화할 때 움직임 추정의 참조 영상으로 사용된다. 하나의 영상은 기본적으로 16*16 픽셀 크기의 겹쳐지지 않는 매크로블록 단위로 분할되어 부호화된다. 비디오 인코더에 순차적으로 입력되는 매크로블록들의 각각에 대하여 현재의 영상의 타입에 따라서 인트라 예측 및/또는 인터 예측을 수행하여 최적의 부호화 모드를 결정한다. 현재의 영상이 인트라 영상(intra picture)인 경우에는 현재의 영상에 포함된 매크로블록들의 각각에 대하여 인트라 예측만이 수행된다. 현재의 영상이 인터 영상(inter picture)인 경우에는 현재의 영상에 포함된 매크로블록들의 각각에 대하여 인트라 예측 및 인터 예측이 수행된다. 이하에서는 인트라 영상은 I 영상으로 표현될 수 있고, 인터 영상은 P 영상(predictive picture) 및 B 영상(bi-directional predictive picture)을 포함하는 의미로 사용될 수 있다.
상기 부호화 모드를 결정하기 위한 상기 인트라 예측의 결과 및 상기 인터 예측의 결과에 기초하여 영상 단위로 장면 전환을 검출한다(단계 S300). 이상적으로는 영상을 부호화하기 전에 전처리를 통하여 장면 전환을 검출하고, 장면 전환으로 검출된 영상을 인트라 영상으로 할당하여 새로운 영상 그룹을 설정하는 것이 화질적인 관점 및 부호화된 데이터의 비트율, 즉 스트림 사이즈의 관점에서 가장 효과적이다. 그러나 이 경우에는 비디오 인코더의 복잡도가 증가하고 동작 속도가 저하된다. 본 발명의 실시예들에 따라서, 부호화 과정에서 필수적으로 요구되는 예측의 결과를 이용하는 후처리(post-processing) 방식으로 장면 전환 검출이 수행된다.
상기 장면 전환의 검출 결과에 기초하여 상기 영상 그룹의 사이즈를 조절한다(단계 S500). 장면 전환 검출이 후처리 방식으로 수행되기 때문에 영상 그룹의 사이즈 조절은 장면 전환으로 검출된 영상의 다음의 영상들에 대하여 적용된다.
이와 같이, 후처리 방식으로 장면 전환을 검출하고 이에 기초하여 영상 그룹의 사이즈를 적응적으로 조절함으로써 비디오 인코더의 복잡도(complexity)를 과도하게 증가시키지 않으면서도 부호화되는 데이터의 비트율을 효율적으로 감소시킬 수 있다.
도 2는 본 발명의 실시예들에 따른 비디오 인코더를 나타내는 블록도이다.
도 2에는 영상 그룹에 기초하여 비디오 데이터를 매크로블록 단위로 부호화하는 비디오 인코더가 도시되어 있다. 상기 영상 그룹은 다른 영상을 참조하지 않고 부호화되는 인트라 영상 및 다른 영상을 참조하여 부호화되는 인터 영상의 할당에 의해 결정된다.
도 2를 참조하면, 비디오 인코더(video encoder)(10)는 인코딩 모듈(encoding module)(100) 및 제어 모듈(controlling module)(500)을 포함한다.
인코딩 모듈(100)은 매크로블록 단위로 제공되는 입력 비디오 데이터 신호(VDI)를 수신한다. 인트라 예측(intra prediction) 및 인터 예측(inter prediction)을 수행하여 매크로블록 단위로 부호화 모드를 결정하고, 상기 부호화 모드에 따라 비디오 데이터를 매크로블록 단위로 부호화한다.
인코딩 모듈(100)은 예측부(prediction block)(200), 모드 결정부(mode decision block, MD)(300), 감산부(subtractor)(101), 변환부(transform block, T)(102), 양자화부(quantization block, Q)(103), 엔트로피 코더(entropy coder, EC)(104), 버퍼(encoded picture buffer, EPB)(105), 역양자화부(inverse quantization block)(106), 역변환부(inverse transform block)(107), 가산부(adder)(108), 디블록킹 필터(deblocking filter, DF)(109) 및 메모리(memory, MEM)(110)를 포함하여 구현될 수 있다.
예측부(200)는 매크로블록 단위로 입력되는 비디오 데이터에 대하여 인트라 예측을 수행하는 인트라 예측부(210) 및 인터 예측을 수행하는 인터 예측부(250)를 포함한다. 예측부(200)는 영상 타입 할당 신호(PTA)에 의해 정해지는 I 영상, P 영상, B 영상 등의 영상 타입에 따라서 인트라 예측 및/또는 인터 예측을 수행한다. 영상 타입 할당 신호(PTA)가 현재 부호화되는 영상이 I 영상임을 나타내는 경우, 인터 예측부(250)는 디스에이블되고 인트라 예측부(210)만이 인에이블되어 인트라 예측을 수행한다. 영상 타입 할당 신호(PTA)가 현재 부호화되는 영상이 P 영상 또는 B 영상임을 나타내는 경우, 인트라 예측부(210) 및 인터 예측부(250)가 모두 인에이블되어 인트라 예측 및 인터 예측을 각각 수행한다. 인트라 예측부(210)는 다른 영상을 참조하지 않고 현재의 영상 내에서 부호화 모드를 결정하기 위한 인트라 예측을 수행한다. 인터 예측부(250)는 P 영상의 경우에는 이전의 영상을 참조하고 B 영상의 경우에는 이전의 영상 및 이후의 영상을 참조하여 부호화 모드를 결정하기 위한 인터 예측을 수행한다.
H.264 표준에 따르면, 매크로블록의 가용 부호화 모드는 인터 모드와 인트라 모드로 대별된다. 인터 모드는 SKIP, 16*16, 8*16, 16*8, 8*8의 5가지 움직임 보상 모드를 포함하고, 8*8 움직임 보상 모드는 각각의 8*8 서브블록(sub-block)에 대하여 8*4, 4*8, 4*4의 3가지 서브 모드(Sub-mode)를 포함한다. 인트라 모드는 4개의 16*16 인트라 예측 모드 및 9개의 4*4 인트라 예측 모드를 포함한다.
하나의 매크로블록을 상기 가용 부호화 모드 중 하나로 부호화하기 위해 예측부(200)는 다음과 같은 율-왜곡 최적화(rate-distortion optimization)를 수행할 수 있다.
인트라 예측부(210)는 전술한 인트라 모드들 중에서 다음의 수학식 1에 표시된 인트라 율-왜곡 코스트(Jmode)를 최소로 하는 인트라 모드를 구한다.
Figure pat00001
여기서 Kmd는 모드 결정을 위한 라그랑지안(Lagrangian) 계수를 나타내고, Rmd는 후보 인트라 모드로 부호화하는데 요구되는 비트수를 나타낸다. DISTmd는 복원된 매크로블록과 입력 매크로블록의 화소 간의 차이에 대한 왜곡을 나타낸다. 왜곡 함수로는 SAD(Sum of Absolute Difference), SATD(Sum of Absolute Transformed Difference) 또는 SSD(Sum of Squared Difference) 등이 사용될 수 있다. 이와 같이 인트라 예측부(210)는 각각의 인트라 모드에 대하여 Jmd 들을 계산하고 그 중에서 최소가 되는 Jmd를 최소 인트라 율-왜곡 코스트(MCST1)로 결정한다.
인터 예측부(250)는 전술한 SKIP을 제외한 인터 모드의 각각에 대해 최적의 움직임 벡터를 구한다. 최적 움직임 벡터는 후보 움직임 벡터들 중 다음의 수학식 2에 표시된 인터 율-왜곡 코스트(Jmotion)를 최소로 하는 움직임 벡터를 나타낸다.
Figure pat00002
여기서 Kmt는 움직임 추정을 위한 라그랑지안(Lagrangian) 계수를 나타내고, Rmt는 후보 모드, 후보 참조 영상 및 후보 움직임 벡터를 이용하여 데이터를 부호화하는데 필요한 비트수를 나타낸다. DISTmt는 후보 움직임 벡터로 생성되는 움직임 보상된 매크로블록과 입력 매크로블록의 화소 간의 차이에 대한 왜곡을 나타낸다. 왜곡 함수로는 SAD(Sum of Absolute Difference), SATD(Sum of Absolute Transformed Difference) 또는 SSD(Sum of Squared Difference) 등이 사용될 수 있다.
후보 움직임 벡터의 종류는 일반적으로 탐색 윈도우(search window)의 크기에 따라 정해진다. 비디오 인코더(10)가 복수의 참조 영상들을 사용하는 경우에는 각 참조 영상별로 최적 움직임 추정을 위한 위 연산을 각기 반복 수행한다. 이와 같이 인터 예측부(250)는 각각의 참조 영상, 각각의 후보 움직임 벡터 및 각각의 인터 모드에 대하여 Jmt 들을 계산하고 그 중에서 최소가 되는 Jmt를 최소 인터 율-왜곡 코스트(MCST2)로서 결정한다.
모드 결정부(300)는 최소 인트라 율-왜곡 코스트(MCST1)와 최소 인터 율-왜곡 코스트(MCST2)를 비교하여 그 중에서 작은 값에 상응하는 부호화 모드를 결정한다. 모드 결정부(300)는 결정된 부호화 모드, 이에 상응하는 참조 블록, 움직임 벡터 등의 정보를 제공할 수 있다.
감산부(101)는 모드 결정부(300)로부터 제공되는 참조 블록(reference block)을 입력 매크로블록(input macroblock)에서 차분함으로써 잔차 블록(residual block)을 생성한다. 변환부(102)는 감산부(101)에 의하여 생성된 잔차 블록에 대하여 공간적 변환(spatial transform)을 수행한다. 이러한 공간적 변환 방법으로는 이산 여현 변환(DCT: Discrete Cosine Transform), 웨이브렛 변환(wavelet transform) 등이 사용될 수 있다. 공간적 변환 결과 변환 계수가 구해지는데, 공간적 변환 방법으로 DCT를 사용하는 경우 DCT 계수가, 웨이브렛 변환을 사용하는 경우 웨이브렛 계수가 구해진다.
양자화부(103)는 변환부(102)에서 구한 변환 계수를 양자화한다. 양자화(quantization)란 임의의 값으로 표현되는 상기 변환 계수를 일정 구간으로 나누어 불연속적인 값(discrete value)으로 나타내는 작업을 의미한다. 이러한 양자화 방법으로는 스칼라 양자화, 벡터 양자화 등의 방법이 있다. 간단한 스칼라 양자화 방법은 변환 계수를 양자화 테이블의 해당 값으로 나눈 후 정수 자리로 반올림하는 과정으로 수행된다.
한편, 공간적 변환 방법으로 웨이브렛 변환을 이용하는 경우에는 양자화 방법으로서 주로 엠베디드 양자화(embedded quantization) 방법을 이용한다. 이러한 엠베디드 양자화 방법은 상기 변환 계수를 문턱 값을 변경시켜 가면서 그 문턱 값을 넘는 성분을 우선적으로 부호화하는 방식으로서, 공간적 연관성(spatial redundancy)을 이용하여 효율적인 양자화를 수행한다. 이러한 엠베디드 양자화 방법으로는 EZW(Embedded Zerotrees Wavelet Algorithm), SPIHT(Set Partitioning in Hierarchical Trees), EZBC(Embedded ZeroBlock Coding) 등이 있다. 이와 같은 엔트로피 코딩 이전 단계까지의 부호화 과정을 손실 부호화 과정이라고 한다.
엔트로피 코더(104)는 양자화부(104)에서 양자화된 데이터와 인트라 예측 모드, 참조 프레임 번호, 움직임 벡터 등의 정보를 무손실 부호화하고 출력 비트스트림(BS)을 생성한다. 이러한 무손실 부호화 방법으로는, CABAC(Context-adaptive binary arithmetic coding)과 같은 산술 부호화(arithmetic coding), CAVLC(Context-adaptive variable-length coding)과 같은 가변 길이 부호화(variable length coding) 등이 사용될 수 있다. 출력 비트스트림(BS)은 버퍼(105)에 버퍼링된 후 외부로 출력될 수 있다.
역양자화부(106), 역변환부(107), 및 가산부(108)는 손실 부호화된 데이터를 역으로 복호화하여 재구성 영상(reconstructed picture)을 복원하기 위하여 사용된다. 역양자화부(106)는 양자화부(103)에서 양자화된 데이터를 역양자화한다. 이러한 역양자화 과정은 양자화 과정의 역에 해당되는 과정이다. 역변환부(107)는 상기 역양자화 결과를 역 공간적 변화하여 이를 가산부(108)에 제공한다.
가산부(108)는 역변환부(107)로부터 제공된 신호와 모드 결정부(300)에서 제공된 참조 블록을 합산하여 입력 매크로블록을 복원한다. 가산부(108)에 의하여 복원된 매크로블록은 디블록킹 필터(109)에 제공되며, 복원된 영상 중 인접 블록의 이미지는 인트라 예측부(210)에 제공된다. 디블록킹 필터(109)는 매크로블록의 각각의 경계선에 대하여 디블록 필터링을 수행한다. 디블록 필터링된 데이터는 메모리(110)에 저장되어 참조 영상으로서 이용된다.
제어 모듈(500)은 인코딩 모듈(100)로부터 제공되는 인트라 예측의 결과 및 인터 예측의 결과, 즉 최소 인트라 율-왜곡 코스트(MCST1) 및 최소 인터 율-왜곡 코스트(MCST2)에 기초하여 영상 단위로 장면 전환을 검출하고, 상기 장면 전환의 검출 결과에 기초하여 상기 영상 그룹의 사이즈를 조절한다.
제어 모듈(500)은 영상 타입 결정부(picture type decision block)(600) 및 장면 전환 검출부(scene change detection block)(700)를 포함할 수 있다.
장면 전환 검출부(700)는 인코딩 모듈(100)의 예측부(200)로부터 매크로블록 단위로 제공되는 최소 인트라 율-왜곡 코스트(MCST1) 및 최소 인터 율-왜곡 코스트(MCST2)에 기초하여 장면 전환의 발생 여부를 나타내는 플래그 신호(FL)를 발생한다. 예를 들어, 도 24 내지 32를 참조하여 후술하는 바와 같이, 장면 전환 검출부(700)는 최소 인트라 율-왜곡 코스트(MCST1) 및 최소 인터 율-왜곡 코스트(MCST2)를 각각 영상 단위로 합산한 인트라 누적 값(ACC1) 및 인터 누적 값(ACC2)에 기초하여 플래그 신호(FL)를 발생할 수 있다. 장면 전환 검출부(700)는 하나의 영상에 대한 부호화가 완료될 때마다 활성화되는 영상 엔드 신호(EOP)에 동기하여 영상 단위로 플래그 신호(FL)의 레벨을 결정할 수 있다.
영상 타입 결정부(600)는 플래그 신호(FL)에 기초하여 영상 그룹의 사이즈를 조절한다. 영상 타입 결정부(600)는 영상 엔드 신호(EOP)에 동기하여 현재 부호화되는 영상의 각각에 대한 영상 타입을 나타내는 영상 타입 할당 신호(PTA)를 발생할 수 있다. 예를 들어, 영상 타입 할당 신호(PTA)는 I 영상, P 영상 또는 B 영상을 나타낼 수 있다. 다른 영상을 참조하지 않고 부호화되는 I 영상의 할당에 의해 영상 그룹의 사이즈가 결정될 수 있고, 이전의 영상을 참조하여 부호화되는 P 영상 및/또는 이전의 영상 및 이후의 영상을 참조하여 부호화되는 B 영상의 할당 패턴에 의해 영상 그룹의 구조가 결정될 수 있다. 영상 타입 결정부(600)는 현재 부호화되는 영상의 타입에 따라서 선택적으로 장면 전환 검출부(700)를 인에이블시키기 위한 인에이블 신호(EM)를 발생할 수 있다. 영상 타입 결정부(600)의 구성 및 동작에 대해서는 도 3 내지 23을 참조하여 후술한다.
도 3은 규칙적인 영상 그룹 설정의 일 예를 나타내는 도면이다.
영상 그룹은 I 영상의 할당에 의해 그 사이즈가 결정되며, P 영상 및/또는 B 영상의 배열에 의해서 그 구조가 결정된다. 다른 영상을 참조하여 부호화되는 인터 영상, 즉 P 영상과 B 영상의 배열에 의해 부호화되는 데이터의 비트수를 감소시킬 수 있으며, 다른 영상을 참조하지 않고 부호화되는 인트라 영상, 즉 I 영상을 간헐적으로 할당하여 영상 그룹의 사이즈를 제한함으로써 오류 전파(error propagation)를 방지할 수 있다.
도 3에는 규칙적으로 I 영상을 할당하여 영상 그룹의 사이즈를 노말 사이즈, 즉 N으로 설정하는 예가 도시되어 있다. 도 3에 도시된 영상 번호(PN)는 부호화 순서(coding order)를 나타내며, 영상 그룹의 구조에 따라서 디스플레이 순서(displaying order)와 부호화 순서는 상이할 수 있다. I 영상으로 할당된 제1 영상부터 제N 영상까지가 제1 영상 그룹(GOP1)에 해당하고, 다음의 I 영상으로 할당된 제N+1 영상부터 제2N 영상까지가 제2 영상 그룹(GOP2)에 해당한다. 마찬가지로 제2N+1 영상부터 N개의 영상이 제3 영상 그룹(GOP3)으로 설정된다.
영상 그룹의 구조는 도 2의 영상 타입 결정부(600)에서 발생되는 영상 타입 할당 신호(PTA)에 따라 다양하게 결정될 수 있다. 도 3에는 IPBB 방식의 영상 그룹 구조가 예시되어 있다. 이 경우, 영상 타입에 따라서 참조 영상이 상이하기 때문에 부호화 순서와 디스플레이 순서가 서로 다르게 된다. 예를 들어 P 영상인 제2 영상은 B 영상인 제3 및 제4 영상들보다 먼저 부호화되고, 제3 및 제4 영상은 먼저 부호화된 제3 영상을 참조하여 부호화될 수 있다.
본 발명의 실시예에 따라서, 도 3에 예시된 바와 같은 규칙적인 영상 그룹 설정은 장면 전화 검출 기능을 디스에이블 시키는 경우 또는 장면 전환이 검출되지 않는 경우 적용될 수 있다.
도 4는 본 발명의 실시예들에 따른 영상 그룹을 적응적으로 설정하는 방법을 나타내는 순서도이다.
도 2 및 4를 참조하면, 영상 타입 결정부(600)는 장면 전환 검출부(700)로부터 장면 전환의 발생 여부를 나타내는 플래그 신호(FL)를 수신한다(단계 S510). 예를 들어, 플래그 신호(FL)가 논리 하이 레벨, 즉 "1"의 값을 갖는 경우에는 장면 전환이 검출되었음을 나타내고, 플래그 신호(FL)가 논리 로우 레벨, 즉 "0"의 값을 갖는 경우에는 장면 전환이 검출되지 않았음을 나타낼 수 있다.
영상 타입 결정부(600)는 장면 전환이 검출되지 않는 경우(단계 S520: NO), 도 3을 참조하여 설명한 바와 같이, 인트라 영상을 규칙적으로 할당하여 영상 그룹의 사이즈를 노말 사이즈로 설정한다(단계 S530). 영상 타입 결정부(600)는 장면 전환이 검출되는 경우(단계 S520: YES), 상기 장면 전환으로 검출된 영상을 포함하는 영상 그룹의 사이즈를 노말 사이즈보다 크게 설정한다(단계 S540). 플래그 신호(FL)의 논리 레벨은 영상 단위로 결정되며, 전술한 단계들(S510, S520, S530, S540)은 하나의 영상에 대한 부호화가 완료될 때마다 영상 단위로 수행되며, 모든 영상들에 대한 인코딩이 완료될 때까지(단계 S550: YES) 반복된다.
이와 같이, 장면 전환의 발생 여부에 따라 영상 그룹의 사이즈를 적응적으로 조절함으로써 화질의 변동성(fluctuation)을 감소하면서 부호화되는 데이터의 비트수, 즉 스트림 사이즈를 감소할 수 있다.
도 5, 6 및 7은 본 발명의 실시예들에 따른 적응적 영상 그룹 설정의 예들을 나타내는 도면들이다.
도 5, 6 및 7의 상단에는 규칙적인 영상 그룹 설정(regular GOP set)이 도시되어 있고, 하단에는 장면 전환이 검출되는 경우의 적응적 영상 그룹 설정(adaptive GOP set)이 도시되어 있다.
도 3을 참조하여 설명한 바와 같이, 장면 전환이 검출되지 않는 경우에는 N개의 영상마다 I 영상을 할당하여 영상 그룹들(GOP1, GOP2, GOP3)의 사이즈를 노말 사이즈로 설정한다.
도 5를 참조하면, 장면 전환이 검출되는 경우에는 장면 전환으로 검출된 영상(M)을 포함하는 영상 그룹(GOP1a)의 사이즈를 노말 사이즈 N보다 크게 설정한다. 이러한 영상 그룹 사이즈의 증가는, 장면 전환으로 검출된 영상(M)의 이후에 노말 사이즈에 따라서 인트라 영상으로 할당될 영상(N+1)을 인터 영상으로 대체하는 방식으로 구현될 수 있다. 일 실시예에서, 도 5에 도시된 바와 같이, 노말 사이즈에 따라 인트라 영상으로 할당될 영상(N+1)은 이전의 영상을 참조하여 부호화되는 P 영상으로 대체될 수 있다. 이 경우 장면 전환으로 검출된 영상(M)을 포함하는 영상 그룹(GOP1a)의 사이즈는 노말 사이즈의 2배인 2*N으로 증가한다. 다음의 영상 그룹(GOP2a)은 장면 전환을 포함하지 않으므로 규칙적인 영상 그룹 설정에 따라서 노말 사이즈로 설정된다.
도 6에는 하나의 노말 사이즈 내에 복수의 영상들(M1, M2)에 대하여 장면 전환이 검출되는 경우가 예시되어 있다. 이 경우 마지막에 장면 전환으로 검출된 영상의 다음에 노말 사이즈에 따라서 인트라 영상으로 할당될 영상(N+1)을 인터 영상으로 대체한다. 따라서 도 5의 경우와 마찬가지로 장면 전환으로 검출된 영상을 포함하는 영상 그룹(GOP1a)의 사이즈는 노말 사이즈의 2배인 2*N으로 증가한다. 다음의 영상 그룹(GOP2a)은 장면 전환을 포함하지 않으므로 규칙적인 영상 그룹 설정에 따라서 노말 사이즈로 설정된다.
도 7에는 인터 영상으로 대체된 영상(N+1) 이후로서 인트라 영상을 할당하기 이전에 상기 장면 전환이 재차 검출되는 경우가 예시되어 있다. 이 경우 장면 전환으로 재차 검출된 영상(M2)의 이후에 노말 사이즈에 따라서 인트라 영상으로 할당될 영상(2N+1)을 인터 영상으로 재차 대체할 수 있다. 일 실시예에서, 도 7에 도시된 바와 같이, 노말 사이즈에 따라 인트라 영상으로 할당될 영상들(N+1, 2N+1)은 이전의 영상을 참조하여 부호화되는 P 영상으로 대체될 수 있다. 이 경우 제1 영상 그룹(GOP1b)의 사이즈는 노말 사이즈의 3배인 3*N으로 증가한다.
도 5, 6 및 7에는 영상 그룹의 사이즈가 노말 사이즈의 2배 또는 3배로 증가하는 경우만을 설명하였으나, 이와 같은 방식에 의해 장면 전환으로 검출된 적어도 하나의 영상을 포함하는 영상 그룹의 사이즈는 노말 사이즈의 M 배(M은 2 이상의 자연수)로 증가할 수 있다.
이와 같이, 인트라 영상을 인터 영상으로 대체함으로써, 빈번한 인트라 영상의 할당을 방지하여 스트림 사이즈를 감소할 수 있으며 화질의 변동성을 감소시킬 수 있다.
도 8은 도 2의 비디오 인코더에 포함되는 영상 타입 결정부의 일 예를 나타내는 블록도이고, 도 9는 도 8의 영상 타입 결정부의 동작을 나타내는 도면이다.
도 8을 참조하면, 영상 타입 결정부(600a)는 카운터(counter)(610), 레지스터(register, RG)(630) 및 신호 발생기(signal generator)(650)를 포함하여 구현될 수 있다.
도 8 및 9를 참조하면, 카운터(610)는 하나의 영상에 대한 부호화가 완료될 때마다 활성화되는 영상 엔드 신호(EOP)에 동기하여 노말 사이즈에 상응하는 1부터 N까지의 카운트(CNT)를 반복적으로 제공한다. 레지스터(630)는 장면 전환 검출부(700)로부터 제공되는 플래그 신호(FL)에 응답하여 "1"의 값을 저장하고 신호 발생기(650)로부터 제공되는 리셋 신호(RST)에 응답하여 "0"의 값을 저장한다. 레지스터(630)는 저장된 값에 상응하는 논리 레벨을 갖는 인에이블 신호(AEN)를 신호 발생기(650)에 제공한다.
신호 발생기(650)는 인에이블 신호(AEN)에 응답하여 규칙적인 영상 그룹 설정 또는 적응적 영상 그룹 설정을 선택적으로 수행한다. 예를 들어, 신호 발생기(650)는 인에이블 신호(AEN)가 논리 로우 레벨인 경우에는 규칙적인 영상 그룹 설정을 수행하고 인에이블 신호(AEN)가 논리 하이 레벨인 경우에는 적응적인 영상 그룹 설정을 수행할 수 있다.
인에이블 신호(AEN)가 규칙적인 영상 그룹 설정을 나타내는 경우에, 신호 발생기(650)는 미리 정해진 규칙에 따라서 카운트(CNT)에 상응하는 영상 타입을 나타내도록 영상 타입 할당 신호(PTA)를 발생한다. 예를 들어, 카운트(CNT)가 1인 경우에 신호 발생기(650)는 I 영상을 나타내는 영상 타입 할당 신호(PTA)를 발생한다.
인에이블 신호(AEN)가 적응적 영상 그룹 설정을 나타내는 경우에, 신호 발생기(650)는 노말 사이즈에 따라서 인트라 영상으로 할당될 영상을 인터 영상으로 대체하고 리셋 신호(RST)를 활성화하여 레지스터(630)의 저장값을 "0"으로 리셋한다. 레지스터(630)가 리셋되면 다시 장면 전환이 검출되기 전까지 신호 발생기(630)는 규칙적인 영상 그룹 설정을 수행한다. 결과적으로 도 9에 도시된 바와 같이 장면 전환을 포함하지 않는 영상 그룹(GOP2a)의 사이즈는 노말 사이즈인 N으로 설정되고, 장면 전환으로 검출된 영상(M)이 포함된 영상 그룹(GOP1a)의 사이즈가 2*N으로 증가된다.
도 10은 규칙적인 영상 그룹 설정에 따른 영상의 비트수를 나타내는 도면이고, 도 11, 12 및 13은 도 10의 일부 영상들을 나타내는 도면들이다.
비디오 인코더는 부호화 관점에서 스트림 사이즈의 최소화 및 화질의 최적화를 유지하고 비디오 데이터의 스트리밍 안정성을 확보하기 위해서 부호화 및 복호화 과정에서 연계된 영상들을 묶어서 영상 그룹의 사이즈를 유지한다. 도 10에는 일반적인 부호화와 연계된 규칙적인 영상 그룹 설정의 일 예가 도시되어 있다. 가로축은 영상 번호를 나타내고 세로축은 각 영상의 비트수를 나타낸다. 도 10에 도시된 규칙적인 영상 그룹은 I 영상들 사이의 영상들의 개수에 상응하는 노말 사이즈를 갖고, 하나의 P 영상과 두개의 B 영상들이 반복적으로 할당되는 구조를 갖는다.
도 11, 12 및 13은 도 10에 포함된 영상들 중에서 세 개의 영상들, 즉 P 영상으로 할당된 제1 영상(PC56)과 제2 영상(PC59) 및 I 영상으로 할당된 제3 영상(PC62)을 각각 나타낸다. 상기 영상들의 하단에는 각 영상의 스트림 순서, 디스플레이 순서 및 영상 타입이 표시되어 있다. 상기 영상들에는 디스플레이 이미지 자체가 편의상 생략되고, 각각의 매크로블록에 대한 부호화 모드가 도시되어 있다. 검정색 작은 원은 인트라 모드를, 하얀색 작은 원은 인터 모드를, X 표시는 스킵 모드를 각각 나타낸다. 도 11의 제1 영상(PC56)과 도 12의 제2 영상(PC59)을 비교하면 제2 영상(PC59)에서 장면 전환이 발생한 것을 알 수 있다. P 영상으로 할당된 제2 영상(PC59)은 이전의 영상을 참조하여 부호화되지만, 장면 전환으로 인하여 이전의 영상과 상호관련성이 작다. 따라서 제2 영상(PC59)의 대부분의 매크로블록들이 인트라 모드로 부호화되어 도 10에 도시된 바와 같이 비트수가 상대적으로 증가한다. 규칙적인 영상 그룹 설정에 따라서, 제3 영상(PC62)은 I 영상으로 할당된다. 장면 전환에 해당하는 제3 영상(PC62)의 모든 매크로블록들이 인트라 모드로 부호화되어 비트수가 증가한다. 이와 같이 장면 전환이 발생하는 경우에도 영상 그룹의 노말 사이즈를 그대로 적용하는 것은 부호화되는 데이터의 비트수를 불필요하게 증가시키게 된다.
도 14는 적응적 영상 그룹 설정에 따른 영상의 비트수를 나타내는 도면이고, 도 15는 도 14의 일부 영상을 나타내는 도면이다.
도 14를 참조하면, 도 10에서 I 영상으로 할당된 제3 영상(PC62)이 P 영상으로 대체되어 영상 그룹의 사이즈가 노말 사이즈보다 크게 설정된다. 도 15는 P 영상으로 할당된 제3 영상(PC62)을 나타낸다. 도 15의 영상의 하단에는 영상의 스트림 순서, 디스플레이 순서 및 영상 타입이 표시되어 있다. 상기 영상에는 디스플레이 이미지 자체가 편의상 생략되고, 각각의 매크로블록에 대한 부호화 모드가 도시되어 있다. 검정색 작은 원은 인트라 모드를, 하얀색 작은 원은 인터 모드를, X 표시는 스킵 모드를 각각 나타낸다. 도 15에 도시된 바와 같이, P 영상으로 대체된 제3 영상(PC62)은 대부분의 매크로블록들이 인터 모드로 부호화되고, 결과적으로 도 10의 I 영상으로 할당된 경우와 비교하여 비트수가 현저히 감소됨을 알 수 있다. 장면 전환에 해당하는 제2 영상(PC59)의 대부분의 매크로블록들이 인트라 모드로 부호화되므로, 제3 영상(PC62)을 P 영상으로 할당하여 인터 모드로 부호화하여도 화질의 측면에서 큰 차이가 없으며, 빈번한 I 영상의 할당에 의한 화질의 변동성(fluctuation)을 방지할 수 있다.
도 16은 비트율에 따른 피크 신호-잡음비를 나타내는 도면이다.
도 16은 전술한 바와 같은 규칙적인 영상 그룹 설정을 적용한 경우 및 전술한 바와 같은 장면 전환을 고려한 적응적 영상 그룹 설정을 적용한 경우에 대한 PNSR(peak signal to noise ratio)을 비교한 그래프이다. 가로축은 비트율을 kbps 단위로 나타내고 세로축은 비트율에 상응하는 PNSR을 dB 단위로 나타낸다.
도 16에 도시된 바와 같이, 적응적 영상 그룹 설정을 적용함으로써, 상대적으로 낮은 비트율에서도 규칙적 영상 그룹 설정의 경우와 동일한 수준의 화질, 즉 동일한 PNSR을 구현할 수 있다. 다시 말해, 적응적 영상 그룹 설정을 적용함으로써 동일한 비트율에서 규칙적 영상 그룹 설정의 경우보다 양호한 화질을 구할 수 있다.
도 17 및 18은 본 발명의 실시예들에 따른 적응적 영상 그룹 설정의 예들을 나타내는 도면들이다.
도 17 및 18의 상단에는 규칙적인 영상 그룹 설정(regular GOP set)이 도시되어 있고, 하단에는 장면 전환이 검출되는 경우의 적응적 영상 그룹 설정(adaptive GOP set)이 도시되어 있다.
전술한 바와 같이, 장면 전환이 검출되지 않는 경우에는 N개의 영상마다 I 영상을 할당하여 영상 그룹들(GOP1, GOP2, GOP3)의 사이즈를 노말 사이즈로 설정한다.
도 17을 참조하면, 장면 전환이 검출되는 경우에는 장면 전환으로 검출된 영상(M1)을 포함하는 영상 그룹(GOP1a)의 사이즈를 노말 사이즈 N보다 크게 설정한다. 이러한 영상 그룹 사이즈의 증가는, 장면 전환으로 검출된 영상(M1)의 바로 다음의 영상(M1+1)부터 부가 사이즈(A)만큼 이후의 영상(M1+A+1)을 I 영상으로 할당하는 방식으로 구현될 수 있다. 이 경우, 장면 전환으로 검출된 영상(M1)을 포함하는 영상 그룹(GOP1a)의 사이즈는 이전의 인트라 영상부터 장면 전환으로 검출된 영상까지의 영상들의 개수(M1) 및 부가 사이즈(A)의 합(M1+A)으로 증가한다. 다음의 영상 그룹(GOP2a)은 장면 전환을 포함하지 않으므로 규칙적인 영상 그룹 설정에 따라서 노말 사이즈로 설정된다.
도 18에는 장면 전환으로 검출된 영상(M1) 이후 I 영상을 할당하기 이전에 장면 전환이 재차 검출되는 경우가 도시되어 있다. 이 경우 장면 전환으로 재차 검출된 영상(M2)의 바로 다음의 영상(M2+1)부터 부가 사이즈(A)만큼 이후의 영상을 I 영상으로 할당하는 방식으로 영상 그룹 사이즈를 증가시킬 수 있다. 다음의 영상 그룹(GOP2a)은 장면 전환을 포함하지 않으므로 규칙적인 영상 그룹 설정에 따라서 노말 사이즈로 설정된다.
도 17 및 18에 예시된 바와 같이, 장면 전환으로 검출된 적어도 하나의 영상을 포함하는 영상 그룹의 사이즈는 이전의 인트라 영상부터 장면 전환으로 최후에 검출된 영상까지의 영상들의 개수 및 상기 부가 사이즈의 합으로 증가할 수 있다. 일 실시예에서, 부가 사이즈(A)는 전술한 규칙적인 영상 그룹 설정의 노말 사이즈(N)와 동일하게 설정될 수 있다.
이와 같이, 인트라 영상을 인터 영상으로 대체함으로써, 빈번한 인트라 영상의 할당을 방지하여 스트림 사이즈를 감소할 수 있으며 화질의 변동성을 감소시킬 수 있다.
도 19는 본 발명의 실시예들에 따른 영상 그룹을 적응적으로 설정하는 방법을 나타내는 순서도이다.
도 2 및 19를 참조하면, 영상 타입 결정부(600)는 장면 전환 검출부(700)로부터 장면 전환의 발생 여부를 나타내는 플래그 신호(FL)를 수신한다(단계 S510). 예를 들어, 플래그 신호(FL)가 논리 하이 레벨, 즉 "1"의 값을 갖는 경우에는 장면 전환이 검출됨을 나타내고, 플래그 신호(FL)가 논리 로우 레벨, 즉 "0"의 값을 갖는 경우에는 장면 전환이 검출되지 않음을 나타낼 수 있다.
영상 타입 결정부(600)는 장면 전환이 검출되지 않는 경우(단계 S520: NO), 도 3을 참조하여 설명한 바와 같이, 인트라 영상을 규칙적으로 할당하여 영상 그룹의 사이즈를 노말 사이즈로 설정한다(단계 S530). 영상 타입 결정부(600)는 장면 전환이 검출되는 경우(단계 S520: YES), 장면 전환으로 검출된 영상의 카운트(CNT)와 기준값(K)을 비교한다(단계 S525). 카운트(CNT)는 장면 전환으로 검출된 영상이 해당 영상 그룹에서 몇 번째 영상인지를 나타낸다. 카운트(CNT)가 기준값(K)보다 작거나 같은 경우(단계 S525: YES), 인트라 영상을 규칙적으로 할당하여 영상 그룹의 사이즈를 노말 사이즈로 설정한다(단계 S530). 카운트(CNT)가 기준값(K)보다 큰 경우(단계 S525: NO), 장면 전환으로 검출된 영상을 포함하는 영상 그룹의 사이즈를 노말 사이즈보다 크게 설정한다(단계 S540).
다시 말해, 이전의 인트라 영상부터 K번째(K는 상기 노말 사이즈보다 작은 자연수) 영상까지 장면 전환이 검출되는 경우에는, 장면 전환으로 검출된 영상을 포함하는 영상 그룹의 사이즈를 노말 사이즈로 설정하고, K번째 영상의 이후에 상기 장면 전환이 검출되는 경우에만, 장면 전환으로 검출된 영상을 포함하는 영상 그룹의 사이즈를 노말 사이즈보다 크게 설정한다.
플래그 신호(FL)의 논리 레벨은 영상 단위로 결정되며, 전술한 단계들(S510, S520, S525, S530, S540)은 하나의 영상에 대한 부호화가 완료될 때마다 영상 단위로 수행되며, 모든 영상들에 대한 인코딩이 완료될 때까지(단계 S550: YES) 반복된다.
이와 같이, 장면 전환의 발생 여부뿐만 아니라 발생 시점을 고려하여 영상 그룹의 사이즈를 적응적으로 조절함으로써 화질의 변동성(fluctuation)을 감소하면서 부호화되는 데이터의 비트수, 즉 스트림 사이즈를 감소할 수 있다.
도 20은 본 발명의 실시예들에 따른 적응적 영상 그룹 설정의 예를 나타내는 도면이다.
도 20의 상단에는 규칙적인 영상 그룹 설정(regular GOP set)이 도시되어 있고, 하단에는 장면 전환이 검출되는 경우의 적응적 영상 그룹 설정(adaptive GOP set)이 도시되어 있다.
도 20을 참조하면, 장면 전환이 검출되지 않는 경우에는 도 3을 참조하여 설명한 바와 같이 N개의 영상마다 I 영상을 할당하여 영상 그룹들(GOP1, GOP2)의 사이즈를 노말 사이즈로 설정한다.
장면 전환이 검출되는 경우는, 이전의 인트라 영상부터 K번째 영상까지 장면 전환이 검출되는 제1 경우(CASE1)와 K번째 영상의 이후에 장면 전환이 검출되는 제2 경우(CASE2)로 구분된다. 기준값(K)은 오류 전파 방지 및 스트림 사이즈 감소의 효과를 비교하여 노말 사이즈(N)보다 작은 적절한 값으로 결정될 수 있다.
제1 경우(CASE1)에는 이전의 인트라 영상과 인접하여 장면 전환이 발생하였기 때문에, 장면 전환으로 검출된 영상(M1)과 노말 사이즈에 따라 다음의 인트라 영상으로 할당되는 영상(N+1)까지 영상 간격이 어느 정도 확보되고, 영상 그룹의 사이즈를 증가시킨다면 에러 전파의 가능성이 커질 수 있다. 따라서 제1 경우(CASE1)에는 장면 전환이 발생하더라도 영상 그룹들(GOP1a, GOP2a)의 사이즈를 그대로 노말 사이즈로 설정한다.
제2 경우(CASE2)에는 규칙적인 영상 그룹 설정을 유지하면 장면 전환으로 검출된 영상(M2)과 노말 사이즈에 따라 다음의 인트라 영상으로 할당되는 영상(N+1)까지의 영상 간격이 비교적 작기 때문에 에러 전파 방지를 위한 실질적 스트림 사이즈가 불필요하게 증가한다. 따라서 제2 경우(CASE2)에는 노말 사이즈에 따라 인트라 영상으로 할당될 영상(N+1)을 이전의 영상을 참조하여 부호화되는 P-영상으로 대체한다. 이 경우 장면 전환으로 검출된 영상(M2)을 포함하는 영상 그룹(GOP1b)의 사이즈는 노말 사이즈의 2배인 2*N으로 증가한다.
기준값(K)는 부가 사이즈(A)
도 21은 도 2의 비디오 인코더에 포함되는 영상 타입 결정부의 일 예를 나타내는 블록도이고, 도 22는 도 21 영상 타입 결정부의 동작을 나타내는 도면이다.
도 21을 참조하면, 영상 타입 결정부(600b)는 카운터(610), 비교기(620), 논리곱 게이트(625), 레지스터(630) 및 신호 발생기(650)를 포함하여 구현될 수 있다. 도 8의 영상 타입 결정부(600a)와 비교하면, 도 21의 영상 타입 결정부(600b)는 비교기(620)와 논리곱 게이트(625)를 더 포함하고, 플래그 신호(FL) 대신에 마스크 플래그 신호(MFL)를 레지스터(630)에 제공한다. 그 밖의 구성 및 동작은 도 8 및 9와 실질적으로 동일하므로 중복되는 설명은 생략한다.
도 21 및 22를 참조하면, 비교기(620)는 카운트(CNT)와 기준값(K)을 비교하여 카운트(CNT)가 기준값(K)보다 큰 경우에 논리 하이 레벨로 활성화되는 비교 신호(CMP)를 발생한다. 논리곱 게이트(625)는 비교 신호(CMP)와 플래그 신호(FL)를 논리곱 연산하여 마스크 플래그 신호(MFL)를 발생한다. 이전의 인트라 영상부터 K번째 영상 이내에서 장면 전환이 발생하는 경우에는 플래그 신호(FL)가 활성화되더라도 마스크 플래그 신호(MFL)는 비활성화 상태를 유지하고, K번째 영상 이후에 장면 전환이 검출된 경우에만 마스크 플래그 신호(MFL)가 활성화되어 레지스터(630)가 "1"의 값으로 세팅된다. 이와 같은 방법에 의해 장면 전환이 발생하는 경우는 도 20에 도시된 제1 경우(CASE1)와 제2 경우(CASE2)로 구분되어 처리될 수 있다. 신호 발생기(650)는 제1 경우(CASE1)에는 영상 그룹의 사이즈를 노말 사이즈로 설정하고 제2 경우(CASE2)에는 영상 그룹의 사이즈를 노말 사이즈보다 크게 설정할 수 있다.
도 23은 본 발명의 실시예들에 따른 적응적 영상 그룹 설정의 예를 나타내는 도면이다.
도 23의 상단에는 규칙적인 영상 그룹 설정(regular GOP set)이 도시되어 있고, 하단에는 장면 전환이 검출되는 경우의 적응적 영상 그룹 설정(adaptive GOP set)이 도시되어 있다.
도 23을 참조하면, 장면 전환이 검출되지 않는 경우에는 도 3을 참조하여 설명한 바와 같이 N개의 영상마다 I 영상을 할당하여 영상 그룹들(GOP1, GOP2)의 사이즈를 노말 사이즈로 설정한다.
장면 전환이 검출되는 경우는, 이전의 인트라 영상부터 K번째 영상까지 장면 전환이 검출되는 제1 경우(CASE1)와 K번째 영상의 이후에 장면 전환이 검출되는 제2 경우(CASE2)로 구분된다. 기준값(K)은 오류 전파 방지 및 스트림 사이즈 감소의 효과를 비교하여 노말 사이즈(N)보다 작은 적절한 값으로 결정될 수 있다.
제1 경우(CASE1)에는 이전의 인트라 영상과 인접하여 장면 전환이 발생하였기 때문에, 장면 전환으로 검출된 영상(M1)과 노말 사이즈에 따라 다음의 인트라 영상으로 할당되는 영상(N+1)까지 영상 간격이 어느 정도 확보되고, 영상 그룹의 사이즈를 증가하는 경우에는 에러 전파의 가능성이 커질 수 있다. 따라서 제1 경우(CASE1)에는 장면 전환이 발생하더라도 영상 그룹들(GOP1a, GOP2a)의 사이즈를 노말 사이즈로 설정한다.
제2 경우(CASE2)에는 규칙적인 영상 그룹 설정을 유지하면 장면 전환으로 검출된 영상(M2)과 노말 사이즈에 따라 다음의 인트라 영상으로 할당되는 영상(N+1)까지의 영상 간격이 비교적 작기 때문에 스트림 사이즈가 불필요하게 증가한다. 따라서 제2 경우(CASE2)에는 장면 전환으로 검출된 영상(M2)의 바로 다음의 영상(M2+1)부터 부가 사이즈(A)만큼 이후의 영상(M2+A+1)을 I 영상으로 할당한다. 이 경우, 장면 전환으로 검출된 영상(M2)을 포함하는 영상 그룹(GOP1b)의 사이즈는 이전의 인트라 영상부터 장면 전환으로 검출된 영상까지의 영상들의 개수(M2) 및 부가 사이즈(A)의 합(M2+A)으로 증가한다. 부가 사이즈(A)는 장면 전환에 의해 증가된 사이즈(M2+A)가 노말 사이즈(N)보다 클 수 있도록, K+A > N을 만족하는 범위에서 적절한 값으로 결정될 수 있다.
도 24는 본 발명의 실시예들에 따른 비디오 인코더의 동작 방법을 나타내는 순서도이다.
도 2 및 24를 참조하면, 영상 타입 결정부(600)는 영상 타입 할당 신호(PTA)를 이용하여 I 영상, P 영상 및 B 영상 중 하나로 현재 부호화되는 영상의 타입을 할당한다(단계 S10). 전술한 바와 같이 영상 타입 결정부(600)는 장면 전환의 검출 결과에 기초하여 적응적 영상 그룹 설정을 수행한다. 현재 부호화되는 영상이 인트라 영상인 경우(S20: YES), 인코딩 모듈(100)은 매크로블록 단위로 인트라 예측을 수행하고(단계 S30), 인트라 예측의 결과에 기초하여 부호화 모드를 결정하고(단계 S50), 결정된 부호화 모드에 따라서 부호화를 수행한다(단계 S60).
현재 부호화되는 영상이 인트라 영상이 아닌 경우(S20: NO), 즉 P 영상 및 B 영상을 포함하는 인터 영상인 경우, 인코딩 모듈(100)은 매크로블록 단위로 인트라 예측 및 인터 예측을 수행하고(단계 S40), 인트라 예측의 결과 및 인터 예측의 결과에 기초하여 부호화 모드를 결정하고(단계 S50), 결정된 부호화 모드에 따라서 부호화를 수행한다(단계 S60). 한편 장면 전환 검출부(700)는 인트라 예측의 결과 및 인터 예측의 결과에 기초하여 장면 전환을 검출한다(S300). 상기 단계들(S10, S20, S30, S40, S50, S60, S300)은 영상 단위로 수행되고 모든 영상들에 대한 인코딩이 완료될 때까지(단계 S70: YES) 반복된다.
이와 같이, 인트라 영상에 대해서는 장면 전환 검출이 생략되고, 인터 영상인 경우에만 장면 전환 검출을 수행할 수 있다. 부호화 모드를 결정하기 위한 인트라 예측의 결과 및 인터 예측의 결과에 기초한 후처리 방식에 의해, 전처리의 경우에 요구되는 추가적인 소프트웨어 및 하드웨어의 부담 없이 장면 전환을 검출할 수 있다.
도 25는 본 발명의 실시예들에 따른 장면 전환 검출 방법을 나타내는 순서도이고, 도 26은 도 2의 비디오 인코더에 포함되는 장면 전환 검출부의 일 예를 나타내는 블록도이다.
도 25 및 26을 참조하면, 장면 전환 검출부(700a)는 누적기(720), 비율 계산기(740) 및 비교기(760)를 포함하여 구현될 수 있다. 누적기(720)는 제1 누적기(721) 및 제2 누적기(722)를 포함한다. 장면 전환 검출부(700a)는 인에이블 신호(EN)에 응답하여 인에이블될 수 있다.
먼저, 장면 전환 검출부(700a)는 영상 엔드 신호(EOP)에 응답하여 초기화될 수 있다(단계 S310). 예를 들어, 인트라 누적 값(ACC1) 및 인터 누적 값(ACC2)이 각각 0으로 초기화될 수 있다.
제1 누적기(721)는 매크로블록 단위로 최소 인트라 율-왜곡 코스트(MCST1)를 수신하고(단계 S321), 이를 누적하여 인트라 누적 값(ACC1)을 제공한다(단계 S322). 제2 누적기(722)는 매크로블록 단위로 최소 인터 율-왜곡 코스트(MCST2)를 수신하고(단계 S331), 이를 누적하여 인터 누적 값(ACC2)을 제공한다(단계 S332). 최소 인트라 율-왜곡 코스트(MCST1) 및 최소 인터 율-왜곡 코스트(MCST2)는 도 2를 참조하여 전술한 바와 같이 예측부(200)로부터 제공된다. 이러한 누적 계산은 하나의 영상에 대하여 모든 매크로블록들이 부호화될 때까지(단계 S340: YES) 반복된다.
하나의 영상에 대하여 모든 매크로블록들이 부호화되면(단계 S340: YES), 비율 계산기(740)는 인터 누적 값(ACC2)에 대한 인트라 누적 값(ACC1)의 비율(RCST)을 계산하여 제공한다(단계 S350).
비교기(760)는 계산된 비율(RCST)이 기준 값(TH)보다 작거나 같은 경우(단계 S360: YES) 장면 전환이 발생하였음을 나타내도록 플래그 신호(FL)를 논리 하이 레벨로 활성화한다(단계 S370). 비교기(760)는 계산된 비율(RCST)이 기준 값(TH)보다 큰 경우(단계 S360: NO) 장면 전환이 발생하지 않았음을 나타내도록 플래그 신호(FL)를 논리 로우 레벨로 비활성화한다(단계 S380).
도 25에는 부호화되는 하나의 영상에 대한 장면 전환 검출 방법이 도시되어 있으며, 동일한 과정이 각각의 영상에 대하여 반복된다. 이와 같이, 최소 인트라 율-왜곡 코스트의 누적 값 및 최소 인터 율-왜곡 코스트의 누적 값을 비교하여 장면 전환의 발생 여부를 정밀하게 판별할 수 있다.
도 27은 도 2의 비디오 인코더에 포함되는 인에이블 신호 발생기의 일 예를 나타내는 블록도이다.
도 27을 참조하면, 인에이블 신호 발생기(650)는 영상 타입 선택기(652), 비교기(654) 및 논리곱 게이트(656)를 포함하여 구현될 수 있다.
영상 타입 선택기(652)는 영상 타입 할당 신호(PTA)에 기초하여 현재 부호화되는 영상이 특정한 타입의 영상일 때 활성화되는 제1 신호(S1)를 발생한다. 예를 들어, 도 24의 방법을 구현하는 경우에는, 제1 신호(S1)는 인트라 영상의 경우에는 논리 로우 레벨로 비활성화되고, 인터 영상의 경우에는 논리 하이 레벨로 활성화될 수 있다. 후술하는 도 28의 방법을 구현하는 경우에는 제1 신호(S1)는 인트라 영상 및 B 영상의 경우에는 논리 로우 레벨로 비활성화되고, P 영상의 경우에만 논리 하이 레벨로 활성화될 수 있다.
비교기(654)는 도 21에 도시된 비교기(620)와 동일하게 동작하며, 카운트(CNT)와 기준값(K)을 비교하여 카운트(CNT)가 기준값(K)보다 큰 경우에 논리 하이 레벨로 활성화되는 제2 신호(S2)를 발생한다.
논리곱 게이트(656)는 제1 신호(S1)와 제2 신호(S2)를 논리곱 연산하여 인에이블 신호(EN)를 발생한다. 인에이블 신호(EN)는 장면 전환 검출부(700)에 제공될 수 있고, 장면 전환 검출부(700)는 인에이블 신호(EN)가 활성화될 때만 장면 전환 검출을 수행하도록 구현될 수 있다. 인에이블 신호 발생기(650)는 영상 타입 결정부(600)에 포함될 수도 있고 장면 전환 검출부(700)에 포함될 수도 있다.
결과적으로, 영상 타입 선택기(652)에서 발생되는 제1 신호(S1)의 선택적인 활성화에 의해서 특정한 타입의 영상에 대해서만 장면 전환 검출을 수행할 수 있다. 예를 들어, 인터 영상에 대해서만 장면 전환 검출을 수행할 수도 있고, 인터 영상 중 P 영상에 대해서만 장면 전환 검출을 수행할 수도 있다. 또한, 비교기(654)에서 발생되는 제2 신호(S2)의 선택적인 활성화에 의해서 이전의 인트라 영상부터 K번째(K는 상기 영상 그룹의 노말 사이즈보다 작은 자연수) 영상까지의 영상들에 대해서는 장면 전환 검출이 생략되고 상기 K번째 영상 이후의 영상들에 대해서만 장면 전환 검출이 수행될 수 있다.
도 8의 영상 타입 결정부(600a)와 도 27의 인에이블 신호 발생기(650)의 조합에 의해 도 21의 영상 타입 결정부(600b)와 유사한 기능을 구현할 수 있다.
도 28은 본 발명의 실시예들에 따른 비디오 인코더의 동작 방법을 나타내는 순서도이다.
도 2 및 28을 참조하면, 영상 타입 결정부(600)는 영상 타입 할당 신호(PTA)를 이용하여 I 영상, P 영상 및 B 영상 중 하나로 현재 부호화되는 영상의 타입을 할당한다(단계 S10). 전술한 바와 같이 영상 타입 결정부(600)는 장면 전환의 검출 결과에 기초하여 적응적 영상 그룹 설정을 수행한다. 현재 부호화되는 영상이 P 영상이 아닌 경우(S21: NO), 인코딩 모듈(100)은 매크로블록 단위로 인트라 예측 및 인터 예측을 수행하고(단계 S31), 인트라 예측의 결과 및 인터 예측의 결과에 기초하여 부호화 모드를 결정하고(단계 S50), 결정된 부호화 모드에 따라서 부호화를 수행한다(단계 S60).
현재 부호화되는 영상이 P 영상인 경우(S20: YES), 인코딩 모듈(100)은 매크로블록 단위로 인트라 예측 및 인터 예측을 수행하고(단계 S41), 인트라 예측의 결과 및 인터 예측의 결과에 기초하여 부호화 모드를 결정하고(단계 S50), 결정된 부호화 모드에 따라서 부호화를 수행한다(단계 S60). 한편 장면 전환 검출부(700)는 인트라 예측의 결과 및 인터 예측의 결과에 기초하여 장면 전환을 검출한다(S300). 상기 단계들(S10, S20, S30, S40, S50, S60, S300)은 모든 영상들에 대한 인코딩이 완료될 때까지(단계 S70: YES) 반복된다.
이와 같이, I 영상 및 B 영상에 대해서는 장면 전환 검출이 생략되고, P 영상인 경우에만 장면 전환 검출을 수행할 수 있다. 부호화 모드를 결정하기 위한 인트라 예측의 결과 및 인터 예측의 결과에 기초한 후처리 방식에 의해, 전처리의 경우에 요구되는 추가적인 소프트웨어 및 하드웨어의 부담 없이 장면 전환을 정밀하게 검출할 수 있다.
도 29는 영상 타입에 따른 참조 영상들을 설명하기 위한 도면이고, 도 30, 31 및 32는 장면 전환 검출과 실제 장면 전환의 관계를 설명하기 위한 도면들이다.
도 29 내지 32에는 디스플레이 순서에 따른 제1 영상(PC1), 제2 영상(PC2), 제3 영상(PC3) 및 제4 영상(PC4)이 도시되어 있다. 제1 영상(PC1) 및 제4 영상(PC4)은 이전의 영상을 참조하여 부호화되는 P 영상이고, 제2 영상(PC2) 및 제3 영상(PC3)은 이전의 영상 및 이후의 영상을 참조하여 부호화되는 B 영상이다.
도 29는 제1 영상(PC1) 및 제4 영상(PC4)에 대해서 장면 전환이 발생하지 않은 경우를 나타낸다. 전술한 바와 같이, P 영상에 대해서만 장면 전환 검출이 수행될 수 있다. 이 경우, 제1 영상(PC1) 및 제4 영상(PC4)에 대해서 플래그 신호(FL)는 "0"의 값으로 비활성화 되고, 제1 내지 제4 영상들(PC1, PC2, PC3, PC4)은 동일한 장면(scene)에 속하는 것으로 결정된다.
영상 타입에 따라 참조 영상의 범위가 다르기 때문에 부호화 순서는 디스플레이 순서와 다르게 결정된다. 이미 부호화가 완료되어 재구성된(reconstructed) 제1 영상(PC1)을 참조하여 제4 영상(PC4)이 먼저 부호화되고, 제2 영상(PC2) 및 제3 영상(PC3)은 이전의 영상에 해당하는 제1 영상(PC1) 및 이후의 영상에 해당하는 제4 영상(PC4)을 참조하여 부호화된다. 실시예에 따라서, B 영상은 참조 영상으로 이용될 수도 있고, P 영상은 복수의 참조 영상들을 이용하여 부호화될 수도 있다.
도 30, 31 및 32는 제4 영상(PC4)에 대하여 장면 전환이 검출되어 플래그 신호(FL)가 "1"의 값으로 활성화되는 경우를 나타낸다. 제2 영상(PC2) 및 제3 영상(PC3)은 디스플레이 순서상으로는 제4 영상(PC4)보다 선행하지만, 부호화 순서상으로는 제4 영상(PC4)보다 후행한다.
도 30은 제1 영상(PC1)이 제1 장면(SCENE1)에 속하고 제2 영상(PC2), 제3 영상(PC3) 및 제4 영상(PC4)은 제2 장면(SCENE2)에 속하는 경우를 나타낸다. 이 경우, 제2 영상(PC2) 및 제3 영상(PC3)은 제1 영상(PC1)보다 제4 영상(PC4)과 상관관계(correlation)가 크므로, 제2 영상(PC2) 및 제3 영상(PC3)에 포함된 대부분의 매크로블록들은 제4 영상(PC4)을 참조하여 부호화된다.
도 31은 제1 영상(PC1) 및 제2 영상(PC2)이 제1 장면(SCENE1)에 속하고 제3 영상(PC3) 및 제4 영상(PC4)은 제2 장면(SCENE2)에 속하는 경우를 나타낸다. 이 경우, 상관관계에 따라서 제2 영상(PC3)에 포함된 대부분의 매크로블록들은 제1 영상(PC1)을 참조하여 부호화되고, 제3 영상(PC3)에 포함된 대부분의 매크로블록들은 제4 영상(PC4)을 참조하여 부호화된다.
도 32는 제1 영상(PC1), 제2 영상(PC2) 및 제3 영상(PC3)이 제1 장면(SCENE1)에 속하고 제4 영상(PC4)은 제2 장면(SCENE2)에 속하는 경우를 나타낸다. 이 경우, 상관관계에 따라서 제2 영상(PC3) 및 제3 영상(PC3)에 포함된 대부분의 매크로블록들은 제1 영상(PC1)을 참조하여 부호화된다.
이와 같이, 인터 영상 중에서 B 영상에 대해서는 장면 전환 검출을 생략하고 P 영상에 대해서만 장면 전환 검출을 수행하더라도, B 영상에서 실제로 장면 전환이 발생하는 경우들을 모두 커버할 수 있다.
도 33은 본 발명의 실시예들에 따른 비디오 인코더를 나타내는 블록도이다.
도 33을 참조하면, 비디오 인코더(10a)는 인코딩 모듈(100) 및 제어 모듈(500a)을 포함한다.
인코딩 모듈(100)은 인트라 예측(intra prediction) 및 인터 예측(inter prediction)을 수행하여 매크로블록 단위로 부호화 모드를 결정하고, 상기 부호화 모드에 따라 비디오 데이터를 매크로블록 단위로 부호화한다. 인코딩 모듈(100)의 구성 및 동작은 도 2를 참조하여 설명한 바와 같고 중복되는 설명은 생략한다.
제어 모듈(500a)은 인코딩 모듈(100)로부터 제공되는 인트라 예측의 결과 및 인터 예측의 결과, 즉 최소 인트라 율-왜곡 코스트(MCST1) 및 최소 인터 율-왜곡 코스트(MCST2)에 기초하여 영상 단위로 장면 전환을 검출하고, 상기 장면 전환의 검출 결과에 기초하여 상기 영상 그룹의 사이즈를 조절한다.
제어 모듈(500a)은 영상 타입 결정부(600), 장면 전환 검출부(700) 및 비트율 제어부(800)를 포함할 수 있다.
장면 전환 검출부(700)는 인코딩 모듈(100)의 예측부(200)로부터 매크로블록 단위로 제공되는 최소 인트라 율-왜곡 코스트(MCST1) 및 최소 인터 율-왜곡 코스트(MCST2)에 기초하여 장면 전환의 발생 여부를 나타내는 플래그 신호(FL)를 발생한다. 예를 들어, 도 24 내지 32를 참조하여 전술한 바와 같이, 장면 전환 검출부(700)는 최소 인트라 율-왜곡 코스트(MCST1) 및 최소 인터 율-왜곡 코스트(MCST2)를 각각 영상 단위로 합산한 인트라 누적 값 및 인터 누적 값에 기초하여 플래그 신호(FL)를 발생할 수 있다. 장면 전환 검출부(700)는 하나의 영상에 대한 부호화가 완료될 때마다 활성화되는 영상 엔드 신호(EOP)에 동기하여 영상 단위로 플래그 신호(FL)의 레벨을 결정할 수 있다.
영상 타입 결정부(600)는 플래그 신호(FL)에 기초하여 영상 그룹의 사이즈를 조절한다. 영상 타입 결정부(600)는 영상 엔드 신호(EOP)에 동기하여 현재 부호화되는 영상의 각각에 대한 영상 타입을 나타내는 영상 타입 할당 신호(PTA)를 발생할 수 있다. 예를 들어, 영상 타입 할당 신호(PTA)는 I 영상, P 영상 또는 B 영상을 나타낼 수 있다. 다른 영상을 참조하지 않고 부호화되는 I 영상의 할당에 의해 영상 그룹의 사이즈가 결정될 수 있고, 이전의 영상을 참조하여 부호화되는 P 영상 및/또는 이전의 영상 및 이후의 영상을 참조하여 부호화되는 B 영상의 할당 패턴에 의해 영상 그룹의 구조가 결정될 수 있다. 영상 타입 결정부(600)는 현재 부호화되는 영상의 타입에 따라서 선택적으로 장면 전환 검출부(700)를 인에이블시키기 위한 인에이블 신호(EM)를 발생할 수 있다.
도 2의 제어 모듈(500)과 비교하여, 도 33의 제어 모듈(500a)은 비트율 제어부(800)를 더 포함한다. 비트율 제어부(800)는 부호화 모드를 결정하기 위한 인트라 예측의 결과 및 인터 예측의 결과에 기초하여, 부호화되는 데이터의 비트율을 제어한다.
일 실시예에서, 비트율 제어부(800)는 각각의 매크로블록에 대한 최소 인트라 율-왜곡 코스트(MCST1) 및 최소 인터 율-왜곡 코스트(MCST2)에 기초하여 매크로블록 단위로 양자화 계수(QP)를 조절할 수 있다. 다른 실시예에서, 비트율 제어부(800)는 하나의 영상에 포함되는 복수의 매크로블록들에 대한 최소 인트라 율-왜곡 코스트들 및 최소 인터 율-왜곡 코스트들을 각각 합산한 인트라 누적 값(ACC1) 및 인터 누적 값(ACC2)에 기초하여 영상 단위로 양자화 계수(QP)를 조절할 수 있다. 또 다른 실시예에서, 비트율 제어부(800)는 상기 매크로블록 단위의 비트율 제어 및 상기 영상 단위의 비트율 제어를 함께 수행할 수 있다.
일반적으로 비디오 인코더는 영상 그룹의 구조 및 사이즈를 고정하고, 부호화되는 데이터의 비트율 제어도 이러한 고정된 구조 및 사이즈에 기초하여 수행된다. 스트림 사이즈를 효율적으로 관리하기 위한 접근을 통상 레이트 콘트롤(RC: Rate Control)이라 한다. 하나의 영상 그룹에 대해 각 영상마다 할당된 레이트 콘트롤을 위한 버짓(Budget)이 설정되며 부호화 진행에 따라 약간의 여유를 가지고 영상 단위 또는 매크로블록 단위로 목표 비트수를 할당한다. 상기 목표 비트수는 양자화 계수(QP)로 표현될 수 있고, 양자화 계수(QP)가 커질수록 부호화되는 데이터의 비트수는 감소한다. 즉 양자화 계수(QP)가 커질수록 화질이 저하되고 양자화 계수(QP)가 작아질수록 화질이 향상된다.
본 발명의 실시예들에 따른 장면 전환 검출 결과에 기초한 적응적 영상 그룹 설정과 함께, 인트라 예측의 결과 및 인터 예측의 결과에 기초한 적응적 비트율 제어를 적용함으로써 안정된 화질을 유지하면서 스트림 사이즈를 감소시킬 수 있다.
도 34는 본 발명의 실시예들에 따른 비디오 인코더를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 34를 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1010), 메모리 장치(1020), 저장 장치(1030), 입출력 장치(1040), 파워 서플라이(1050) 및 촬영 장치(900)를 포함할 수 있다. 한편, 도 34에는 도시되지 않았지만, 컴퓨팅 시스템(1000)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다.
프로세서(1010)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 프로세서(1010)는 비디오 코덱(1011)을 포함할 수 있다. 비디오 코텍(1011)은 도 1 내지 33을 참조하여 설명한 적응적 영상 그룹 설정을 수행하는 비디오 인코더를 포함한다. 또한 비디오 코텍(1011)은 상기 비디오 인코더에 의해 인코딩된 압축 데이터를 복호화하기 위한 비디오 디코더를 더 포함할 수 있다. 상기 비디오 인코더와 상기 비디오 인코더는 하나로 통합되어 구현될 수 있다. 실시예에 따라, 프로세서(1010)는 마이크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 프로세서(1010)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus)를 통하여 메모리 장치(1020), 저장 장치(1030), 촬영 장치(900) 및 입출력 장치(1040)와 통신을 수행할 수 있다. 실시예에 따라, 프로세서(1010)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다. 메모리 장치(1020)는 컴퓨팅 시스템(1000)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리 장치(1020)는 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. 저장 장치(1030)는 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브(hard disk drive), 씨디롬(CD-ROM) 등을 포함할 수 있다. 입출력 장치(1040)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 파워 서플라이(1050)는 전자 기기(1000)의 동작에 필요한 동작 전압을 공급할 수 있다.
촬영 장치(900)는 상기 버스들 또는 다른 통신 링크를 통해서 프로세서(1010)와 연결되어 통신을 수행할 수 있다. 촬영 장치(900)는 프로세서(1010)와 함께 하나의 칩에 집적될 수도 있고, 서로 다른 칩에 각각 집적될 수도 있다.
컴퓨팅 시스템(1000)은 다양한 형태들의 패키지로 구현될 수 있다. 예를 들어, 컴퓨팅 시스템(1000)의 적어도 일부의 구성들은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 컴퓨팅 시스템(1000)은 본 발명의 실시예들에 따른 동작 인식 방법을 수행하는 모든 컴퓨팅 시스템으로 해석되어야 할 것이다. 예를 들어, 컴퓨팅 시스템(1000)은 디지털 카메라, 이동 전화기, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 스마트폰 등을 포함할 수 있다.
도 35는 도 34의 컴퓨팅 시스템에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
도 35를 참조하면, 컴퓨팅 시스템(1100)은 MIPI 인터페이스를 사용 또는 지원할 수 있는 데이터 처리 장치로 구현될 수 있고, 어플리케이션 프로세서(1110), 이미지 센서(1140) 및 디스플레이(1150) 등을 포함할 수 있다. 어플리케이션 프로세서(1110)의 CSI 호스트(1112)는 카메라 시리얼 인터페이스(Camera Serial Interface; CSI)를 통하여 이미지 센서(1140)의 CSI 장치(1141)와 시리얼 통신을 수행할 수 있다. 일 실시예에서, CSI 호스트(1112)는 디시리얼라이저(DES)를 포함할 수 있고, CSI 장치(1141)는 시리얼라이저(SER)를 포함할 수 있다. 어플리케이션 프로세서(1110)의 DSI 호스트(1111)는 디스플레이 시리얼 인터페이스(Display Serial Interface; DSI)를 통하여 디스플레이(1150)의 DSI 장치(1151)와 시리얼 통신을 수행할 수 있다.
일 실시예에서, DSI 호스트(1111)는 시리얼라이저(SER)를 포함할 수 있고, DSI 장치(1151)는 디시리얼라이저(DES)를 포함할 수 있다. 나아가, 컴퓨팅 시스템(1100)은 어플리케이션 프로세서(1110)와 통신을 수행할 수 있는 알에프(Radio Frequency; RF) 칩(1160)을 더 포함할 수 있다. 컴퓨팅 시스템(1100)의 PHY(1113)와 RF 칩(1160)의 PHY(1161)는 MIPI(Mobile Industry Processor Interface) DigRF에 따라 데이터 송수신을 수행할 수 있다. 또한, 어플리케이션 프로세서(1110)는 PHY(1161)의 MIPI DigRF에 따른 데이터 송수신을 제어하는 DigRF MASTER(1114)를 더 포함할 수 있다.
한편, 컴퓨팅 시스템(1100)은 지피에스(Global Positioning System; GPS)(1120), 스토리지(1170), 마이크(1180), 디램(Dynamic Random Access Memory; DRAM)(1185) 및 스피커(1190)를 포함할 수 있다. 또한, 컴퓨팅 시스템(1100)은 초광대역(Ultra WideBand; UWB)(1210), 무선 랜(Wireless Local Area Network; WLAN)(1220) 및 와이맥스(Worldwide Interoperability for Microwave Access; WIMAX)(1230) 등을 이용하여 통신을 수행할 수 있다. 다만, 컴퓨팅 시스템(1100)의 구조 및 인터페이스는 하나의 예시로서 이에 한정되는 것이 아니다.
해당 기술분야의 숙련된 당업자는 본 발명의 실시예들이 시스템, 방법, 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수 있음을 이해할 것이다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다.
본 발명의 실시예들에 따른 비디오 인코더 및 그 제어 방법은 영상 그룹에 기초하여 비디오 데이터를 부호화하는 임의의 장치 및 시스템에 유용하게 이용될 수 있다. 특히 본 발명의 실시예들에 따른 비디오 인코더 및 그 제어 방법은 MPEG, H.261, H.262, H.263, H.264 등의 표준에 따르는 임의의 장치 및 시스템에 적용될 수 있으며, CATV(Cable TV on optical networks, copper, etc.), DBS(Direct broadcast satellite video services), DSL(Digital subscriber line video services), DTTB(Digital terrestrial television broadcasting), ISM(Interactive storage media (optical disks, etc.)), MMM(Multimedia mailing), MSPN(Multimedia services over packet networks), RTC(Real-time conversational services (videoconferencing, videophone, etc.)),RVS(Remote video surveillance), SSM(Serial storage media (digital VTR, etc.)) 등의 기술분야에서 유용하게 이용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 다른 영상을 참조하지 않고 부호화되는 인트라 영상(intra picture) 및 다른 영상을 참조하여 부호화되는 인터 영상(inter picture)의 할당에 의해 결정되는 영상 그룹(GOP: group of pictures)에 기초하여 비디오 데이터를 매크로블록 단위로 부호화하는 비디오 인코더의 제어 방법으로서,
    인트라 예측(intra prediction) 및 인터 예측(inter prediction)을 수행하여 매크로블록 단위로 부호화 모드를 결정하는 단계;
    상기 부호화 모드를 결정하기 위한 상기 인트라 예측의 결과 및 상기 인터 예측의 결과에 기초하여 영상 단위로 장면 전환을 검출하는 단계; 및
    상기 장면 전환의 검출 결과에 기초하여 상기 영상 그룹의 사이즈를 조절하는 단계를 포함하는 비디오 인코더의 제어 방법.
  2. 제1 항에 있어서, 상기 영상 그룹의 사이즈를 조절하는 단계는,
    상기 장면 전환이 검출되지 않는 경우, 상기 인트라 영상을 규칙적으로 할당하여 상기 영상 그룹의 사이즈를 노말 사이즈로 설정하는 단계; 및
    상기 장면 전환이 검출되는 경우, 상기 장면 전환으로 검출된 영상을 포함하는 상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계를 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  3. 제2 항에 있어서, 상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계는,
    상기 장면 전환으로 검출된 제1 영상의 이후에 상기 노말 사이즈에 따라서 상기 인트라 영상으로 할당될 제2 영상을 상기 인터 영상으로 대체하는 단계를 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  4. 제3 항에 있어서, 상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계는,
    상기 인터 영상으로 대체된 제2 영상 이후 상기 인트라 영상을 할당하기 이전에 상기 장면 전환이 재차 검출되는 경우, 상기 장면 전환으로 재차 검출된 제3 영상의 이후에 상기 노말 사이즈에 따라서 상기 인트라 영상으로 할당될 제4 영상을 상기 인터 영상으로 재차 대체하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  5. 제4 항에 있어서,
    상기 제2 영상 및 상기 제4 영상은 이전의 영상을 참조하여 부호화되는 P-영상으로 대체되는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  6. 제2 항에 있어서,
    상기 장면 전환으로 검출된 적어도 하나의 영상을 포함하는 상기 영상 그룹의 사이즈는 상기 노말 사이즈의 M 배(M은 2 이상의 자연수)로 증가하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  7. 제2 항에 있어서, 상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계는,
    상기 장면 전환으로 검출된 제1 영상의 바로 다음의 영상부터 부가 사이즈만큼 이후의 영상을 상기 인트라 영상으로 할당하는 단계를 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  8. 제7 항에 있어서, 상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계는,
    상기 제1 영상 이후 상기 인트라 영상을 할당하기 이전에 상기 장면 전환이 재차 검출되는 경우, 상기 장면 전환으로 재차 검출된 제2 영상의 바로 다음의 영상부터 상기 부가 사이즈만큼 이후의 영상을 상기 인트라 영상으로 할당하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  9. 제2 항에 있어서,
    상기 장면 전환으로 검출된 적어도 하나의 영상을 포함하는 상기 영상 그룹의 사이즈는 상기 이전의 인트라 영상부터 상기 장면 전환으로 최후에 검출된 영상까지의 영상들의 개수 및 상기 부가 사이즈의 합으로 증가하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  10. 제9 항에 있어서,
    상기 부가 사이즈는 상기 노말 사이즈와 동일하게 설정되는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  11. 제1 항에 있어서, 상기 영상 그룹의 사이즈를 조절하는 단계는,
    상기 장면 전환이 검출되지 않는 경우, 상기 인트라 영상을 규칙적으로 할당하여 상기 영상 그룹의 사이즈를 노말 사이즈로 설정하는 단계;
    상기 이전의 인트라 영상부터 K번째(K는 상기 노말 사이즈보다 작은 자연수) 영상까지 상기 장면 전환이 검출되는 경우, 상기 장면 전환으로 검출된 영상을 포함하는 상기 영상 그룹의 사이즈를 상기 노말 사이즈로 설정하는 단계; 및
    상기 K번째 영상의 이후에 상기 장면 전환이 검출되는 경우, 상기 장면 전환으로 검출된 영상을 포함하는 상기 영상 그룹의 사이즈를 상기 노말 사이즈보다 크게 설정하는 단계를 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  12. 제1 항에 있어서, 상기 부호화 모드를 결정하는 단계는,
    각각의 매크로블록에 대하여 상기 인트라 예측에 의한 최소 인트라 율-왜곡 코스트 및 상기 인터 예측에 의한 최소 인터 율-왜곡 코스트를 계산하는 단계; 및
    상기 최소 인트라 율-왜곡 코스트 및 상기 최소 인터 율-왜곡 코스트 중에서 작은 값에 상응하는 모드를 상기 매크로블록의 부호화 모드로 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  13. 제12 항에 있어서, 상기 장면 전환을 검출하는 단계는,
    하나의 영상에 포함되는 복수의 매크로블록들에 대하여, 상기 최소 인트라 율-왜곡 코스트들을 합산한 인트라 누적 값 및 상기 최소 인터 율-왜곡 코스트들을 합산한 인터 누적 값을 계산하는 단계; 및
    상기 인트라 누적 값 및 상기 인터 누적 값에 기초하여 상기 장면 전환의 발생 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  14. 제13 항에 있어서, 상기 장면 전환의 발생 여부를 결정하는 단계는,
    상기 인터 누적 값에 대한 상기 인트라 누적 값의 비율을 계산하는 단계;
    상기 비율이 기준 값보다 작거나 같은 경우 상기 장면 전환이 발생한 것으로 결정하는 단계; 및
    상기 비율이 기준 값보다 큰 경우 상기 장면 전환이 발생하지 않은 것으로 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  15. 제1 항에 있어서,
    상기 장면 전환의 검출은 상기 인트라 영상에 대해서는 생략되고 상기 인터 영상에 대해서만 수행되는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  16. 제1 항에 있어서,
    상기 장면 전환의 검출은 상기 이전의 인트라 영상부터 K번째(K는 상기 영상 그룹의 노말 사이즈보다 작은 자연수) 영상까지의 영상들에 대해서는 생략되고 상기 K번째 영상 이후의 영상들에 대해서만 수행되는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  17. 제1 항에 있어서,
    상기 부호화 모드를 결정하기 위한 상기 인트라 예측의 결과 및 상기 인터 예측의 결과에 기초하여, 부호화되는 데이터의 비트율을 제어하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코더의 제어 방법.
  18. 다른 영상을 참조하지 않고 부호화되는 인트라 영상(intra picture) 및 다른 영상을 참조하여 부호화되는 인터 영상(inter picture)의 할당에 의해 결정되는 영상 그룹(GOP: group of pictures)에 기초하여 비디오 데이터를 매크로블록 단위로 부호화하는 비디오 인코더로서,
    인트라 예측(intra prediction) 및 인터 예측(inter prediction)을 수행하여 매크로블록 단위로 부호화 모드를 결정하고, 상기 부호화 모드에 따라 비디오 데이터를 매크로블록 단위로 부호화하는 인코딩 모듈; 및
    상기 인코딩 모듈로부터 제공되는 상기 인트라 예측의 결과 및 상기 인터 예측의 결과에 기초하여 영상 단위로 장면 전환을 검출하고, 상기 장면 전환의 검출 결과에 기초하여 상기 영상 그룹의 사이즈를 조절하는 제어 모듈을 포함하는 비디오 인코더.
  19. 제18 항에 있어서, 상기 제어 모듈은,
    상기 인코딩 모듈로부터 매크로블록 단위로 제공되는 최소 인트라 율-왜곡 코스트들 및 최소 인터 율-왜곡 코스트들을 각각 영상 단위로 합산한 인트라 누적 값 및 인터 누적 값에 기초하여 상기 장면 전환의 발생 여부를 나타내는 플래그 신호를 발생하는 장면 전환 검출부; 및
    상기 플래그 신호에 기초하여 상기 영상 그룹의 사이즈를 조절하는 영상 타입 결정부를 포함하는 것을 특징으로 하는 비디오 인코더.
  20. 각각의 매크로블록에 대하여 상기 인트라 예측에 의한 최소 인트라 율-왜곡 코스트 및 상기 인터 예측에 의한 최소 인터 율-왜곡 코스트를 계산하는 단계;
    하나의 영상에 포함되는 복수의 매크로블록들에 대하여, 상기 최소 인트라 율-왜곡 코스트들을 합산한 인트라 누적 값 및 상기 최소 인터 율-왜곡 코스트들을 합산한 인터 누적 값을 계산하는 단계; 및
    상기 인트라 누적 값 및 상기 인터 누적 값에 기초하여 상기 장면 전환의 발생 여부를 결정하는 단계를 포함하는 비디오 데이터의 장면 전환 검출 방법.
KR1020130023694A 2013-03-06 2013-03-06 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법 KR20140110221A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130023694A KR20140110221A (ko) 2013-03-06 2013-03-06 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법
US14/191,707 US20140254660A1 (en) 2013-03-06 2014-02-27 Video encoder, method of detecting scene change and method of controlling video encoder
CN201410081646.7A CN104038762A (zh) 2013-03-06 2014-03-06 视频编码器、检测场景改变和控制视频编码器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130023694A KR20140110221A (ko) 2013-03-06 2013-03-06 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법

Publications (1)

Publication Number Publication Date
KR20140110221A true KR20140110221A (ko) 2014-09-17

Family

ID=51469334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130023694A KR20140110221A (ko) 2013-03-06 2013-03-06 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법

Country Status (3)

Country Link
US (1) US20140254660A1 (ko)
KR (1) KR20140110221A (ko)
CN (1) CN104038762A (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6462119B2 (ja) * 2014-09-30 2019-01-30 マイクロソフト テクノロジー ライセンシング,エルエルシー コンピューティングデバイス
EP3021579B1 (en) * 2014-11-14 2016-10-12 Axis AB Method and encoder system for encoding video
US20160261869A1 (en) * 2015-03-04 2016-09-08 Ati Technologies Ulc Content-adaptive b-picture pattern video encoding
CN107222752A (zh) * 2016-03-22 2017-09-29 中兴通讯股份有限公司 长度确定方法及装置
CN106210718B (zh) * 2016-08-08 2019-04-26 飞狐信息技术(天津)有限公司 一种视频序列中场景切换检测方法及装置
CN106412580B (zh) * 2016-11-01 2019-07-09 飞狐信息技术(天津)有限公司 一种设定视频序列中帧内编码帧的方法及装置
EP3376766B1 (en) * 2017-03-14 2019-01-30 Axis AB Method and encoder system for determining gop length for encoding video
CN108737838A (zh) * 2017-04-19 2018-11-02 北京金山云网络技术有限公司 一种视频编码方法及装置
CN109151469B (zh) * 2017-06-15 2020-06-30 腾讯科技(深圳)有限公司 视频编码方法、装置及设备
CN107613029A (zh) * 2017-11-05 2018-01-19 深圳市青葡萄科技有限公司 一种适用于移动端或Web端的虚拟桌面远程方法及***
CN110121071A (zh) * 2018-02-05 2019-08-13 广东欧珀移动通信有限公司 视频编码方法及相关产品
CN111200734B (zh) * 2018-11-19 2022-03-11 浙江宇视科技有限公司 视频编码方法及装置
US11539960B2 (en) * 2019-10-01 2022-12-27 Sony Interactive Entertainment Inc. Game application providing scene change hint for encoding at a cloud gaming server
US11886380B2 (en) 2020-04-27 2024-01-30 Red Hat, Inc. Quantum file management system
US11416221B2 (en) 2020-05-12 2022-08-16 Red Hat, Inc. Quantum entanglement protection
US20210374583A1 (en) * 2020-05-27 2021-12-02 Red Hat, Inc. Qubit allocation service
CN112019850B (zh) * 2020-08-27 2022-08-23 广州市百果园信息技术有限公司 基于场景切换的图像组划分方法、视频编码方法及装置
US11523117B2 (en) * 2021-03-22 2022-12-06 Realtek Semiconductor Corp. Encoder using coding tree unit level adaptive quantization mode to adjust frame level quantization parameter and associated signal processing method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001276876A1 (en) * 2000-07-11 2002-01-21 Mediaflow, Llc Adaptive edge detection and enhancement for image processing
WO2005076632A2 (en) * 2004-01-30 2005-08-18 Thomson Licensing Encoder with adaptive rate control for h.264
US7991053B2 (en) * 2004-05-04 2011-08-02 Qualcomm Incorporated Method and apparatus to enable acquisition of media in streaming applications
KR101149522B1 (ko) * 2008-12-15 2012-05-25 한국전자통신연구원 장면 전환 검출 시스템 및 방법
EP2224745B1 (en) * 2009-02-27 2019-11-06 STMicroelectronics Srl Temporal scalability in case of scene changes
US20110255594A1 (en) * 2010-04-15 2011-10-20 Soyeb Nagori Rate Control in Video Coding
US20140219331A1 (en) * 2013-02-06 2014-08-07 Magnum Semiconductor, Inc. Apparatuses and methods for performing joint rate-distortion optimization of prediction mode

Also Published As

Publication number Publication date
US20140254660A1 (en) 2014-09-11
CN104038762A (zh) 2014-09-10

Similar Documents

Publication Publication Date Title
KR20140110221A (ko) 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법
US20220248038A1 (en) Rate control in video coding
US9420279B2 (en) Rate control method for multi-layered video coding, and video encoding apparatus and video signal processing apparatus using the rate control method
US7602851B2 (en) Intelligent differential quantization of video coding
JP4763548B2 (ja) スケーラブルビデオコーディング及びデコーディング方法と装置
KR102121558B1 (ko) 비디오 이미지의 안정화 방법, 후처리 장치 및 이를 포함하는 비디오 디코더
US7873224B2 (en) Enhanced image/video quality through artifact evaluation
JP4927207B2 (ja) 符号化方法、復号化方法及び装置
JP5180294B2 (ja) ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御
US10205953B2 (en) Object detection informed encoding
KR20180074000A (ko) 비디오 디코딩 방법, 이를 수행하는 비디오 디코더, 비디오 인코딩 방법, 및 이를 수행하는 비디오 인코더
JP6747430B2 (ja) 画像処理装置、画像処理方法及びプログラム
KR102390162B1 (ko) 데이터 인코딩 장치 및 데이터 인코딩 방법
US8903184B2 (en) Image-encoding method, image-encoding device, and computer-readable recording medium storing image-encoding program
JP2008079326A (ja) スケーラブルビデオコーディング及びデコーディング方法、並びにその装置
US10812832B2 (en) Efficient still image coding with video compression techniques
JP4719854B2 (ja) 動画像符号化装置、動画像符号化プログラム、動画像復号化装置及び動画像復号化プログラム
JP2009510822A (ja) ビデオ誤り隠蔽を改善するための符号化/復号化方法及び装置
WO2013001729A1 (ja) 映像符号化装置及び映像復号装置
JP2013102305A (ja) 画像復号装置、画像復号方法、プログラム及び画像符号化装置
Son et al. Enhanced Prediction Algorithm for Near-lossless Image Compression with Low Complexity and Low Latency
JP2023550139A (ja) イントラモード符号化のためのハードウェアフレンドリーな設計
KR101307469B1 (ko) 비디오 인코더, 비디오 디코더, 비디오 인코딩 방법 및 비디오 디코딩 방법
CN116472711A (zh) 用于帧内模式编码的硬件友好设计
JP2003324742A (ja) 画像符号化装置及び画像復号化装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid