TWI663875B - 視頻處理方法及其裝置 - Google Patents

視頻處理方法及其裝置 Download PDF

Info

Publication number
TWI663875B
TWI663875B TW107127272A TW107127272A TWI663875B TW I663875 B TWI663875 B TW I663875B TW 107127272 A TW107127272 A TW 107127272A TW 107127272 A TW107127272 A TW 107127272A TW I663875 B TWI663875 B TW I663875B
Authority
TW
Taiwan
Prior art keywords
display
time
video
video frame
vertical synchronization
Prior art date
Application number
TW107127272A
Other languages
English (en)
Other versions
TW202002664A (zh
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 威盛電子股份有限公司
Application granted granted Critical
Publication of TWI663875B publication Critical patent/TWI663875B/zh
Publication of TW202002664A publication Critical patent/TW202002664A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本發明提供一種視頻處理方法,由一處理器執行一作業系統,該作業系統包括一使用者空間與一內核空間,該方法包括:接收一視頻;該使用者空間的一解碼程序自一顯示器取得該顯示器的一目前垂直同步信號的發出時間;該解碼程序解碼該視頻中之一視頻幀,取得該視頻幀標註的一應顯示時間;當一目前時間早於該視頻幀的該應顯示時間時,根據該目前垂直同步信號的發出時間,計算該視頻幀需要等待的一等待時間;當該等待時間結束,利用一渲染函數將該視頻幀進行渲染;以及當該使用者空間的一顯示程序接收一個垂直同步信號時,該顯示程序將該視頻幀輸出至該顯示器,以顯示該視頻幀。

Description

視頻處理方法及其裝置
本發明是有關於視頻處理方法,特別是有關於避免視頻播放延遲的視頻處理方法及其裝置。
Android作業系統是一種基於Linux核心的開放原始碼行動作業系統,主要設計用於行動裝置,例如:智慧型手機及平板電腦等可攜式電子裝置。一般使用者經常透過上述的可攜式電子裝置觀看一視頻(video)。然而,若執行作業系統的處理器(例如:CPU)性能不佳,導致解碼或解析視頻的時間過長,則可能造成視頻播放的延遲。
本發明提供一種根據垂直同步信號動態調整解碼程序的視頻處理方法及其裝置。
本發明之一實施例揭露一種視頻處理方法,由一處理器執行一作業系統,該作業系統包括一使用者空間與一內核空間,該方法包括:接收一視頻;該使用者空間的一解碼程序自一顯示器取得該顯示器的一目前垂直同步信號的發出時間;該解碼程序解碼該視頻中之一視頻幀,取得該視頻幀標註的一應顯示時間;當一目前時間早於該視頻幀的該應顯示時間 時,根據該目前垂直同步信號的發出時間,計算該視頻幀需要等待的一等待時間;當該等待時間結束,利用一渲染函數將該視頻幀進行渲染;以及當該使用者空間的一顯示程序接收一個垂直同步信號時,該顯示程序將該視頻幀輸出至該顯示器,以顯示該視頻幀。
本發明亦揭露一種視頻處理裝置,包括:一處理器,耦接一顯示器,該處理器執行一作業系統,該作業系統包括一使用者空間與一內核空間,該作業系統執行包括:接收一視頻;該使用者空間的一解碼程序自一顯示器取得該顯示器的一目前垂直同步信號的發出時間;該解碼程序解碼該視頻中之一視頻幀,取得該視頻幀標註的一應顯示時間;當一目前時間早於該視頻幀的該應顯示時間時,根據該目前垂直同步信號的發出時間,計算該視頻幀需要等待的一等待時間;當該等待時間結束,利用一渲染函數將該視頻幀進行渲染;以及當該使用者空間的一顯示程序接收一個垂直同步信號時,該顯示程序將該視頻幀輸出至該顯示器,以顯示該視頻幀。
100‧‧‧軟硬體架構
101‧‧‧CPU
102‧‧‧GPU
103‧‧‧驅動器
104‧‧‧顯示程序
105‧‧‧解碼程序
106‧‧‧媒體播放程式
200、400‧‧‧視頻處理裝置
201、401‧‧‧視頻
202、402‧‧‧處理器
203、403‧‧‧解碼程序
2031、4031‧‧‧解碼
2032、4032‧‧‧視頻幀
2033、4033‧‧‧渲染
204、404‧‧‧顯示程序
2041、4041‧‧‧緩衝佇列
205、405‧‧‧顯示器
301、302、303、304、305、306、307、308、309、310、311‧‧‧步驟
406‧‧‧繫結程式
501、502、503、504、505、506、507、508、509、510、511、512‧‧‧步驟
第1圖係係依據本發明一實施例之視頻處理裝置的軟硬體架構的示意圖。
第2圖係依據本發明第一實施例之視頻處理裝置的方塊圖。
第3A圖係依據本發明第一實施例之視頻處理方法流程圖。
第3B圖係依據本發明第一實施例之視頻處理時序圖。
第4圖係依據本發明第二實施例之視頻處理裝置的方塊圖。
第5A-1、5A-2圖係依據本發明第二實施例之視頻處理方法流程圖。
第5B圖係依據本發明第二實施例之視頻處理時序圖。
為使本發明之上述和其他目的、特徵和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下。
必須了解的是,以下之揭露提供一或多實施例或範例,用以實現本發明之不同特徵。以下揭露之特定的範例之元件以及安排係用以簡化本發明,當然,並非用以限定於這些範例。另外,圖式中的特徵並非按照比例繪製,僅用於解釋說明之目的。
第1圖係依據本發明一實施例之視頻處理裝置的軟硬體架構100的示意圖。視頻處理裝置的處理器係運行一作業系統,該作業系統可包括Android作業系統、Linux作業系統及Unix作業系統等,本發明不限於此。在本實施例中,視頻處理裝置的處理器運行Android作業系統,其軟硬體架構100可以第1圖來表示。硬體層包括中央處理器101(CPU)及圖形處理器102(graphics processing unit,GPU),還可包括記憶體、硬碟、顯示器、輸入/輸出裝置以及網路介面等等硬體元件。在硬體層之上包括顯示驅動層,顯示驅動層包括驅動器(driver)103,用以驅動及存取顯示器。此外,軟硬體架構100還包括顯示合成層、視頻解碼層及應用層。顯示合成層包括顯示程序(display process)104,用以進行視頻的顯示步驟流程,在Android架構 下顯示程序係在SurfaceFlinger內完成。SurfaceFlinger為Android用於管理圖層整合的一種系統功能服務。而視頻解碼層包括解碼程序(decoding process)105,用以進行視頻的解析、解碼步驟流程,在Android架構下解碼程序係在Mediaserver內完成。應用層可包括媒體播放程式106等應用程式,以供一使用者存取播放任意類型的視頻檔案。值得注意的是,在此架構下Android作業系統包括內核空間(kernel space)及使用者空間(user space),硬體層及顯示驅動層屬於內核空間,相對地,顯示合成層、視頻解碼層及應用層則屬於使用者空間。內核空間是指當作業系統核心載入時,在記憶體中所切出來的專門提供給核心使用的空間;使用者空間是指可以讓使用者去修改編輯的資料空間,在這個空間,使用者可以設定、修改、新增所需要的功能。
接著,請參考第2圖。第2圖係依據本發明第一實施例之視頻處理裝置200的方塊圖。視頻處理裝置200包括一處理器202,處理器202耦接一顯示器205。顯示器205用以顯示一視頻。本實施例中,處理器202可以是一中央處理器(CPU),處理器202執行一作業系統,作業系統可以是Android作業系統。在本實施例中,使用者透過視頻處理裝置200的媒體播放程式播放一視頻201,視頻處理裝置200透過網際網路或無線網路接收視頻201。視頻201可以是任何檔案格式的視頻,且該視頻的每秒顯示幀數(frames per second,FPS)可包括30FPS或29.97FPS的視頻格式。視頻201傳送至處理器202的解碼程序203進行視頻解碼程序,接著傳送至顯示程序204進行視頻顯示 程序,最後送至顯示器205以供使用者觀看。
詳細而言,Android作業系統在執行視頻的解碼及顯示流程時,係執行包括解碼程序203及顯示程序204等兩個部分,然本發明不限於此。上述解碼程序203及顯示程序204皆為Android作業系統所提供的一種系統功能服務。首先解碼程序203接收視頻201後會先進行解碼(decode)2031,以解碼視頻201中複數視頻幀(video frame)2032,以取得各視頻幀的應顯示時間,並等待直到應顯示時間時,再將各視頻幀經由渲染(render)2033調整為適合顯示器的顯示畫面,傳送並暫存於顯示程序204的緩衝佇列(buffer queue)2041。接著,等待自顯示器205取得的一垂直同步信號(vertical synchronization signal,以下簡稱Vsync),一旦接收到垂直同步信號時,將應顯示的視頻幀傳送至顯示器205以顯示該視頻幀。其中,垂直同步信號(Vsync)係顯示器205在顯示每一幀跟幀之間的垂直空白期間(vertical blanking period)所產生的一同步信號,用以與處理器202溝通目前的顯示狀態。一般而言,顯示器205的顯示更新頻率(frame rate)是60Hz,亦即每一垂直同步信號的間隔時間是16.6667ms(即1000ms/60所得到的時間)。詳細的視頻處理流程將詳述於後。
請參考第3A圖及第3B圖。第3A圖係依據本發明第一實施例之視頻處理方法流程圖,該視頻處理方法由一處理器執行一作業系統。第3B圖係依據本發明第一實施例之視頻處理時序圖。配合參考第2圖的視頻處理裝置200,第3A圖之視頻處理方法係用於包括處理器202及顯示器205的視頻處理裝置 200。在第3A圖中,整個視頻處理方法流程分為解碼程序以及顯示程序。在第3B圖中,為了理解清楚,將視頻處理時序圖區分為處理器202處理階段以及顯示器205顯示階段。
在步驟301中,視頻處理裝置200接收一視頻。視頻包括複數視頻幀,其中每一視頻幀皆有其對應的應顯示時間。
在步驟302中,解碼程序203解碼該視頻中之一視頻幀,以取得該視頻幀標註的一應顯示時間(DisplayTime)。舉例而言,在第3B圖中,視頻具有至少五個視頻,而在解碼完第五個視頻幀時,解碼程序203取得第五個視頻幀的應顯示時間。
在步驟303中,在取得該應顯示時間後,取得一目前時間(NowTime)。亦即在第3B圖中所標示的目前時間。
在步驟304中,解碼程序203判斷該目前時間是否早於該視頻幀的該應顯示時間。
在步驟305中,當該目前時間不早於該視頻幀的該應顯示時間時,亦即當該目前時間等於或晚於該視頻幀的該應顯示時間時,則接收晚於該視頻幀的另一視頻幀。也就是進行丟幀處理,以快進到適合的視頻幀時間。
在步驟306中,當該目前時間早於該視頻幀的該應顯示時間時,則解碼程序203會等待一時間,該等待時間為該應顯示時間減去該目前時間(亦即DisplayTime-NowTime)。在Android作業系統中,等待一時間的實現方式例如使用sleep、usleep、nanosleep等函數實現。在等待時間結束時,解碼程序203可立起一旗幟(flag),如第3B圖中所標示(第3B圖中僅示出 對應第五個視頻幀的旗幟)。
在步驟307中,當等待時間結束,利用一渲染函數將該視頻幀進行渲染,以將該視頻幀調整成顯示器205適合的顯示畫面。其實現方式可以例如是呼叫(call)AwesomeNativeWindowRenderer的render函數以將該視頻幀進行渲染。至此,解碼程序結束,接著進行顯示程序。
在步驟308中,顯示程序204將該視頻幀暫存於一緩衝佇列,以等待適合送至顯示器205的時間點。其實現方式可以例如是在顯示程序204創建一個對應的BufferQueue,透過mNativeWindow->queueBuffer及BufferQueue::queueBuffer等語法,將BufferQueue更新。
在步驟309中,當該等待時間結束,顯示程序204判斷是否接收一個垂直同步信號(NextVsync)。前述一個垂直同步信號係從顯示器205取得,也就是當顯示器205已完成當前顯示的視頻幀,在垂直空白期間發出的一個垂直同步信號。
在步驟310中,當未接收到一個垂直同步信號時,則繼續等待下一個垂直同步信號,回到步驟309中。
在步驟311中,當已接收該一個垂直同步信號時,將該視頻幀輸出至該顯示器205,以顯示該視頻幀。在本實施例中,如第3B圖所示,顯示程序204一旦接收到等待時間結束旗幟立起後的一個垂直同步信號(NextVsync)後,即將該第五個視頻幀輸出至顯示器205,顯示器205在適當的時間顯示該第五個視頻幀。
值得注意的是,在上述實施例中,如步驟306所 言,Android作業系統係使用sleep、usleep、nanosleep等函數實現等待一時間的需求,然而,該等sleep函數卻無法做到精確的時間長度。再者,解碼程序203專門開啟一個TimeEventThread的程序來處理視頻的等待時間程序,此程序的調用也需要消耗時間。因此,對於30FPS的視頻而言,顯示的間隔時間應為1000ms/30,約等於33.333ms;而對於29.97FPS的視頻而言,顯示的間隔時間應為1000ms/29.97,約等於33.367ms。對此,解碼程序203無法做到準確地在33.333ms或33.367ms等時間間隔將各視頻幀送到顯示程序204進行顯示流程。
此外,在步驟307及顯示程序的步驟308~步驟311中,將視頻幀渲染與暫存於緩衝佇列以及等待一個垂直同步信號亦需要一些處理時間,該處理時間取決於處理器性能。一般而言,前述處理時間可假設需要1ms。實際上,處理器的性能不同,每一次需要更新的視頻數量也不同,將導致所需的處理時間不能確定。當顯示程序204接收到等待時間結束旗幟立起的時間過晚,使得與一個垂直同步信號的時間間隔過短(例如:小於1ms),將進入步驟310,只能等待下一個垂直同步信號來顯示該視頻幀。如此,視頻就晚了一個垂直同步信號的時間顯示,將導致視頻的延遲。
為了改善上述實施例可能發生的視頻延遲現象,本發明提出第二實施例的視頻處理方法及其視頻處理裝置。第4圖係依據本發明第二實施例之視頻處理裝置400的方塊圖。第4圖與第2圖相同的方塊、元件其功能如上所述,在此不再重複 贅述。其差異在於,第4圖的處理器402在解碼程序403中,透過使用者空間的執行程序間通訊(Inter Process Communication,IPC)的一繫結程式(binder)406,用以自顯示程序404取得顯示程序404自顯示器405取得該顯示器405的一目前垂直同步信號的發出時間(Vsynctime)。因為負責顯示的顯示程序404直接與顯示器405溝通,其可以比解碼程序403更有效率地取得該顯示器405的目前垂直同步信號的發出時間。解碼程序403並根據該目前垂直同步信號的發出時間,調整進行渲染與傳送至顯示程序404的緩衝佇列4041的時間,藉此改善上述可能的延遲視頻現象。
更進一步地,解碼程序403取得該目前垂直同步信號發出時間的方法不限於此,還可包括對於作業系統中內核空間的顯示驅動層的一驅動器,產生一命令碼,使該驅動器執行該命令碼以取得該目前垂直同步信號的發出時間。並透過內核空間與使用者空間之間的ioctl介面來直接提供該目前垂直同步信號的發出時間至解碼程序403。
請參考第5A圖及第5B圖。第5A圖係依據本發明第二實施例之視頻處理方法流程圖,該視頻處理方法由一處理器執行一作業系統。第5B圖係依據本發明第二實施例之視頻處理時序圖。配合參考第4圖的視頻處理裝置400,第5A圖之視頻處理方法係用於包括處理器402及顯示器405的視頻處理裝置400。第5A圖與第3A圖相同步驟其內容如上所述,在此不再重複贅述。其差異在於,Android作業系統的解碼程序403在一視頻開始時透過執行一繫結程式(binder)406,使解碼程序403在 步驟512時,即可自顯示程序404取得顯示程序404自顯示器405取得該顯示器405的目前垂直同步信號的發出時間(Vsynctime),並根據該目前垂直同步信號的發出時間,計算視頻幀需要等待的一等待時間。其中,繫結程式也是一種Android作業系統提供的系統功能服務,其目的在於進行使用者空間的程序之間的通訊,用以傳輸所需資料。
接著,解碼程序403在步驟506時計算該視頻幀需要等待的一等待時間,並等待該等待時間。該等待時間係根據該視頻幀的應顯示時間(DisplayTime)比較該目前垂直同步信號的發出時間,得出該視頻幀應在該目前垂直同步號發出後的第m個垂直同步信號及第m+1個垂直同步信號區間輸出,並在該第m個垂直同步信號的發出時間加上一安全時間再減去目前時間(NowTime),以得出該等待時間,其中m為零或正整數。在本實施例中,因為顯示器405的顯示更新頻率是60Hz,其每一顯示幀(其各自對應一垂直同步信號)的間隔時間是16.6667ms,因此該安全時間可設為大約是該些垂直同步信號的間隔時間的一半,例如8ms,以確保該視頻幀得以在第m+1個垂直同步信號後正確顯示。解碼程序403並在步驟506等待該等待時間。
配合參考第5B圖,在解碼程序403解碼完視頻的第五個視頻且判斷目前時間係早於該第五個視頻幀的應顯示時間時後,解碼程序403根據該第五個視頻幀的應顯示時間判定應在該目前垂直同步信號的發出時間後的第m個垂直同步信號及第m+1個垂直同步信號(如第5B圖所標示的Vm及Vm+1)區間輸 出。此時,解碼程序403計算等待時間應為在該第m個垂直同步信號的發出時間加上一安全時間(例如:8ms)再減去該目前時間。當等待時間結束後,解碼程序403立起旗幟,如第5B圖中所標示(第5B圖中僅示出對應第五個視頻幀的旗幟)。繼續進行後續的顯示程序步驟(即步驟507之後的渲染等步驟),使得顯示器405得以在第m+1個垂直同步信號(Vm+1)發出後,能正確無延遲地將第五個視頻幀顯示。
另外,舉例說明如何得到視頻幀應顯示的區間,假設一視頻幀的應顯示時間減去目前垂直同步信號的發出時間,再除以每一顯示幀的間隔時間16.6667ms,所得到結果是33.4,則表示該視頻幀應在該目前垂直同步信號後的第33個垂直同步信號及第34個垂直同步信號的區間內完成渲染與傳送至顯示程序404。而開始進行渲染與傳送至顯示程序404的時間應為第33個垂直同步信號的發出時間再加上安全時間(例如:8ms)。因此,該視頻幀的等待時間為在第33個垂直同步信號的發出時間加上該安全時間再減去該目前時間,即為Vsynctime+33*16.6667+8ms-NowTime。上述Vsynctime+33*16.6667即表示第33個垂直同步信號的發出時間。等到該等待時間結束,將該視頻幀進行渲染與傳送至顯示程序404,即可使該視頻幀確保在應顯示的時間正確顯示。不過,若視頻格式是29.97FPS(每視頻幀的時間間隔33.367ms),與顯示器的顯示更新頻率60Hz的兩個顯示幀時間(33.333ms)不一致,因此每過一段時間(約500幀)還是會因為等待時間過短而必須延遲一幀。然而,每500幀延遲一次是我們肉眼所無法 分辨的,因此上述解決方案仍是可以接受的。
綜上所述,本發明提供的視頻處理方法及其視頻處理裝置結合了垂直同步信號的發出時間,動態調整視頻幀在解碼程序的等待時間及送去顯示程序的時間,從根本上解決了視頻播放延遲的問題,以提供使用者更好的影音體驗。
此外,雖然第3A圖及第5A圖的方法流程圖採用指定的順序來執行,但是在不違法發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序。所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (12)

  1. 一種視頻處理方法,由一處理器執行一作業系統,該作業系統包括一使用者空間與一內核空間,該方法包括:接收一視頻;該使用者空間的一解碼程序自一顯示器取得該顯示器的一目前垂直同步信號的發出時間;該解碼程序解碼該視頻中之一視頻幀,取得該視頻幀標註的一應顯示時間;當一目前時間早於該視頻幀的該應顯示時間時,根據該目前垂直同步信號的發出時間,計算該視頻幀需要等待的一等待時間;當該等待時間結束,利用一渲染函數將該視頻幀進行渲染;以及當該使用者空間的一顯示程序接收一個垂直同步信號時,該顯示程序將該視頻幀輸出至該顯示器,以顯示該視頻幀。
  2. 如申請專利範圍第1項所述的視頻處理方法,其中計算該視頻幀需要等待的一等待時間,更包括:根據該應顯示時間比較該目前垂直同步信號的發出時間,得出該視頻幀應在該目前垂直同步號發出後的第m個垂直同步信號及第m+1個垂直同步信號區間輸出,並在該第m個垂直同步信號的發出時間加上一安全時間再減去該目前時間,以得出該等待時間,其中m為零或正整數。
  3. 如申請專利範圍第1項所述的視頻處理方法,其中該解碼程序取得該顯示器的該目前垂直同步信號的發出時間,更包括:該解碼程序透過該使用者空間的執行程序間通訊的一繫結程式(binder),用以自該顯示程序取得該顯示程序自該顯示器取得的該目前垂直同步信號的發出時間。
  4. 如申請專利範圍第1項所述的視頻處理方法,其中該內核空間具有一驅動器,其中該解碼程序取得該顯示器的該目前垂直同步信號的發出時間,更包括:該解碼程序產生一命令碼使該驅動器取得該目前垂直同步信號的發出時間並透過該內核空間與該使用者空間之間的一介面提供該目前垂直同步信號的發出時間至該解碼程序。
  5. 如申請專利範圍第1項所述的視頻處理方法,更包括:進行渲染後再由該顯示程序將該視頻幀暫存於一緩衝佇列。
  6. 如申請專利範圍第2項所述的視頻處理方法,其中該安全時間約為該些垂直同步信號的間隔時間的一半。
  7. 一種視頻處理裝置,包括:一處理器,耦接一顯示器,該處理器執行一作業系統,該作業系統包括一使用者空間與一內核空間,該作業系統執行包括:接收一視頻;該使用者空間的一解碼程序自一顯示器取得該顯示器的一目前垂直同步信號的發出時間;該解碼程序解碼該視頻中之一視頻幀,取得該視頻幀標註的一應顯示時間;當一目前時間早於該視頻幀的該應顯示時間時,根據該目前垂直同步信號的發出時間,計算該視頻幀需要等待的一等待時間;當該等待時間結束,利用一渲染函數將該視頻幀進行渲染;以及當該使用者空間的一顯示程序接收一個垂直同步信號時,該顯示程序將該視頻幀輸出至該顯示器,以顯示該視頻幀。
  8. 如申請專利範圍第7項所述的視頻處理裝置,其中計算該視頻幀需要等待的一等待時間,更包括:根據該應顯示時間比較該目前垂直同步信號的發出時間,得出該視頻幀應在該目前垂直同步號發出後的第m個垂直同步信號及第m+1個垂直同步信號區間輸出,並在該第m個垂直同步信號的發出時間加上一安全時間再減去該目前時間,以得出該等待時間,其中m為零或正整數。
  9. 如申請專利範圍第7項所述的視頻處理裝置,其中該解碼程序取得該顯示器的該目前垂直同步信號的發出時間,更包括:該該解碼程序透過該使用者空間的執行程序間通訊的一繫結程式(binder),用以自該顯示程序取得該顯示程序自該顯示器取得的該目前垂直同步信號的發出時間。
  10. 如申請專利範圍第7項所述的視頻處理裝置,其中該內核空間具有一驅動器,其中該解碼程序取得該顯示器的該目前垂直同步信號的發出時間,更包括:該解碼程序產生一命令碼使該驅動器取得該目前垂直同步信號的發出時間並透過該內核空間與該使用者空間之間的一介面提供該目前垂直同步信號的發出時間至該解碼程序。
  11. 如申請專利範圍第7項所述的視頻處理裝置,其中該作業系統執行更包括:進行渲染後再由該顯示程序將該視頻幀暫存於一緩衝佇列。
  12. 如申請專利範圍第8項所述的視頻處理裝置,其中該安全時間約為該些垂直同步信號的間隔時間的一半。
TW107127272A 2018-06-21 2018-08-06 視頻處理方法及其裝置 TWI663875B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
??201810642659.5 2018-06-21
CN201810642659.5 2018-06-21
CN201810642659.5A CN108769815B (zh) 2018-06-21 2018-06-21 视频处理方法及其装置

Publications (2)

Publication Number Publication Date
TWI663875B true TWI663875B (zh) 2019-06-21
TW202002664A TW202002664A (zh) 2020-01-01

Family

ID=63979680

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107127272A TWI663875B (zh) 2018-06-21 2018-08-06 視頻處理方法及其裝置

Country Status (2)

Country Link
CN (1) CN108769815B (zh)
TW (1) TWI663875B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110806909A (zh) * 2019-11-01 2020-02-18 北京金山安全软件有限公司 一种应用程序页面掉帧信息确定方法、装置及电子设备
CN112601127B (zh) * 2020-11-30 2023-03-24 Oppo(重庆)智能科技有限公司 视频显示方法及装置、电子设备、计算机可读存储介质
CN112929755B (zh) * 2021-01-21 2022-08-16 稿定(厦门)科技有限公司 进度拖动过程中的视频文件播放方法及装置
CN115550708B (zh) * 2022-01-07 2023-12-19 荣耀终端有限公司 数据处理方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101888566A (zh) * 2010-06-30 2010-11-17 清华大学 立体视频编码率失真性能估计方法
CN104159095A (zh) * 2014-02-19 2014-11-19 上海大学 一种多视点纹理视频和深度图编码的码率控制方法
CN106254779A (zh) * 2016-08-30 2016-12-21 上海乐欢软件有限公司 一种全景视频处理方法及服务器和客户端
CN107277616A (zh) * 2017-07-21 2017-10-20 广州爱拍网络科技有限公司 视频特效渲染方法、装置及终端

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009147601A (ja) * 2007-12-13 2009-07-02 Oki Semiconductor Co Ltd 垂直同期信号生成装置
CN103873952B (zh) * 2012-12-18 2017-10-20 风网科技(北京)有限公司 一种高效的视频播放丢帧控制系统及其方法
CN104871127B (zh) * 2012-12-21 2018-04-10 巴科股份有限公司 显示器间的差分等待时间的自动化测量
JP6119260B2 (ja) * 2013-01-16 2017-04-26 富士通株式会社 動画像多重化装置及び動画像多重化方法、ならびに多重化動画像復号装置及び多重化動画像復号方法
US10482568B2 (en) * 2014-05-28 2019-11-19 Sony Corporation Information processor and information processing method
US9564108B2 (en) * 2014-10-20 2017-02-07 Amlogic Co., Limited Video frame processing on a mobile operating system
US9998634B2 (en) * 2014-11-03 2018-06-12 Google Llc Video frame playback scheduling
US20170105010A1 (en) * 2015-10-09 2017-04-13 Microsoft Technology Licensing, Llc Receiver-side modifications for reduced video latency
CN106843859A (zh) * 2016-12-31 2017-06-13 歌尔科技有限公司 一种虚拟现实场景的绘制方法和装置及一种虚拟现实设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101888566A (zh) * 2010-06-30 2010-11-17 清华大学 立体视频编码率失真性能估计方法
CN104159095A (zh) * 2014-02-19 2014-11-19 上海大学 一种多视点纹理视频和深度图编码的码率控制方法
CN106254779A (zh) * 2016-08-30 2016-12-21 上海乐欢软件有限公司 一种全景视频处理方法及服务器和客户端
CN107277616A (zh) * 2017-07-21 2017-10-20 广州爱拍网络科技有限公司 视频特效渲染方法、装置及终端

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
、「android4.2.2的stagefright架构下基于SurfaceFlinger的视频解码输出缓存创建机制」(網址: https://blog.csdn.net/gzzaigcnforever/article/details/26849549 )2014/05/26.
「Android Multimedia框架總結(十)Stagefright框架之音視頻輸出過程」(網址:https://www.itread01.com/articles/1476676090.html) 2016/10/17.
Android Multimedia框架總結(十)Stagefright框架之音視頻輸出過程 (網址:https://www.itread01.com/articles/1476676090.html) 2016/10/17. *
Android4.2.2的stagefright架构下基于SurfaceFlinger的视频解码输出缓存创建机制 (網址: https://blog.csdn.net/gzzaigcnforever/article/details/26849549 )2014/05/26. *

Also Published As

Publication number Publication date
TW202002664A (zh) 2020-01-01
CN108769815B (zh) 2021-02-26
CN108769815A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
TWI663875B (zh) 視頻處理方法及其裝置
US11831566B2 (en) Method and apparatus for transmitting scene image of virtual scene, computer device, and computer-readable storage medium
US9674568B2 (en) Audio/video signal synchronization method and apparatus
JP6894976B2 (ja) 画像円滑性向上方法および装置
US20190184284A1 (en) Method of transmitting video frames from a video stream to a display and corresponding apparatus
US9973795B2 (en) Method for video synchronization in video distribution systems
CN110049361B (zh) 显示控制方法、装置、投屏设备及计算机可读介质
KR102646030B1 (ko) 영상제공장치, 그의 제어 방법 및 영상제공시스템
WO2017101355A1 (zh) 图像处理方法及装置
EP3975126A1 (en) Method and system for cloud-native 3d-scene game
WO2013182011A1 (zh) 在线视频实时变速播放方法及系统
CN108206018B (zh) 自适应画面刷新率调整方法及其装置
KR20130085831A (ko) 디스플레이 장치 및 디스플레이 장치의 제어 방법
US8605217B1 (en) Jitter cancellation for audio/video synchronization in a non-real time operating system
US9984653B1 (en) Method and device for reducing video latency
CN114302176A (zh) 视频播放方法及装置
CN113424487B (zh) 用于视频显示的方法、装置及计算机存储介质
US11513937B2 (en) Method and device of displaying video comments, computing device, and readable storage medium
CN115914745A (zh) 视频的解码方法、装置、电子设备及计算机可读介质
CN114554277B (zh) 多媒体的处理方法、装置、服务器及计算机可读存储介质
KR20220101726A (ko) 무선 오디오의 비디오에 대한 동기화
CN113596583A (zh) 视频流子弹时间数据处理方法及装置
CN112511887A (zh) 视频播放控制方法及相应的装置、设备、系统和存储介质
JP6612292B2 (ja) 変換システム、映像出力装置及び変換方法
CN112118473B (zh) 视频弹幕显示方法、装置、计算机设备及可读存储介质