KR100974025B1 - 레이트-왜곡 특징들을 사용하는 비디오 코딩을 위한 2 패스레이트 제어 기술들 - Google Patents
레이트-왜곡 특징들을 사용하는 비디오 코딩을 위한 2 패스레이트 제어 기술들 Download PDFInfo
- Publication number
- KR100974025B1 KR100974025B1 KR1020087009602A KR20087009602A KR100974025B1 KR 100974025 B1 KR100974025 B1 KR 100974025B1 KR 1020087009602 A KR1020087009602 A KR 1020087009602A KR 20087009602 A KR20087009602 A KR 20087009602A KR 100974025 B1 KR100974025 B1 KR 100974025B1
- Authority
- KR
- South Korea
- Prior art keywords
- rate
- distortion
- qps
- video sequence
- coding
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000013139 quantization Methods 0.000 claims abstract description 24
- 230000015654 memory Effects 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 30
- 230000000116 mitigating effect Effects 0.000 claims description 8
- 238000005259 measurement Methods 0.000 claims 6
- 238000013459 approach Methods 0.000 abstract description 61
- 230000008569 process Effects 0.000 description 12
- 239000013598 vector Substances 0.000 description 11
- 238000012360 testing method Methods 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 8
- 230000009467 reduction Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000010845 search algorithm Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
- H04N19/194—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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 picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/19—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods 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
본 발명은 "2 패스" 접근 방식에 기초하여 비디오 코딩을 개선할 수 있는 레이트 제어 기술들을 설명한다. 제 1 패스는 제 1 패스의 통계들에 기초하여 비디오 시퀀스의 레이트-왜곡 특징들을 추정하기 위해 양자화 파라미터들(QP들)의 제 1 세트를 사용하여 비디오 시퀀스를 코딩한다. QP들의 제 2 세트는 제 2 코딩 패스를 위해 정의될 수 있다. 제 1 코딩 패스의 추정된 레이트-왜곡 특징은 비디오 시퀀스의 프레임들의 왜곡을 최소화하는 방식으로 제 2 패스에 대한 QP들을 선택하기 위해 사용된다.
Description
본 발명은 디지털 비디오 프로세싱에 관한 것이며, 특히 비디오 시퀀스들의 레이트 제어 코딩에 관한 것이다.
디지털 비디오 성능들은 디지털 텔레비전, 디지털 직접 방송 시스템들, 무선 통신 디바이스들, 개인 디지털 보조장치들(PDAs), 랩탑 컴퓨터들, 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 레코딩 디바이스들, 셀룰러 또는 위성 무선 전화기들등등을 포함하는 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 전체 움직임 비디오 시퀀스들을 생성, 수정, 전송, 저장, 기록 및 재생할 때 종래의 아날로그 비디오 시스템들에 비해 상당한 개선점들을 제공할 수 있다.
다수의 상이한 비디오 코딩 표준들이 디지털 비디오 시퀀스들을 코딩하기 위해 성립되었다. 동영상 전문가 그룹(MPEG)은 예를 들어 MPEG-1, MPEG-2, MPEG-4를 포함하는 다수의 표준들을 개발하였다. 다른 표준들은 국제 원격통신 연합(ITU) H.263 표준, Apple Computer of Cupertino California에 의해 개발된 QuickTime™ 기술, 워싱턴에 있는 Microsoft Corporation of Redmond에 의해 개발된 Video for Windows™, Intel Corporation에 의해 개발된 Indeo™, 워싱턴의 시애틀에 있는 RealNetworks, Inc.로부터의 RealVideo™, 및 SuperMac, Inc.에 의해 개발된 Cinepak™을 포함한다. 또한, ITU H.264 표준 및 다수의 전용 표준들을 포함하는 새로운 표준들이 계속해서 나타나고 진화하고 있다.
다수의 비디오 코딩 표준들은 압축된 방식으로 데이터를 코딩함으로써 비디오 시퀀스들의 개선된 전송 레이트들을 허용한다. 압축은 비디오 프레임들의 효율적인 전송을 위해 전송되어야 하는 전체 데이터량을 감소시킬 수 있다. 대부분의 비디오 코딩 표준들은 예를 들어 압축 없이 달성될 수 있는 것보다 더 좁은 대역폭을 통한 비디오 및 이미지 전송을 용이하게 하도록 설계된 그래픽 및 비디오 압축 기술들을 사용한다. MPEG 표준들과 ITU H.263 및 ITU H.264 표준들은 예를 들어 인터-프레임 압축을 제공하기 위해 시간적인 또는 인터-프레임 상관관계라 지칭되는, 연속하는 비디오 프레임들간의 유사성들을 사용하는 비디오 코딩 기술들을 지원한다. 상기 인터-프레임 압축은 일반적으로 움직임 추정 및 움직임 보상 코딩 기술들을 통해 달성된다. 또한, 비디오 프레임들을 압축하기 위해 공간적인 또는 인트라-프레임 상관관계라 지칭되는 몇몇 비디오 코딩 기술들이 프레임들내에서 유사성들을 사용할 수 있다.
다수의 레이트 제어 기술들이 비디오 코딩을 위해 개발되었다. 레이트 제어 기술들은 특히 비디오 시퀀스들의 실시간 전송을 용이하게 하기 위해 중요하지만, 비-실시간 코딩 세팅들에서도 사용될 수 있다. 레이트 제어를 위해, 코딩 기술들은 프레임마다 코딩되는 비트들의 개수를 동적으로 조정할 수 있다. 특히, 레이트 제어는 비디오 시퀀스가 주어진 레이트로 효율적으로 코딩될 수 있고 따라서 할당된 대역폭을 통해 전송될 수 있도록 보장하기 위해 프레임마다 코딩되는 비트들의 개수를 제한할 수 있다. 만약 코딩 기술이 비디오 시퀀스의 장면 변경들에 반응하지 못하면, 비디오 시퀀스의 실시간 전송을 위한 비트 레이트는 장면이 변화함에 따라 상당히 변화할 수 있다. 또한, 몇몇 응용들(무선 비디오 전화통신과 같은)에 대하여, 대역폭 사용가능성은 비디오 시퀀스가 코딩되고 있는 동안 변화할 수 있다. 상기와 같은 또는 다른 이유들로 인해, 레이트 제어 기술들은 코딩 동안 프레임마다 사용되는 비트들의 개수를 동적으로 조정하기 위해 사용될 수 있다.
본 발명은 비디오 코딩을 개선할 수 있는 레이트 제어 기술들을 개시한다. 특히, 본 발명은 "2 패스(two-pass)" 코딩에 기초하는 다수의 레이트 제어 기술들을 설명하지만, 추가적인 패스들이 사용될 수도 있다. 제 1 패스는 제 1 패스의 통계들에 기초하여 비디오 시퀀스의 레이트-왜곡 특징들을 추정하기 위해 양자화 파라미터들(QP들)의 제 1 세트를 사용하여 비디오 시퀀스를 코딩한다. 이어서, QP들의 제 2 세트가 제 2 코딩 패스를 위해 정의될 수 있다. 제 1 코딩 패스가 비디오 시퀀스의 레이트-왜곡 특징들의 추정치를 제공하기 때문에, 제 2 코딩 패스에 대한 QP들의 선택은 인터-프레임 의존성을 고려하여 개선될 수 있다.
다양한 실시예들 및 변형들이 본 명세서에 설명된다. 그러나, 본 발명에 따른 2가지 기본적인 대안들이 일반적으로 제안된다. 제 1 경우에, 제 1 패스의 추정된 레이트-왜곡 특징들은 비디오 시퀀스의 프레임들의 왜곡을 최소화하는 방식으로 제 2 패스에 대한 QP들을 선택하는데 사용된다. 제 2 경우에, 제 1 패스의 추정된 레이트-왜곡 특징들은 비디오 시퀀스의 프레임들 사이의 품질 변동을 최소화하는 방식으로 제 2 패스에 대한 QP들을 선택하는데 사용되며, 또한 낮은 평균 프레임 왜곡을 달성하기 위해 최소화된 품질 변동에서 품질을 최대화할 수 있다.
일 실시예에서, 본 발명은 제 1 코딩 패스의 제 1 양자화 파라미터들(QP들)의 세트를 사용하여 비디오 시퀀스의 프레임들을 코딩하기 위한 수단, 상기 제 1 코딩 패스의 상기 코딩된 비디오 시퀀스에 대한 레이트-왜곡 통계들을 획득하기 위한 수단, 상기 레이트-왜곡 통계들에 기초하여 상기 비디오 시퀀스의 레이트-왜곡 특징들을 추정하기 위한 수단, 및 상기 추정된 레이트-왜곡 특징들에 기초하여 상기 비디오 시퀀스 내의 상기 프레임들의 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택하기 위한 수단을 포함하는 비디오 코딩 디바이스를 제공한다.
다른 실시예에서, 본 발명은 제 1 코딩 패스의 제 1 양자화 파라미터들(QP들)의 세트를 사용하여 비디오 시퀀스의 프레임들을 코딩하기 위한 수단, 상기 코딩된 비디오 시퀀스에 대한 레이트-왜곡 통계들을 획득하기 위한 수단, 상기 레이트-왜곡 통계들에 기초하여 상기 비디오 시퀀스의 레이트-왜곡 특징들을 추정하는 수단, 및 상기 비디오 시퀀스 내의 상기 프레임들의 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택하기 위해 추정된 레이트-왜곡 특징들을 사용하여 제 2 코딩 패스의 비디오 시퀀스의 프레임들 사이의 품질 변동을 실질적으로 최소화하기 위한 수단을 포함하는 비디오 코딩 디바이스를 제공한다.
본 명세서에 개시된 레이트 제어 코딩 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 비디오 코딩 디바이스 내에서 구현될 수 있다. 소프트웨어로 구현되는 경우에, 소프트웨어는 비디오 코딩을 위해 사용되는 프로그램 가능한 프로세서와 같이 프로세서 내에서 구현될 수 있다. 상기 기술들을 수행하는 소프트웨어는 컴퓨터-판독가능 매체 내에 초기에 저장될 수 있고, 이러한 레이트 제어 비디오 코딩을 수행하기 위해 프로세서 내에 로딩되어 실행될 수 있다.
다양한 실시예들의 추가 설명들이 하기의 첨부 도면들 및 설명에서 설명된다. 다른 특징들, 목적들 및 장점들이 하기의 설명, 도면 및 청구항들로부터 명백할 것이다.
도 1은 본 발명에 따른 예시적인 비디오 코딩 디바이스를 설명하는 블럭 다이어그램이다.
도 2는 비디오 시퀀스를 위한 양자화 파라미터들을 정의하기 위해 레이트-왜곡 특징들이 추정되고 사용되는 본 발명의 일 실시예에 따른 2-패스 레이트 제어 비디오 코딩 기술을 설명하는 흐름도이다.
도 3-15는 본 발명의 기술들의 양상들을 설명하는 데이터의 다양한 그래프들이다.
도 16은 비디오 시퀀스의 프레임들에 대한 품질 변동이 최소화되는 본 발명의 일 실시예에 따른 2-패스 레이트 제어 비디오 코딩 기술을 설명하는 흐름도이다.
도 17-26은 본 발명의 기술들의 양상들을 설명하는 데이터의 추가 그래프들이다.
본 발명은 비디오 코딩을 위한 레이트 제어 기술들을 설명한다. 설명된 기술들은 제 1 코딩 패스가 비디오 시퀀스의 특징들을 추정하기 위해 사용되고, 추정된 특징들이 이어서 제 2 패스를 위한 양자화 파라미터들(QP들)의 선택을 개선하는데 사용되는 "2-패스" 접근방식에 기초한다. 본 발명은 비디오 시퀀스의 레이트-왜곡 특징들의 프레임 종속성의 특정 특징들을 이용할 수 있다. 특히, 본 발명은 다수의 경우들에서(특히 본 명세서에서 연구되는 경우들에서) 현재 프레임의 레이트 및 왜곡이 바로 선행하는 프레임에서 사용된 QP에 매우 의존적이지만, 바로 선행하는 프레임 이전의 프레임들을 위해 사용된 QP들은 현재 프레임의 레이트 및 왜곡에 매우 적은 영향을 준다는 것을 제시한다. 이러한 제시들을 사용하여, 계산 집약도의 상당한 감소가 레이트 및 왜곡 모델들을 본질적으로 근사 모델들로 간략화함으로써 코딩 디바이스에서 달성될 수 있다.
제 1 코딩 패스는 제 1 패스의 통계들에 기초하여 비디오 시퀀스의 레이트-왜곡 특징들을 추정하기 위해 QP들의 제 1 세트를 사용하여 비디오 시퀀스를 코딩한다. QP들의 제 1 세트는 동일한 QP를 모든 프레임에 할당하거나, 또는 QP를 결정하기 위해 레이트 버짓(budget)을 사용한 후 각각의 후속하는 QP를 정의하기 위해 나머지 프레임들에 걸쳐 레이트 버짓을 재할당하는 이른바 "그리디(greedy)" 알고리즘을 사용하는 것과 같은 임의의 방식으로 선택될 수 있다. QP들의 제 1 세트가 제 1 코딩 패스에 대하여 선택되거나 결정되는 방식에 관계없이, 비디오 시퀀스에 대한 레이트-왜곡 통계들은 제 1 코딩 패스에 의해 획득될 수 있다.
제 1 코딩 패스 이후에, 비디오 시퀀스의 레이트-왜곡 특징들은 레이트-왜곡 통계들에 기초하여 추정될 수 있다. 레이트-왜곡 특징들이 추정되는 방식은 상이한 실시예들에서 다를 수 있지만, 일반적으로 제 1 코딩 패스에서 획득된 레이트-왜곡 통계들에 레이트 및 왜곡 모델들을 적용하는 것을 포함한다. 레이트-왜곡 특징들이 추정된 이후에, 상기 특징들은 비디오 시퀀스에서 프레임들의 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택하기 위해 사용된다. 제 2 코딩 패스는 그 후에 궁극적으로 비디오 시퀀스를 코딩하기 위해 사용될 수 있고, 상기 제 2 코딩 패스를 위해 선택된 QP들은 이러한 코딩에서 비디오 품질 개선들을 달성할 수 있다.
다양한 실시예들 및 변형들이 본 명세서에 개시된다. 그러나, 본 발명과 일치하는 2개의 기본적인 대안들이 일반적으로 제안된다. 제 1 경우에서, 제 1 패스의 추정된 레이트-왜곡 특징들은 비디오 시퀀스의 프레임들의 왜곡을 최소화하는 방식으로 제 2 패스에 대한 QP들을 선택하는데 사용된다. 제 2 경우에서, 제 1 패스의 추정된 레이트-왜곡 특징들은 비디오 시퀀스의 프레임들 사이의 품질 변동을 최소화하는 방식으로 제 2 패스에 대한 QP들을 선택하는데 사용된다. 왜곡 최소화로 인해 평균적으로 더 양호한 전체 코딩이 발생할 수 있지만, 품질 변동의 최소화는 급격한 품질 변경들로 인한 바람직하지 않은 플릭커링(flickering) 문제들을 감소시키거나 제거할 수 있다. 상기 2가지 경우들의 조합들도 또한 본 발명에 의해 고려된다.
도 1은 예시적인 비디오 코딩 디바이스(10)를 설명하는 블럭 다이어그램이다. 비디오 코딩 디바이스(10)는 비디오 데이터를 코딩하고 전송할 수 있는 디지털 비디오 디바이스의 일부분을 형성할 수 있다. 비디오 데이터는 비디오 카메라로부터 캡처되거나, 비디오 보관소로부터 검색되거나 또는 또다른 방식으로 획득될 수 있다. 코딩 디바이스(10)는 디지털 텔레비전들, 디지털 직접 방송 시스템들, 무선 통신 디바이스들, 개인 디지털 보조장치들(PDAs), 랩탑 컴퓨터들, 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 기록 디바이스들, 셀룰러 또는 위성 무선 전화기들 또는 비디오 전화통신(VT) 성능들을 가지는 임의의 원격통신 디바이스와 같은 디바이스들에서 구현될 수 있다. 코딩 디바이스(10)는 MPEG-4, ITU-T H.263, ITU-T H.264, 또는 양자화된 비디오 코딩을 위해 QP 선택을 필요로 하는 또다른 비디오 코딩 표준을 따를 수 있다. 코딩 디바이스(10)는 움직임 추정 및 움직임 보상과 같은 인터-프레임 코딩 기술들을 지원할 수 있고, 인트라-프레임 코딩을 위해 사용되는 공간 추정 및 인트라-예측 코딩 기술들과 같은 다른 기술들을 지원할 수 있다.
도 1에 도시된 것과 같이, 코딩 디바이스(10)는 비디오 시퀀스들을 코딩하기 위한 비디오 코딩 장치(12) 및 상기 코딩 이전 및 이후에 비디오 시퀀스들을 저장하기 위한 비디오 메모리(20)를 포함한다. 디바이스(10)는 또한 코딩된 시퀀스들을 또다른 디바이스로 전송하기 위한 송신기(22), 및 비디오 시퀀스들을 캡처하고 캡처된 시퀀스들을 메모리(20) 내에 저장하기 위한 비디오 카메라와 같은 비디오 캡처 디바이스(18)를 포함할 수 있다. 코딩 디바이스(10)의 다양한 엘리먼트들은 통신 버스(15)를 통해 통신가능하게 결합될 수 있다. 다양한 필터들과 같은 다양한 다른 엘리먼트들 또는 다른 엘리먼트들이 또한 코딩 디바이스(10) 내에 포함될 수 있지만, 간략함을 위해 상세히 설명되지 않는다. 도 1에 도시된 구조는 본 명세서에 개시된 기술들이 다양한 다른 구조들을 통해 구현될 수 있기 때문에 단순히 예시적이다.
비디오 메모리(20)는 일반적으로 상대적으로 많은 메모리 공간을 포함한다. 비디오 메모리(20)는 예를 들어 동적 랜덤 액세스 메모리(DRAM) 또는 FLASH 메모리를 포함할 수 있다. 다른 예들에서, 비디오 메모리(20)는 비휘발성 메모리 또는 임의의 다른 데이터 저장 디바이스를 포함할 수 있다.
비디오 코딩 장치(12)는 이동 무선전화기를 위한 이른바 "칩셋"을 포함하며, 이는 하드웨어, 소프트웨어, 펌웨어, 및/또는 하나 또는 그 이상의 마이크로 프로세서들의 조합, 디지털 신호 처리기들(DSPs), ASIC들(application specific integrated circuits), 필드 프로그램가능 게이트 어레이들(FPGAs), 또는 이들의 다양한 조합들을 포함할 수 있다. 비디오 코딩 장치(12)는 일반적으로 로컬 메모리(18)에 접속된 비디오 코더(14)를 포함한다. 비디오 코더(14)는 디지털 비디오 데이터를 인코딩 및 디코딩하기 위한 인코더/디코더(CODEC)를 포함할 수 있다. 로컬 메모리(18)는 비디오 메모리(20)에 비해 더 작고 더 고속인 메모리 공간을 포함할 수 있다. 예를 들어, 로컬 메모리(18)는 동기적인 동적 랜덤 액세스 메모리(SDRAM)를 포함할 수 있다. 로컬 메모리(18)는 프로세서-집약적 코딩 프로세스 동안 데이터로의 매우 빠른 액세스를 제공하기 위해 비디오 코딩 장치(12)의 다른 컴포넌트들과 통합된 "온-칩" 메모리를 포함할 수 있다. 그러나, 메모리들(20, 18)은 동일한 메모리 부분으로 결합될 수 있거나 다수의 다른 구성들로 구현될 수 있다.
본 명세서에 개시된 것과 같이, 비디오 코더(14)는 제 1 코딩 패스가 비디오 시퀀스의 특징들을 추정하는데 사용되고 제 2 코딩 패스가 코딩 품질을 개선하기 위해 제 2 코딩 패스 내에서 사용되는 QP들의 선택을 개선하기 위해 그 추정된 특징들을 사용하는 "2-패스" 코딩 접근 방식을 실행한다. 레이트 제어 유니트(30)는 QP 선택 프로세스를 처리하며, 상기 프로세스는 제 1 코딩 패스 내에서 추정된 특징들을 사용한다. 레이트 제어 유니트(30)에 의해 실행되는 기술들은 본질적으로 레이트 및 왜곡 모델들을 근사 모델들로 간략화함으로써 계산 집약도의 상당한 감소를 달성하기 위해 비디오 시퀀스의 레이트-왜곡 특징들을 추정함으로써 프레임 종속성을 이용할 수 있다.
레이트 제어 유니트(30)는 제 1 코딩 패스의 통계들에 기초하여 비디오 시퀀스의 레이트-왜곡 특징들을 추정하기 위해 제 1 코딩 패스 내의 QP들의 제 1 세트를 적용한다. 제 1 코딩 패스 이후에, 레이트 제어 유니트(30)는 레이트-왜곡 통계들에 기초하여 비디오 시퀀스의 레이트-왜곡 특징들을 추정한다. 그 후에, 레이트 제어 유니트(30)는 비디오 시퀀스에서 프레임들의 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택하기 위해 상기 추정된 레이트-왜곡 특징들을 사용한다. 제 2 코딩 패스는 그 후에 궁극적으로 비디오 시퀀스를 코딩하는데 사용될 수 있고, 제 2 코딩 패스에 대하여 선택된 QP들은 상기 코딩에서 비디오 품질 개선들을 달성할 수 있다. 본 발명에 따라, 추정된 특징들은 제 2 패스 내에서 개선된 QP 선택을 허용하는 방식으로 프레임 종속성들을 정량화할 수 있다.
각각의 코딩 패스에 대하여, 주어진 비디오 프레임의 코딩 동안, 코딩될 현재 비디오 블럭은 비디오 메모리(20)로부터 로컬 메모리(18)로 로딩될 수 있다. 예측 비디오 블럭들의 위치를 찾을 때 사용되는 탐색 공간은 비디오 메모리(20)로부터 로컬 메모리(18)로 로딩될 수 있다. 탐색 공간은 선행하는 비디오 프레임들(또는 후속 프레임들) 중 하나 또는 그 이상의 프레임의 픽셀들의 서브 세트를 포함할 수 있다. 선택된 서브 세트는 코딩될 현재 비디오 블럭에 거의 매칭되는 예측 비디오 블럭의 식별을 위한 가능한 위치로서 미리 식별될 수 있다.
로컬 메모리(18)에는 코딩될 현재 비디오 블럭 및 탐색 공간이 로딩된다. 움직임 추정기/공간 추정기(24)는 예측 비디오 블럭을 식별하기 위해 탐색 공간 내의 다양한 비디오 블럭들과 현재 비디오 블럭을 비교한다. 움직임 추정기/공간 추정기(24)는 일반적으로 인터-프레임 코딩을 위한 움직임 추정을 수행하는 움직임 추정기, 인트라-프레임 코딩을 위한 공간 추정을 수행하는 공간 추정기, 또는 상기 움직임 추정과 공간 추정을 수행할 수 있는 결합된 유니트를 표시한다. 일반적으로, 예측 비디오 블럭은 후보 비디오 블럭에 거의 매칭될 수 있는 인터-프레임 상관관계(또는 인트라-프레임 상관관계)를 위해 현재 비디오 블럭과의 적당한 매치를 제공하는 것으로 발견된 후보 비디오 블럭이다. 예측 비디오 블럭은 현재 비디오 블럭에 비해 최소 차이 값을 가지는 비디오 블럭을 식별하기 위해 움직임 추정 프로세스 등안 평가된 다수의 후보 비디오 블럭들 중 하나이다.
코딩될 현재 비디오 블럭과 메모리(18)의 탐색 공간 내의 후보 비디오 블럭들간의 비교들을 수행하기 위해, 움직임 추정기/공간 추정기(24)는 절대 차이의 합(SAD) 기술들, 제곱된 차이의 합(SSD) 기술들, 또는 다른 비교 기술들을 수행할 수 있다. 이러한 방식으로, 움직임 추정기/공간 추정기(24)는 상이한 후보 비디오 블럭들에 대한 상이한 값들을 결정할 수 있다. 더 낮은 차이 값은 일반적으로 후보 비디오 블럭이 더 잘 매칭하고 따라서 다른 후보 비디오 블럭들 이외의 움직임 추정 코딩에서 사용할 더 양호한 후보가 더 높은 차이 값들을 산출한다는 것을 표시한다. 예측 비디오 블럭은 적절한 매치가 발견될 때 식별될 수 있다.
예측 비디오 블럭이 코딩될 비디오 블럭을 위한 움직임 추정기/공간 추정기(24)에 의해 식별되면, 움직임 보상기/인트라-예측 유니트(26)는 나머지 블록을 생성한다. 나머지 블록은 코딩될 현재 비디오 블럭과 움직임 추정 또는 공간 추정에 의해 식별된 예측 비디오 블럭간의 차이들을 표시하는 데이터 블럭이다. 움직임 추정기/인트라-예측 유니트(26)는 일반적으로 인터-프레임 코딩을 위한 움직임 보상을 수행하는 움직임 보상기, 인트라-프레임 코딩을 위한 공간 보상을 수행하는 인트라-예측 유니트, 또는 인터-프레임 코딩 또는 인트라-프레임 코딩이 사용되고 있는지 여부에 따라 움직임 보상 및 인트라-예측을 수행할 수 있는 결합된 유니트를 표시한다. 움직임 보상기/인트라-예측 유니트(26)는 움직임 벡터를 사용하여 예측 블럭을 패치하고, 나머지 블록을 생성하기 위해 입력 블럭으로부터 예측 블럭을 감산할 수 있다. 나머지 블록은 일반적으로 차이 블럭에 의해 표시되는 원래의 비디오 블럭 보다 실질적으로 더 적은 데이터를 포함한다.
움직임 보상기/인트라-예측 유니트(26)가 나머지 블록을 생성한 후에, 나머지(residual) 코더(28)는 이산 코사인 변환(DCT), 지그재그 스캐닝, 런-렝스(run length) 코딩, 가변 길이(호프만) 코딩, 또는 주어진 코딩 표준에서 사용되는 임의의 다른 프로세스와 같은 하나 또는 그 이상의 나머지 코딩 단계들을 수행할 수 있다. 다양한 다른 나머지 코딩 단계들이 또한 수행될 수 있다.
레이트 제어 유니트(30)는 본 발명에 따른 2개의 대안들 중 하나를 실행할 수 있다. 제 1 경우에, 레이트 제어 유니트(30)는 비디오 시퀀스의 모든 프레임들에 걸쳐 왜곡을 최소화하는 방식으로 제 2 패스에 대한 QP들을 선택하기 위해 제 1 패스의 추정된 레이트-왜곡 특징들을 사용한다. 제 2 경우에, 레이트 제어 유니트(30)는 시퀀스의 프레임들의 품질 변동을 최소화하는 방식으로 제 2 패스에 대한 QP들을 선택하기 위해 제 1 패스의 추정된 레이트-왜곡 특징들을 사용한다. 왜곡 최소화는 평균적으로 더 우수한 전체 코딩을 발생할 수 있는 반면에, 품질 변동의 최소화는 급격한 품질 변경들로 인한 플릭커링 문제점들을 감소시키거나 제거하기 위해 요구될 수 있다. 상기 2개 대안들의 각각에 대한 세부 설명은 하기에 상세히 설명된다.
도 2-15의 논의는 그 목표가 코딩된 비디오 시퀀스의 왜곡을 실질적으로 최소화하기 위한 제 1 접근 방식을 강조하지만, 도 16-26은 그 목표가 일반적으로 코딩된 비디오 시퀀스의 품질 변동을 실질적으로 최소화하기 위한 제 2 접근 방식을 강조한다. 그러나, 도 2-26 중 임의의 도면과 관련하여 논의되는 임의의 세부 설명들은 각각의 접근 방식의 일 또는 그 이상의 양상들이 본 발명에 따른 결합에서 사용될 수 있기 때문에 어떠한 접근 방식으로 제한되는 것으로 간주되지 않아야 한다. 본 명세서에서 논의되는 테스트 시퀀스들의 다른 실험 그래프들에서, 테스트 시퀀스들은 일반적으로 코딩 품질을 테스트하고 비교하기 위해 비디오 코딩에서 공통으로 사용되는 4분 공통 이미지 포맷(QCIF) 시퀀스이다.
도 2는 본 발명에 따른 레이트 제어된 비디오 코딩을 위한 기술들을 설명하는 흐름도이다. 도 2에 도시된 것과 같이, 비디오 코더(14)는 QP들의 제 1 세트를 사용하여 비디오 시퀀스의 프레임들을 코딩한다(40). 레이트 제어 유니트(30)는 그 후에 제 1 코딩 패스의 코딩된 비디오 시퀀스에 대한 레이트-왜곡 통계들을 획득한다(41). 비디오 코더(14)의 다양한 다른 유니트들(24, 26, 28)은 레이트 제어 유니트(30)에 의해 식별되는 QP들의 제 1 세트를 사용하여 제 1 코딩 패스 내에서 구현될 수 있다. QP들의 제 1 세트는 다양한 여러 방식들로 또는 임의의 레이트 제어 알고리즘에 따라 선택될 수 있다. 일 예에서, QP들의 제 1 세트는 시퀀스 내의 프레임들의 개수와 관련된 레이트 버짓에 기초하여 프레임에 대한 QP를 선택하지만 그 후에 나머지 레이트 버짓을 나머지 프레임들에 걸쳐 재할당하는 이른바 "그리디(greedy)" 알고리즘에 기초하여 레이트 제어 유니트(30)에 의해 동적으로 선택된다. 또다른 예에서, 동일한 QP가 제 1 패스 내의 모든 프레임들에 대하여 미리 선택되고 사용될 수 있는데, 이 경우에 QP들의 제 1 세트 내의 QP들은 서로 동일하다.
제 1 코딩 패스 이후에, 레이트 제어 유니트(30)는 제 1 코딩 패스에 의해 획득된 레이트-왜곡 통계들에 기초하여 비디오 시퀀스의 레이트-왜곡 특징들을 추정한다(42). 일반적으로, 레이트-왜곡 특징들을 추정하는 프로세스는 레이트-왜곡 통계들에 레이트 모델 및 왜곡 모델을 적용하는 것을 포함한다. 예시적인 수학 모델들이 하기에서 상세히 설명되며, 상기 수학 모델들은 근사치들로의 계산 복잡성을 감소시킬 수 있고, 심지어는 매우 우수한 추정들 및 우수한 코딩 결과들을 제공할 수 있다. 또한, 추정된 특징들은 제 2 패스 내에서 개선된 QP 선택을 허용하는 방식으로 프레임 종속성들을 정량화할 수 있다.
레이트 제어 유니트(30)는 그 후에 레이트 왜곡 특징들에 기초하여제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택한다(43). QP들의 제 2 세트는 QP들의 제 1 세트와는 상이하며 코딩 품질을 개선하기 위해 선택된다. 제 1 코딩 패스는 더 낮은 품질의 코딩 패스일 수 있지만, 정확한 모델링을 적용하기 위해 요구되는 정보를 제공하며, 비디오 시퀀스의 코딩시 인터-프레임 종속성들을 고려할 수 있다. 일 예에서, 레이트 제어 유니트(30)는 하기에서 논의되는 것과 같이 추정된 레이트-왜곡 특징들에 라그랑지안 완화 연산(Largrangian relaxation operation)을 수행함으로써 QP들의 제 2 세트를 선택한다. 상기 경우 또는 유사한 경우에, QP들의 제 2 세트의 선택은 비디오 시퀀스 내의 프레임들의 왜곡을 실질적으로 최소화하는 것을 수반할 수 있다. 임의의 경우에, 레이트 제어 유니트(30)가 QP들의 제 2 세트를 선택하면, 비디오 코더(14)는 QP들의 제 2 세트를 사용하여 비디오 시퀀스를 코딩한다(44).
비디오 코딩에서, 기본적인 문제는 비디오 시퀀스의 최상의 전체 품질을 달성하기 위해 각각의 프레임에 대한 QP를 선택하거나 프레임들 사이에 비트들을 효율적으로 할당하는 것이다. 상기 문제점의 어려움은 주로 프레임들의 코딩 존속성, 및 그로 인해 지수적인 개수의 노드들을 포함하는 후보 공간을 탐색하기 위한 비용으로 인한 것이다. 본 발명의 일 실시예에서, 제 2 패스 코딩에서 실질적인 레이트 및 왜곡 상태를 근사화하기 위해 추정 모델들의 세트를 사용하는 솔루션이 제안된다. 모델들은 다수의 경우들에서 현재 프레임의 레이트 및 왜곡이 그 현재 프레임의 선행하는 프레임의 양자화 레벨에 따라 결정되고, 지난 프레임 이전의 이전 프레임들의 QP 선택이 현재 프레임의 성능에 매우 적은 영향을 미친다는 관찰에 기초한다. 모델들 및 관찰들은 문제의 후보 공간의 상당한 감소를 가능하게 한다. 또한, 라그랑지안 완화 및 동적 프로그래밍을 사용하여, 제약적인 문제점이 비제약적인 문제점으로 변환되고, 최단 경로 탐색 알고리즘에 의해 해결된다. 실험 결과들은 몇몇 종래 CODEC들에서 사용되는 "그리디" 프레임-레벨 레이트 제어 알고리즘과 비교하여 1.7dB까지의 상당한 이득들을 나타내었다.
다수의 종래의 레이트 제어 방식들이 실시간 코딩 애플리케이션들을 위해 설계되며, 그리디 프레임-레벨 비트 할당 전략을 이용한다. 그리드 프레임-레벨 비트 할당 전략은 나중의 프레임들이 균일하게 분포된 텍스처 복잡성을 갖는다고 가정한다. 따라서, 그리디 프레임-레벨 비트 할당 전략은 나중의 프레임들 사이에 나머지 비트들을 동등하게 할당한다.
공교롭게도, 프레임의 레이트-왜곡(R-D) 함수가 이전 코딩된 프레임들에 대한 양자화 파라미터(QP) 선택들에 따라 결정되기 때문에 우수한 프레임 비트 할당을 획득하는 것은 쉬운 일이 아니다. 다시 말해서, 전체 비디오 시퀀스에 대한 전체 레이트-왜곡 함수의 발생은 프레임 종속성들로 인해 매우 어렵다.
본 발명은 정확한 레이트 및 왜곡 추정 모델에 기초하는 프레임-레벨 레이트 제어 알고리즘을 제안한다. 프레임 왜곡은 선행하는 프레임의 양자화 레벨에 매우 의존하는 것이 관찰된다. 또한, 제 2 패스 코딩 동안의 왜곡은 제 1 패스 내의 왜곡의 함수와 같은 통계들(동일한 양자화 레벨을 사용함), 제 1 패스 내의 움직임-보상된 나머지의 에너지, 및 제 1 패스 내의 선행하는 프레임의 왜곡에 의해 근사화될 수 있다. 또한 바로 선행하는 프레임보다 더 이전의 프레임들의 양자화 선택이 현재 프레임의 프레임 왜곡에 매우 적은 영향을 주는 것이 관찰된다. 전술된 관찰들 및 각각의 프레임에 대하여 추정된 ρ- QP 및 D-QP 테이블들(메모리(18) 내에 저장될 수 있는)을 통해, 라그랑지안 완화 기술들은 각각의 프레임에 대한 바람직한 QP 선택을 찾아내기 위해 사용될 수 있다. 값 ρ은 프레임 내의 비-제로 양자화된 DCT 계수들의 개수를 표시하고, QP는 양자화 파라미터를 표시하며, D는 왜곡을 표시한다.
일 실시예에 따라, 제 1 패스 코딩 동안 수집된 통계들에 기초하여 비디오 시퀀스의 최상의 전체 품질을 달성하기 위한 노력으로 각각의 프레임에 대한 QP를 선택하는 것으로 그 문제점이 정의될 수 있다. 제 1 패스 코딩을 수행하는 방법의 문제가 상기 문제를 단순화하기 위해 관련되지만, "그리디" 프레임-레벨 비트 할당 알고리즘이 제 1 패스에서 프레임을 코딩하는데 사용되는 것을 가정할 수 있다. 물론, 다른 제 1 패스 코딩 기술들이 본 발명의 2-패스 기술들에 따라 사용될 수 있다. 하기에서, 프레임 비트 레이트는 프레임 내의 비-제로 양자화된 DCT 계수들의 개수인 ρ의 함수로서 모델링된다. 그 후에, 비트 레이트는 하기와 같이 표시될 수 있다:
R=Aρ+B (식 1)
상기 A 및 B는 일정한 모델링 파라미터들이다. A는 비-제로 양자화된 DCT 계수들을 코딩하는데 요구되는 비트들의 평균 개수를 표시할 수 있고, B는 예측 모드들 및 움직임 벡터들과 같은 비-텍스처 정보를 위해 사용되는 비트들을 표시할 수 있다.
N이 처리된 비디오 시퀀스 내의 전체 프레임들의 개수를 표시하도록 하자. 는 QP를 표시한다. 는 비-제로 양자화된 DCT 계수들마다의 비트들의 평균 개수를 표시한다. 는 비-텍스처 정보를 코딩하기 위한 비트들의 개수를 표시한다. 는 비-제로 양자화된 DCT 계수들의 개수를 표시한다. 는 움직임-보상된 나머지의 에너지를 표시한다. 는 제 1 패스 코딩에서 발생된 i번째 프레임의 왜곡을 표시하며, (i=1, 2, ..., N)는 시퀀스의 프레임을 식별한다. "^"에 의해 식별되는 변수들은 제 1 코딩 패스에 의해 추정되는 변수들이다. 식별자 "^" 표시되지 않는 변수들은 일반적으로 예를 들면 구해질 근사치들 또는 제 2 패스 변수들과 같이 유사하게 지칭되는 제 2 패스 변수들이다.
Rbudget는 비디오 시퀀스를 위한 전체 비트 버짓을 표시하고, {Qi}, {Ri}, {Di}는 제 2 패스 코딩에서 i번째 프레임의 QP, 비트 레이트 및 왜곡을 표시하도록 하자. 따라서 문제는 다음과 같이 표시될 수 있다:
프레임 종속성들은 선행하는 프레임의 QP 선택이 현재 프레임의 레이트-왜곡 성능에 큰 영향을 미친다는 관찰 결과에 기초하여 상당히 간략화될 수 있다. 다시 말해서, i-튜플(tuple) 함수들 Ri(Q1, Q2, ..., Qi) 및 Di(Q1, Q2, ..., Qi)는 (Q1, Q2, ..., Qi-2)의 선택들이 i번째 프레임에 대한 레이트 및 왜곡에 상당한 변경들을 야기하지 않을 것이기 때문에 2-튜플 함수들 Ri(Qi-1, Qi) 및 Di(Qi-1, Qi)로 감소될 수 있다. 상기 관찰 결과는 도 3-6에 도시된 것과 같은 "풋볼(football) QCIF 비디오 시퀀스"로 지칭되는 시퀀스에서 증명되었다.
특히, 도 3은 45로 표시되는 (QP1=10, QP2=10), 46으로 표시되는 (QP1=10, QP2=20), 47로 표시되는 (QP1=20, QP2=10), 및 48로 표시되는 (QP1=20, QP2=20)을 사용하는 시퀀스의 제 4 프레임에 대한 레이트-왜곡 곡선들의 실험 결과들을 도시한다. 도 4는 51로 표시되는 (QP1=10, QP2=10), 52로 표시되는 (QP1=10, QP2=20), 53으로 표시되는 (QP1=20, QP2=10), 및 54로 표시되는 (QP1=20, QP2=20)을 사용하는 시퀀스의 제 4 프레임에 대한 레이트-QP 곡선들의 실험 결과들을 도시한다. 도 5는 56으로 표시되는 (QP1=10, QP2=10), 57로 표시되는 (QP1=10, QP2=20), 58로 표시되는 (QP1=20, QP2=10), 및 59로 표시되는 (QP1=20, QP2=20)을 사용하는 시퀀스의 제 4 프레임에 대한 rho-QP 곡선들의 실험 결과들을 도시한다. 도 6은 61로 표시되는 (QP1=10, QP2=10), 62로 표시되는 (QP1=10, QP2=20), 63으로 표시되는 (QP1=20, QP2=10), 및 64로 표시되는 (QP1=20, QP2=20)을 사용하는 시퀀스의 제 4 프레임에 대한 왜곡-QP 곡선들의 실험 결과들을 도시한다.
도 3-6의 결과들에 의해 설명되는 실험치들에 대하여, 제 1 프레임(I-프레임)의 QP는 5로 세팅되었고, QP 조합들(10, 10), (10, 20), (20, 10) 및 (20, 20)은 제 2 및 제3 프레임들을 위해 사용되었다. 도 3-6으로부터, QP1(제 2 프레임에 대한 QP)의 선택이 제 4 프레임의 레이트 및 왜곡에 매우 적은 영향을 미치지만, QP2(제 3 프레임에 대한 QP)의 선택은 제 4 프레임의 성능에 직접적으로 영향을 미치는 것이 도시된다. 따라서, 임의의 상당한 품질을 희생하지 않고 연속하는 프레임들의 종속성들만을 고려함으로써 문제를 간략화할 수 있다.
따라서, 만약 Qi-1 및 Qi의 좌표들의 모든 조합에 대하여 Ri(Qi-1, Qi) 및 Di(Qi-1, Qi)의 테이블들을 획득하면, 식 2의 문제는 더 용이하게 해결될 수 있다. 하기의 설명에서, 정확한 추정 모델들은 제 1 패스 코딩에서 획득된 정보를 사용함으로써 레이트 및 왜곡 함수들을 근사화하도록 제안된다. 그 후에, 식 2의 문제점은 상기 문제점을 비제약적인 문제점으로 변환하기 위해 라그랑지안 완화를 사용하여 해결될 수 있다. 라그랑지안 완화를 사용하여 상기 문제점을 변환한 후에, 비제약적인 문제점은 그래프 이론 문제점으로 맵핑될 수 있고, 최단 경로 탐색 알고리즘을 사용하여 해결될 수 있다.
왜곡 추정 모델에 대하여, 제 1 코딩 패스 내에서 i번째 프레임에 대하여 q=1, 2, ..., 31에 대한 의 모든 값들을 획득할 수 있다. 또한, 의 값이 획득될 수 있다. Z. He, Y. Kim, 및 S. K. Mitra에 의해 제안된 왜곡 모델, "Low-Delay Rate Control for DCT Video Coding via p -Domain Source Modeling" (IEEE Trans. Circuits and Systems for Video Technology, pp. 928-940, Aug. 2001)에 기초하여,
및
이 획득되며, 상기 α1는 모델 파라미터이다.
도 5로부터, rho-QP 곡선이 주로 현재 프레임의 QP에 의해 유도되는 것을 관찰할 수 있다. 다시 말해서, 는 Qi에 큰 수(예를 들면, 15 보다 큰 수)가 할당되는 경우에 특히 유지된다. 용어 rho는 본 명세서에 개시된 것과 같은 용어 ρ를 지칭한다. 식들 3 및 4로부터,
을 획득할 수 있다.
식 5는 "풋볼 QCIF 비디오 시퀀스"로 지칭되는 시퀀스의 처음 3개 프레임들을 코딩함으로써 실험적으로 증명된다. 상기 실험 결과는 도 7 및 8에 개시된다. 시퀀스의 제 1 프레임(I-프레임)은 QP=5를 사용하여 코딩되었고, 제 2 프레임(P-프레임)은 QP=5, 10, 15, 20, 30을 사용하여 코딩되었다. 도 7은 각각의 세팅 동안 제 3 프레임의 D-QP 곡선을 도시한다. 도 7에서 세팅들의 결과들(I-프레임, P-프레임)은 하기와 같이 표시된다: (5, 5)는 71로 표시되고, (5, 10)은 72로 표시되고, (5, 15)는 73으로 표시되고, (5, 20)는 74로 표시되고, (5, 30)은 75로 표시됨.
도 8에서, 제 2 프레임(P-프레임)에 대하여 Q=10을 세팅함으로써 생성된 제 3 프레임의 실제 D-QP 곡선은 제 2 프레임에 대하여 QP=5, 15, 20, 및 30를 사용하는 경우 및 식 5를 사용하여 생성된 데이터로부터 추정된 D-QP 곡선들과 비교된다. 도 8에서, 세팅들의 결과들(I-프레임, P-프레임)은 하기와 같이 표시된다: 실제 (5, 10)는 81로 표시되고, 예측된 (5, 5)은 82로 표시되고, 예측된 (5, 15)는 83으로 표시되고, 예측된 (5, 20)는 84로 표시되고, 예측된 (5, 30)은 85로 표시됨. 상기 결과들은 식 5가 매우 정확함을 표시한다.
식 5에서 를 추정하기 위해, M은 프레임 내의 전체 픽셀들을 표시하고, yk(k=1, ..., M)는 프레임 내의 k번째 원래 픽셀을 표시하고, xk는 선행하는 프레임에서 k번째 원래 픽셀을 표시하고, 및 는 제 1 및 제 2 패스 코딩에서 선행하는 프레임으로부터의 상응하는 움직임-보상된 픽셀을 표시하도록 사용된다. 여기에서, 모든 비디오 블럭들(예를 들면, 매크로 블럭들)이 제로 움직임 벡터들을 사용하는 특정 경우가 고려되며, 이는 및 가 제 1 및 제 2 패스 코딩에서 선행하는 프레임의 상응하는 재구성된 픽셀임을 의미한다. 상기 경우에,
삭제
유사하게,
삭제
식 6 및 7은,
따라서,
삭제
삭제
식 6으로부터, 레이트 함수의 인터-프레임 종속성이 적당히 낮으며, 움직임-보상된 나머지 프레임의 분산 및 기준 프레임의 코딩 에러 사이에 선형 관계가 존재함을 관찰할 수 있다. 그러나, 현재 프레임의 레이트가 그 현재 프레임의 선행하는 프레임의 QP 선택에 특정한 종속성들을 가짐이 관찰될 수 있다.
은 비-제로 양자화된 DCT 계수들마다의 비트들의 평균 개수, 비-텍스처 정보를 코딩하기 위한 비트들의 개수, 및 제 2 패스 코딩에서 발생되는 비-제로 양자화된 DCT 계수들의 개수를 표시한다. 명확하게, 이다. 이후에, 상기 파라미터들은 하기와 같이 실험적으로 모델링된다:
삭제
식 11에서, ρ1의 값은 움직임-보상된 나머지 프레임의 에너지(선행하는 프레임의 QP에 따라 결정됨) 및 현재 프레임 QP에 따라 결정된다. 식 11의 정확성은 "풋볼(Football) QCIF" 시퀀스(도 3-6의 결과들에 의해 설명되는 동일한 실험치와 같은)를 코딩하고 생성된 제 1-패스 데이터로부터 (제 2 프레임에 대하여 QP=10 및 제 3 프레임에 대하여 QP=20을 사용하여) 제 4 프레임의 rho-QP 곡선을 추정함으로써 검증될 수 있고, 상기 제 1-패스 데이터는 제 2 및 제 3 프레임 모두를 QP=10으로 세팅하고 식 11을 사용한다. 도 9에 도시된 것과 같이, 추정된 rho-QP 곡선(91)은 실제 rho-QP 곡선(92)과 거의 동일하다. 유사하게, 비-텍스처 비트들의 개수(Bi)는 식 12에 의해 모델링된 것과 같이 나머지 프레임의 에너지 및 현재 프레임의 QP에 따라 결정된다. 식 13을 사용할 때, 의 값에 기초하여 Ai의 값을 제어할 수 있다. Ai의 값은 높은 비트 레이트 경우들에서 매우 안정적이다. 그러나, 가 매우 작으면, 는 부적절하게 높을 수 있다.
지금까지, 본 발명은 Qi-1 및 Qi의 좌표들의 모든 조합들에 대하여 (Qi-1, Qi) 및 Di(Qi-1, Qi)를 추정하기 위한 모델들을 전개하였다. 모델들이 정확하다고 가정할 때, 식 2의 문제점에 대한 바람직한 솔루션을 개발할 수 있다. 특히, 라그랑지안 완화 접근 방식(Lagrangian relaxation approach)을 사용할 수 있고, 제약적인 문제점의 컨벡스 헐(convex hull) 접근 방식을 유도할 수 있다.
라그랑지안 비용 함수는 다음과 같이 정의한다:
상기 λ는 라그랑주 승수(Lagrange multiplier)이다. 만약 가 를 유도하게 하는 λ*가 존재하면, 는 식 2에 대한 바람직한 솔루션이다. 따라서, 식 2를 해결하는 작업은 비용 함수 를 최소화하는 비제약적인 문제점에 대한 바람직한 솔루션을 찾고 상기 제약을 만족하기 위한 적절한 라그랑주 승수를 선택하는 더 용이한 작업과 동일하다.
상기 문제점을 해결하기 위한 알고리즘을 실행하기 위해, Qk -1 및 Qk가 (k-1)번째 및 k번째 프레임에 대한 결정 벡터들로 주어질 때 k번째 프레임들을 포함하여 이들까지의 최소 전체 비트 레이트 및 왜곡을 표시하는 비용 함수 Gk(Qk -1, Qk)를 정의할 수 있다. 상기 경우에, k=N이고, GN(QN -1,QN)은 모든 프레임들에 대한 최소 전체 비트 레이트 및 왜곡을 표시하며, 따라서
효율적인 알고리즘을 유도하기 위한 한가지 중요한 관찰 방법(observation)은 (k-2)번째 및 (k-1)번째 프레임들에 대한 주어진 결정 벡터들 Qk-2 및 Qk-1 및 비용 함수 Gk-1(Qk-2, Qk-1), 및 다음 결정 벡터 Qk의 선택이 이전의 결정 벡터들 Q1, Q2, ..., Qk-3의 선택과 상관없다는 사실이다. 이는 비용 함수가 하기와 같이 귀납적으로 표현될 수 있음을 의미한다:
상기와 같이 비용 함수의 귀납적인 표현은 프로세스의 향후 단계가 지난 단계들과 상관없게 하며, 이는 동적 프로그래밍의 기초가 된다.
문제점은 방향성 비사이클 그래프(DAG)에서 최단 경로를 찾는 그래프 이론 문제점으로 변환될 수 있다. 상기 알고리즘은 기하급수적인 계산 복잡성을 가지는 소모적인 검색 알고리즘보다 훨씬 더 효율적이다.
실험들은 다수의 비디오 클립들에 수행되었고, 상기 실험 결과들은 하기에서 설명된다. 먼저, 실험들은 추정된 왜곡 A, B 및 ρ을 제 2 패스 코딩에서 그들의 실제 값들과 비교함으로써 제안된 레이트 및 왜곡 모델들의 정확성을 검증하였다. 도 10-13에 도시된 것과 같이, 80kbps에서 "Mother and Daughter" 시퀀스로 지칭되는 시퀀스를 코딩한 결과들은 제안된 추정 모델이 매우 적절함을 입증한다.
도 10은 코딩된 "Mother and Daughter" 시퀀스의 추정된 왜곡(101) 및 실제 왜곡(102)을 그래프로 표시한다. 도 11은 코딩된 "Mother and Daughter" 시퀀스에 대하여 A의 추정된 값들(111)과 A의 실제 값들(112)을 비교한다. 도 12는 코딩된 "Mother and Daughter" 시퀀스에 대하여 ρ의 추정된 값들(121)과 ρ의 실제 값들(122)을 비교한다. 도 13은 코딩된 "Mother and Daughter" 시퀀스에 대하여 B의 추정된 값들(131)과 B의 실제 값들(132)을 비교한다. 실제 값들에 대한 추정된 값들의 정확성을 도 10-13으로부터 명확하다.
제 2 실험에서, "Mother and Daughter" QCIF 시퀀스는 40kbps 내지 120kbps의 비트 레이트 범위들로 코딩되었고, 결과들은 2개의 다른 접근 방식들: (1) 향후 인입하는 프레임들이 균일하게 분포된 텍스처 복잡성을 가지며, 따라서 나머지 비트들을 향후 프레임들에 동등하게 할당하는 것을 가정하는 프레임-레벨 그리디 레이트 제어; (2) 제 1 패스로부터의 모델 파라미터들을 사용하는 2-패스 레이트 제어와 비교되었다. 도 14에 도시된 결과들은 본 발명에서의 접근 방식이 모든 비트 레이트 범위들에서 다른 2개의 접근 방식들에 비해 0.5-0.7dB의 이득들을 가지는 것을 나타낸다. 도 14에서, 프레임-레벨 그리디 레이트 제어 접근 방식은 141로 표시되며, 제 1 패스 모델 파라미터들을 재사용하는 접근 방식은 142로 표시되고, 본 명세서에 정의된 정확한 모델들을 가지는 제안된 접근 방식은 143으로 표시된다. 제안된 접근 방식의 개선된 결과들은 도 14에서 명백하다.
제 3 실험에서, 상이한 컨텐트 복잡성들을 가지는 다양한 세그먼트들을 포함하는 비디오 클립은 3개의 비디오 장면들: 높은 활성도(빠른 움직임)를 포함하는 "Stefan"으로 지칭되는 표준 QCIF 테스트 시퀀스의 최초 100개 프레임들, 낮은 활성도(느린 움직임)를 포함하는 "Container"로 지칭되는 표준 QCIF 테스트 시퀀스의 최초 100개 프레임들, 및 중간 활성도(로컬 페이스 이동)를 포함하는 "Carphone"으로 지칭되는 표준 QCIF 테스트 시퀀스의 최초 100개 프레임들을 시뮬레이팅하여 구성된다. 제안된 접근 방식은 다시 이전 실험에서 사용된 2개의 다른 알고리즘들과 비교되었다. 결과들은 도 15에 도시되며, 제안된 알고리즘이 다른 접근방식들에 비해 1.7dB 까지의 상당한 이득들을 가지는 것을 나타낸다. 개선점들은 비트 레이트가 증가할 때 감소한다. 개선점들은 제안된 알고리즘이 전체 비디오 클립에 대하여 더 최적의 비트 할당 솔루션을 발견하기 위해 후보 공간을 탐색하는데 유리하기 때문에 예측된다. 도 15에서, 프레임-레벨 그리디 제어 접근방식은 151로 표시되고, 제 1 패스 모델 파라미터들을 재사용하는 접근 방식은 152로 표시되며, 본 명세서에 정의된 정확한 모델들을 사용하는 제안된 접근 방식은 153으로 표시된다. 제안된 접근 방식의 개선된 결과들이 도 15에서 명백하다.
앞서 강조된 기술들 및 도 3-15에서 설명된 결과들은 본 발명에 따른 모델-기반의 2-패스 레이트 제어 알고리즘의 일 실시예를 도시한다. 또한, 선행하는 프레임의 양자화 파라미터 선택이 현재 프레임의 레이트-왜곡 성능에 큰 영향을 미치는 것을 앎으로써, 프레임 종속성 문제는 성공적으로 단순화되었고 사이즈 후보 공간은 지수식으로부터 다항식으로 상당히 감소되었다. 그 후에, 정확한 모델들의 세트가 실제 코딩 동안 레이트 및 왜곡 상태를 근사화하기 위해 개발되었다. 상기 모델들은 후보 공간을 생성하고 상기 문제를 그래프 이론 문제로 맵핑하는 능력을 직접 가능하게 하였다. 라그랑지안 완화 및 동적 프로그래밍을 사용하여, 원래의 제약적인 문제점은 비제약적인 문제점으로 변환되고 최단 경로 탐색 알고리즘에 의해 해결된다. 실험 결과들은 다른 현존하는 레이트 제어 알고리즘과 비교하여 1.7dB까지의 상당한 이득들을 나타낸다.
도 16는 품질 변동이 비디오 시퀀스의 프레임들에 대하여 최소화되는 본 발명의 또다른 실시예에 따른 2-패스 제어 비디오 코딩 기술을 설명하는 흐름도이다. 도 2와 유사하게, 도 16은 도 1의 비디오 코딩 디바이스(10)와 관련하여 설명될 것이다. 도 16에 도시된 것과 같이, 비디오 코더(14)는 QP들의 제 1 세트를 사용하여 비디오 시퀀스의 프레임들을 코딩한다(160). 이어서, 레이트 제어 유니트(30)는 제 1 코딩 패스의 코딩된 비디오 시퀀스에 대한 레이트-왜곡 통계들을 획득한다(161). 비디오 코더(14)의 다양한 다른 유니트들(24, 26, 28)은 레이트 제어 유니트(30)에 의해 식별되는 QP들의 제 1 세트를 사용하여 제 1 코딩 패스 내에서 구현될 수 있다. QP들의 제 1 세트는 다양한 다른 방식들로 또는 임의의 레이트 제어 알고리즘에 따라 선택될 수 있다. 일 예에서, QP들의 제 1 세트는 시퀀스 내의 프레임들의 개수와 관련된 레이트 버짓에 기초하여 프레임에 대한 QP를 선택하지만 그 후에 나머지 레이트 버짓을 나머지 프레임들에 걸쳐 재할당하는 이른바 "그리디(greedy)" 알고리즘에 기초하여 레이트 제어 유니트(30)에 의해 동적으로 선택된다. 또다른 예에서, 동일한 QP는 제 1 패스 내의 모든 프레임들에 대하여 미리 선택되고 사용될 수 있고, 이 경우에 QP들의 제 1 세트 내의 QP들이 서로 동일하다. 그러나 다른 기술들이 제 1 코딩 패스에 대한 QP들의 제 1 세트를 정의하기 위해 사용될 수 있다.
제 1 코딩 패스 이후에, 레이트 제어 유니트(30)는 제 1 코딩 패스에 의해 획득된 레이트-왜곡 통계들에 기초하여 비디오 시퀀스의 레이트-왜곡 특징들을 추정한다(162). 일반적으로, 레이트-왜곡 특징들을 추정하는 프로세스는 레이트-왜곡 통계들에 레이트 모델 및 왜곡 모델을 적용하는 것을 포함한다. 레이트 제어 유니트(30)는 그 후에 레이트 왜곡 특징들을 사용하여 품질 변동을 실질적으로 최소화함으로써 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택한다(163). QP들의 제 2 세트를 선택할 때, 레이트 제어 유니트(30)는 최소화된 품질 변동을 갖는 낮은 평균 프레임 왜곡을 달성하기 위해 실질적으로 최소화된 품질 변동으로 프레임들의 품질을 실질적으로 최대화할 수 있다.
QP들의 제 2 세트는 QP들의 제 1 세트와는 서로 상이하며 코딩 품질을 개선하기 위해 선택된다. 상기 경우에, QP들의 제 2 세트는 전체 시퀀스에 걸친 왜곡을 최소화하지 않을 수 있지만, 비디오 품질을 저하시킬 수 있는 또다른 문제점을 처리한다. 특히, 도 16의 기술은 다른 프레임들의 코딩 품질의 변동을 최소화하며, 예를 들어 상기 기술은 레이트-왜곡 변동을 최소화한다. 상기 방식에서, 플릭커링(flickering) 문제점들이 감소되거나 제거될 수 있다. 그렇지 않으면 플릭커링은 2개의 연속하는 프레임들 사이에서 코딩 품질이 격하게 변화할 때 발생할 수 있다. 레이트 제어 유니트(30)가 품질 변동을 실질적으로 최소화하여 (가능하면 최소화된 품질 변동으로 품질을 최대화함으로써) QP들의 제 2 세트를 선택하면, 비디오 코더(14)는 QP들의 제 2 세트를 사용하여 비디오 시퀀스를 코딩한다(164).
도 2의 기술과 유사하게, 도 16의 기술에서, 제 1 코딩 패스는 더 낮은 품질의 코딩 패스일 수 있지만, 정확한 모델링을 적용하는데 요구되는 정보를 제공하고, 비디오 시퀀스의 코딩시 인터-프레임 종속성들을 고려한다. 레이트-왜곡의 최소화는 광범위한 방식들로 수행될 수 있다. 일 예에서, 품질 변동을 실질적으로 최소화하는 것은 비디오 시퀀스에 대한 레이트 버짓에서 왜곡 변동을 실질적으로 최소화하는 것을 포함한다. 또다른 예에서, 품질 변동을 실질적으로 최소화하는 것은 비디오 시퀀스에 대한 레이트 버짓에서 QP들의 제 2 세트 내에서의 QP 변동을 실질적으로 최소화하는 것을 포함한다. 또다른 예에서, 품질 변동을 실질적으로 최소화하는 것은 비디오 시퀀스에 대한 레이트 버짓에서 왜곡 변동 및 레이트 변동을 실질적으로 최소화하는 것을 포함한다. 또다른 예에서, 품질 변동을 실질적으로 최소화하는 것은 비디오 시퀀스의 프레임들과 연관된 최대 왜곡 값을 최소화하는 것을 포함한다. 또다른 예에서, 품질 변동을 실질적으로 최소화하는 것은 비디오 시퀀스의 프레임들과 연관된 왜곡 값을 프로그램가능한 왜곡 임계치 미만으로 감소시키는 것을 포함한다. 상기 실시예의 추가 설명들이 아래에서 설명된다.
전술된 기술들과 유사하게, 하기에서 강조되는 기술들은 일정-비디오-품질 지향성의 2-패스 프레임-레벨 레이트 제어 방식을 제공한다. 그러나, 하기에서, 상기 기술은 최소 최대(MINMAX) 왜곡 기준에 기초한다. 상기 기본 구조에서, 비디오 시퀀스에 대하여 비트 버짓이 주어질 때, 코더는 피크 최대 프레임 왜곡을 최소화하기 위해 각각의 프레임에 대한 코딩 파라미터들을 동적으로 조정하고, 이는 재구성된 비디오 시퀀스의 일정-품질을 간접적으로 보장한다. 기본 구조는 또한 할당된 변동 제약조건에 따라 코딩된 시퀀스 내에서의 프레임-레벨 비트레이트 변동의 제어를 인에이블 한다. 임계치의 반복적인 조정에 기초하여, 코더는 비트 레이트 제약들 만족하는 코딩 파라미터들의 세트를 발견할 수 있다. 동적 프로그래밍은 코딩 효율을 개선하기 위해 적용된다. 상기 제안된 기본 구조는 그 목표가 가능하면 최저이지만 거의 일정한 왜곡을 달성하는 것인 비트 버짓이 제약된 비디오 통신 애플리케이션들에 대하여 양호한 선택을 제공할 수 있고, 수용가능한 프레임 단위의 비디오 품질(즉, 양호한 평균 PSNR)을 유지할 수 있다. 그러나, 전술된 것과 같이, 품질 변동을 실질적으로 최소화하는 프로세스는 다수의 다른 방식들에서 양호하게 실행될 수 있다.
하기의 설명은 제 2 패스 코딩에서 실제 레이트 및 왜곡 상태를 근사화하기 위해 실제 레이트 및 왜곡 추정 모델들의 세트를 전개한다. 모델들은 또한 현재 프레임의 레이트 및 왜곡이 현재 프레임의 선행하는 프레임의 QP에 따라 결정되는 관찰 결과에 기초하며, 지난 프레임보다 이전의 이전 프레임의 QP 선택은 현재 프레임의 성능에 아주 적은 영향을 미친다. 모델들 및 관찰 결과들은 2-패스 접근 방식에서 QP 선택의 프로세스의 계산 복잡성의 상당한 감소를 가능하게 한다. 상기 문제점을 그래프 이론 문제점으로 맵핑함으로써, 최단 경로 알고리즘은 최적 솔루션을 효율적으로 찾아내기 위해 적용된다. 제안된 기술들은 시뮬레이트되고 테스트되었다. 실험 결과들은 그리디 프레임-레벨 레이트 제어 알고리즘과 비교하여 피크 신호대 잡음비(PSNR) 변동의 70%까지의 상당한 감소를 도시한다.
몇 가지 예를 들자면 프레임당 우수한 평균 품질, 일정 프레임 품질 및 우수한 지각적인 비디오 품질과 같이 "전체 비디오 품질"에 대하여 몇가지 선택적인 의미들이 존재한다. 그러나, 모든 양상들을 고려하는데 사용가능한 표준화된 통일된 비디오 품질 측정치는 존재하지 않는다. 일반적으로, 최소 평균 왜곡(MINAVE) 기준은 대부분 비디오 왜곡을 측정하는데 사용된다. 프레임-레벨 레이트 제어 알고리즘들은 디코딩된 비디오 시퀀스의 최대 평균 PSNR을 달성하기 위한 시도들에서 제안된다. 그러나, MINAVE 기준을 사용하는 종래의 솔루션들은 때때로 프레임들 간의 급격한 품질 변경들로 인해 "플릭커링 문제들"을 발생하는 불균일한 왜곡을 프레임들에 걸쳐 유도할 수 있다. 몇몇 최근의 연구는 수용가능한 프레임당 PSNR을 유지하면서 시퀀스에서 왜곡 변화들을 감소시키는 방법에 집중해왔다. 그러나, 상기 접근 방식들은 주로 엄격한 지연 제약들을 가진 실시간 응용들을 위해 설계되며, 따라서 성능은 종종 열악하다.
MINAVE 접근 방식에 대한 다른 접근 방식으로서, 최소 최대(MINMAX) 왜곡 접근 방식이 그 목표가 거의 일정한 왜곡을 달성하는 것인 응용들에 대하여 양호한 선택이 될 수 있다. 이러한 접근방식 이면의 원리(philosophy)는 최대 소스 왜곡을 최소화함으로써 어떤 단일 소스 왜곡도 매우 높지 않고, 따라서 전체 품질이 매우 일정한 것이다. 본 발명은 MINMAX 기준에 기초한 2-패스 일정-품질 레이트 제어 알고리즘을 제안한다. 정확한 레이트 및 왜곡 추정 모델들이 프레임 레벨 QP 선택을 위해 설정된다. 모델들은 또한 프레임 왜곡이 그 프레임의 선행하는 프레임의 양자화 레벨에 매우 의존하는 관찰 결과에 기초하지만, 이전 프레임보다 이전의 프레임들의 양자화 선택은 현재 프레임의 프레임 왜곡에 매우 적은 영향을 미친다. 본 명세서에 설명된 모델들에서, 제 2 패스 코딩 동안의 실제 왜곡은 제 1 패스 내의 왜곡의 함수(동일한 QP를 사용함), 제 1 패스 내의 움직임-보상된 나머지의 에너지 및 제 1 패스 내의 선행하는 프레임의 왜곡에 의해 근사화될 수 있다. 또한, 본 발명은 제안된 레이트 제어 방식에서 레이트 변동을 감소시키는 영향을 연구하고 두 작업 모두를 달성하기 위한 솔루션을 제안한다.
제안된 기술은 최소 최대 왜곡 기준을 사용하여 코딩 파라미터들을 동적으로 선택함으로써 PSNR 및 비트 레이트 모두에서 낮은 변동들을 달성할 수 있는 하이브리드 기본 구조를 나타낼 수 있다. 또한, 상기 기본 구조는 프레임 레이트 및 왜곡을 위한 정확한 추정 모델들의 세트와 함께 동작할 수 있다. 계산에서의 근사치들은 샘플링 및 공간을 지수식으로부터 다항식으로 감소시킴으로써 코딩 성능을 효율적으로 가속화할 수 있다.
상기 실시예에서의 문제점은 최소한의 품질 변동을 갖는 디코딩된 비디오 시퀀스를 달성하기 위해 각각의 프레임에 대한 양자화 파라미터를 선택하면서 허용가능한 전체 평균 PSNR을 유지하고 제 1 패스 코딩 동안 수집된 통계들에 기초하여 특정 레이트 변동 제약들을 충족하는 것이다. 제 1 패스 코딩을 수행하는 방법의 문제가 상기 문제를 단순화하는 것과 관련되지만, "그리디" 프레임-레벨 비트 할당 알고리즘이 제 1 패스에서 프레임을 코딩하는데 사용되는 것을 가정할 수 있다. 그러나, 다른 QP 선택 기술들이 제 1 패스에서 선택적으로 사용될 수 있다.
프레임 비트 레이트에 대한 모델은 프레임 내의 비-제로 양자화된 DCT 계수들의 개수인 ρ의 함수로서 하기와 같이 표시될 수 있다:
R=Aρ+B,
상기 A 및 B는 일정한 모델링 파라미터들이고, A는 비-제로 양자화된 DCT 계수들을 코딩하는데 요구되는 비트들의 평균 개수를 표시하고, B는 예측 모드들 및 움직임 벡터들과 같은 비-텍스처 정보로 인한 비트들을 표시할 수 있다.
N이 처리된 비디오 시퀀스 내의 전체 프레임들의 개수를 표시하고, 이 양자화 파라미터 QP, 비-제로 양자화된 DCT 계수들에 대한 비트들의 평균 개수, 비-텍스처 정보를 코딩하기 위한 비트들의 개수, 비-제로 양자화된 DCT 계수들의 개수, 움직임-보상된 나머지의 에너지, 제 1 패스 코딩에서 발생된 i번째 프레임의 왜곡을 표시하도록 하자. 앞서 사용되는 것과 같이, "^"에 의해 식별되는 변수들은 제 1 코딩 패스에 의해 추정되는 변수들이다. 식별자 "^"로 표시되지 않는 변수들은 예를 들면 근사치들 또는 구해질 제 2 패스 변수들과 같은 제 2 패스 변수이다.
Rbudget는 비디오 시퀀스를 위한 전체 비트 버짓을 표시하고, Rdev_threshold는 평평균 비트 레이트로부터 실제 프레임 비트 레이트의 최대 허용된 유도를 표시하며, {Qi}, {Ri}, {Di}는 제 2 패스 코딩 내의 i번째 프레임의 QP, 비트 레이트 및 왜곡을 표시하도록 하자. 따라서 문제는 다음과 같이 표시될 수 있다:
식 17에서, 왜곡의 평균 및 분산은 시퀀스에 대하여 주어진 비트 버짓으로 최소화된다. 그러나, 식 17은 평균 왜곡을 최소화하는 QP 선택이 왜곡의 분산을 최소화할 수 없고, 그 역 또한 동일하기 때문에 솔루션을 보장하지 않는다. 가중된 접근 방식은 식 17의 문제점을 하기의 식으로 수정하기 위해 사용될 수 있다:
상기 α∈[0,1]은 왜곡의 평균 및 분산의 상대적인 중요성을 정의하는 가중 인자이다. 설명된 것과 같이, α를 증가시키는 것은 증가된 평균 왜곡의 댓가로 왜곡 변이들을 감소시킨다. 그러나, α의 결정은 사용자의 상호작용 없이는 매우 어렵다.
본 발명 따라, 문제점은 하기의 식에 의해 정형화될 수 있다:
또한, 문제점은 하기와 같이 목표 결과가 일정한 비디오 품질을 달성하는 것이며, 제 1 패스와 제 2 패스 사이에 평균 왜곡의 큰 차이를 예상하지 않는다는 가정들에 기초하여 추가로 간략화될 수 있다:
또한, 프레임 종속성들은 선행하는 프레임의 QP 선택이 현재 프레임의 레이트-왜곡 성능에 큰 영향을 미친다는 관찰 결과에 기초하여 상당히 간략화될 수 있다. 다시 말해서, 본 발명에 따른 프레임 종속성들의 관찰 결과들이 주어질 때, i-튜플 함수들 Ri(Q1, Q2, ..., Qi) 및 Di(Q1, Q2, ..., Qi)는 (Q1, Q2, ..., Qi)의 선택들이 i번째 프레임에 대한 레이트 및 왜곡에 상당한 변경들을 발생하지 않기 때문에 2-튜플 함수들 Ri(Qi-1, Qi) 및 Di(Qi-1, Qi)로 감소될 수 있다. 따라서, Ri(Qi-1, Qi) 및 Di(Qi-1, Qi)의 테이블들이 Qi-1 및 Qi 의 후보들의 모든 조합들에 대하여 획득되는 경우에, 식 20의 문제점은 상기 문제점을 하기와 같은 식으로 직접 간략화하여 해결될 수 있다:
식 21의 문제점은 하기와 같은 또다른 문제점을 먼저 해결함으로써 해결될 수 있다:
이는 왜곡이 CODEC을 위한 비트 레이트의 비-증가 함수임을 가정함으로써 수행될 수 있다. 다시 말해서, 사용가능한 비트들의 개수를 증가시킴으로써 CODEC의 성능은 동일하거나 개선될 수 있음을 가정한다. 따라서, Dmax가 제로에서 무한대로 스윕할 때, 식(22)에 대한 솔루션 R*(Dmax)는 도 17에 도시된 계단형 곡선을 나타낸다. 따라서, 를 만족하는 D* max를 찾아내기 위해 이분법이 사용될 수 있고, 따라서 식 21의 문제점을 해결한다.
식 22를 해결하기 위한 알고리즘을 구현하기 위하여, Qk-1 및 Qk가 (k-1)번째 및 k번째 프레임들에 대한 QP들로 주어질 때 식 22에서 왜곡 상수를 가지는 k번째 프레임을 포함하여 상기 프레임까지의 최소 전체 레이트를 표시하는 비용 함수 Ck(Qk-1, Qk)를 생성할 수 있다. 따라서, 에 대한 솔루션은 식 22에 대하여 요구되는 솔루션이다.
효율적인 알고리즘을 유도하기 위한 한가지 중요한 관찰 결과는 (k-1)번째 및 k번째 프레임들에 대한 결정 벡터들 Qk-2 및 Qk-1과 비용 함수 Ck(Qk-1, Qk)가 주어질 때, 다음 결정 벡터 Qk의 선택이 이전의 결정 벡터들 Q1, Q2, ..., Qk-3의 선택과 상관없다는 것이다. 이는 비용 함수가 하기와 같이 재귀적으로 표현될 수 있기 때문에 그렇다:
여기서
비용 함수의 재귀적 표현은 최적화 프로세스의 임의의 향후 단계가 동적 프로그래밍의 토대가 되는 이전 단계들에 상관없도록 한다.
식 23에 의해 정의된 비용 함수를 통해, 상기 문제점은 지향성 비사이클 그래프(DAG)에서 최단 경로를 찾는 그래프 이론 문제점으로 변환될 수 있다. 상기 솔루션은 소모적인 검색 알고리즘의 기하급수적인 계산 복잡성보다 훨씬 더 효율적이다.
추정 모델들은 레이트 및 왜곡을 위해 사용될 수 있다. 즉:
여기서
식들 25-29에서 추정된 레이트 및 왜곡을 식들 22-24에 대체함으로써, 문제들 또는 식 5는 효율적으로 해결될 수 있다.
실험들은 60kbps 내지 120kbps의 비트 레이트 범위들에서 "Table tennis", "Foreman", "Dancer"로 식별된 비디오 시퀀스들을 포함하는 다수의 표준 비디오 테스트 시퀀스들에 수행된다. 결과들은 하기에서 보고된다.
실험들의 제 1 세트는 비트 레이트 변동 제약들을 완화함으로써 도 16에서 강조된 알고리즘의 일정-품질 특징들에 집중한다. 전술된 제안된 MINMAX 접근 방식은 2가지 다른 접근 방식들: (1) 향후 인입하는 프레임들이 균일하게 분포된 텍스처 복잡성을 가지며, 따라서 남아있는 비트들을 향후 프레임들에 동등하게 할당 하는 것을 가정하는 프레임-레벨 그리디 레이트 제어 및 (2) 더 높은 PSNR 예측을 가지는 MINMAX 접근 방식, 즉 일정-품질을 추구하지만 제 2 패스 내에서 달성될 평균 PSNR의 레벨이 제 1 패스의 레벨과 동일할 것을 요구하는 MINMAX 접근 방식과 비교되었다. 문제점의 공식화는 하기와 같이 식 30에 도시된다:
상기 ε는 매우 작은 수이다. 식 30은 평균 PSNR에 대한 추가 제약을 빼고 식 21과 매우 유사하다.
도 18-20에서, "Foreman" 시퀀스에서의 테스트 결과들이 도시된다. 상기 예에서, 모두 3가지 접근 방식들은 유사한 레이트-왜곡 성능을 가지지만, MINMAX 접근 방식들은 프레임 PSNR의 표준 편차를 50% 만큼 감소시킨다. 세부적인 PSNR 분포는 MINMAX 접근 방식을 사용함으로써 PSNR의 감소를 입증하도록 도 20에 도시된다. 도 18에서, 그리디 프레임 레벨 레이트 제어 접근 방식은 181로 표시되고, 제안된 MINMAX 접근 방식은 182로 표시되며, 더 높은 PSNR 예측을 가지는 수정된 MINMAX 접근 방식은 183으로 표시된다. 도 19에서, 그리디 프레임 레벨 레이트 제어 접근 방식은 191로 표시되고, 제안된 MINMAX 접근 방식은 192로 표시되며, 더 높은 PSNR 예측을 가지는 수정된 MINMAX 접근 방식은 193으로 표시된다. 도 20에서, 그리디 프레임 레벨 레이트 제어 접근 방식은 201로 표시되고, 제안된 MINMAX 접근 방식은 202로 표시된다.
"Table tennis" 시퀀스에서 테스트 결과들이 도 21-22에 도시된다. 예측된 바와 같이, 제안된 MINMAX 접근 방식은 더 낮은 평균 프레임 PSNR을 가지지만, 그리디 알고리즘으로부터의 PSNR 변동을 60-70% 만큼 감소시킨다. 더 높은 PSNR 예측을 가지는 MINMAX 접근 방식은 20-30% 만큼의 PSNR 변동의 감소를 가지는 그리디 알고리즘의 PSNR과 유사한 PSNR을 획득한다. 도 21에서, 그리디 프레임 레벨 레이트 제어 접근 방식은 211로 표시되고, 제안된 MINMAX 접근 방식은 212로 표시되며, 더 높은 PSNR 예측을 가지는 수정된 MINMAX 접근 방식은 213으로 표시된다. 도 22에서, 그리디 프레임 레벨 레이트 제어 접근 방식은 221로 표시되고, 제안된 MINMAX 접근 방식은 222로 표시되며, 더 높은 PSNR 예측을 가지는 수정된 MINMAX 접근 방식은 223으로 표시된다.
도 23은 비트 레이트가 120kbps와 동일할 때 "Table tennis"에서 세부적인 PSNR 분포들을 도시하는 그래프이다. 도 24는 비트 레이트가 120kbps와 동일할 때 "Table tennis"에서 세부적인 QP 분포들을 도시하는 그래프이다. 도 23에서, 그리디 프레임 레벨 레이트 제어 접근 방식은 231로 표시되고, 제안된 MINMAX 접근 방식은 232로 표시된다. 도 24에서, 그리디 프레임 레벨 레이트 제어 접근 방식은 241로 표시되고, 제안된 MINMAX 접근 방식은 242로 표시된다.
도 25 및 26은 5000 및 25000의 범위 내로 비트 레이트 변동 임계치의 다양한 세팅들을 통해 120kbps로 "Table tennis" 시퀀스를 코딩함으로써 시스템 성능에 대한 비트 레이트 변동 제약의 영향을 설명한다. 도 25는 특히 비트 레이트 변동 임계치의 함수로서 PSNR의 표준 편차의 곡선(251)을 도시한다. 예측되는 것과 같이, PSNR 변동은 임계치가 도 25에 도시된 것과 같이 증가할 때 감소한다.
세부적인 레이트 변동은 도 26에서 비교된다. 특히, 곡선(261)은 10000의 레이트 변동 임계치에 상응하고, 곡선(262)은 25000의 레이트 변동 임계치에 상응한다. 명확하게, 더 엄격한 임계치를 사용하여, 시퀀스에 대한 결과적인 비트 레이트는 훨씬 평탄해진다(smoother). 상기 임계치를 사용함으로써, 기술들은 버퍼 오버플로우 및 언더플로우를 방지하기 위해 가상 버퍼를 사용하는 것과 유사하게 비트 레이트를 동적으로 제어할 뿐만 아니라 코딩된 비디오 시퀀스의 일정-비디오-품질 특징을 유지할 수 있다.
설명된 MINMAX 프레임-레벨 레이트 제어 알고리즘은 재구성된 비디오 시퀀스의 일정-품질을 간접적으로 보장하는 피크 최대 프레임 왜곡을 최소화하기 위해 사용될 수 있다. 비디오 시퀀스에서의 레이트 변동은 비디오 코딩 디바이스에서 프로그램 가능한 임계치에 의해 제어될 수 있다. 비디오 코딩 디바이스는 선행하는 프레임의 양자화 파라미터 선택이 현재 프레임의 레이트-왜곡 성능에 큰 영향을 미치는 관찰 결과에 기초하여 정확한 레이트 및 왜곡 모델들의 세트를 사용하여 개발될 수 있다. 상기 관찰 결과는 프레임 종속성 문제를 간단하게 하며, 따라서 후보 공간의 크기를 지수식에서 다항식으로 감소시킨다. 도 17-26의 그래프들에서 설명된 실험 결과들은 종래의 그리디 알고리즘 접근 방식에 비해 비디오 시퀀스에 걸쳐 PSNR 표준 편차의 70%까지의 상당한 감소를 나타낸다.
다수의 실시예들이 설명되었다. 특히, 제 1 코딩 패스가 비디오 시퀀스의 특징들을 추정하기 위해 사용되고, 추정된 특징들이 그 후에 제 2 패스에 대한 양자화 파라미터들(QP들)의 선택을 개선하는데 사용되는 "2-패스" 접근 방식을 사용하는 다양한 레이트 제어 기술들이 제안되었다. 특히, 본 발명에 따른 2개의 기본적인 대안들이 제안되었다. 제 1 경우에, 제 1 패스의 추정된 레이트-왜곡 특징들은 비디오 시퀀스의 프레임들의 왜곡을 최소화하는 방식으로 제 2 패스에 대한 QP들을 선택하기 위해 사용된다. 제 2 경우에, 제 1 패스의 추정된 레이트-왜곡 특징들은 비디오 시퀀스의 프레임들 사이의 품질 변동을 최소화하는 방식으로 제 2 패스에 대한 QP들을 선택하기 위해 사용된다.
본 명세서에 개시된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에서 구현될 수 있다. 소프트웨어에서 구현되는 경우에, 기술들은 실행될 때 전술된 하나 또는 그 이상의 기술들을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터로 읽을 수 있는 매체에 의해 처리될 수 있다. 상기 경우에, 컴퓨터로 읽을 수 있는 매체는 동기식 동적 랜덤 액세스 메모리(SDRAM)와 같은 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 비휘발성 랜덤 액세스 메모리(NVRAM), 전기적으로 소거 가능한 프로그래밍 가능한 판독 전용 메모리(EEPROM), FLASH 메모리 자기 또는 광학 데이터 저장 매체 등등을 포함할 수 있다.
프로그램 코드는 컴퓨터로 읽을 수 있는 명령들의 형태로 메모리에 저장될 수 있다. 상기 경우에, DSP와 같은 프로세서는 본 명세서에 개시된 하나 또는 그 이상의 기술들을 실행하기 위해 메모리에 저장된 명령들을 실행할 수 있다. 몇몇 경우들에서, 상기 기술들은 코딩 프로세스를 가속화하기 위해 다양한 하드웨어 컴 포넌트들을 사용하는 DSP에 의해 실행될 수 있다. 다른 경우에, 비디오 코더는 마이크로 프로세서, 하나 또는 그 이상의 애플리케이션용 집적 회로들(ASICs), 현장 프로그램 가능한 로직 어레이들(FPGAs), 또는 몇몇 다른 하드웨어-소프트웨어 조합으로서 구현될 수 있다.
2가지 접근 방식들이 개별적으로 설명되었지만, 2가지 접근 방식들의 다양한 양상들이 결합되어 사용될 수 있다. 따라서, 서로 다른 기술들의 다양한 양상들이 본 발명에 의해 고려되는 다른 실시예들에서 결합될 수 있다. 또한, 2 패스 접근 방식들이 설명되지만, 더 많은 패스들이 본 발명에 따라 수행될 수 있다. 다시 말해서, 본 발명은 2-패스 접근 방식에 제한되는 것이 아니라 적어도 2개의 코딩 패스들이 사용되는 임의의 다중-패스 접근방식에 광범위하게 응용할 수 있다. 상기 및 다른 실시예들은 하기의 청구항들의 사상 내에 있다.
Claims (32)
- 비디오 코딩 디바이스로서,제 1 코딩 패스의 양자화 파라미터들(QP들)의 제 1 세트를 사용하여 비디오 시퀀스의 프레임들을 코딩하기 위한 수단;상기 제 1 코딩 패스의 상기 코딩된 비디오 시퀀스에 대한 레이트-왜곡 통계들(rate-distortion statistics)을 획득하기 위한 수단;상기 레이트-왜곡 통계들에 기초하여 상기 비디오 시퀀스의 레이트-왜곡 특징들을 추정하기 위한 수단; 및상기 추정된 레이트-왜곡 특징들에 기초하여 상기 비디오 시퀀스의 프레임들의 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택하기 위한 수단을 포함하고,상기 선택 수단은 상기 추정된 레이트-왜곡 특징들에 라그랑지안 완화 연산(Lagrangian relaxation operation)을 수행함으로써 상기 QP들의 제 2 세트를 선택하는, 비디오 코딩 디바이스.
- 제 1항에 있어서,상기 제 2 코딩 패스의 상기 QP들의 제 2 세트를 사용하여 상기 비디오 시퀀스를 코딩하기 위한 수단을 더 포함하는, 비디오 코딩 디바이스.
- 제 1항에 있어서,상기 추정 수단은 상기 레이트-왜곡 특징들을 추정하기 위해 레이트 모델 및 왜곡 모델을 상기 레이트-왜곡 통계들에 적용하는, 비디오 코딩 디바이스.
- 제 3항에 있어서,상기 레이트 모델은 하기와 같이 주어지는 모델에 상응하고:상기 왜곡 모델은 하기와 같이 주어지는 모델에 상응하며:여기서,아래 첨자 "i"는 상기 비디오 시퀀스의 i번째 프레임에 대한 파라미터들을 식별하는 정수이고, 아래 첨자 "i-1"는 상기 비디오 시퀀스의 i-1번째 프레임에 대한 파라미터들을 식별하며, 아래 첨자 "i-2"는 상기 비디오 시퀀스의 i-2번째 프레임에 대한 파라미터들을 식별하고, 상기 "^" 표기는 각각의 변수들을 제 1 패스 변수들로 정의하고, "^"가 없는 표기는 각각의 변수들을 제 2 패스 변수들로 정의하며, "Q" 변수들은 QP들이고, "D" 변수들은 왜곡의 측정치들이며, "R" 변수들은 레이트의 측정치들이며, "σ2 i"은 움직임-보상된 나머지의 에너지를 나타내며, "ρ" 변수들은 비-제로 양자화된 DCT(이산 코사인 변환) 계수들의 개수를 정의하며, "A" 변수들은 비-제로 양자화된 DCT 계수들마다의 비트들의 평균 개수를 지칭하며, "B" 변수들은 텍스처(texture) 정보를 코딩하기 위해 사용되는 비트들의 개수를 지칭하며, "M"은 상기 비디오 시퀀스의 프레임들 내의 픽셀들의 개수인, 비디오 코딩 디바이스.
- 삭제
- 제 1항에 있어서,상기 선택 수단은 상기 비디오 시퀀스 내의 프레임들의 왜곡을 최소화함으로써 상기 QP들의 제 2 세트를 선택하는, 비디오 코딩 디바이스.
- 제 1항에 있어서,상기 QP들의 제 1 세트의 각각의 QP를 정의하기 위해 레이트 버짓(rate budget)을 사용하는 그리디 알고리즘(greedy algorithm)에 기초하여 상기 QP들의 제 1 세트를 선택하기 위한 수단을 더 포함하는, 비디오 코딩 디바이스.
- 제 1항에 있어서,상기 QP들의 제 1 세트 내의 QP들은 서로 동일한, 비디오 코딩 디바이스.
- 제 1 코딩 패스의 양자화 파라미터들(QP들)의 제 1 세트를 사용하여 비디오 시퀀스의 프레임들을 코딩하는 단계;상기 코딩된 비디오 시퀀스에 대한 레이트-왜곡 통계들을 획득하는 단계;상기 레이트-왜곡 통계들에 기초하여 상기 비디오 시퀀스의 레이트-왜곡 특징들을 추정하는 단계; 및상기 추정된 레이트-왜곡 특징들에 기초하여 상기 비디오 시퀀스의 프레임들의 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택하는 단계를 포함하며,상기 QP들의 제 2 세트를 선택하는 단계는 상기 추정된 레이트-왜곡 특징들에 라그랑지안 완화 연산(Lagrangian relaxation operation)을 수행하는 단계를 포함하는, 방법.
- 제 10항에 있어서,상기 제 2 코딩 패스의 상기 QP들의 제 2 세트를 사용하여 상기 비디오 시퀀스를 코딩하는 단계를 더 포함하는, 방법.
- 제 10항에 있어서,상기 레이트-왜곡 특징들을 추정하는 단계는 레이트 모델 및 왜곡 모델을 상기 레이트-왜곡 통계들에 적용하는 단계를 포함하는, 방법.
- 제 12항에 있어서,상기 레이트 모델은 하기와 같이 주어지는 모델에 상응하고:상기 왜곡 모델은 하기와 같이 주어지는 모델에 상응하며:여기서,아래 첨자 "i"는 상기 비디오 시퀀스의 i번째 프레임에 대한 파라미터들을 식별하는 정수이고, 아래 첨자 "i-1"는 상기 비디오 시퀀스의 i-1번째 프레임에 대한 파라미터들을 식별하며, 아래 첨자 "i-2"는 상기 비디오 시퀀스의 i-2번째 프레임에 대한 파라미터들을 식별하고, "^" 표기는 각각의 변수들을 제 1 패스 변수들로 정의하고, "^"가 없는 표기는 각각의 변수들을 제 2 패스 변수들로 정의하며, "Q" 변수들은 QP들이고, "D" 변수들은 왜곡의 측정치들이며, "R" 변수들은 레이트의 측정치들이며, "σ2 i"은 움직임-보상된 나머지의 에너지를 나타내며, "ρ" 변수들은 비-제로 양자화된 DCT(이산 코사인 변환) 계수들의 개수를 정의하며, "A" 변수들은 비-제로 양자화된 DCT 계수들마다의 비트들의 평균 개수를 지칭하며, "B" 변수들은 텍스처 정보를 코딩하기 위해 사용되는 비트들의 개수를 지칭하며, "M"은 상기 비디오 시퀀스의 프레임들 내의 픽셀들의 개수인, 방법.
- 삭제
- 제 10항에 있어서,상기 QP들의 제 2 세트를 선택하는 단계는 상기 비디오 시퀀스의 프레임들의 왜곡을 최소화하는 단계를 포함하는, 방법.
- 제 10항에 있어서,상기 제 QP들의 1 세트 내의 각각의 QP를 정의하기 위해 레이트 버짓(rate budget)을 사용하는 그리디 알고리즘(greedy algorithm)에 기초하여 상기 QP들의 제 1 세트를 동적으로 선택하는 단계를 더 포함하는, 방법.
- 제 10항에 있어서,상기 QP들의 제 1 세트 내의 QP들은 서로 동일한, 방법.
- 비디오 코딩 디바이스 내에서 실행될 때 하기의 동작들을 수행하는 프로그램 코드를 포함하는 컴퓨터-판독가능 매체로서, 상기 동작들은,제 1 코딩 패스의 양자화 파라미터들(QP들)의 제 1 세트를 사용하여 비디오 시퀀스의 프레임들을 코딩하는 동작;상기 제 1 코딩 패스의 상기 코딩된 비디오 시퀀스에 대한 레이트-왜곡 통계들을 획득하는 동작;상기 레이트-왜곡 통계들에 기초하여 상기 비디오 시퀀스의 레이트-왜곡 특징들을 추정하는 동작; 및상기 추정된 레이트-왜곡 특징들에 기초하여 상기 비디오 시퀀스의 프레임들의 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택하는 동작을 포함하며,상기 프로그램 코드는 상기 추정된 레이트-왜곡 특징들에 라그랑지안 완화 연산(Lagrangian relaxation operation)을 수행함으로써 상기 QP들의 제 2 세트를 선택하는, 컴퓨터-판독가능 매체.
- 제 19항에 있어서,상기 비디오 코딩 디바이스 내에서 실행될 때, 상기 제 2 코딩 패스의 상기 QP들의 제 2 세트를 사용하여 상기 비디오 시퀀스를 코딩하는 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 매체.
- 제 19항에 있어서,상기 프로그램 코드는 상기 레이트-왜곡 특징들을 추정하기 위해 레이트 모델 및 왜곡 모델을 상기 레이트-왜곡 통계들에 적용하는, 컴퓨터-판독가능 매체.
- 제 21항에 있어서,상기 레이트 모델은 하기와 같이 주어지는 모델에 상응하고:상기 왜곡 모델은 하기와 같이 주어지는 모델에 상응하며:여기서,아래 첨자 "i"는 상기 비디오 시퀀스의 i번째 프레임에 대한 파라미터들을 식별하는 정수이고, 아래 첨자 "i-1"는 상기 비디오 시퀀스의 i-1번째 프레임에 대한 파라미터들을 식별하며, 아래 첨자 "i-2"는 상기 비디오 시퀀스의 i-2번째 프레임에 대한 파라미터들을 식별하고, "^" 표기는 각각의 변수들을 제 1 패스 변수들로 정의하고, "^"가 없는 표기는 각각의 변수들을 제 2 패스 변수들로 정의하며, "Q" 변수들은 QP들이고, "D" 변수들은 왜곡의 측정치들이며, "R" 변수들은 레이트의 측정치들이며, "σ2 i"은 움직임-보상된 나머지의 에너지를 표시하며, "ρ" 변수들은 비-제로 양자화된 DCT(이산 코사인 변환) 계수들의 개수를 한정하며, "A" 변수들은 비-제로 양자화된 DCT 계수들마다의 비트들의 평균 개수를 지칭하며, "B" 변수들은 텍스처 정보를 코딩하기 위해 사용되는 비트들의 개수를 지칭하며, "M"은 상기 비디오 시퀀스의 프레임들 내의 픽셀들의 개수인, 컴퓨터-판독가능 매체.
- 삭제
- 제 19항에 있어서,상기 프로그램 코드는 상기 비디오 시퀀스의 프레임들의 왜곡을 최소화함으로써 상기 QP들의 제 2 세트를 선택하는, 컴퓨터-판독가능 매체.
- 제 19항에 있어서,상기 프로그램 코드는 상기 QP들의 제 1 세트 내의 각각의 QP를 정의하기 위해 레이트 버짓(rate budget)을 사용하는 그리디 알고리즘(greedy algorithm)에 기초하여 상기 QP들의 제 1 세트를 동적으로 선택하는, 컴퓨터-판독가능 매체.
- 제 19항에 있어서,상기 QP들의 제 1 세트 내의 QP들은 서로 동일한, 컴퓨터-판독가능 매체.
- 비디오 코딩 디바이스로서,비디오 시퀀스를 저장하는 비디오 메모리;비디오 코딩 동안 상기 비디오 시퀀스의 적어도 일부분을 저장하는 로컬 메모리; 및하기의 동작들을 수행함으로써 상기 비디오 시퀀스를 코딩하는 비디오 코더를 포함하며, 상기 동작들은,제 1 코딩 패스의 양자화 파라미터들(QP들)의 제 1 세트를 사용하여 상기 비디오 시퀀스의 프레임들을 코딩하는 동작,상기 제 1 코딩 패스의 상기 코딩된 비디오 시퀀스에 대한 레이트-왜곡 통계들을 획득하는 동작,상기 레이트-왜곡 통계들에 기초하여 상기 비디오 시퀀스의 레이트-왜곡 특징들을 추정하는 동작,상기 추정된 레이트-왜곡 특징들에 기초하여 상기 비디오 시퀀스의 프레임들의 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택하는 동작, 및상기 제 2 코딩 패스의 상기 QP들의 제 2 세트를 사용하여 상기 비디오 시퀀스를 코딩하는 동작을 포함하며,상기 선택 동작은 상기 추정된 레이트-왜곡 특징들에 라그랑지안 완화 연산(Lagrangian relaxation operation)을 수행함으로써 상기 QP들의 제 2 세트를 선택하는, 비디오 코딩 디바이스.
- 제 28항에 있어서,상기 비디오 코더는 움직임 추정기, 움직임 보상기, 나머지 코더(residual coder) 및 레이트 제어 유니트를 포함하며,상기 움직임 추정기, 상기 움직임 보상기 및 상기 나머지 코더는 상기 제 1 코딩 패스의 상기 QP들의 제 1 세트를 사용하여 상기 비디오 시퀀스를 코딩하고, 상기 제 2 코딩 패스의 상기 QP들의 제 2 세트를 사용하여 상기 비디오 시퀀스를 코딩하며,상기 레이트 제어 유니트는 상기 레이트-왜곡 통계들을 획득하고, 상기 레이트-왜곡 특징들을 추정하며, 상기 QP들의 제 2 세트를 선택하는, 비디오 코딩 디바이스.
- 제 29항에 있어서,상기 비디오 시퀀스를 캡처하기 위한 비디오 캡처 디바이스, 및 상기 제 2 코딩 패스의 상기 코딩된 비디오 시퀀스를 전송하기 위한 송신기를 더 포함하는, 비디오 코딩 디바이스.
- 제 28항에 있어서,상기 비디오 코더는 공간 추정기, 인트라-프레임 예측 유니트(intra-frame prediction unit), 나머지 코더, 및 레이트 제어 유니트를 포함하고,상기 공간 추정기, 상기 인트라-프레임 예측 유니트 및 상기 나머지 코더는 상기 제 1 코딩 패스의 상기 QP들의 제 1 세트를 사용하여 상기 비디오 시퀀스를 코딩하고, 상기 제 2 코딩 패스의 상기 QP들의 제 2 세트를 사용하여 상기 비디오 시퀀스를 코딩하며,상기 레이트 제어 유니트는 상기 레이트-왜곡 통계들을 획득하고, 상기 레이트-왜곡 특징들을 추정하며, 상기 QP들의 제 2 세트를 선택하는, 비디오 코딩 디바이스.
- 하기의 동작들을 수행함으로써 비디오 시퀀스를 코딩하는 비디오 코더로서, 상기 동작들은,제 1 코딩 패스의 양자화 파라미터들(QP들)의 제 1 세트를 사용하여 상기 비디오 시퀀스의 프레임들을 코딩하는 동작;상기 제 1 코딩 패스의 상기 코딩된 비디오 시퀀스에 대한 레이트-왜곡 통계들을 획득하는 동작;상기 레이트-왜곡 통계들에 기초하여 상기 비디오 시퀀스의 레이트-왜곡 특징들을 추정하는 동작;상기 추정된 레이트-왜곡 특징들에 기초하여 상기 비디오 시퀀스의 프레임들의 제 2 코딩 패스에 대한 QP들의 제 2 세트를 선택하는 동작; 및상기 제 2 코딩 패스의 상기 QP들의 제 2 세트를 사용하여 상기 비디오 시퀀스를 코딩하는 동작을 포함하며,상기 선택 동작은 상기 추정된 레이트-왜곡 특징들에 라그랑지안 완화 연산(Lagrangian relaxation operation)을 수행함으로써 상기 QP들의 제 2 세트를 선택하는, 비디오 코더.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71977505P | 2005-09-22 | 2005-09-22 | |
US60/719,775 | 2005-09-22 | ||
US11/303,617 US7876819B2 (en) | 2005-09-22 | 2005-12-15 | Two pass rate control techniques for video coding using rate-distortion characteristics |
US11/303,617 | 2005-12-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080066684A KR20080066684A (ko) | 2008-07-16 |
KR100974025B1 true KR100974025B1 (ko) | 2010-08-05 |
Family
ID=37654729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087009602A KR100974025B1 (ko) | 2005-09-22 | 2006-09-21 | 레이트-왜곡 특징들을 사용하는 비디오 코딩을 위한 2 패스레이트 제어 기술들 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7876819B2 (ko) |
EP (2) | EP2339851A3 (ko) |
JP (1) | JP5006327B2 (ko) |
KR (1) | KR100974025B1 (ko) |
AT (1) | ATE525858T1 (ko) |
WO (1) | WO2007038230A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107749993A (zh) * | 2017-11-02 | 2018-03-02 | 广西大学 | 基于mmse重构的分布式视频编码信源失真估算方法 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8379721B2 (en) | 2005-09-22 | 2013-02-19 | Qualcomm Incorported | Two pass rate control techniques for video coding using a min-max approach |
EP2067358A2 (en) * | 2006-09-28 | 2009-06-10 | Thomson Licensing | Method for rho-domain frame level bit allocation for effective rate control and enhanced video coding quality |
FR2907989B1 (fr) * | 2006-10-27 | 2009-01-16 | Actimagine Sarl | Procede et dispositif d'optimisation de la compression d'un flux video |
JP4979355B2 (ja) * | 2006-11-30 | 2012-07-18 | パナソニック株式会社 | 画像符号化装置および画像符号化方法 |
US8711926B2 (en) * | 2007-02-08 | 2014-04-29 | Qualcomm Incorporated | Distortion estimation for quantized data |
EP2286595A1 (en) * | 2008-06-16 | 2011-02-23 | Dolby Laboratories Licensing Corporation | Rate control model adaptation based on slice dependencies for video coding |
EP2200320A1 (en) * | 2008-12-18 | 2010-06-23 | Thomson Licensing | Method and apparatus for two-pass video signal encoding using a sliding window of pictures |
US8811485B1 (en) | 2009-05-12 | 2014-08-19 | Accumulus Technologies Inc. | System for generating difference measurements in a video processor |
US8218644B1 (en) | 2009-05-12 | 2012-07-10 | Accumulus Technologies Inc. | System for compressing and de-compressing data used in video processing |
US8238444B2 (en) * | 2009-12-15 | 2012-08-07 | National Taiwan University | Perceptual-based video coding method |
US8681858B2 (en) * | 2009-12-23 | 2014-03-25 | General Instrument Corporation | Rate control for two-pass encoder |
US8856846B2 (en) * | 2010-11-29 | 2014-10-07 | At&T Intellectual Property I, L.P. | Content placement |
JP2014527778A (ja) * | 2011-08-29 | 2014-10-16 | アイ.シー.ブイ.ティー リミテッド | ビデオコンテンツシステムの制御 |
US9781449B2 (en) * | 2011-10-06 | 2017-10-03 | Synopsys, Inc. | Rate distortion optimization in image and video encoding |
US9338463B2 (en) | 2011-10-06 | 2016-05-10 | Synopsys, Inc. | Visual quality measure for real-time video processing |
US9197888B2 (en) | 2012-03-13 | 2015-11-24 | Dolby Laboratories Licensing Corporation | Overlapped rate control for video splicing applications |
GB2501493B (en) * | 2012-04-24 | 2015-05-13 | Canon Kk | Methods for encoding and decoding an image, and corresponding devices |
CN104717500B (zh) * | 2013-12-12 | 2018-04-06 | 中国电信股份有限公司 | 一种视频编码码率控制方法和系统 |
CN104320667B (zh) * | 2014-11-03 | 2017-11-03 | 浙江泰立媒科技有限公司 | 多过程最优化编转码系统及方法 |
US9875443B2 (en) * | 2015-06-18 | 2018-01-23 | TCL Research America Inc. | Unified attractiveness prediction framework based on content impact factor |
US10110931B2 (en) * | 2016-04-27 | 2018-10-23 | Aspeed Technology Inc. | Variable length coding and decoding methods and devices for grouped pixels |
US10574999B2 (en) * | 2016-05-05 | 2020-02-25 | Intel Corporation | Method and system of video coding with a multi-pass prediction mode decision pipeline |
US10542262B2 (en) | 2016-11-15 | 2020-01-21 | City University Of Hong Kong | Systems and methods for rate control in video coding using joint machine learning and game theory |
US11166034B2 (en) | 2017-02-23 | 2021-11-02 | Netflix, Inc. | Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric |
US11153585B2 (en) | 2017-02-23 | 2021-10-19 | Netflix, Inc. | Optimizing encoding operations when generating encoded versions of a media title |
US10742708B2 (en) | 2017-02-23 | 2020-08-11 | Netflix, Inc. | Iterative techniques for generating multiple encoded versions of a media title |
US10917644B2 (en) | 2017-02-23 | 2021-02-09 | Netflix, Inc. | Iterative techniques for encoding video content |
US10666992B2 (en) * | 2017-07-18 | 2020-05-26 | Netflix, Inc. | Encoding techniques for optimizing distortion and bitrate |
CN109510984B (zh) * | 2018-10-26 | 2021-02-05 | 和宇健康科技股份有限公司 | 一种压缩编码量化方法 |
CN109561306B (zh) * | 2018-10-26 | 2021-08-06 | 上海九吾尊易信息科技有限公司 | 一种带宽压缩量化方法 |
CN111726618B (zh) * | 2020-06-29 | 2022-11-18 | 上海富瀚微电子股份有限公司 | Rdoq的最优量化值的计算方法 |
CN112165620B (zh) * | 2020-09-24 | 2024-09-13 | 北京金山云网络技术有限公司 | 视频的编码方法及装置、存储介质、电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978544A (en) * | 1993-06-28 | 1999-11-02 | Kabushiki Kaisha Toshiba | Video compression coding apparatus and video compression recording/playback apparatus |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256423B1 (en) * | 1998-09-18 | 2001-07-03 | Sarnoff Corporation | Intra-frame quantizer selection for video compression |
JP3915272B2 (ja) * | 1998-10-06 | 2007-05-16 | 株式会社ニコン | 量子化方法,および量子化プログラムを記録した記録媒体 |
JP3902948B2 (ja) * | 2001-12-04 | 2007-04-11 | 株式会社Kddi研究所 | 動画像符号化装置 |
CN1206864C (zh) | 2002-07-22 | 2005-06-15 | 中国科学院计算技术研究所 | 结合率失真优化的码率控制的方法及其装置 |
US7519274B2 (en) | 2003-12-08 | 2009-04-14 | Divx, Inc. | File format for multiple track digital data |
US20050169369A1 (en) * | 2004-02-03 | 2005-08-04 | Sony Corporation | Scalable MPEG video/macro block rate control |
-
2005
- 2005-12-15 US US11/303,617 patent/US7876819B2/en active Active
-
2006
- 2006-09-21 WO PCT/US2006/036905 patent/WO2007038230A1/en active Application Filing
- 2006-09-21 EP EP11152660A patent/EP2339851A3/en not_active Withdrawn
- 2006-09-21 EP EP06804008A patent/EP1949699B1/en active Active
- 2006-09-21 KR KR1020087009602A patent/KR100974025B1/ko active IP Right Grant
- 2006-09-21 AT AT06804008T patent/ATE525858T1/de not_active IP Right Cessation
- 2006-09-21 JP JP2008532399A patent/JP5006327B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978544A (en) * | 1993-06-28 | 1999-11-02 | Kabushiki Kaisha Toshiba | Video compression coding apparatus and video compression recording/playback apparatus |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107749993A (zh) * | 2017-11-02 | 2018-03-02 | 广西大学 | 基于mmse重构的分布式视频编码信源失真估算方法 |
CN107749993B (zh) * | 2017-11-02 | 2019-12-03 | 广西大学 | 基于mmse重构的分布式视频编码信源失真估算方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2339851A2 (en) | 2011-06-29 |
ATE525858T1 (de) | 2011-10-15 |
WO2007038230A1 (en) | 2007-04-05 |
KR20080066684A (ko) | 2008-07-16 |
JP5006327B2 (ja) | 2012-08-22 |
US7876819B2 (en) | 2011-01-25 |
JP2009509476A (ja) | 2009-03-05 |
US20070064793A1 (en) | 2007-03-22 |
EP1949699A1 (en) | 2008-07-30 |
EP2339851A3 (en) | 2012-04-25 |
EP1949699B1 (en) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100974025B1 (ko) | 레이트-왜곡 특징들을 사용하는 비디오 코딩을 위한 2 패스레이트 제어 기술들 | |
JP5096342B2 (ja) | 最小−最大アプローチを使用するビデオ・コーディングのための2回パス・レート制御技術 | |
CN104885455B (zh) | 一种用于视频编码的计算机实现的方法及装置 | |
JP5203554B2 (ja) | ビデオ符号化のための効率的なレート制御技術 | |
KR100957316B1 (ko) | 멀티미디어 코딩을 위한 모드 선택 기술 | |
KR101329860B1 (ko) | 효과적인 레이트 제어 및 비디오 인코딩 품질의 향상을 위한 ρ-도메인 프레임 레벨 비트 할당 방법 | |
US20070153892A1 (en) | Encoder with adaptive rate control for h.264 | |
KR20140042845A (ko) | 지각적 비디오 코딩을 위한 구조적 유사성 기반의 레이트-왜곡 최적화 방법 및 시스템 | |
CN101523915B (zh) | 使用min-max方法的用于视频编码的两遍速率控制技术 | |
US20100111180A1 (en) | Scene change detection | |
KR20050119422A (ko) | 움직임 보상에 기반한 입력 영상의 노이즈 예측 및 그장치와, 이를 사용한 노이즈 제거 및 동영상 부호화 방법,이를 수행하기 위한 프로그램이 기록된 기록 매체 | |
US20160277767A1 (en) | Methods, systems and apparatus for determining prediction adjustment factors | |
CN115428451A (zh) | 视频编码方法、编码器、系统以及计算机存储介质 | |
JP5649296B2 (ja) | 画像符号化装置 | |
Li et al. | A novel method on optimal bit allocation at LCU level for rate control in HEVC | |
RU2587412C2 (ru) | Управление скоростью передачи видео на основе гистограммы коэффициентов преобразования | |
JP2009194474A (ja) | 動画像符号化装置 | |
Li et al. | One-pass frame level budget allocation in video coding using inter-frame dependency | |
JPH11196423A (ja) | 画像処理装置および方法、並びに提供媒体 | |
CN118285094A (zh) | 用于视频处理的方法、装置和介质 | |
KR20000037946A (ko) | 적응적 임계치를 이용한 움직임 추정 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130628 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140627 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160629 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180628 Year of fee payment: 9 |