什么是3-2混合

正如上面所述,電影轉換成視頻時,每秒24幀必須轉成每秒60場(30幀)。實現這一點的方法是把電影的第一幀顯示3場,然后把第二幀顯示2場,再把第三幀顯示3場,以此類推。這個3-2-3-2-3-2的順序就被稱為3-2混合(有時候也寫成3/2或3:2,但是這樣看起來像個比例,所以我們更愿意寫成3-2)。

MPEG-2里面還有兩個標志,可以使制作3-2混合的碟片更容易。這兩個標志是“REPEAT_FIRST_FIELD”(重復第一場)和“TOP_FIELD_FIRST”(前場優先)。MPEG數據流里的某一幀可以把REPEAT_FIRST_FIELD設為TURE,這就告訴解碼器從這一幀要生成3場而不是2場。解碼器于是播放第一場,然后第二場,然后再重復第一場,這樣就完成了3-2混合的3場的部分。下一幀一般就會把REPEAT_FIRST_FIELD設為FALSE,這樣解碼器就會生成2場。由于場是偶數場(后場)和奇數場(前場)交替的,TOP_FIELD_FIRST標志就會告訴解碼器先播放一幀中的哪一場。前場指的是奇數掃描線:1,3,5……后場指的是偶數掃描線:2,4,6……如果一個3場幀里第一場是前場,那解碼器就會輸出前場,后場,前場,下一場必須是后場,所以下一幀的TOP_FIELD_FIRST標志就會設為FALSE。

我們仍然要注意這個3-2序列并不是一定要遵守。DVD解碼器是不管這個的。它只是按照碟片上的標志來工作。只要每一秒都有60場,一切就正常進行。

下面是一些合法的標志序列的例子。想象一下,我們有個包含4個電影幀的序列要轉換成視頻并存儲為MPEG-2數據流。我們要把這4幀變成10場(3+2+3+2)。

首先,最常用的方法是使用4幅MPEG畫面和所有的標志。

例1

MPGE畫面  電影幀  PICTURE_STRUCTURE  PROGRESSIVE_FRAME  REPEAT_FIRST_FIELD  TOP_FIELD_FIRST
1      1      FRAME         TRUE        TRUE        TRUE
2      2      FRAME         TRUE        FALSE       FALSE
3      3      FRAME         TRUE        TRUE        FALSE
4      4      FRAME         TRUE        FALSE        TRUE

但是,把同樣的一段電影用10個MPEG幀來編碼也是完全可以的。

例2

MPGE畫面  電影幀  PICTURE_STRUCTURE  PROGRESSIVE_FRAME  REPEAT_FIRST_FIELD  TOP_FIELD_FIRST
1       1      TOP FIELD      FALSE        FALSE        FALSE
2       1      BOTTOM FIELD     FALSE        FALSE        FALSE
3       1      TOP FIELD      FALSE        FALSE        FALSE
4       2      BOTTOM FIELD     FALSE        FALSE        FALSE
5       2      TOP FIELD      FALSE        FALSE        FALSE
6       3      BOTTOM FIELD     FALSE        FALSE        FALSE
7       3      TOP FIELD      FALSE        FALSE        FALSE
8       3      BOTTOM FIELD     FALSE        FALSE        FALSE
9       4      TOP FIELD      FALSE        FALSE        FALSE
10      4      BOTTOM FIELD     FALSE        FALSE        FALSE

或者也可以像這樣,用5個MPEG畫面來編碼。

例3

MPGE畫面  電影幀  PICTURE_STRUCTURE  PROGRESSIVE_FRAME  REPEAT_FIRST_FIELD  TOP_FIELD_FIRST
1       1       FRAME        FALSE         FALSE         TRUE
2      1和2      FRAME        FALSE         FALSE         TRUE
3      2和3      FRAME        FALSE         FALSE         TRUE
4       3       FRAME        FALSE         FALSE         TRUE
5       4       FRAME        FALSE         FALSE         TRUE

這都是在DVD上使用的實際例子。例3是非常常見的,尤其是在小公司發行的DVD上,甚至在大制作的預告片和花絮里面也很多。還有其他幾十種變化都是合法的。在各種情況下,雖然碟片上儲存的標志和畫面數不同,但解碼器最后輸出的場序列都是完全一樣的。第一種方式的壓縮系數最大,這也是這種方式最為常見的唯一原因(絕對不是為了讓逐行DVD機工作得更好)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449990.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449990.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449990.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

shell 的here document 用法、輸入/輸出重定向

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 什么是Here Document Here Document 是在Linux Shell 中的一種特殊的重定向方式&#xff0c;它的基本的形式如下 cmd << delimiter…

beta第二天

團隊成員 鄭西坤 031602542 &#xff08;隊長&#xff09; 陳俊杰 031602504陳順興 031602505張勝男 031602540廖鈺萍 031602323雷光游 031602319吳志鴻 0316206341.昨天的困難 陳順興&#xff1a;無 廖鈺萍&#xff1a;無 吳志鴻&#xff1a;沒有 雷光游&#xff1a;無 鄭西坤…

void和void *

void f(void) { // 參數void可以省略cout << "aa"<<endl; } int t 22; int *a &t; void *p; // void *可以被賦值為其他類型 p a; cout << *(int *)p; // 使用的時候必須轉到那個類型 轉載于:https://www.cnblogs.com/pjishu/p/10343587.…

Android應用開發—Application

What is Application Application和Activity&#xff0c;Service一樣是android框架的一個系統組件&#xff0c;當android程序啟動時系統會創建一個application對象&#xff0c;用來存儲系統的一些信息。通常我們是不需要指定一個Application的&#xff0c;這時系統會自動幫我們…

C語言符號

C語言運算符的優先級 一、運算符的優先級表 C 語言的符號眾多&#xff0c;由這些符號又組合成了各種各樣的運算符。既然是運算符就一定有其特定的優先級&#xff0c;下表就是C 語言運算符的優先級表&#xff1a; 注&#xff1a;同一優先級的運算符&#xff0c;運算次序由結合…

手機按鍵中控運行思路的個人理解

目前而言基本的自己理解的中控多線程腳本無非就是兩種1.主代碼作為腳本功能的載體 另外開辟一個線程作為和中控保持聯系的部分(下面只是思路 無法直接運行)Import "zm.luae" zm.Init /* 該思路下的基本流程 從UI界面獲取到云賬號 和 本地的配置信息---->根據自己…

burp過期了,換一個

先從吾愛破解論壇下載工具&#xff1a;https://down.52pojie.cn/Tools/Network_Analyzer/Burp_Suite_Pro_v1.7.37_Loader_Keygen.zip 工具運行需要Java環境&#xff0c;請自行安裝&#xff0c;此處不贅述。解壓完后雙擊keygen 填一下License Text(隨意)&#xff0c;然后點擊Run…

加載一張圖片到ImageView到底占據多少內存

https://blog.csdn.net/BUG_delete/article/details/79557939 簡介 Android中經常要通過ImageView進行圖片資源顯示。在加載圖片時&#xff0c;首先要考慮的兩個因素就是體驗問題和性能問題。 其中&#xff0c;體驗問題是指圖片顯示的是否正確&#xff08;例如Universal-Imag…

mysql -u root -p 解釋

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 mysql -u 用戶名 -p 密碼 是連接數據庫服務器的命令。要求你輸入自己連接數據庫的用戶名和密碼。 考慮密碼如果直接明文寫在這條命令行…

hbase 概念

在hbase里面有幾個通俗的名稱會經常出現 1&#xff09;Hregion region 2&#xff09;Hregionserver regionserver 3&#xff09;Hmaster master 4&#xff09;Hmamstore memstore 5&#xff09;Hfile storeFile 1、什么是hbase&#xff1f; 1&#xff09;它是基于稀疏的、…

beta沖刺第三天

團隊成員 鄭西坤 031602542 &#xff08;隊長&#xff09; 陳俊杰 031602504陳順興 031602505張勝男 031602540廖鈺萍 031602323雷光游 031602319吳志鴻 0316206341.昨天的困難 陳順興&#xff1a;理解別人的代碼 廖鈺萍&#xff1a; 吳志鴻&#xff1a;無 雷光游&#xff1a; …

多線程詳解

1. 進程與線程有那些區別和聯系&#xff1f;   每個進程至少需要一個線程。 進程由兩部分構成&#xff1a;進程內核對象&#xff0c;地址空間。線程也由兩部分組成&#xff1a;線程內核對象&#xff0c;操作系統用它來對線程實施管理。線程堆棧&#xff0c;用于維…

AirPods的自動連接配對原理

首次連接 打開裝有 AirPods 的充電盒&#xff0c;并將它放在 iPhone 旁邊。此時你的 iPhone 上將出現設置動畫。輕點「連接」&#xff0c;然后輕點「完成」。 就這么簡單&#xff0c;而且會自動設置&#xff0c;實現與已使用同一 Apple ID 登錄 iCloud 的任一支持設備搭配使用…

Linux chmod命令

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Linux/Unix 的文件調用權限分為三級 : 文件擁有者、群組、其他。利用 chmod 可以藉以控制文件如何被他人所調用。 使用權限 : 所有使用…

模塊化

我那進了"模塊化研究"小組.所以嘞.研究模塊化以及如何讓項目的模塊化更加合理和高效是我們小組的主要目的.首先&#xff0c;在實行模塊化之前,得先鞏固模塊化開發的理論基礎,因為理論是實踐的基礎。只有這樣&#xff0c;在過程中理論與實踐相結合,才有可能達到最滿意…

1566:基礎練習 十六進制轉八進制

題目地址&#xff1a;https://acmore.cc/problem/LOCAL/1566 1 #include <iostream>2 #include <string>3 4 using namespace std;5 6 string HexToBin(string s) //16進制轉2進制7 {8 string str "";9 for (int i 0; i < s.size(); i) 10…

利用fastjson對json轉map的操作

String str "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}"; //第一種方式 Map maps (Map)JSON.parse(str); System.out.println("這個是用J…

推薦書籍

五百本編程書籍推薦【信息化類】 書號書名作者出版時間定價對應頁碼TP02041企業資源計劃&#xff08;ERP&#xff09;教程羅鴻2006-1&#xffe5;28.00—TP02031ERP理論、方法與實踐周玉清 等2005-12&#xffe5;39.00—TP01059ERP原理設計實施&#xff08;第3版&#xff09;羅…

Linux diffstat命令

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Linux diffstat命令根據diff的比較結果&#xff0c;顯示統計數字。 diffstat讀取diff的輸出結果&#xff0c;然后統計各文件的插入&…

java命令--jmap命令使用(查找內存泄漏對象)

轉自&#xff1a;https://www.cnblogs.com/kongzhongqijing/articles/3621163.html jdk安裝后會自帶一些小工具&#xff0c;jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java進程(或核心文件、遠程調試服務器)的共享對象內存映射或堆內存細節。 jmap命令可以獲得運行…