KR20120006488A - 왜곡 가중 - Google Patents

왜곡 가중 Download PDF

Info

Publication number
KR20120006488A
KR20120006488A KR1020117021635A KR20117021635A KR20120006488A KR 20120006488 A KR20120006488 A KR 20120006488A KR 1020117021635 A KR1020117021635 A KR 1020117021635A KR 20117021635 A KR20117021635 A KR 20117021635A KR 20120006488 A KR20120006488 A KR 20120006488A
Authority
KR
South Korea
Prior art keywords
activity
pixel
distortion
subgroup
macroblock
Prior art date
Application number
KR1020117021635A
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 텔레폰악티에볼라겟엘엠에릭슨(펍)
Publication of KR20120006488A publication Critical patent/KR20120006488A/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/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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

매크로블록(10) 내 다수의 서브그룹(30)들 중에서 적어도 한 화소(20)의 각 서브그룹(30)에 대해, 다수의 화소(20)를 포함하고 또한 서브그룹(30)을 둘러싸는 인접부(40)에서 화소값들의 분포를 나타내는 활동값을 결정함으로써 프레임(1)의 매크로블록(10)에 대해 왜곡 표현이 추정된다. 활동값들을 기반으로 서브그룹들에 대해 각 왜곡 가중들이 결정된다. 매크로블록(10)의 화소값들과 매크로블록(10)에 대한 기준 화소값들의 가중된 조합으로서 왜곡 표현을 추정하기 위하여 상기 왜곡 가중들을 사용한다. 왜곡 가중은, 매크로블록(10)의 상이한 부분들이 매크로블록(10)의 다른 부분들과 비교했을 때 왜곡 표현에 많이 또는 덜 기여하게 된다는 것을 의미한다. 왜곡 표현은 부호화 동안에 프레임(1)의 높은 활동영역과 낮은 활동영역 사이의 결함을 줄이게 된다.

Description

왜곡 가중{DISTORTION WEIGHING}
본 발명은 화소(pixel) 블록들에 대한 왜곡 가중에 관한 것으로서, 특히 화소 블록 부호화와 관련해 사용할 수 있는 왜곡 가중에 관한 것이다.
영상 부호화 표준(video coding standards)은 비디오 데이터의 부호화표현(coded representation)에 대한 구문(syntax)을 규정한다. 복호화에 대한 비트열(bit stream) 구문만이 명시되는데, 이는 복호기를 설계함에 있어서 융통성이 없도록 한다. 영상 부호화 표준은 또한 영상 품질을 최적화하는 것과 비트율을 줄이는 것 간에 절충이 이루어지도록 한다.
부호기의 양자화기(quantizer) 또는 데이터 압축기의 단계 폭(step size)을 변조하는데 양자화 변수(quantization parameter)를 사용할 수 있다. 일반적으로, 부호화된 영상의 화질과 비트율은 부호기가 사용하는 양자화 변수의 특정 값에 의존한다. 그러므로, 거시적 양자화(coarser quantization)는 소수의 비트들을 사용하여 영상 장면을 부호화할 뿐만 아니라 영상 화질을 저감시킨다. 미세한 양자화는 보다 많은 비트들을 사용하여 영상 장면을 부호화하지만 전형적으로 영상 화질을 향상시킨다.
주관적 영상압축 이득(subjective video compression gain)은 소위 적응성 양자화(adaptive quantization)로 이루어질 수 있는데, 적응성 양자화에서 양자화 변수(QP)는 영상 장면들 또는 프레임 내에서 변경된다. 일반적으로, 적응성 양자화에서, 부드러운 질감을 가지는 영역에서는 보다 낮은 QP가 사용되고, 공간적인 활동이 높은 영역에서는 보다 높은 QP가 사용된다. 이는 훌륭한 생각인데, 인간 시각시스템은 부드러운 질감 영역에서 왜곡을 쉽게 인지하지만, 높은 질감 영역에서 동일량의 왜곡은 인지하지 못하게 되기 때문이다.
미국특허 제6,831,947 B1은 비트율 예측(bit rate prediction)을 기반으로 한 영상 프레임들의 적응성 양자화를 기술하고 있다. 적응성 양자화는, 부호화 결함(coding artifact)이 인간 시각시스템에 대해 보다 덜 인지적인 영상 프레임의 부분에서 양자화를 증가시키고, 부호화 결함이 인간 시각시스템에 대해 보다 인지적인 부분에서 양자화를 감소시킨다.
QP값을 적응적으로 낮추거나 또는 상승시키는 현존하는 해결책들의 한계는, 현재 영상 부호화 표준에 따라 매크로블록 기반에서, 즉 16 × 16 화소들의 블록에서만 QP 적응성이 변경될 수 있다는 것이다.
도 1은 QP 적응성에서 이 한계로 인해 발생하는 문제점을 설명한다. 선행 해결책들에서, 매끈한 것으로 구분되기 위하여 전체 매크로블록들은 매끈하게 되어야 하고 또한 낮은 QP값을 가진다. 도 1에 도시된 바와 같이, 이는 부드러운 배경 상에 높은 활동성 물체 둘레에 명확히 볼 수 있는 링잉(ringing)을 만들게 된다. 도면에서 회색의 균일한 부분들은 선행기술에 따라 매크로블록들이 매끈한 것으로 구분되는 프레임의 부분들을 나타낸다. 링잉효과는 매끈한 잔디 배경 상의 축구선수로 대표되는 높은 활동성 물체 둘레에서 명확하다.
간단한 해결책은, 보다 낮은 QP 값이 할당되는 매크로블록의 그룹에서 부분적으로 매끈한 매크로블록들을 포함하는 것일 수 있다. 그러나, 이들 노든 매크로블록들에 대해 QP값을 낮추는 것은 아주 많은 비트들을 희생하게 되어, 실제로 유용하게 하기 위해서는 비트율을 너무 높이게 된다.
따라서, 영상 부호화와 관련해 사용할 수 있는 선행기술들의 링잉 결함(ringing artifacts)을 줄일 수 있는 해결책이 필요하다.
본 발명의 목적은 개선된 왜곡 표현(distortion representation)을 제공하는 것이다.
본 발명의 목적은 특히 프레임의 화소 블록들의 부호화와 관련해 사용할 수 있는 왜곡 표현을 제공하는 것이다.
간략하게, 왜곡 표현은 프레임의 화소 블록에 대해 추정된다. 화소 블록은 바람직하게 중첩하지 않는(non-overlapping) 다수의 서브그룹으로 분할되는데, 서브그룹 각각은 적어도 하나의 화소 블록의 한 화소를 포함한다. 활동값(activity value) 또는 표현이 서브그룹 각각에 대해 결정되는데, 상기 활동값은 다수의 화소들을 포함하고 또한 서브그룹을 둘러싸는 화소 인접부(pixel neighborhood)에서 화소값들의 왜곡을 나타낸다.
활동값을 기반으로 서브그룹에 대해 왜곡 가중(distortion weigh)이 결정된다. 화소 블록에 대한 왜곡 표현을 추정하기 위하여, 화소 블록의 화소 그룹의 서브그룹들에 대해 결정된 왜곡 가중들은 화소 블록의 화소값들과 그리고 재구성된 또는 예측된 화소값들과 같은 화소 블록에 대한 기준 화소값들과 함께 사용된다. 따라서, 왜곡 가중들은, 화소 블록의 화소들이 화소 블럭의 다른 화소들과 비교하면 왜곡 표현에 더 많이 기여하게 된다는 것을 수반한다.
왜곡 표현을 추정하는 장치는 화소 블록의 서브그룹 각각에 대해 활동값을 계산하도록 구성되는 활동 계산기(activity calculator)를 포함한다. 가중 결정기(weigh determiner)는 활동값들 각각을 기반으로 서브그룹에 대해 각각의 왜곡 가중들을 결정한다. 그런 다음, 화소 블록에 대한 왜곡 표현이 다수의 왜곡 가중들과, 화소 블록의 화소값들과 기준 화소값들을 기반으로 왜곡 추정기(distortion estimator)에 의해 추정되거나 또는 계산된다.
왜곡 표현은 매크로블록에 대해 적절한 부호화 모드를 선택할 목적으로 프레임 부호화와 관련해 유리하게 사용할 수 있다. 이러한 경우, 매크로블록 내 화소값들의 왜곡을 나타내는 매크로블록 활동이 프레임의 각 매크로블록에 대해 계산된다. 프레임의 매크로블록들은 매크로블록 활동을 기반으로 낮은 활동 매크로블록들과 높은 활동 매크로블록들과 같이 적어도 두 개의 범주로 분류된다. 낮은 활동 매크로블록들에는 낮은 양자화 변수들이 할당되는 반면, 높은 활동 매크로블록들에는 높은 양자화 변수값들이 할당된다.
매크로블록들에 대한 왜곡 표현을 결정하기 위하여 왜곡 가중들이 사용되고, 이는 매크로블록에 대한 율-왜곡(rate-distortion)값을 구하기 위해 율값(rate value)과 함께 사용된다. 그런 다음, 매크로블록은 다양한 부호화 모드들에 따라 의사 부호화되고(pseudo-encoded) 그리고 각 모드에 대해 율-왜곡값이 계산된다. 율-왜곡값을 기반으로 매크로블록에 사용하기 위한 부호화 모드가 선택된다.
실시예들은 또한 프레임을 부호화하기 위한 부호기에 관련된다. 부호기는 프레임에서 매크로블록들에 대한 매크로블록 활동들 각각을 계산하는 블록 활동 계산기와, 매크로블록 활동들을 기반으로 매크로블록들을 낮은 활동 또는 높은 활동 매크로블록과 같은 적어도 두 개의 범주로 분류하는 블록 분류기(block categorizer)를 포함한다. 양자화 선택기(quantization selector)는 매크로블록 활동을 기반으로 매크로블록들에 대한 양자화 변수값을 선택한다. 서브그룹-특정 활동값들이 활동 계산기에 의해 결정되어, 서브그룹들은 낮은 활동 또는 높은 활동그룹으로 분류하기 위해 서브그룹 분류기에 의해 사용된다. 가중 결정기는 낮은 활동 매크로블록들의 서브그룹들과 규정된 인자(defined factor)와 동일하게 되는 높은 활동 매크로블록의 높은 활동 서브그룹들에 대해 왜곡 가중들을 결정하는 한편, 높은 활동 매크로블록들의 낮은 활동 서브그룹들은 규정된 인자보다 큰 왜곡 가중을 가지게 된다.
그런 다음, 이용 가능한 부호화 모드들 각각에 따라서 매크로블록은 부호기에 의해 의사-부호화된다. 이러한 부호화 모드 각각에 대해, 특정 부호화 모드에 대한 가중된 왜곡 표현과 율값을 기반으로 율-왜곡값이 결정된다. 모드 선택기는 가장 적합한 부호화 모드, 즉 매크로블록에 대한 율-왜곡값을 극소화시키는 모드를 선택한다. 그런 다음, 부호기는 이 선택된 부호화 모드에 따라서 매크로블록을 부호화한다.
프레임들의 부호화와 관련해 사용할 때, 왜곡 가중들은 양자화 변수값들을 저감시킴으로써 이룰 수 있는 것보다 훨씬 더 낮은 비트 희생으로, 링잉과 모션 드래그(motion drag) 결함의 저감을 이룰 수 있다.
도 1은 선행기술에 따른 링잉 효과를 가지는 문제점들을 설명하는 도면.
도 2는 한 실시예에 따른 화소 블록에 대한 왜곡 표현을 생성하기 위한 방법을 설명하는 흐름도.
도 3은 한 실시예에 따른 다수의 화소를 포함하는 화소 블록을 가지는 프레임을 설명하는 개략도.
도 4는 도 2의 활동값 결정단계의 실시예를 설명하는 흐름도.
도 5는 활동값을 결정할 목적으로 다수의 화소 인접부들을 제공하는 실시예를 개략적으로 설명하는 도면.
도 6은 활동값을 결정할 목적으로 다수의 화소 인접부들을 제공하는 다른 실시예를 개략적으로 설명하는 도면.
도 7은 도 1의 선행기술과 비교하여 실시예의 장점적인 효고를 설명하는 도면.
도 8은 활동값을 결정하기 위한 상이한 실시예들을 개략적으로 설명하는 도면.
도 9는 도 2의 추정방법의 추가적인, 선택적 단계를 설명하는 흐름도.
도 10은 도 2의 추정 방법의 추가적인, 선택적인 단계를 설명하는 흐름도.
도 11은 도 2의 추정 방법의 추가적인, 선택적인 단계를 설명하는 흐름도.
도 12는 한 실시예에 따른 매크로블록들의 프레임을 부호화하는 방법을 설명하는 흐름도.
도 13은 적응성 양자화방법과 관련하여 한 실시예의 적용을 개략적으로 설명하는 도면.
도 14는 한 실시예에 따른 시간적 부호화(inter coding)에 대한 움직임 추정의 개념을 개략적으로 설명하는 도면.
도 15는 한 실시예에 따른 왜곡 생성장치의 개략적인 블록도.
도 16은 도 15의 왜곡 추정장치의 임계값 제공기(threshold provider)의 실시예의 개략적인 블록도.
도 17은 도 15의 왜곡 추정장치의 임계값 제공기의 다른 실시예의 개략적인 블록도.
도 18은 한 실시예에 따른 부호기의 개략적이 블록도.
도 19는 한 실시예에 따른 부호기 구조의 개략적인 블록도.
본 발명의 다른 목적들과 장점들과 함께 본 발명은 첨부도면과 함께 이루어진 다음의 상세한 설명을 참조함으로써 가장 잘 이해할 것이다.
도면 전체를 통해, 비슷하거나 또는 대응하는 요소들에는 동일한 참조번호가 사용된다.
일반적으로 실시예들은 프레임의 화소 블록들의 처리에 관련되고, 화소 블록내 화소들의 특성들은 화소 블록에 대한 왜곡 표현을 반영하고 또한 영향을 주게 된다. 따라서, 실시예들은 화소 특성들 또는 값들에서 작은 변화를 가지는 매끈한 호소 부분들과, 화소 특성에서 큰 변화의 면에서 비교적 높은 활동을 가지는 화소부분들 둘 다를 포함하는 화소 블록들을 처리하기 위한 효율적인 기술을 제공한다.
실시예들의 신규한 왜곡 표현은 적절한 부호화 또는 복호화 모드를 선택하고, 움직임 추정을 시행하고 또한 암호화와 복호화 동안에 조사한 암호화 또는 복호화 모드들의 숫자를 줄임으로써 화소 블록들과 프레임들의 암호화와 복호화 동안에 유용한 툴(tool)을 제공한다.
실시예들의 이해를 단순히 하기 위하여, 일반적인 실시예의 설명은 먼저 도 2를 참조하여 이루어진다. 도면은 프레임의 화소 블록에 대하 왜곡 표현을 추정하기 위한 방법의 흐름도이다.
실시예들에 따라서, 도 3에 설명되는 것과 같은 프레임(1)은 다수의 화소 블록(10)들로 구성되고, 화소 블록 각각은 다수의 화소(20)를 포함하며, 화소 각각은 다수의 요소(component)들로 선택적으로 구성되는, 색상값과 같은 각 화소 특성 및 값을 가진다. 기술분야에 공지되었듯이, 각 화소는 전형적으로 적, 녹, 청(RGB) 포맷의 색상값을 포함하여, RGB-트리플렛(triplet)으로 표현할 수 있다. 그러나, 프레임들의 암호화와 복호화 동안에, 화소들의 RGB 값들은 RGB 포맷에서, YUV 포맷에서와 같이 대응하는 휘도(Y)와 색차(UV)로 변환된다. 공통예는 YUV 4:2:0 을 사용하는 것인데, 휘도는 완전한 해상도이고 그리고 색차 요소들은 수평 및 수직축 둘 다에서 해상도의 반을 사용한다. 따라서 여기에서 사용하는 화소값은 휘도값과, 색차값 또는 휘도값과 색차값 둘 다일 수 있다. 그렇지 않으면, RGB 포맷 또는 다른 색상 또는 휘도-색차 포맷의 화소값을 실시예들에 따라 대안으로 사용할 수 있다.
화소 블록(10)은 바람직하게 2α×2β 화소들을 포함하고, α,β들은 1과 동일하거나 또는 1보다 큰 양의 정수들이고, 바람직하게 α=β이다. 화소 블록(10)은 바람직하게, 프레임(1)의 암호화와 복호화 동안에 집합적으로 취급되고 또한 처리되는 프레임(1)의 가장 작은 비-중첩(non-overlapping) 엔티티(entity)이다. 따라서 이러한 화소 블록(10)의 바람직한 구현은 소위 16×16 화소(20)들을 포함하는 매크로블록이다. 기술분야에 잘 공지되었듯이, 매크로블록(10)은 적응성 QP로 암호화와 복호화 동안에 개별적인 양자화 변수(QP)가 할당되는 가장 작은 엔티티이다.
이런 이유로, 실시예들은 특히 매크로블록인 화소 블록(10)의 왜곡 표현을 추정하는데 가장 적합하다. 다음에서, 화소 블록의 설명과 바람직한 예로서 매크로블록을 참조하여 본 발명을 더 상세히 설명한다.
프레임(1)은 바람직하게 동적 영상(video sequence)일 수 있으나, 그렇지 않으면 (개별적인) 정지화상의 프레임(1)일 수 있다.
도 2의 방법의 제1단계(S1)는 매크로블록의 다수 서브그룹(화소 블록)을 규정하는 것을 포함한다. 이들 서브그룹들 각각은 매크로블록의, 적어도 하나의 화소를 포함한다. 여기에서 더 설명하듯이, 서브그룹은 매크로블록의 단일 화소 또는 다수, 즉 매크로블록의, 적어도 두 개의 화소들을 포함할 수 있다. 그러나, 서브그룹은 실제로 참 서브그룹(true subgroup)인데, 이는 서브그룹에서 화소들의 숫자가 매크로블록의 화소들의 전체 숫자보다 작다는 것을 의미한다.
다음 단계(S2)는 단계 S1에서 규정된 서브그룹에 대한 활동값을 결정한다. 활동값은 다수의 화소들을 포함하고 또한 서브그룹을 둘러싸는 화소 인접부에서 화소 특성 또는 값들의 왜곡을 나타낸다. 화소 인접부는 포함된 화소들의 숫자의 면에서 선-규정된 크기를 가지는 화소들의 그룹이고 또한 바람직하게는 매크로블록 내측에 적어도 부분적으로 위치하여 서브그룹의 화소 또는 화소들을 둘러싼다. 만일 서브그룹이 다수의 화소들을 포함한다면, 화소 인접부는 서브그룹의 크기와 동일한 선-규정된 크기를 가질 수 있다. 이러한 경우에, 서브그룹과 화소 인접부 간에 일-대-일 관계가 있다. 그러나, 화소 인접부가 서브그룹보다 커서 현재 서브그룹의 적어도 하나의 화소 이외에도 프레임의 많은 화소들을 둘러싸는 것이 바람직하다.
활동값은 화소 인접부 내 화소값들의 왜곡의 소정의 표현일 수 있다. 비제한적인 예들은 화소 인접부에서 동일한 횡(row) 또는 열(column)에 있는 인접한 화소들에 대한 화소값들에서 절대차(absolute difference)의 합을 포함한다.
다음 단계(S3)는 단계(S2)에서 서브그룹에 대해 결정된 활동값을 기반으로 서브그룹에 대한 왜곡 가중을 결정한다. 단계(S2 및 S3)들은 단계(S1)에서 규정된 매크로블록의 각 서브그룹에 대해 수행되고, 이는 선 L1으로 개략적으로 설명하고 있다. 따라서, 각 서브그룹에는 각각의 왜곡 가중이 할당되고, 이 왜곡 가중은 특정 서브그룹에 대해 생성되는 활동값을 기반으로 결정된다. 또한, 제1활동(the first activity)을 나타내는 활동값을 가지는 서버그룹에 대한 왜곡 가중이 제1활동보다 비교적 낮은 제2활동을 나타내는 활동값을 가지는 서브그룹에 대한 왜곡 가중보다 낮도록 왜곡 가중들을 결정하는 것이 바람직하다. 다르게 표현하면, 높은 활동 서브그룹에 대한 왜곡 가중이 낮은 활동 서브그룹에 대한 왜곡 가중보다 낮은 것이 바람직하고, 서브그룹의 활동은 활동값으로 표시된다.
적어도 한 화소의 각 서브그룹에 왜곡 가중이 주어지기 때문에, 왜곡 가중들은 매크로블록 내 화소 활동들의 개별적인 평가(assessment)와 보상이 이루어지도록 한다. 부수적으로, 바람직한 실시예에서, 매크로블록 내 소정의 낮은 활동 서브그룹에는 매크로블록 내 소정의 높은 활동 서브그룹에 대한 왜곡 가중들보다 비교적 높은 왜곡 가중들이 할당된다. 이는, 매크로블록의 낮은 활동 서브그룹들은, 왜곡 표현의 결정시에 높게 가중되므로, 이 매크로블록에 대해 높은 수준의 중요성이 주어지게 된다는 것을 암시한다.
단계(S3)에서 각각의 왜곡 가중이 각 서브그룹에 할당되면, 방법은 단계(S4)로 진행하는데, 이 단계에서 단계(S3)로부터의 다수 왜곡 가중들과, 매크로블록의 화소값들과 그리고 매크로블록에 대한 기준 화소값들을 기반으로 매크로블록에 대한 왜곡 표현이 추정된다. 왜곡 표현 D는 왜곡 가중들과, 화소값들과 그리고 기준값들의 함수: D=kij × f(p,q,n,i,j)이고, 상기 p는 현재 프레임을 나타내고, q는 현재 프레임에 대한 기준 프레임을 나타내고, n은 현재 프레임 내 현재 매크로블록의 숫자를 나타내고, i,j들은 매크로블록 내 서브그룹들의 화소 좌표들을 나타내고, kij 는 화소 좌표(i,j)를 가지는 서브그룹에 대한 왜곡 가중을 나타낸다.
기준 화소값들은 현재 매크로블록에 대하 기준으로서 사용되는 기준 매크로블록에 대한 화소값들이다. 이는, 왜곡 표현이 기준 화소값들이 매크로블록의 현재 화소값들, 바람직하게는 매크로블록의 원래 화소값들과 얼마나 많이 다른지를 나타내는 왜곡 또는 에러값이라는 것을 의미한다. 단계(S4)에서 채용되는 특정 기준 매크로블록은 왜곡 표현의 목적에 의존한다. 예컨대, 프레임의 부호화 동안에, 상이한 부호화 모드들이 매크로블록에 대해 테스트되고, 이러한 부호화 모드들 각각에 대해 매크로블록의 원래 화소값들이 모드에 따라 먼저 부호화되어 후보 부호화 매크로블록을 얻고, 그런 다음 후보 부호화 매크로블록은 복호화되어 복원된 화소값을 얻는다. 원래 화소값들과 복원된 화소값들 간의 차이는 왜곡 표현을 추정할 때 왜곡 가중들과 함께 사용된다. 그러므로, 부호화와 암호와에 따라 얻은 복원된 화소값들은 실시예들에 따른 기준 화소값들의 예이다. 왜곡 표현의 다른 응용은, 움직임 추정 동안에 시간적 (P 또는 B) 부호화(inter (P or B) coded) 매크로블록에 대하 적절한 움직임 벡터를 찾는 것이다. 이러한 경우에, 왜곡 표현은 기준 프레임에서 매크로블록의 원래 화소값들과, 기준 매크로블록의 움직임-보상된 화소들 간의 가중된 차이이다. 따라서, 이러한 움직임-보상된 화소들은 실시예들에 따른 기준 화소값들의 다른 예이다. 그러므로, 암호화와 복호화 동안에 매크로블록에 대한 기준값들로서 채용되는 소정의 예측된, 움직임 보상된, 복원된 또는 그렇지 않으면 기준 화소값들은 여기에서 사용되는 기준 화소값들로서 간주할 수 있다. 여기에서 관련있는 특징은, 한 매크로블록과, 복원된, 예측된 또는 움직임-보상된 매크로블록과 같은 기준 매크로블록 간의 화소값들의 차이를 반영하는 왜곡 또는 에러 표현을 추정한다는 것이다.
단계(S4)에서 왜곡 표현의 추정은 선행기술에 따르기보다는, 근본적으로 상이한 방식으로 수행된다. 선행기술에서, 왜곡 표현은 매크로블록과 기준 매크로블록 간의 화소값들의 차이에 대해 직접적으로 추정된다. 그런 다음 차이의 가중이 없고, 특히 매크로블록의 차이 부분들에서 활동들을 반영하는 차이들의 가중이 없다.
왜곡 표현을 결정할 때, 실시예들의 왜곡 표현은 매크로블록의 상이한 화소들이 상이하게 가중되도록 해준다. 따라서, 왜곡 표현에 대한 기여는 상이한 왜곡 가중들을 가지는 화소들과 서브그룹에 대해 상이하게 되고, 따라서 상이한 활동들을 가지는 화소들과 서브그룹에 대해 상이하게 된다.
화소값 차이들의 가중은, 프레임의 높은 활동영역과 낮은 활동영역 사이의 경계에서 링잉과 모션 드래그(motion drag)을 감소시킴으로써 매크로블록의 부호화와 복호화를 개선시킨다.
단계 S1-S4의 동작을 프레임 내에서 단일 매크로블록에 대해 한 차례 시행할 수 있다. 그러나, 본 방법은 프레임의 다수 매크로블록들에 대해 유리하게 시행될 수 있는데, 이는 선 L2로 개략적으로 나타내고 있다. 한 실시예에서, 모든 매크로블록에는 단계(S4)에서 추정된 것과 같은 왜곡 표현이 할당된다. 다른 해결책에서, 프레임 내에서 선택된 매크로블록들만이 단계 S1-S4로 기술하는 것과 같이 처리된다. 예컨대, 이들 매크로블록들은 도 1에서 설명하는 것과 같이 프레임의 높은 활동영역과 낮은 활동영력의 경계에서 전형적으로 발견되고 또한 높은 활동 화소영역과 낮은 활동 화소영역 둘 다를 포함하는 매크로블록들이다. 이는, 프레임의 다른 매크로블록들에 대해서는, 통상적인 비-가중된 왜곡값이 대신에 활용될 수 있다는 것을 의미한다.
한 실시예에서, 도 2의 단계(S1)에서 규정된 서브그룹들은 개별적인 화소들이다. 그러므로, 이러한 경우에 화소-특정(pixel-specific) 활동값들 또는 화소 활동들이 단계(S2)에서 결정된다. 만일 화소블록이 16 × 16 화소들의 매크로블록이라면, 단계(S1)은 256개의 서브그룹을 규정하게 된다. 서브그룹으로서 개별적인 화소들의 사용은, 매크로블록 내에서 화소값들에서의 개별적인 변화를 보상하고 또한 고려하기 때문에 활동값과, 왜곡 가중들과 그리고 왜곡 표현을 결정하는 것을 개선한다.
활동값들의 결정에서 복잡도를 저감하기 위하여, 단계(S1)에서 규정된 서브그룹들은 두 개 이상의 화소를 포함할 수 있다. 이러한 경우에, 서브그룹들은 비-중첩(non-overlapping) 서브그룹인 것이 바람직하고 또한 2m × 2n 화소들의 서브그룹인 것이 바람직한데, 여기서 m, n은 0(만일 둘 다 0이라면 서브그룹은 상기에서 언급한 것과 같이 단일 화소를 포함한다), 1, 2 또는 3이다. 바람직한 실시예에서, 단계(S1)에서 규정된 서브그룹은 2m × 2m 화소들의 비-중첩 서브그룹들이다. 만일 화소 블록, 예컨대 매크로블록의 크기가 16 × 16 화소들보다 크다면, 변수 m,n들은 4보다 큰 값을 가질 수 있다. 일반적으로 2ο × 2ο 화소들의 사각 화소블록에 대해, 서브그룹들은 사각 서브그룹에 대해 2m × 2m 화소들로 구성될 수 있고, m은 m<ο 라는 조건으로 0 또는 양의 정수이다.
다수의 이웃하는 화소들을 함께 서브그룹으로 이렇게 그룹화하고 또한 서브그룹에서 모든 화소들에 대해 단일 활동값을 결정하는 것은 복잡도와 메모리 필요성을 크게 줄인다. 예컨대, 개별적인 화소들 대신에 2×2 화소들의 서브그룹들을 사용하는 것은 복잡도와 메모리 필요성을 75% 감소시킨다. 16×16 화소들의 매크로블록에 대해 4×4 화소들 또는 8×8 화소들과 같은 큰 서브그룹들을 가지는 것은 복잡도를 한층 더 줄인다.
도 4는 도 2에서 활동값을 결정하는 실시예를 설명하는 흐름도이다. 방법은 도 2의 단계(S1)에서 계속된다. 다음 단계(S10)은 다수의 화소들을 포함하고 또한 현재 서브그룹을 둘러싸는 잠재적인 화소 인접부를 확인한다. 상기 잠재적인 화소 인접부는 바람직하게 인접부가 둘러싸는 화소들의 숫자의 견지에서 선-규정된 형상과 크기를 가진다. 서브그룹의 적어도 한 화소를 둘러싸기 위해 화소 인접부가 적어도 서브그룹과 동일한 크기가 되어야 하기 때문에, 화소의 크기는 단계(S1)에서 규정된 서브그룹들의 크기에 의존한다. 일반적으로, 활동값의 품질을 개선하기 위한 견지에서, 서브그룹보다 큰 매크로블록의 적어도 몇몇 화소들을 둘러싸기 위하여 서브그룹의 크기보다 큰 크기를 가지는 화소 인접부를 가지는 것이 바람직하다. 이는, 만일 서브그룹이 단지 단일 화소 각각을 포함한다면 더 필요하다. 그러나, 화소 인접부의 크기가 커지면 커질수록 활동값의 계산은 보다 더 복잡하게 된다.
화소 인접부는 바람직하게 서브그룹을 둘러싸는 2a × 2b 화소들의 블록으로서 식별되고, a,b는 1과 동일하거나 1보다 큰 양의 정수이다. 실시예들에 따라 사용할 수 있는 화소 인접부의 비-제한적인 예들은 16×16, 8×8, 4×4 및 2×2 화소들을 포함한다. 화소 인접부는 정사각형일 필요는 없고, 대신에 32×8 및 8×32 화소들과 같은 상이한 형상의 블록일 수 있다. 이들 두 블록들은 정사각형 16×16 블록과 동일한 숫자의 화소를 가진다. 실제로 16×16, 32×8 및 8×32와 같은 상이한 형상의 화소 인접부들을 혼합하는 것도 가능하다. 이들 모든 화소 인접부들은 동일한 숫자의 화소들을 가지기 때문에, 활동값의 표준화나 스케일링이 필요하지 않다. 8×8 블록에 대해서는 16×4 와 4×16화소들을 그리고 4×4 블록에 대해서는 8×2와 2×8 화소들과 같이, 직사각형의 블록들을 대신에 또는 다른 크기들에 대한 보완으로서 사용할 수 있다. 활동값을 계산할 때 화소 인접부당 화소들의 숫자를 기반으로 한 표준화가 쉽게 이루어질 수 있기 때문에, 상이한 숫자의 화소들로 이루어진 화소 인접부를 사용하는 것이 실제로 가능하다.
현재 서브그룹이 화소 인접부의 중앙에 위치하도록 활동값을 계산하는 컴퓨터를 사용한 단순한 실시예가 화소 인접부에 실행된다. 그러나, 이는 매끈하지 못한 영역(높은 활동)에 가까운 매끈한 영역(낮은 활동)에서의 서브그룹들에 대해서 높은 활동값이 되게 된다. 따라서, 보다 바람직한 실시예가 도 4의 단계(S11 및 S12)들에서 설명한 것과 같이 실시된다.
화소 인접부가 서브그룹을 둘러싸기 위한 제1위치에 위치하면 단계(S11)는 화소 인접부 내에서 화소들의 분포를 나타내는 후보 활동값을 계산한다. 그런 다음, 화소 인접부는 서브 그룹을 둘러싸는 다른 위치에 위치하고 그리고 새로운 위치에 대해 새로운 후보 활동값이 계산된다. 그러므로, 실시예에서, 서브그룹에 관련된 화소 인접부의 다수의 상이한 위치들이 테스트되고, 이들 위치 각각에 대한 후보 활동값이 계산되는데, 이는 선 L3로 개략적으로 설명되어 있다. 이는, 잠재적인 화소 인접부 내에서 서브그룹의 위치는 단계(S10)에서 규정되고 단계(S11)에서 테스트된 다른 잠재적인 화소 인접부들 내 서브그룹의 각 위치들과는 상이하다는 것을 의미한다.
도 5는 이 개념을 개략적으로 설명한다. 네 개의 도면들은 단일 화ㅣ소로 구성되는 서브그룹(30)을 가지는 매크로블록(10)의 부분을 설명한다. 화소 인접부(40)는 도 5에서 2×2의 크기를 가지고, 또한 네 개의 도면들은 서브그룹(30)에 관련된 화소 인접부(40)의 네 개의 상이한, 가능한 위치들을 설명하고, 서브그룹(30)의 단일 화소는 인접 화소부(40) 내에서 네 개의 가능한 위치들 중 하나를 점유한다.
단계(S11)의 실시예에서, 서브그룹에 대한 화소 인접부의 모든 가능한 위치들이 도 5에 설명한 것과 같이 테스트된다. 계산의 복잡도를 줄이기 위하여, 모든 가능한 화소 인접부 위치들이 조사되지는 않는다. 예컨대, 홀수의 수평 또는 수직좌표에서 그의 최상 좌측부를 가지는 모든 화소 인접부들을 생략할 수 있다. 이는, 후보 활동값이 계산되는 화소 인접부들이 2×2 격자 상에 위치하게 되는 것과 동일하다고 할 수 있다. 4×4, 8×8 등과 같은 다른 격자 크기를 대신에 사용할 수 있다. 일반적으로, 2a × 2b 화소들의 블록 형태인 화소 인접부가 프레임에서 2c × 2d 격자 상의 위치에 제한될 수 있는데, 여기서 c, d는 1과 동일하거나 1보다 큰 양의 정수이고 또한 c≤a 및 d≤b 이다.
도 6은 서브그룹(30)에 관한 화소 인접부(40)의 가능한 위치들의 숫자를 제한하는 개념을 설명한다. 이 예에서, 서브그룹(30)은 4×4 화소들을 포함하고, 화소 인접부(40)는 8×8 화소들의 블록이다. 도면은 또하 2×2 화소들의 격자(50)를 설명한다. 2×2 격자의 사용은, 화소 인접부(40)가 서브그룹(30)을 에워쌀 때, 설명한 9개의 위리들에 따라서 위치할 수만 있다는 것을 나타낸다. 이는, 본 예에서 화소 인접부 위치들의 숫자가 25에서 9로 줄어든다는 것을 의미한다.
이용가능한 모든 잠재적인 화소 인접부 위치들이 단계(S11)에서 테스트되고 또한 테스트된 잠재적인 화소 인접부들 각각에 대해 후보 활동값이 계산되면, 방법은 단계(S12)로 계속한다. 이 단계(S12)는 서브그룹에 대한 활동값으로서 가장 작은 또는 가장 낮은 후보 활동값을 선택한다. 그런 다음 방법은 도 2의 단계(S3)으로 계속 진행하는데, 선택된 후보 활동값을 기반으로 왜곡 가중이 결정된다.
앞서 기술하였듯이, (후보) 활동값은 (잠재적인) 화소 인접부 내에서 화소값ㄱ들의 분포를 나타낸다. 실시예들에 따라서 다양한 활동값들이 가능하고 또한 사용할 수 있다. 한 예에서, 횡 또는 열에서 인접 화소들 간의 절대차를 합하여 활동값을 얻는다. 이는 아래 식에 대응한다.
Figure pct00001
식에서, Yx ,y 는 2a × 2b 화소들을 포함하는 화소 인접부 내에서 위치(x,y)에서 화소의 화소값을 나타낸다. 이는 도 8의 상부 부분에 개략적으로 설명되어 있다. 이 활동값은 순수하게 공간적이고 또한 매끈한 서브그룹들에게 낮은 활동값을 제공한다. 이 활동값은 수평 및 수직 화소값 차이들에 대해서만 단지 민감하다. 다른 활동값은 보다 많은 방향에서, 즉 대각선 방향에서 화소 차이에 민감하다:
Figure pct00002
도 8의 하부 부분은, 화소 인접부에서 수직으로, 수평으로 또한 대각선으로 이웃하거나 또는 인접한 화소들의 화소값들에서 절대차의 합을 기반으로 하는 활동값의 예를 설명한다.
상기에서 설명한 활동값 실시예들의 단순한 수정은 화소값들에서 절대차를 취하기 보다는 화소값들에서 제곱차를 취한다. 실제로, 화소 인접부 내에서 화소값들의 분포를 반영하는 소정의 값은 실시예에 따라서 사용할 수 있다.
다른 서브그룹의 활동값을 사용할 수 있고 또한 실시예들은 상기에서 설명한 공간적인 활동에 제한되지 않는다.
서브그룹에 대한 활동값을 기반으로 도 2의 단계(S3)에서 결정된 왜곡 가중은 전형적으로 활동값의 함수로서 결정된다. 한 실시예에서, 왜곡 가중은 활동값에 대해 선형이 되도록 결정된다. 그러나, 지수와 대수와 같은 다른 함수도 고려할 수 있다.
일반적으로 높은 활동 서브그룹에 대한 왜곡 가중은 낮은 활동 서브그룹에 대한 왜곡 가중보다 낮다:
Figure pct00003
여기서 V는 몇몇 규정된 상수이고, 바람직하게는 1이다.
활동값을 기반으로 왜곡 가중을 결정하는데 사용하는 함수는, 프레임에서 매크로블록들에 QP값들을 할당하는데 사용되는 적응성 QP방법을 기반으로 하도록 구성될 수 있다. 예컨대, 매크로블록 M과 매크로블록 N들이 프레임에서 인접하는 매크로블록들이라 가정한다. 적응성 QP방법은 매크로블록 M에 낮은 QP값을 할당하고, 매크로블록 N에는 높은 QP값을 할당한다. 따라서, 매크로블록 M는 공간적 활동과 화소값 변동이 거의 없는 프레임의 매끈한 영역에 대응하는 반면, 매크로블록 N은 높은 활동을 가지므로 화소값에서 높은 변화를 가진다. 그러나, 매크로블록 M에 가까운 매크로블록 N 내 몇몇 화소들은 실제로 프레임의 매끄러운(배경)영역에 속하기 때문에 낮은 화소 활동을 가진다. 그러면, 활동값에서 왜곡 가중까지의 함수는, 왜곡 가중들의 효과들이 매크로블록들 M과 N에 대해 사용되는 양자화 변수들에 의해 람다 효과(lambda effects)와 상관되도록(correate) 될 수 있다. 기술분야에서 잘 공지되어 있듯이, 율-왜곡(rate-distortion) 항 J = D + λ × bits 는 암호화/복호화에서 종종 채용되는데, 여기서 D는 매크로블록에 대한 왜곡이고, bits는 매크로블록을 부호화하는데 필요한 비트의 수이고, λ는 라그랑지 승수(Lagrange multiplier)이고 또한 율-왜곡항에 대한 왜곡과 비트들의 상대 기여를 규정한다. λ는 전형적으로 매크로블록을 암호화하는데 사용되는 양자화 변수값의 함수이다. 따라서 기술분야에서, QP값 각각은 테이블에 종종 저장되는 대응하는 람다값을 가진다. 각 QP에 대해 사용하기 위한 값은 실험적으로 발견되고 또한 람다값들은 전형적으로, QP값을 증가시킴으로써 단조롭게 증가한다.
이 예에서, 매크로블록 M은 양자화 변수값
Figure pct00004
으로 부호화되고, 매크로블록 N은 양자화 변수값
Figure pct00005
으로 부호화된다고 가정한다. 이들 양자화 변수값들은, 다음의 람다값들이 두 개의 매크로블록들 λM 과 λN 에 대해 각각 선택된다는 것을 의미한다. 양자화 효과가 제공하는 것과 동일한 람다에 대한 효과를 얻기 위하여, 매크로블록 N에서 낮은 활동 화소들에 대한 왜곡 가중은
Figure pct00006
가 된다. 다르게는, 왜곡 가중은
Figure pct00007
로 규정할 수 있는데, 여기서 f는 1과 동일하거나 1보다 크다. 매크로블록 N에서 높은 활성 화소들에 대한 왜곡 가중들은 ~1.0에 설정된다.
다른 해결책에서, 매크로블록 N은 대신에 낮은 양자화 변수값,
Figure pct00008
로 부호화된다. 매크로블록 N에서 낮은 활동 화소들에 대해 사용되는 왜곡 가중은
Figure pct00009
가 되게 된다. 이 경우에, 매크로블록 N에서 높은 활동 화소들에 대한 왜곡 가중은 바람직하게, 규정된 상수 1과 동일하게 설정되지 않고, 대신에
Figure pct00010
에 설정된다. 선택된 양자화 변수값
Figure pct00011
은 바람직하게
Figure pct00012
이고 그리고
Figure pct00013
가 되도록 선택될 수 있지만,
Figure pct00014
Figure pct00015
간의 중간이 되어서는 안된다.
실제로, 낮은 활동을 나타내는 활동값이 비교적 높은 활동을 나타내는 활동값과 비교했을 때 큰 왜곡 가중을 만드는 한은, 활동값들을 기반으로 한 왜곡 가중들의 결정이 이루어지게 해주는 어떠한 함수라도 실시예에 따라 사용할 수 있다.
특정 실시예에서, 8×8 화소 크기의 서브그룹과, 8×8 화소의 격자와 8×8 화소의 화소 인접부를 사용할 수 있다. 이는, 매크로블록 활동들에 대응하지만, 8×8 블록들에 대해서는 이루어지지 않는다. 이러한 특수한 경우에 있어서, 16×16 블록들 대신에 8×8블록들에 대해 작업하기 위해 적응성 QP방법을 변경할 수 있다. 8×8 블록 각각에 대해 가상 QP값이 할당되고, 매크로블록 QP값은 가상 8×8 QP값들에 따라 설정된다. 만일 4개의 8×8 블록들 중 3개가 동일한 QP값이 할당된다면, 사용한 매크로블록 QP값은 다수 8×8 QP값에 설정될 수 있다. 이들 8×8 서브그룹들에 대한 왜곡 가중은 1이 되어야 하지만, 잔여 서브그룹에 대한 왜곡 가중은, 매크로블록들 M과 N과 관련한 예에서 설명하였듯이, 가상 QP와 정합하도록 수정되어야 한다. 만일 8×8 서브그룹들의 반이 하나의 가상 QP값을 가지고 나머지 반이 다P른 값을 가진다면, 매크로블록 QP값은 낮은 가상 QP값 또는 높은 QP값 또는 이들 간의 QP값에 설정될 수 있다. 모든 경우에 있어서, 왜곡 가중은 상기에서 설명하였듯이, 매크로블록 QP값과 가상 QP값 간의 차이를 보상하도록 사용되어야만 한다.
왜곡 가중들에 대한 차이 값들의 숫자를 줄이기 위하여, 적어도 하나의 임계값(threshold)를 사용하여 활동값들을 한정된 숫자의 범주들로 분할할 수 있는데, 범주 각각에 왜곡 가중이 할당된다. 예컨대 하나의 임계값으로, 이러한 임계값 위의 활동값들은 소정의 왜곡 가중을 취하게 되고 그리고 임계값 아래의 활동값들을 가지는 서브그룹과 화소들은 다른 왜곡 가중을 취한다. 이 개념은 도 9에 개략적으로 설명되어 있다. 방법은 도 2의 단계(S2)에서부터 계속한다. 다음 단계(S20)에서, 서브그룹에 대해 결정된 활동값은 적어도 하나의 활동 임계값과 비교된다. 그런 다음, 방법은 도 2의 단계(S3)로 계속하는데, 여기서 서브그룹에 대한 왜곡 가중이 상기 비교를 기반으로 결정된다.
특정 실시예에서, 단일의 활동 임계값을 사용하여 서브그룹들과 화소들을 낮은 활동 서브그룹들, 즉 활동 임계값 아래인 각 활동값을 가지는 낮은 활동 서브그룹들과 높은 활동 서브그룹들, 즉 활동 임계값을 초과하는 각 활동값을 가지는 높은 활동 서브그룹들로 구별한다.
단일의 활동 임계값으로, 높은 활동 서브그룹들에 대한 왜곡 가중은 바람직하게 규정된 상수, 바람직하게는 1과 동일하다. 그러면, 낮은 활동 서브그룹들은 규정된 상수보다 크게 결정되는 왜곡 가중을 가진다. 특정 실시예에서, 왜곡 가중은 매크로블록에 대해 결정된 양자화 변수값을 기반으로 결정된다. 이러한 경우에, 왜곡 가중은, 앞서 설명한 바와 같이 프레임 내 현재 매크로블록과 인접하는 매크로블록에 할당된 라그랑지 승수를 기반으로 하는,
Figure pct00016
와 같은 함수일 수 있다.
실시예들은 단일의 활동 임계값을 사용하는 것에 한정되지 않고, 다수의 상이한 활동 임계값들과 관련해 사용할 수 있어서 두 개 이상의 상이한 서브그룹들의 범주들을 얻을 수 있다.
적어도 하나의 활동 임계값은 고정될 수 있는데, 즉 규정된 값과 동일하게 될 수 있다. 이는, 프레임, 바람직하게는 동적 영상 내 모든 프레임들의 모든 매크로블록들에 대해 활동 임계값마다 동일한 값이 사용되게 된다.
다른 해결책에서, 적어도 하나의 활동 임계값의 값(들)은 적응성 QP방법과 관련해 결정된다. 도 10을 참조하면, 단계(S30)에서 프레임의 각 매크로블록에 대해 각 블록 활동은 적응성 QP방법에서 결정된다. 블록 활동은 매크로블록 내에서 화소값들의 분포를 나타낸다. 블록 활동들은 선행기술에서 잘 공지된 기술에 따라 단계(S31)에서 매크로블록들에 대한 양자화 변수들을 결정하는데 사용된다. 단계(S32)에서 각 매크로블록에, 앞서 설명한 것과 같이 매크로블록의 양자화 변수와 매크로블록 모드를 기반으로 규정되는 것이 바람직한 라그랑지 승수 또는 람다값이 더 할당된다. 단계들 S30-S32는 바람직하게 프레임 내 모든 매크로블록들에 대해 수행되고, 이는 선 L4로 개략적으로 설명되고 있다. 그런 다음, 단계(S33)에서 매크로블록들은, 매크로블록들에 대해 결정된 각 양자화 변수값들을 기반으로, 바람직하게는 블록 활동들을 기반으로 다수의 범주들로 나누어진다. 그런 다음, 적어도 하나의 활동 임계값은 단계(S34)에서 확인된 매크로블록에 대해 결정된 활동값을 기반으로 결정될 수 있다. 그런 다음, 방법은 도 2의 단계(S1)으로 계속하는데, 여기서 왜곡 표현은 앞서 설명한 것과 같이 추정된다.
특정 실시예에서, 활동 임계값은 해당 범주에 대해 가장 높은 블록 활동을 가지는 매크로블록의 평균 또는 중간 활동값에 설정될 수 있다. 다른 해결책에서, 활동 임계값은 범주에 대해 가장 높은 블록 활동을 가지는 매크로블록과 보다 높은 QP값을 가지는 다음 범주에 대해 가장 낮은 블록 활동을 가지는 매크로블록의 평균 또는 중간값에 설정될 수 있다. 이 해결책은, 대부분의 화소들은 그들의 범주들에 있게 되어, 전형적으로 이 범주 내 다른 화소들과 동일하거나 또는 화소들에 가까운 왜곡 가중을 얻게 된다.
다른 해결책에서, 적어도 하나의 활동 임계값은 동적으로 결정되어, 서브그룹들과 화소들의 고정된 비율은 활동 임계값을 초과하거나 또는 임계값 아래인 활동값들을 가지게 된다. 이와 같은 경우에, 프레임의 매크로블록들은, 각 블록 활동들을 기반으로 바람직하게 결정되는 그들의 각 양자화 변수값들을 기반으로 상이한 범주들로 분할된다. 그런 다음, 상이한 범주들에 있게 되는 매크로블록들의 각 비율이 계산되고 또한 이들 비율들은 적어도 하나의 활동 임계값을 계산하는데 사용된다. 예컨대, 매크로블록의 60%를 가지는 두 개의 매크로블록 분류들이 가장 낮은 활동 매크로블록들을 포함하는 범주가 된다고 가정하자. 이러한 경우에, 가장 낮은 활동값들을 가지는 서브그룹의 60%가 활동 임계값 아래로 떨어지는 활동값을 가지게 되도록 (단일의) 활동 임계값이 선택될 수 있다.
구현을 간략하게 하기 위하여, 왜곡 가중들은 2의 배수에 설정되어 곱셈(multiplication)을 피하게 된다. 따라서, 왜곡 가중들은 상이한 양의 정수값 t에 대해
Figure pct00017
가 될 수 있다. 이는, 가중이 단지 시프트(shift)로 구현될 수 있다는 것을 의미한다.
단계(S4)에서 추정된 왜곡 표현은 바람직하게
Figure pct00018
으로 결정되는데, 여기서 p ij 는 화소 블록(매크로블록) 내에서 화소 위치 i, j 에서 화소값을 나타내고, q ij 는 화소위치 i, j 에서 기준 화소값을 나타내고, k ij 는 화소위치 i, j 에서 서브그룹의 왜곡 가중을 나타내고, n 1과 동일하거나 또는 1보다 큰 양의 정수이고 그리고 화소블록은 M×N 화소들, 바람직하게는 16×16 화소들을 포함한다. 제곱된 차이들의 합, 즉 n=2 는 기술분야에서 가장 공통적인 왜곡 미터법이다. 기술분야에서 공통적으로 사용되는 다른 왜곡 미터법은, 절대 차이의 합이다, 즉 n=1 이다. 후자의 왜곡 미터법, 즉 왜곡 가중을 가지는 수정된 SAD는 움직임 추정과 관련해 유리하게 사용된다.
도 7은 도 1에 설명된 것에 대응하는 도면이지만, 한 실시예에 따라서 처리된다. 도면에서 알 수 있듯이, 여기에서 기술되는 실시예들은 매끈한 배경 상의 높은 활동 물체 주변의 링잉 효과를 줄인다.
실시예들의 왜곡 표현은 율-왜곡 변수 J=D + λ× bits 의 변수로서 매크로블록 암호화 및 부호화와 관련하여 사용할 수 있다. 이러한 경우에, 바람직하게 적응성 QP 절차 동안에 매크로블록에 할당된 양자화 값을 기반으로 매크로블록에 대해 라그랑지 승수 또는 람다값이 결정된다. 율 변수는 양자화 변수를 기반으로 생성되는 매크로블록의 암호화 버전에 대한 비트 손실을 나타낸다. 실시예들의 왜곡 표현의 가중된 합과 라그랑지 승산으로 가중된 율 값에 따라서 율-왜곡값 또는 라그랑지 손실 함수가 구해진다.
상기에 따라서 결정된 율-왜곡 값은 프레임의 매크로블록들의 암호화와 관련하여 사용할 수 있다. 이러한 경우에, 방법은 도 2의 단계(S3)로부터 계속하는데, 여기서 왜곡 가중이 결정되었다. 부수적으로, 도 10의 단계 S30-S32가 바람직하게 수행되어, 적응성 QP방법은 매크로블록들에 대한 블록 활동들을 계산하고, QP값들을 결정하고 그리고 라그랑지 승산을 선택하였다. 방법은 도 11의 단계(S40)으로 진행한다. 이 단계는 다수의 이용가능한 부호화 모드 셋트 중 하나에 따라 매크로블록을 의사-부호화한다. 부호화된 매크로블록의 율 값이 단계(S41)에서 결정된다. 그런 다음 방법은 도 2의 단계(S4)로 계속하는데, 여기서 매크로블록에 대한 왜곡 표현이 추정된다. 이 경우에, 단계(S4)에서 사용된 기준 화소값들이 의사-부호화된 매크로블록을 복호화하는 것에 뒤이어 얻은 복원 화소값들이다. 왜곡 표현이 추정되기만 하면, 방법은 단계(S42)로 계속하는데, 여기서 테스트된 부호화 모드에 대한 매크로블록에 대해 율-왜곡 값이 계산된다. 그런 다음 단계 S40-S42의 연산이 이용가능한 다른 모든 부호화 모드들에 대해 반복되는데, 이는 선 L5로 계략적으로 설명되고 있다.
기술분야에 잘 공지되어 있듯이, 매크로블록은 다양한 모드들에 따라서 부호화될 수 있다. 예컨대, 매크로블록들에 대해 이용가능한 여러 공간적 부호화(intra coding) 모드, 스킵(skip) 모드 및 다수의 시간적 부호화(inter coding) 모드가 있다. 공간적 부호화에 대해서는 상이한 부호화 방향들이 가능하고 그리고 시간적 부호화에서, 매크로블록은 상이하게 분리되거나 및/도는 상이한 기준 프레임들 또는 움직임 벡터들을 사용할 수 있다. 이는 영상 부호화 분야에서 잘 공지되어 있다.
단계 S40 내지 S42의 다수 연산의 결과는, 테스트된 부호화 모드들 각각으로부터 각각의 율-왜곡 값이 구해지게 되는 것이다. 그런 다음 매크로블록에 대해 사용하는 특정 부호화 모드가 단계(S43)에서 선택된다. 이 부호화 모드는 바람직하게, 단계(S42)에서 계산된 것과 같은 모드들 중에서 가장 낮은 율-왜곡 값을 가지는 것이다. 그런 다음 매크로블록의 부호화된 버전이, 단계(S44)에서 선택된 부호화 모드에 따라서 매크로블록을 부호화함으로써 구해진다.
왜곡 표현의 추정 또는 계산을 위해 실시예들에 따른 왜곡 가중들의 사용은, 프레임의 매크로블록들 중 몇몇은 테스트된 부호화 모드들 중 몇몇에 대해 상이한 율-왜곡 값들을 얻게 된다는 것을 의미한다. 특히, 프레임에서 높은 활동 영역과 낮은 활동 영역 사의 경계에 존재하는 매크로블록들은, 부호화 모드들 중 몇몇에 대해 현저히 상이한 율-왜곡 값들을 얻게 된다. 따라서, 보다 적절한 부호화 모드가 이들 매크로블록들에 대해 선택되게 되는데, 이는 링잉과 모션 드래그 결함의 저감으로 알 수 있지만, 그러나 이들 매크로블록들에 대한 QP값들을 낮추는 것보다 훨씬 낮은 비트-손실이 있게 된다.
표준 영상 부호화에서, 단계(S43)에서 선택된 부호화 모드는 복호기로 전송된다. 그러나, 복호기측 모드 추정에서, 부호화된 매크로블록에 대해 사용하는 복호화 모드는 복호기에서 유도된다. 여기에서 기술된 것과 같은 실시예들은 또한 이러한 시나리오에 사용할 수 있다. 복호기에서 복호화 모드를 결정하는 한 방식은 템플릿 정합(template matching)을 사용하는 것이다. 템플릿 정합에서, 현재 매크로블록 밖의 미리 복호화된 영역은 표준 영상 부호화에서 원래 매크로블록과 유사하게 사용된다.
실시예들에 따른 왜곡 표현은 프레임을 부호화하는 동안에 적응성 QP와 조합하여 유익하게 사용할 수 있다. 이러한 왜곡 표현의 적용은 도 12와 도 13을 참조하여 더 설명한다. 다수의 매크로블록들을 포함하는 프레임을 부호화하는 방법에서, 각 매크로블록에 대해 각 매크로블록 활동이 단계(S50)에서 계산된다. 앞서 설명하였듯이, 매크로블록 활동은 매크로블록 내에서 화소값들의 분포를 나타내고 그리고 예컨대 다음과 같이 규정된다.
Figure pct00019
또는
Figure pct00020
부호화의 단계(S60)에서 적응성 QP방법은 단계(S51)에서의 다수 매크로블록들을 분류한다. 한 설시적인 실시예에서, 매크로블록들은 각 매크로블록 활동들을 기반으로 적어도 낮은 활동 매크로블록(S61) 또는 높은 활동 매크로블록(S63)으로 분류된다. 그러므로, 매크로블록들을 다수의 범주들로 분류하는 것은, 낮은 활동 매크로블록들에 대한 하나와 높은 활동 매크로블록들에 대한 다른 하나인 두 개의 범주로 수행될 수 있다. 물론 이 절차는 두 개 이상의 매크로블록들의 범주들 간의 구분으로 확대될 수 있다.
단계(S51)에서 할당된 매크로블록들에는 범주에 따라 적응성 QP내 양자화 변수값들이 더 할당된다. 그러므로, 단계(S51)에서 낮은 활동 매크로블록으로 분류된 매크로블록에는 낮은 QP값이 할당되고(S62) 그리고 높은 활동 범주에 속하는 매크로블록에는 상기 낮은 QP값보다 큰 높은 QP값이 할당된다(S64).
다음 단계들 S52-S54의 처리는 각 매크로블록에 대해 수행되는 것이 바람직한데, 이는 선 L6으로 개략적으로 설명하고 있다. 단계(S52)는 매크로블록에서 다수의 서브그룹들 중에서 적어도 한 화소로 이루어지는 각 서브그룹에 대해, 다수의 화소들을 포함하고 또한 서브그룹을 둘러싸는 화소 인접부에서 화소값들의 분포를 나타내는 활동값을 결정한다(S65). 이 단계(S52)는 기본적으로 도 2의 단계(S2)와 동일한 방식으로 수행되므로 여기서 더 설명하지 않는다. 매크로블록 내 다수의 서브그룹들 각각은 단계(S52)에서 결정된 각 활동값들을 기반으로 단계(S53/66)에서 낮은 활동 서브그룹(S67, S70) 또는 높은 활동 서브그룹(S68)로 분류된다. 단계(S53)에서 서브그룹들의 분류는 이전에 기술한 기술들 중 소정의 하나에 따라 수행될 수 있는데, 예컨대 활동값들을 활동 임계값과 비교함으로써 수행될 수 있다.
다음 단계(S54)는 서브그룹들에 대해 왜곡 가중들을 결정한다. 단계(S54)의 특정 실시예에서, 낮은 활동 매크로블록(S67)로 분류된 매크로블록에 속하는 서브그룹들은 바람직하게 S69와 같이 규정된 상수와 동일한 왜곡 가중이 할당된다. 상기 규정된 상수는 바람직하게 높은 활동 서브그룹(S68)로 분류되는 높은 활동 매크로블록들 내 서브그룹들에 왜곡 가중으로 할당된다. 그러나, 대신에 규정된 상수(S71)보다 큰 왜곡 가중들이, 낮은 활동 서브그룹으로 분류되고 또한 높은 활동 매크로블록(S70)에 속하는 서브그룹들에 대해 결정될 수 있다. 이들 낮은 활동 서브그룹들에 대한 왜곡 가중들은, 현재 높은 활동 매크로블록에 할당된 QP값 또한 바람직하게는 프레임에서 인접하는 매크로블록에 할당된 QP값을 기반으로 앞서 설명한 것과 같이 계산될 수 있다.
이후에, 앞서 기술한 율-왜곡 값(S72)을 기반으로 수행되는 부호화 모드 선택절차가 이어진다. 그러므로, 이용가능한 다양한 부호화 모드들에 따라서 매크로블록들이 단계(S55)에서 의사-부호화되고 또한 율-왜곡 값은 후보 부호화 모드 각각에 대한 왜곡 가중들을 기반으로 계산된다. 매크로블록에 대한 율-왜곡 값을 최소화하는 부호화 모드가 단계(S56)에서 선택되어, 단계(S57)에서 특정 매크로블록을 부호화하는데 사용된다. 단계 S55-S57의 연산은 전형적으로 각 매크로블록에 대해 독립적으로 수행되는데, 이는 프레임의 모든 매크로블록이 동일한 매크로블록 유형 또는 모드로 반드시 부호화될 필요가 없다는 것을 의미한다.
왜곡 가중들과, 왜곡 가중들을 결정하는데 사용되는 서브그룹 활동들은 또한, 매크로블록에 대해 테스트되게 되는 부호화 모드들의 숫자를 줄이는데 사용될 수 있다. 그러므로, 매크로블록에 대한 서브그룹 활동의 분포 또는 왜곡 가중들은, 매크로블록이 특정 부호화 모드를 사용하여 효율적으로 부호화될 수 없게 된다는 것, 즉 이 특정 부호화 모드를 사용하여 부호화하면 매우 높은 율-왜곡 값이 산출되게 된다는 명확한 증거가 되게 된다. 이러한 경우, 이용가능한 부호화 모드들의 숫자는 줄어들어, 부호화 프로세스의 복잡도를 현저히 줄여 매크로블록 부호화를 가속하게 된다.
실시예들의 왜곡 가중은 또한, 부호화를 위해 후보 매크로블록들을 평가하는 것 이외에 다른 응용에 사용할 수 있다. 예컨대, 왜곡 가중들은 예컨대 H.264에서 매크로블록 분할들에 대한 움직임 벡터 후보들을 평가하는데 사용할 수 있다. 동일한 왜곡 가중들을 사용할 수 있고 또한 율-왜곡 값을 줄이는 움직임 벡터(들)이 선택된다. 도 14는 이 개념을 개략적으로 설명한다. 현재 프레임(1) 내 현재 매크로블록(10)은 시간적 부호화가 되게 되고 그리고 기준 프레임(2)에서 매크로블록(10)이 가졌던 위치(14)와 기준 프레임(2)에서 매크로블록 예측(12) 간의 움직임을 규정하는 움직임 벡터(16)가 결정된다. 이러한 경우에, 왜곡 표현의 추정에 사용디는 기준 화소값들은 매크로블록 예측(12)의 움직임-보상된 화소값들이다.
도 15는 왜곡 추정장치(100)의 실시예의 개략적인 블록도이다. 왜곡 추정장치(100)는 매크로블록과 같은, 화소 블록 내 다수의 서브그룹들 중에서 적어도 하나의 화소를 포함하는 포함하는 서브그룹 각각에 대한 활동값을 계산하도록 구성되는 활동 계산기(110)를 포함한다.
가중 결정기(120)는 서브그룹에 대한 왜곡 가중을 결정하기 위해 활동 계산기(110)에 의해 결정된 활동값을 사용한다. 활동 계산기(110)와 왜곡 결정기(120)는 바람직하게, 화소 블록 내 각 서브그룹에 대한 활동값과 왜곡 가중을 결정하도록 동작한다.
왜곡 추정장치(100)는 또한 화소 블록의 서브그룹들과, 화소 블록의 화소값들과 화소 블록에 대한 기준 화소값들에 대해 왜곡 결정기(120)가 결정한 다수의 왜곡 가중들을 기반으로 화소 블록에 대한 왜곡 표현을 추정하도록 구성되는 왜곡 추정기(130)를 포함한다.
활동 계산기(110)는 바람직하게, 앞서 기술한 것처럼 서브그룹에 대한 다수의 잠재적인 화소 인접부들 각각에 대한 후보 활동값을 계산하도록 구성된다. 그런 다음, 활동 계산기(110)는 바람직하게 서브그룹에 대해 사용하는 활동값으로서 이들 다수의 후보 활동값들 중에서 가장 작은 것을 선택한다. 잠재적인 화소 인접부들은, 한 화소 인접부의 블록 내 서브그룹의 위치가 다른 화소 인접부들 내 서브그룹의 각 위치들과 상이하게 되는 화소들의 블록들이다. 앞서 기술한 바와 같이 서브그룹에 대한 잠재적인 화소 인접부의 위치들의 숫자를 줄이기 위한 격자들은 활동 계산기(110)가 사용할 수 있다.
가중 결정기(120)는 바람직하게, 서브그룹의 활동값과 적어도 하나의 활동 임계값과의 비교를 기반으로 서브그룹에 대한 왜곡 가중을 결정한다. 이와 같은 경우에, 왜곡 추정장치(100)는 선택적으로, 왜곡 결정기(120)가 사용하는 적어도 하나의 활동 임계값을 제공하도록 구성되는 임계값 제공기(140)를 포함할 수 있다.
도 16은 임계값 제공기(140)의 가능한 구현 실시예를 설명하는 블록도이다. 임계값 제공기(140)는 프레임에서 각 화소에 대한 각 블록활동을 계산하도록 구성되는 블록활동 계산기(141)를 포함한다. 블록 분류기(143)는 블록활동들을 기반으로 화소 블록들에 대해 할당되는 각 양자화 변수들을 기반으로 프레임의 화소 블록들을 다수의 범주로 나눈다. 임계값 제공기(140)는 또한, 다수의 범주들 중 적어도 하나에서 가장 높은 블록활동을 가지는 화소블록을 식별하도록 구성되는 화소블록 식별기(145)를 포함한다. 그런 다음, 임계값 계산기(147)는 화소블록 식별기(145)에 의해 식별된 화소블록(들)에 대해 계산된 활동값들을 기반으로 적어도 하나의 활동 임계값을 계산한다.
도 17은 임계값 제공기(140)의 다른 구현 실시예를 설명하는 블록도이다. 임계값 제공기(140)는, 도 16의 대응하는 블록 분류기와 동일한 방식을 동작하는 블록 분류기9143)를 포함한다. 비율 계산기(149)는, 블록 분류기(143)에 의해 규정되는 다수의 범주들 각각에 속하는 프레임의 화소 블록들의 비율 각각을 계산하도록 구성된다. 이 실시예에서, 임계값 계산기(147)는 앞서 설명한 바와 같은 기술들에 따라서 비율 계산기가 계산한 비율 각각을 기반으로 적어도 하나의 활동 임계값을 계산한다.
그런 다음, 서브그룹에 대해 결정된 활동값이 활동 임계값을 초과한다면 왜곡 결정기(120)는 1과 같이 규정된 상수와 동일하게 되는 왜곡 가중을 결정하도록 구성될 수 있고 또한 만일 활동값이 활동 임계값 아래라면 화소블록에 할당된 QP값을 기반으로 왜곡 가중을 결정한다. 후자의 경우에 있어서, 왜곡 가중은 앞서 설명하였듯이 프레임에서 현재 화소블록에 대한 라그랑지 승수와 인접하는 화소블록에 대한 라그랑지 승수의 비율을 기반으로 결정될 수 있다.
왜곡 추정장치(100)는 또한, 왜곡 추정기(130)로부터의 왜곡 표현을 기반으로 한 화소블록에 대한 율-왜곡 값과 또한 화소블록의 부호화된 버전의 비트 손실을 나타내는 율값을 계산하도록 구성되는 율-왜곡(RD) 계산기(150)를 선택적으로 포함할 수 있다.
왜곡 추정장치(100)는 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현할 수 있다. 만일 소프트웨어로 구현한다면, 왜곡 추정장치(100)는 메모리에 저장되고, 로딩되어 범용 또는 특별한 목적의 컴퓨터, 프로세서 또는 마이크로프로세서에서 작동하는 컴퓨터 프로그램제품으로 구현할 수 있다. 소프트웨어는, 왜곡 추정장치(100)의 활동 계산기(110)와, 가중 결정기(120)와 그리고 왜곡 추정기(130)의 동작을 발효시키는 컴퓨터 프로그램코드 요소 또는 소프트웨어 코드부분을 포함한다. 도 15에서 설명한 것과 같은, 선택적이지만 바람직한 다른 장치들은 메모리에 저장되어 프로세서에 의해 실행되는 컴퓨터 프로그램 코드요소들로서 구현할 수 있다. 프로그램은, 하나 이상의 적절한 컴퓨터 판독 매체 또는 자기 디스크, CD-ROM, DVD 디스크, USB 메로리, 하드디스크, 광-자기 메모리와 같은 데이터 저장수단에, RAM 또는 휘발성 메모리에, ROM 또는 플래쉬 메모리에, 또는 데이터 서버에 펌웨어로서 전체적으로 또는 부분적으로 저장될 수 있다.
왜곡 추정장치(100)는 컴퓨터, 이동성 장치 또는 다른 영상 또는 이미지 처리장치 또는 시스템에서 유리하게 구현될 수 있다.
실시예들은 또한 도 18에 설명된 것과 같은 부호기(200)에 관련된다. 부호기(200)는 다수의 이용가능한 부호화 모드 셋트의 각 부호화 모드에 따라서 화소블록을 의사-부호화하도록 구성된다. 이 실시예에서, 부호기(200)는 도 15에서 설명된 것과 같은, 즉 활동 계산기(110)와, 가중 결정기(120)와, 왜곡 추정기(130)와 그리고 율-왜곡 계산기(150)를 포함하는 왜곡 추정장치(100)를 포함한다. 이와 같은 경우에서, 율-왜곡 계산기(150)는 앞서 설명한 바와 같이 다수의 이용가능한 부호화 모드들 각각에 대한 각 율-왜곡 값을 계산한다. 부호기(200)의 모드 선택기(270)는 다수의 이용가능한 부호화 모드들 중에서 율-왜곡 값을 최소화하는 부호화 모드를 선택한다. 그런 다음, 부호기(200)는 모드 선택기(270)가 선택한 부호화 모드에 따라서 화소블록을 부호화함으로써 화소블록의 부호화된 버전을 생성한다.
부호기(200)의 다른 실시예에서, 블록활동 계산기(210)는 프레임의 각 매크로블록에 대한 매크로블록 활동을 계산하도록 구성된다. 블록 분류기(220)는 블록활동 계산기(210)가 계산한 매크로블록 활동들을 기반으로 적어도 낮은 활동 매크로블록들 또는 높은 활동 매크로블록들과 같은 다수의 매크로블록들을 분류한다.
부호기(200)는 또한 매크로블록 활동들을 기반으로 매크로블록들 각각에 대한 각 QP값을 선택하기 위해 구현되는 양자화 선택기(240)를 포함한다. 이와 같은 경우에 있어서, 낮은 활동 매크로블록에는 낮은 QP값이 할당되는 반면, 높은 활동 매크로블록에는 비교적 높은 QP값이 할당된다. 활동 계산기(110)는 앞서 설명한 바와 같이 매크로블록들의 서브그룹들에 대한 활동값을 계산하도록 동작한다. 서브그룹 분류기(230)는 활동값을 기반으로 서브그룹들을 낮은 활동 서브그룹 또는 높은 활동 서브그룹으로 분류한다.
왜곡 결정기(240)는 분류된 낮은 활동 매크로블록에 속하는 서브그룹들과, 높은 활동 매크로블록의 높은 활동 서브그룹들에, 규정된 인수 또는 상수와 동일한 왜곡 가중을 할당한다. 그러나, 높은 활동 매크로블록들에서 낮은 활동 서브그룹들에 대한 왜곡 가중은 규정된 인수보다 커도록 결정되고 또한 바람직하게는, 양자화 선택기(240)에 의해 이들 매크로블록들에 대해 결정된 QP값들을 기반으로 계산된다.
승수(multiplier) 결정기(250)는 양자화 선택기(24)에 의해 결정된 QP값들을 기반으로 매크로블록들에 대한 라그랑지 승수들을 결정하기 위해 부호기(200)에서 구현된다. 부호기(200)는 또한 매크로블록의 부호화된 버전의 비트 크기 또는 손실을 나타내는 율값을 유도하도록 구성되는 율(rate) 계산기(260)를 포함한다. 율-왜곡 계산기(150)는 왜곡 추정기(130)로부터의 왜곡 표현과, 승산 결정기(250)로부터의 라그랑지 승산과 그리고 율 계산기(260)로부터의 율값을 기반으로 매크로블록에 대한 율-왜곡 값을 생성한다. 이러한 율-왜곡 값은, 테스트된 부호화 모드 각각에 대해 계산되고 또한 모드 선택기(270)는 상이한 율-왜곡 값을 기반으로, 바람직하게는 가장 작은 율-왜곡 값이 되는 부호화 모드를 선택함으로써 매크로블록에 대해 사용하기 위한 부호화 모드를 선택할 수 있다.
도 18에서 설명한 부호기(200)는 소프트웨어, 하드웨어 또는 이들의 조합으로 구현할 수 있다. 전자의 경우에 있어서, 부호기(200)는 메모리에 저장되고, 로딩되어 범용 또는 특별한 목적의 컴퓨터, 프로세서 또는 마이크로프로세서에서 작동하는 컴퓨터 프로그램제품으로 구현할 수 있다. 소프트웨어는 부호기(200)의 유닛들(110-130, 150, 210-270)들의 동작을 유발시키는 컴퓨터 프로그램 코드요소들 또는 소프트웨어 코드부분들을 포함한다. 프로그램은, 하나 이상의 적절한 컴퓨터 판독 매체 또는 자기 디스크, CD-ROM, DVD 디스크, USB 메로리, 하드디스크, 광-자기 메모리와 같은 데이터 저장수단에, RAM 또는 휘발성 메모리에, ROM 또는 플래쉬 메모리에, 또는 데이터 서버에 펌웨어로서 전체적으로 또는 부분적으로 저장될 수 있다.
부호기(200)는 컴퓨터, 이동성 장치 또는 다른 영상 또는 이미지 처리장치 또는 시스템에서 구현될 수 있다.
도 19는 다른 실시예에 따른 부호기 구조(300)의 개략적인 블록도이다. 부호기(300)는, 화소블록의 시간적으로 예측된(inter predicted) 버전에 대해 구성되는 움직임 추정유닛 또는 추정기(370)와, 화소블록의 공간적으로 예측된(intra predicted) 대응하는 버전을 생성하기 위한 공간적 예측유닛 또는 예측기(375)를 포함한다. 화소블록 예측과 기준 화소블록들은, 원래 화소블록과 기준 또는 예측된 화소블록들 간의 속성값(property value)들에서 차이로서 잔여 에러(residual error)를 계산하는 에러 계산기(305)로 전송된다. 상기 잔여 에러는, 이산 코사인변환(discrete cosine transform)(310)과, 양자화(315)와 이에 뒤이은 엔트로피 부호화(entropy encoding)(320)에 의해 변환된다.
현재 화소블록에 대해 변환되고 또한 양자화된 잔여 에러는 또한, 원래 잔여 에러의 근사치를 검색하기 위하여 역 양자화기(335)와 역 변환기(340)에 제공된다.
이 원래 잔여 에러는 가산기(345)에서, 움직임 보상유닛(365) 또는 공간적 부호화유닛(360)로부터 출력된 기준 화소블록에 부가되어 복호화된 블록을 계산한다. 복호화된 블록은, 프레임의 다음 화소블록의 예측과 부호화에 사용될 수 있다. 이 복호화된 화소블록은, 프레임(355)이 공간적 예측기(375)와, 움직임 추정기(370)와 움직임 보상유닛(365)에 이용되기 전에, 디블록킹 필터(deblocking filter)(350)에 의해 선택적으로 먼저 처리된다.
부호기(300)는 또한 앞서 설명한 바와 같이 각 화소블록에 대해 특정 부호화 모드를 선택하도록 구성되는 율-왜곡 제어기(380)를 포함한다.
상기에서 설명한 실시예들은 본 발명의 설명적인 예들로서 이해하여야 한다. 본 발명의 범위를 이탈하는 일이 없이 다양한 수정과, 조합들과 변경들이 실시예들에 대해 이루어질 수 있다는 것은 본 기술분야의 당업자라면 이해하게 될 것이다. 특히, 상이한 실시예들에서 상이한 부분 해결책들은 다른 구성으로 조합될 수 있다. 그러나, 본 발명의 범위는 첨부한 청구범위에 의해 규정된다.

Claims (30)

  1. 프레임(1)의 화소블록(10)에 대한 왜곡 표현을 생성하기 위한 방법으로서, 방법은:
    상기 화소블록(10)의 다수 서브그룹(30)들을 규정하는 단계로서, 상기 서브그룹(30) 각각은 상기 화소블록(10)의 적어도 한 화소(20)를 포함하고;
    상기 다수의 서브그룹ㄷ(30)들의 각 서브그룹(30)에 대해, 다수의 화소(20)들을 포함하고 또한 상기 서브그룹(30)을 둘러싸는 화소 인접부(40)에서 화소값들의 분포를 나타내는 활동값을 결정하는 단계와;
    상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 상기 서브그룹(30)에 대해 결정된 상기 활동값을 기반으로 왜곡 가중을 결정하는 단계와;
    상기 다수의 왜곡 가중들과, 상기 화소블록(10)의 화소값들과 그리고 상기 화소블록(10)에 대한 기준 화소값들을 기반으로 상기 화소블록(10)에 대한 왜곡 표현을 추정하는 단계를 포함하는 것을 특징으로 하는, 프레임의 화소블록에 대한 왜곡 표현을 생성하기 위한 방법.
  2. 제1항에 있어서, 상기 왜곡 가중을 결정하는 단계는, 제1활동보다 비교적으로 낮은 제2활동값을 나타내는 활동값을 가지는 서브그룹(30)에 대한 왜곡 가중보다 낮아지게 되는, 상기 제1활동값을 나타내는 활동값을 가지는 서브그룹(30)에 대한 왜곡 가중을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항 내지 제2항에 있어서, 상기 다수의 서브그룹(30)들을 규정하는 단계는, 상기 화소블록(10)의 다수의 비-중첩 서브그룹(30)들을 규정하는 단계를 포함하고, 서브그룹(30) 각각은 2 m × 2 m 화소(20)들을 포함하고, 상기 m 은 0 또는 양의 정수인이 것을 특징으로 하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 활동값을 결정하는 단계는:
    상기 다수의 서브그룹(30)들의 각 서브그룹(30)과 그리고 다수의 화소(20)을 포함하고 또한 상기 서브그룹(30)을 둘러싸는 다수의 잠재적인 화소 인접부(40)들 각각에 대해, 상기 화소 인접부(40)에서 화소값들의 분포를 나타내는 후보 활동값을 계산하는 단계와;
    상기 다수의 후보 활동값들 중 가장 작은 후보 활동값을 상기 서브그룹(30)에 대한 상기 활동값으로서 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 후보 활동값을 계산하는 단계는, 상기 화소 인접부(40)에서 수직으로 또한 수평으로 이웃하는 화소(20)들의 화소값들에서 절대차의 합을 기반으로 상기 후보 활동값을 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제4항 내지 제5항에 있어서, 상기 다수의 잠재적인 화소 인접부(40)들을 상기 서브그룹(30)을 둘러싸는 2 a × 2 b 화소(20)들의 블록들 각각으로서 식별하는 단계를 더 포함하고, 상기 a,b 들은 1과 동일하거나 1보다큰 양의 정수들이고, 그리고 상기 다수의 잠재적인 화소 인접부(40)들중 한 잠재적인 화소 인접부(40) 내에서 상기 서브그룹(30)의 위치는 상기 다수의 잠재적인 화소 인접부(40)들중 다른 잠재적인 화소 인접부(40)들 내에서 상기 서브그룹(30)의 위치들 각각과는 상이한 것을 특징으로 하는 방법.
  7. 제6항에 있어서, 상기 다수의 잠재적인 화소 인접부(40)들을 식별하는 상기 단계는, 상기 프레임(1)에서 상기 서브그룹(30)을 둘러싸고 또한 2 c × 2 d 격자(50) 상에 위치하는 각 잠재적인 화소 인접부(40)를 식별하는 단계를 포함하고, 상기 c, d 들은 1과 동일하거나 도는 1보다 크고, cadb 인 것을 특징으로 하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 왜곡 가중을 결정하는 단계는:
    a) 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 상기 서브그룹(30)에 대해 결정된 상기 활동값을 적어도 하나의 활동 임계값과 비교하는 단계와;
    b) 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 상기 비교를 기반으로 상기 왜곡 가중을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서, 상기 화소블록(10)에 대해 양자 변수값을 결정하는 단계를 더 포함하고, 상기 결정단계 b)는:
    i) 만일 상기 서브그룹(30)에 대해 결정된 상기 활동값이 활동 임계값을 초과한다면, 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 규정된 상수와 동일하게 되는 상기 왜곡 가중을 결정하는 단계와;
    ii) 만일 상기 서브그룹(30)에 대해 결정된 상기 활동값이 상기 활동 임계값 아래라면, 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 상기 화소블록(10)에 대해 결정된 상기 양자화 변수값을 기반으로 상기 왜곡 가중을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 양자화 변수값을 기반으로 상기 화소블록(10)에 대한 라그랑지 승수를 결정하는 단계를 더 포함하고, 만일 상기 서브그룹(30)에 대해 결정된 상기 활동값이 상기 활동 임계값 아래라면, 상기 결정단계 ii)는 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해,
    Figure pct00021
    가 되는 왜곡 가중 k를 결정하는 단계를 포함하고, 상기 f는 1과 동일하거나 1보다 큰 인수이고, λ N 은 상기 화소블록(10)에 대한 상기 라그랑지 승수를 나타내고, λ M 은 상기 프레임(1)에서 이웃하는 화소블록에 대한 라그랑지 승수를 나타내는 것을 특징으로 하는 방법.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 프레임(1)에서 각 화소블록(10)에 대해, 상기 화소블록(10)에서 화소값들의 분포를 나타내는 블록 활동을 결정하는 단계와;
    상기 화소블록(10)에 대해 결정된 양자화 변수들 각각을 기반으로 상기 프레임의 화소블록(10)들을 다수의 범주로 나누는 단계와;
    상기 다수의 범주들 중 한 범주에 대해, 가장 높은 블록활동을 가지는 화소블록을 식별하는 단계와;
    상기 식별된 화소블록에 대해 결정된 활동값들을 기반으로 활동 임계값을 계산하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 화소블록(10)들에 대해 결정된 양자화 변수들 각각을 기반으로 상기 프레임의 화소블록(10)들은 다수의 범주들로 나누는 단계와;
    상기 다수의 범주들 각각에 속하는 상기 프레임(1)의 상기 화소블록(10)들의 비율 각각을 계산하는 단계와;
    상기 비율들 각각을 기반으로 상기 적어도 하나의 활동 임계값을 계산하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 왜곡 표현을 추정하는 단계는 상기 왜곡 표현 D를 다음과 같이 계산하는 단계를 포함하고:
    Figure pct00022

    여기서 p ij 는 상기 화소블록(10) 내에서 화소 위치 i, j 에서 화소값을 나타내고, q ij 는 화소위치 i, j 에서 기준 화소값을 나타내고, k ij 는 상기 화소블록(10) 내에서 화소위치 i, j 에서 서브그룹(30)의 왜곡 가중을 나타내고, n 1과 동일하거나 또는 1보다 큰 양수이고 그리고 상기 화소블록(10)은 M×N 화소(20)들을 포함하는 것을 특징으로 하는 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 화소블록(10)에 할당된 양자화 변수값을 기반으로 상기 화소블록(10)에 대해 라그랑지 승수를 결정하는 단계와;
    상기 화소블록(10)에 대해, 상기 양자화 변수갑을 기반으로 생성된 상기 화소블록(10)의 부호화 버전의 비트 손실을 나타내는 율값을 결정하는 단계와;
    상기 왜곡 표현과, 상기 라그랑지 승수와 그리고 상기 율값을 기반으로 상기 화소블록(10)의 율-왜곡 값을 계산하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    다수의 이용가능한 부호화 모드 셋트의 각 부호화 모드에 따라서 상기 화소블록(10)을 의사-부호화하는 단계와;
    상기 다수의 이용가능한 부호화 모드들 각각에 대한 율-왜곡 값을 계산하는 단계와;
    상기 다수의 이용가능한 부호화 모드들 중에서 상기 율-왜곡 값을 극소화하는 부호화 모드를 선택하는 단계와;
    상기 선택된 부호화 모드에 따라서 상기 화소블록을 부호화함으로써 상기 화소블록(10)의 부호화 버전을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 화소(20)들의 다수 매크로블록(10)들을 포함하는 프레임(1)을 부호화하는 방법으로서, 상기 방법은:
    각 매크로블록(10)에 대해, 상기 매크로블록(10) 내에서 화소값들의 분포를 나타내는 매크로블록 활동을 계산하는 단계와;
    상기 다수의 매크로블록(10)들의 각 매크로블록(10)에 대해, 상기 각 매크로블록 활동들을 기반으로 상기 다수 매크로블록(10)들을 적어도 낮은 활동 매크로블록들 또는 높은 활동 매크로블록들로 분류하는 단계로서, 낮은 활동 매크로블록으로서 분류되는 매크로블록(10)에는 낮은 양자화 변수값이 할당되고 또한 높은 활동 매크로블록으로 분류되는 매크로블록(10)에는 상기 낮은 양자화 변수값보다 큰 높은 양자화 변수값이 할당되고;
    상기 매크로블록(10)의 다수 서브그룹(30)들 중에서 적어도 한 화소(20)의 각 서브그룹(30)에 대해, 다수의 화소(20)를 포함하고 또한 상기 서브그룹(30)을 둘러싸는 화소 인접부(40)에서 화소값들의 분포를 나타내는 활동값을 결정하는 단계와;
    상기 각 활동값들을 기반으로 상기 다수의 서브그룹(30)들 각각을 낮은 활동 서브그룹들 또는 높은 활동 서브그룹들로 분류하는 단계와;
    높은 활동 매크로블록에서 낮은 활동 서브그룹 각각에 대해, 규정된 상수보다 큰 왜곡 가중을 결정하는 단계와;
    낮은 활동 매크로블록의 각 서브그룹과 높은 활동 매크로블록의 각 높은 활동 서브그룹에 대해 상기 규정된 상수와 동일한 왜곡 가중을 할당하는 단계와;
    라그랑지 손실 함수 J = D + λ × R 을 최소화하는 다수의 이용가능한 부호화 모드 셋트의 부호화 모드를 선택하는 단계로서, D는
    Figure pct00023
    와 동일한 왜곡을 나타내고, 여기서 p ij 는 매크로블록(10) 내에서 화소 위치 i, j 에서 화소값을 나타내고, q ij 는 상기 매크로블록(10) 내에서 화소위치 i, j 에서 복원된 화소값을 나타내고, k ij 는 상기 매크로블록(10) 내에서 화소위치 i, j 에서 서브그룹(30)의 왜곡 가중을 나타내고, n 1과 동일하거나 또는 1보다 큰 양수이고, λ는 상기 매크로블록(10)에 대한 상기 양자화 변수값을 기반으로 상기 매크로블록(10)에 대해 선택된 라그랑지 승수를 나타내고 그리고 R은 상기 매크로블록(10)에 대한 상기 양자화 변수값을 사용하는 부호화 모드에 따라서 얻은 상기 매크로블록(10)의 부호화 버전의 비트 손실을 나타내는 율값을 나타내고; 그리고
    상기 선택된 부호화 모드에 따라서 상기 매크로블록(10)을 부호화하는 단계로 구성되는 것을 특징으로 하는, 화소들의 다수 매크로블록들을 포함하는 프레임을 부호화하는 방법.
  17. 프레임(1)의 화소블록(10)에 대한 왜곡 표현을 생성하기 위한 장치(100)로서, 상기 장치는:
    상기 화소블록(10) 내 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 다수의 화소(20)들을 포함하고 또한 상기 화소블록(10)의 적어도 한 화소(10)를 포함하는 상기 서브그룹(30)을 둘러싸는 화소 인접부(40)에서 화소값들의 분포를 나타내는 활동값을 계산하도록 구성되는 활동 계산기(110)와;
    상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 상기 활동 계산기(110)에 의해 상기 서브그룹(30)에 대해 계산된 상기 활동값을 기반으로 왜곡 가중을 결정하도록 구성되는 왜곡 결정기(120)와;
    상기 왜곡 결정기(120)에 의해 결정된 다수의 왜곡 가중들과, 상기 화소블록(10)의 화소값들과 그리고 상기 화소블록(10)에 대한 기준 화소값들을 기반으로 상기 화소블록(10)에 대한 왜곡 표현을 추정하도록 구성되는 왜곡 추정기(130)를 포함하는 것을 특징으로 하는, 프레임의 화소블록에 대한 왜곡 표현을 생성하기 위한 장치.
  18. 제17항에 있어서, 상기 활동 계산기(110)는 상기 다수의 서브그룹(30)들의 각 서브그룹(30)과 그리고 다수의 화소(20)들을 포함하고 또한 상기 서브그룹(30)을 둘러싸는 다수의 잠재적인 화소 인접부(40)들 각각에 대해, 상기 화소 인접부(40)에서 화소값들의 분포를 나타내는 후보 활동값을 계산하고 또한 상기 다수의 후보 활동값들 중에서 가장 작은 후보 활동값을 상기 서브그룹(30)에 대한 상기 활동값으로서 선택하도록 구성되는 것을 특징으로 하는 장치.
  19. 제18항에 있어서, 상기 활동 계산기(110)는 상기 화소 인접부(30)에서 수직으로 또한 수평으로 인접하는 화소(20)들에서 절대차의 합을 기반으로 상기 후보 활동값을 계산하도록 구성되는 것을 특징으로 하는 장치.
  20. 제18항 또는 제19항에 있어서, 상기 활동 계산기(110)는, 상기 다수의 잠재적인 화소 인접부(40)들을 상기 서브그룹(30)을 둘러싸는 2 a × 2 b 화소(20)들의 블록들 각각으로 식별하도록 구성되고, 상기 a, b 들은 1과 동일하거나 1보다 큰 양의 정수이고, 그리고 상기 다수의 잠재적인 화소 인접부(40)들의 잠재적인 한 화소 인접부(40) 내에서 상기 서브그룹(30)의 한 위치는 상기 다수의 잠재적인 화소 인접부(40)들의 다른 잠재적인 화소 인접부(40)들 각각 내에서 상기 서브그룹(30)의 위치들 각각과는 상이한 것을 특징으로 하는 장치.
  21. 제20항에 있어서, 상기 활동 계산기(110)는 상기 서브그룹(30)을 둘러싸고 또한 상기 프레임(1)에서 2 c × 2 d 격자(50) 상에 위치하는 잠재적인 각 화소 인접부(40)를 식별하도록 구성되고, c, d 들은 1과 동일하거나 1보다 큰 정수들이고, cadb 인 것을 특징으로 하는 장치.
  22. 제17항 내지 제21항 중 어느 한 항에 있어서, 상기 왜곡 결정기(120)는 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 상기 서브그룹(30)에 대해 결정된 상기 활동값을 적어도 하나의 활동 임계값과 비교하고, 또한 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해 상기 비교를 기반으로 상기 왜곡 가중을 결정하도록 구성되는 것을 특징으로 하는 장치.
  23. 제22항에 있어서, 상기 화소블록(10)에는 양자화 변수값이 할당되고, 또한 만일 상기 서브그룹(30)에 대해 결정된 상기 활동값이 활동 임계값을 초과한다면 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 규정된 상수와 동일하게 되는 상기 왜곡 가중을 결정하고, 또한 만일 상기 서브그룹(30)에 대해 결정된 상기 활동값이 상기 임계값 아래라면 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해, 상기 화소블록(10)에 할당된 상기 양자화 변수값을 기반으로 상기 왜곡 가중을 결정하도록 상기 왜곡 결정기(120)가 구성되는 것을 특징으로 하는 장치.
  24. 제23항에 있어서, 상기 양자화 변수값을 기반으로 상기 화소블록(10)에 대해 선택된 라그랑지 승수가 상기 화소블록(10)에 할당되고, 또한 만일 상기 서브그룹(30)에 대해 결정된 상기 활동값이 상기 활동 임계값 아래라면 상기 다수의 서브그룹(30)들의 각 서브그룹(30)에 대해,
    Figure pct00024
    가 되는 왜곡 가중, k를 결정하도록 상기 왜곡 결정기(120)가 구성되고, 상기 f는 1과 동일하거나 1보다 큰 인수이고, λ N 은 상기 화소블록(30)에 대한 상기 라그랑지 승수를 나타내고, λ M 은 상기 프레임(10)에서 이웃하는 화소블록에 대한 라그랑지 승수를 나타내는 것을 특징으로 하는 장치.
  25. 제22항 내지 제24항 중 어느 한 항에 있어서,
    상기 프레임(1)에서 각 화소블록(10)에 대해, 상기 화소블록(10) 내 화소값들의 분포를 나타내는 블록활동을 계산하도록 구성되는 블록활동 계산기(141)와;
    상기 화소블록(10)들에 대해 할당된 양자화 변수값들 각각을 기반으로, 상기 프레임(1)의 화소블록(10)들을 다수의 범주들로 나누도록 구성되는 블록 분류기(143)와;
    상기 다수의 범주들의 각 범주에 대해, 가장 높은 블록활동을 가지는 화소블록을 식별하도록 구성되는 화소블록 식별기(145)와;
    상기 화소블록 식별기(145)가 식별한 상기 화소블록에 대해 계산된 활동값들을 기반으로 상기 적어도 하나의 활동 임계값을 계산하도록 구성도는 임계값 계산기(147)를 더 포함하는 것을 특징으로 하는 장치.
  26. 제22항 내지 제24항 중 어느 한 항에 있어서,
    상기 화소블록(10)에 대해 할당된 양자화 변수값들 각각을 기반으로 상기 프레임의 화소블록(10)들을 다수의 범주들로 나누도록 구성되는 블록 분류기(143)와;
    상기 다수의 범주들 각각에 속하는 상기 프레임(1)의 상기 화소블록(10)들의 각 비율을 계산하도록 구성되는 비율 계산기(149)와;
    상기 비율 계산기(149)가 계산한 상기 각 비율들을 기반으로 상기 적어도 하나의 활동 임계값을 계산하도록 구성되는 임계값 계산기(147)를 더 포함하는 것을 특징으로 하는 장치.
  27. 제17항 내지 제26항 중 어느 한 항에 있어서, 상기 왜곡 추정기(130)는 다음과 같은 상기 왜곡 표현, D를 계산하도록 구성되고:
    Figure pct00025

    여기서 p ij 는 상기 화소블록(10) 내에서 화소 위치 i, j 에서 화소값을 나타내고, q ij 는 화소위치 i, j 에서 기준 화소값을 나타내고, k ij 는 상기 화소블록(10) 내에서 화소위치 i, j 에서 서브그룹(30)의 왜곡 가중을 나타내고, n 1과 동일하거나 또는 1보다 큰 양수이고 그리고 상기 화소블록(10)은 M×N 화소(20)들을 포함하는 것을 특징으로 하는 장치.
  28. 제17항 내지 제27항 중 어느 한 항에 있어서, 상기 왜곡 표현과, 상기 화소블록(10)에 대해 할당된 양자화 변수값을 기반으로 상기 화소블록(10)에 대해 선택된 라그랑지 승수와 그리고 상기 양자화 변수를 기반으로 생성되는 상기 화소블록(10)의 부호화 버전의 비트 손실을 나타내는 율값을 기반으로 상기 화소블록(10)에 대한 율-왜곡 값을 계산하도록 구성되는 율왜곡 계산기(150)를 더 포함하는 것을 특징으로 하는 장치.
  29. 화소블록(10)을 부호화하도록 구성되고 또한 다수의 이용가능한 부호화 모드 셋트의 각 부호화 모드에 따라서 상기 화소블록을 의사-암호화하도록 구성되는 부호기(200)에 있어서, 상기 부호기(200)는:
    청구항 28에 따른 왜곡 표현을 추정하기 위한 장치(100)를 포함하되, 상기 율-왜곡 계산기(150)는 상기 다수의 이용가능한 부호화 모드들 각각에 대해 율-왜곡 값을 계산하도록 구성되고;
    상기 다수의 이용가능한 부호화 모드들 중에서 상기 율-왜곡 값을 최소화하는 부호화 모드를 선택하도록 구성되는 모드 선택기(270)를 포함하되, 상기 부호기(200)는 상기 모드 선택기(270)가 선택한 상기 부호화 모드에 따라서 상기 화소블록(10)을 부호화함으로써 상기 화소블록(10)의 부호화 버전을 생성하도록 구성되는 것을 특징으로 하는 부호기.
  30. 화소(20)들의 다수 매크로블록(10)들을 포함하는 프레임(1)을 부호화하도록 구성된 부호기(200)에 있어서, 상기 부호기(200)는:
    각 매크로블록(10)에 대해, 상기 매크로블록(10)에 대한 화소값들의 분포를 매크로블록 활동을 계산하도록 구성되는 블록활동 계산기(210)를 포함하고;
    상기 다수의 매크로블록(10)들을, 상기 블록활동 계산기(210)가 계산한 상기 각 매크로블록 활동들을 기반으로 적어도 낮은 활동 매크로블록들 또는 높은 활동 매크로블록들로 분류하도록 구성되는 블록 분류기(220)를 포함하고;
    각 매크로블록(10)에 대해, 상기 블록활동 계산기(210)가 계산한 상기 매크로블록 활동을 기반으로 양자화 변수를 선택하도록 구성되는 양자화 선택기(240)를 포함하되, 상기 다수의 매크로블록(10)들의 각 매크로블록(10)에 대해, 낮은 활동 매크로블록으로 분류된 매크로블록(10)에는 상기 양자화 선택기(240)에 의해 낮은 양자화 변수값이 할당되고 또한 높은 양자화 매크로블록으로 분류된 매크로블록(10)에는 상기 낮은 양자화 변수값보다 큰 높은 양자화 변수값이 상기 양자화 선택기(240)에 의해 할당되고;
    상기 매크로블록(10) 내 다수의 서브그룹(30)들 중에서 적어도 한 화소(20)의 각 서브그룹(30)에 대해, 다수의 화소(20)들을 포함하고 또한 상기 서브그룹(30)을 둘러싸는 화소 인접부(40)에서 화소값들의 분포를 나타내는 활동값을 계산하도록 구성되는 활동 계산기(110)를 포함하고;
    상기 활동 계산기(110)가 계산한 상기 활동값들 각각을 기반으로 상기 다수의 서브그룹(30)들 각각을 낮은 활동 서브그룹들 또는 높은 활동 서브그룹들로 분류하도록 구성되는 서브그룹 분류기(230)를 포함하고;
    높은 활동 매크로블록 내 낮은 활동 서브그룹 각각에 대해 규정된 상수보다 큰 왜곡 가중을 결정하고 또한 낮은 활동 매크로블록 내 각 서브그룹과 높은 활동 매크로블록 내 높은 활동 서브그룹 각각에 대해 상기 규정된 상수와 동일한 왜곡 가중을 할당하도록 구성되는 왜곡 결정기(120)를 포함하고;
    라그랑지 손실 함수 J = D + λ × R 을 최소화하는 다수의 이용가능한 부호화 모드 셋트의 부호화 모드를 선택하도록 구성되는 모드 선택기(27)를 포함하되, D는
    Figure pct00026
    와 동일한 왜곡을 나타내고, 여기서 p ij 는 매크로블록(10) 내에서 화소 위치 i, j 에서 화소값을 나타내고, q ij 는 상기 매크로블록(10) 내에서 화소위치 i, j 에서 복원된 화소값을 나타내고, k ij 는 상기 매크로블록(10) 내에서 화소위치 i, j 에서 서브그룹(30)의 왜곡 가중을 나타내고, n 1과 동일하거나 또는 1보다 큰 양수이고, λ는 상기 매크로블록(10)에 대한 상기 양자화 변수값을 기반으로 상기 매크로블록(10)에 대해 선택된 라그랑지 승수를 나타내고 그리고 R은 상기 매크로블록(10)에 대한 상기 양자화 변수값을 사용하는 부호화 모드에 따라서 얻은 상기 매크로블록(10)의 부호화 버전의 비트 손실을 나타내는 율값을 나타내고, 상기 부호기(200)는 상기 모드 선택기(270)가 선택한 상기 부호화 모드에 따라서 상기 매크로블록(10)을 부호화하도록 구성되는 것을 특징으로 하는, 화소들의 다수 매크로블록들을 포함하는 프레임을 부호화하도록 구성된 부호기.
KR1020117021635A 2009-04-28 2010-04-27 왜곡 가중 KR20120006488A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17324709P 2009-04-28 2009-04-28
US61/173,247 2009-04-28

Publications (1)

Publication Number Publication Date
KR20120006488A true KR20120006488A (ko) 2012-01-18

Family

ID=43032395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117021635A KR20120006488A (ko) 2009-04-28 2010-04-27 왜곡 가중

Country Status (6)

Country Link
US (1) US20120039389A1 (ko)
EP (1) EP2425628A4 (ko)
JP (1) JP5554831B2 (ko)
KR (1) KR20120006488A (ko)
CN (1) CN102415097B (ko)
WO (1) WO2010126437A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100566427C (zh) * 2007-07-31 2009-12-02 北京大学 用于视频编码的帧内预测编码最佳模式的选取方法及装置
KR101791078B1 (ko) 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
JP2012213128A (ja) 2011-03-24 2012-11-01 Sony Corp 画像処理装置および方法
WO2013075319A1 (en) * 2011-11-24 2013-05-30 Technicolor (China) Technology Co., Ltd. Methods and apparatus for an artifact detection scheme based on image content
WO2014193631A1 (en) * 2013-05-31 2014-12-04 Intel Corporation Adjustment of intra-frame encoding distortion metrics for video encoding
US10104395B2 (en) * 2013-10-14 2018-10-16 Texas Instruments Incorporated Intra block copy (IntraBC) cost estimation
EP3036903A4 (en) * 2013-10-25 2016-11-09 Mediatek Inc METHOD AND APPARATUS FOR CONTROLLING TRANSMISSION OF COMPRESSED IMAGE FROM TRANSMISSION SYNCHRONIZATION EVENTS
US10356405B2 (en) 2013-11-04 2019-07-16 Integrated Device Technology, Inc. Methods and apparatuses for multi-pass adaptive quantization
US20150208069A1 (en) * 2014-01-23 2015-07-23 Magnum Semiconductor, Inc. Methods and apparatuses for content-adaptive quantization parameter modulation to improve video quality in lossy video coding
TWI561060B (en) * 2015-01-15 2016-12-01 Mstar Semiconductor Inc Signal processing apparatus and signal processing method including quantization or inverse-quantization process
US10645416B2 (en) * 2015-05-12 2020-05-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding an image using a modified distribution of neighboring reference pixels
US10057601B2 (en) * 2015-06-22 2018-08-21 Integrated Device Technology, Inc. Methods and apparatuses for filtering of ringing artifacts post decoding
CN111512632B (zh) * 2017-11-01 2023-07-14 Vid拓展公司 用于简化视频译码中的自适应环路滤波器的方法
EP3547686A1 (en) * 2018-03-29 2019-10-02 InterDigital VC Holdings, Inc. Method and apparatus for decoder side prediction based on weighted distortion
US11997275B2 (en) * 2018-08-27 2024-05-28 AT Technologies ULC Benefit-based bitrate distribution for video encoding
CN113596483B (zh) * 2021-08-20 2024-03-12 红河学院 一种编码树单元的参数确定方法及***

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5229864A (en) * 1990-04-16 1993-07-20 Fuji Photo Film Co., Ltd. Device for regenerating a picture signal by decoding
US5396567A (en) * 1990-11-16 1995-03-07 Siemens Aktiengesellschaft Process for adaptive quantization for the purpose of data reduction in the transmission of digital images
US5214507A (en) * 1991-11-08 1993-05-25 At&T Bell Laboratories Video signal quantization for an mpeg like coding environment
AU6099594A (en) * 1993-02-03 1994-08-29 Qualcomm Incorporated Interframe video encoding and decoding system
DE69428979T2 (de) * 1993-08-30 2002-08-08 Sony Corp Einrichtung und verfahren zur kodierung von bilddaten
US5486863A (en) * 1994-04-29 1996-01-23 Motorola, Inc. Method for determining whether to intra code a video block
US6192081B1 (en) * 1995-10-26 2001-02-20 Sarnoff Corporation Apparatus and method for selecting a coding mode in a block-based coding system
US5742622A (en) * 1996-03-12 1998-04-21 Discovision Associates Error detection and correction system for a stream of encoded data
US6414994B1 (en) * 1996-12-18 2002-07-02 Intel Corporation Method and apparatus for generating smooth residuals in block motion compensated transform-based video coders
KR100243430B1 (ko) * 1997-12-31 2000-02-01 구자홍 적응형 양자화 제어방법
KR100904329B1 (ko) * 2001-03-28 2009-06-23 소니 가부시끼 가이샤 화상 처리 장치, 화상 처리 방법, 및 기록 매체
JP4253276B2 (ja) * 2004-06-15 2009-04-08 株式会社東芝 画像符号化方法
US7792188B2 (en) * 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data
US7830961B2 (en) * 2005-06-21 2010-11-09 Seiko Epson Corporation Motion estimation and inter-mode prediction
US8325822B2 (en) * 2006-01-20 2012-12-04 Qualcomm Incorporated Method and apparatus for determining an encoding method based on a distortion value related to error concealment
GB2444991A (en) * 2006-12-21 2008-06-25 Tandberg Television Asa Method of selecting quantizer values in video compression systems
EP3107295A1 (en) * 2007-03-20 2016-12-21 Fujitsu Limited Video encoding method and apparatus, and video decoding apparatus
US8019804B2 (en) * 2007-03-26 2011-09-13 City University Of Hong Kong Method and apparatus for calculating an SSD and encoding a video signal
JP4709179B2 (ja) * 2007-05-14 2011-06-22 日本電信電話株式会社 符号化パラメータ選択方法,符号化パラメータ選択装置,符号化パラメータ選択プログラムおよびその記録媒体
JP4709187B2 (ja) * 2007-07-10 2011-06-22 日本電信電話株式会社 符号化パラメータ決定方法、符号化パラメータ決定装置、符号化パラメータ決定プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP5427785B2 (ja) * 2007-09-28 2014-02-26 ドルビー ラボラトリーズ ライセンシング コーポレイション ビデオ圧縮技法及びビデオ伝達技法
JP4824708B2 (ja) * 2008-01-31 2011-11-30 日本電信電話株式会社 動画像符号化方法,装置,プログラムおよびコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
WO2010126437A1 (en) 2010-11-04
JP2012525763A (ja) 2012-10-22
EP2425628A1 (en) 2012-03-07
CN102415097B (zh) 2015-01-07
CN102415097A (zh) 2012-04-11
EP2425628A4 (en) 2016-03-02
US20120039389A1 (en) 2012-02-16
JP5554831B2 (ja) 2014-07-23

Similar Documents

Publication Publication Date Title
KR20120006488A (ko) 왜곡 가중
JP6748749B2 (ja) 再構成された画像のサンプルのセットのための補償オフセットを復号するための方法および装置
US9462281B2 (en) Apparatus for encoding an image
KR100739714B1 (ko) 인트라 예측 모드 결정 방법 및 장치
JP5982612B2 (ja) イントラ予測モード復号化方法
US8199818B2 (en) Intra prediction system of video encoder and video decoder
KR20190062302A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20180061099A (ko) 영상의 인트라 예측 부호화, 복호화 방법 및 장치
KR20190043482A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20100260261A1 (en) Image encoding apparatus, image encoding method, and computer program
KR20130045153A (ko) 영상 복호화 장치
KR20130004133A (ko) 휘도 성분 영상을 이용한 색차 성분 영상의 예측 방법 및 예측 장치
JP2013535919A (ja) 予測ブロック生成装置
WO2008020687A1 (en) Image encoding/decoding method and apparatus
US11856197B2 (en) Image encoding/decoding method and apparatus, and recording medium storing bitstream
Najafabadi et al. Mass center direction-based decision method for intraprediction in HEVC standard
EP2046053A1 (en) Method and device for adaptively quantizing parameters for image coding
KR101989160B1 (ko) 영상 부호화 방법 및 장치
KR20140089488A (ko) 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치
KR20110067539A (ko) 화면 내 예측 부호화/복호화 방법 및 장치
JP5299328B2 (ja) 画像処理装置および画像処理方法
KR101761278B1 (ko) 영상 복호화 방법 및 장치
KR20150090010A (ko) 영상의 부호화 방법 및 장치, 영상 복호화 방법 및 장치
Tang et al. Optimization of CU Partition Based on Texture Degree in H. 266/VVC
KR101886259B1 (ko) 영상 부호화 방법 및 장치, 및 부호화된 비트스트림을 포함하는 기록 매체

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application