decoding time stamp (DTS) and presentation time stamp (PTS)
Some basic video frame terminology. First, there is the intraframe. This is also known as a keyframe. An intraframe is one that can stand on its own. It requires no other frames. It carries with it all the information needed to be decoded.
This definition of intraframe implies that there is a frame type that does depend on another type of frame. What kind of frame depends on other frames? The interframe, which is the opposite of intraframe. An interframe is a frame that has a data dependency on another frame. Usually the interframe depends on the previous frame. In some more complex codecs, an interframe may depend on frames from several frames ago, or the previous intraframe. In some cases, the interframe may depend on frames from the future.
一些基本的视频帧术语,像“ intraframe”,它也被称作关键帧.一个关键帧是能够代表自己的(它不依赖于其其它的帧,它自己本身就包含了所有的解码信息)。关键帧的定义代表着一个不依赖于其它任何类型的帧的帧类型。什么是依赖于其它帧的类型呢?像帧间就是一种完全和内帧定义相反的类型。一个帧间(interframe)的数据依赖于其它的帧。通常一个帧间依赖于前一帧的数据.或者更为复杂的,一个帧间可能依赖于之前的几个帧的数据,或者之前的关键帧。在某些情况下,内帧可能还依赖于未来的某个帧的数据。
一个内帧依赖于其它的帧,这个是什么意思呢?假设#0帧和#1帧恰好完全相同.#0帧将是关键帧,而#1帧则会是随后的帧间.编码#0是必定需要大量的信息的。如果#1帧也作为一个关键帧,它将会像编码#0一样,需要大量的信息。但是一旦编码器能够知道#1帧和#0帧是一样的,编码器能够写入一组编码来表明#1帧的一部分(或者是#1帧的全部)和关键帧(#0)是相同的。这样子节省了信息。或许#1帧和#0帧完全的不同,但是只有轻微的像整个帧的亮度变亮了一点。编码器可以传送变化的信息指示编码器添加从#0到#1像素变化的小值。记住,通常情况下,大量的小数比大量的大数压缩得更好。因此,在这种情况下发送delta的信息比发送wei(Thus, transmitting the delta information in this case tends to be more efficient than transmitting some quasi-random distribution that represents an entire video frame.)
下面是关键帧和帧间的不同点:
关键帧相对而言要使用更多的空间;帧间相对而言使用得少些
关键帧相对而言解码快些;帧间相对而言解码慢些
一个应用程序能够随机定位到关键帧;但是不能随机定位到帧间,至少不是在一个干净的视频因为帧间没有携带所有的信息去组成一个完整的帧。
此外,这里可以了解基本的MPEG视频技术的一些术语和概念。
I-frame:这是一个关键帧,最小压缩不依赖于其它帧;
P-frame: 这时一个预测帧,它需要从之前的I帧或者P帧来获取信息(可能或者不可能直接预测它的信息);
B-frame: 这是一个双向预测帧,需要从I帧和P帧获取信息。
MPEG视频包含以下序列的帧信息:
0 1 2 3 4 5 6 7 8 9 I B B P B B P B B I ...
0 3 1 2 6 4 5 7 8 9 I P B B P B B B B I ...
0 3 1 2 6 4 5 7 8 9 I P B B P B B B B I ...
0 1 2 3 4 5 6 7 8 9 I P P P P P P P P I ...
http://wiki.multimedia.cx/index.php?title=Frame_Types