TWI666930B - 一種使用環形緩衝器和競賽模式環形緩衝器訪問控制方案的視訊處理系統 - Google Patents
一種使用環形緩衝器和競賽模式環形緩衝器訪問控制方案的視訊處理系統 Download PDFInfo
- Publication number
- TWI666930B TWI666930B TW106123206A TW106123206A TWI666930B TW I666930 B TWI666930 B TW I666930B TW 106123206 A TW106123206 A TW 106123206A TW 106123206 A TW106123206 A TW 106123206A TW I666930 B TWI666930 B TW I666930B
- Authority
- TW
- Taiwan
- Prior art keywords
- video
- data
- buffer
- write
- bit stream
- Prior art date
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 259
- 238000012545 processing Methods 0.000 title claims abstract description 67
- 238000004891 communication Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000012464 large buffer Substances 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002950 deficient Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4341—Demultiplexing of audio and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4343—Extraction or processing of packetized elementary streams [PES]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43632—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
- H04N21/43635—HDMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43637—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/127—Updating a frame memory using a transfer of data from a source area to a destination area
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10629—Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
- G11B2020/10666—Ring buffers, e.g. buffers wherein an iteratively progressing read or write pointer moves back to the beginning of the buffer when reaching the last storage cell
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10675—Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
- G11B2020/1074—Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control involving a specific threshold value
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/1075—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
- G11B2020/10759—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
- G11B2020/10768—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data by pre-caching the initial portion of songs or other recorded or downloaded data for starting playback instantly
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/1075—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
- G11B2020/10787—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data parameters, e.g. for decoding or encoding
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/1075—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
- G11B2020/10796—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data address data
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本發明提供一種視訊處理系統。該視訊處理系統包括儲存設備、音訊/視訊解多工電路和視訊解碼器。所述儲存設備包括位元流緩衝器,其為環形緩衝器。所述音訊/視訊解多工電路接收輸入資料,並對所述輸入資料執行音訊/視訊解多工操作,以將視訊位元流的資料寫入到所述環形緩衝器內。所述視訊解碼器從所述比環形緩衝器中獲取所述視訊位元流的資料,並對獲取到的所述視訊位元流的資料執行視訊解碼操作。本發明通過使用環形緩衝器,降低訪問延時的同時,降低緩衝器成本。
Description
本發明的所公開實施例涉及視訊資料處理,且更具體而言,涉及一種使用環形緩衝器(ring buffer)和競賽模式(racing-mode)環形緩衝器訪問控制方案的視訊處理系統。
一個傳統的視訊系統設計包括視訊發送系統(其可用作視訊記錄系統)和視訊接收系統(其可用作視訊播放系統)。關於視訊發送系統,其由多個處理階段構成,包括視訊編碼器、音訊/視訊多工電路、發送電路等。關於視訊接收系統,其由多個處理階段構成,包括接收電路、音訊/視訊多路解複用電路、視訊解碼器、顯示器等。然而,由於視訊接收系統中超長播放時間,傳統之視訊系統設計無法滿足某些超低延時應用之要求。因此,需要一種具有新型低延時和高性能之視訊接收系統。
根據本發明的示例之實施例,本發明提出一種使用環形緩衝器和競賽模式環形緩衝器訪問控制方案之視訊處理系統來解決上述問題。
根據本發明之第一方面,公開一種示例性之視訊處理系統。所述示例性之視訊處理系統包括儲存設備、音訊/視訊解多工電路和視訊解碼器。儲存設備包括位元流緩衝器,其中所述位元流緩衝器為環形緩衝器。音訊/視訊解多
工電路用於接收輸入資料,並對所述輸入資料執行音訊/視訊解多工操作以將視訊位元流之資料寫入到所述環形緩衝器內。視訊解碼器用於從所述環形緩衝器中獲取所述視訊位元流之資料,並對所述獲取之所述視訊位元流之資料執行視訊解碼操作。
根據本發明之第二方面,公開一種示例性之視訊處理系統。所述示例性之視訊處理系統包括儲存設備、視訊解碼器和顯示引擎。儲存設備包括顯示緩衝器,其中所述顯示緩衝器為環形緩衝器。視訊解碼器用於對視訊位元流之資料執行視訊解碼操作,以將重構視訊幀之像素資料寫入所述環形緩衝器內。顯示引擎用於從所述環形緩衝器中獲取所述重構視訊幀之像素資料,並根據所述獲取之所述重構視訊幀之像素資料驅動顯示設備。
根據本發明之第三方面,公開一種示例性之視訊處理系統。所述示例性之視訊處理系統包括儲存設備、接收電路和音訊/視訊解多工電路。儲存設備包括資料緩衝器,其中所述資料緩衝器為環形緩衝器。接收電路用於接收資料包,並解壓所述資料包以將所述資料包之有效載荷資料寫入到所述環形緩衝器內。音訊/視訊解多工電路用於從所述環形緩衝器中獲取輸入資料,並對所述獲取之輸入資料執行音訊/視訊解多工操作,其中所述獲取之輸入資料包括至少一個所述資料包之有效載荷資料。
本發明通過在視訊接收系統內不同處理階段之間使用環形緩衝器,避免視訊幀處理過程中之下溢或者上溢,進而减低訪問延時,同時降低緩衝器成本。
在閱讀以下對各圖及圖式中所例示之優選實施例之詳細說明之後,本發明之這些及其它目標無疑將對該領域之習知技藝者而言顯而易見。
100‧‧‧視訊發送系統
110‧‧‧通信鏈結
120‧‧‧視訊接收系統
122‧‧‧接收電路
134‧‧‧資料緩衝器
124‧‧‧儲存設備
126‧‧‧音訊/視訊解多工電路
128‧‧‧視訊解碼器
130‧‧‧顯示引擎
132‧‧‧顯示控制電路
134‧‧‧資料緩衝器
136‧‧‧位元流緩衝器
138‧‧‧顯示緩衝器
139‧‧‧參考幀緩衝器
140‧‧‧顯示設備
200、600、900‧‧‧視訊處理系統
202、902‧‧‧寫控制器
204、904‧‧‧讀控制器
402~410、502~512、802~812、1102~1110、1202~1212‧‧‧步驟
602‧‧‧重構綫計數器
604‧‧‧顯示綫計數器
1302‧‧‧幀基位址切換電路
第1圖是例示根據本發明實施例之視訊接收系統之結構示意圖。
第2圖是例示根據本發明實施例之第一視訊處理系統之示意圖。
第3圖是例示根據本發明實施例之使用環形緩衝器所實現之位元流緩衝器之示意圖。
第4圖是例示根據本發明實施例之控制位元流緩衝器之寫操作之方法之流程圖。
第5圖是例示根據本發明實施例之控制位元流緩衝器之讀操作之方法之流程圖。
第6圖是例示根據本發明實施例之第二視頻處理系統之示意圖。
第7圖是例示根據本發明實施例之使用環形緩衝器所實現之顯示緩衝器之示意圖。
第8圖是例示根據本發明實施例之顯示控制方法之流程圖。
第9圖是例示根據本發明實施例之第三視頻處理系統之示意圖。
第10圖是例示根據本發明實施例之使用環形緩衝器所實現之資料緩衝器之示意圖。
第11圖是例示根據本發明實施例之控制資料緩衝器之寫操作之方法之流程圖。
第12圖是例示根據本發明實施例之控制資料緩衝器之讀操作之方法之流程圖。
第13圖是例示根據本發明實施例之幀基位址切換電路之示意圖。
第14圖是例示根據本發明實施例之顯示設備所顯示之視頻幀之示意圖。
本說明書及申請專利範圍通篇中所用之某些用語指代特定部件。如該領
域之習知技藝者可以理解的是,電子設備製造商可利用不同名稱來指代同一個部件。本文並非以名稱來區分部件,而是以功能來區分部件。在以下說明書及申請專利範圍中,用語“包括”是開放式之限定詞語,因此其應被解釋為意指“包括但不限於...”。另外,用語“耦合”旨在意指間接電連接或直接電連接。因此,當一個裝置耦合到另一裝置時,則這種連接可以是直接電連接或通過其他裝置及連接部而實現之間接電連接。
第1圖是根據本發明實施例之視訊接收系統之結構示意圖。視訊接收系統120通過通信鏈結110與視訊發送系統100進行通信。舉例但不限於,該視訊發送系統100和視訊接收系統120可以應用於超低延時應用,如虛擬實境(virtual reality,VR)應用。在本實施例中,視訊接收系統120包括接收(receiving,RX)電路122、儲存設備124、音訊/視訊解多工電路(用“A/V DEMUX”表示)126、視訊解碼器(用“VDEC”表示)128、顯示引擎130和顯示控制電路132。儲存設備124包括資料緩衝器134、位元流緩衝器136、顯示緩衝器138和參考幀(frame)緩衝器139。
視訊發送系統100用作視訊記錄系統,其用於編碼由一個或多個視訊源(未示出)所提供之視訊幀,然後通過通信鏈結110將編碼之視訊資料發送給視訊接收系統120。視訊接收系統120用作視訊播放系統,其用於接收來自於通信鏈結110之編碼之視訊幀資料,然後解碼編碼之視訊幀資料,以生成重構視訊幀至顯示設備140,進而用於視訊播放。例如,顯示設備140可以是VR頭盔之顯示屏。此外,通信鏈結110可以由有綫通信鏈結或者無綫通信鏈結來實現。
接收電路122接收來自通信鏈結110之資料包,並解壓該資料包,以將該資料包之有效載荷資料寫入到資料緩衝器134。該資料包之有效載荷資料包括編
碼視訊資料、編碼音訊資料和其他用戶定義之資料。音訊/視訊解多工電路126從資料緩衝器134獲取輸入資料,並對獲取之輸入資料執行音訊/視訊解多工操作,其中獲取之輸入資料包括由接收電路122所接收之至少一個資料包之有效載荷資料。由於音訊/視訊解多工,分離出視訊位元流和音訊位元流,並分別將其轉發至位元流緩衝器136和音訊資料路徑133。換句話說,音訊/視訊解多工電路126對獲取之輸入資料執行音訊/視訊解多工操作,從而將視訊位元流之資料寫入到位元流緩衝器136內,並將音訊位元流之資料提供給音訊資料路徑133。音訊資料路徑133解碼音訊位元流以獲得用於音訊播放之音訊資料。關於視訊處理和播放,視訊解碼器128從位元流緩衝器136獲取視訊位元流之資料,並對獲取之視訊位元流之資料執行視訊解碼操作,以將重構視訊幀之像素資料寫入到顯示緩衝器138內。
可以使用幀內預測模式或者幀間預測模式來編碼視訊幀內之編碼塊。當使用幀間預測模式編碼當前視訊幀內之編碼塊時,在參考幀內查找到預測塊,該預測塊用於重構該當前視訊幀之編碼塊,該參考幀是一個之前重構之視訊幀,並存儲在參考幀緩衝器139內。因此,還將由視訊解碼器128解碼前一視訊幀而生成之重構視訊幀存儲在參考幀緩衝器139內,從而作為用於解碼當前視訊幀之參考幀。
顯示引擎130是由顯示控制電路132控制之驅動電路。顯示引擎130從顯示緩衝器138獲取重構視訊幀之像素資料,並根據所獲取之重構視訊幀之像素資料驅動顯示設備140。
在本實施例中,儲存設備124使用內部儲存設備、外部儲存設備或者其結合所實現。例如,內部儲存設備可以是靜態隨機存取記憶體(static random a
ccess memory,SRAM),或者正反器(flip-flop)。外部儲存設備可以是動態隨機存取記憶體(dynamic random access memory,DRAM)或者快閃記憶體。
由於視訊接收系統120內之不同處理階段具有不同之資料處理速度,一個緩衝器耦接不同處理階段之間。如第1圖所示,資料緩衝器134耦接於前面之接收電路122和後面之音訊/視訊解多工電路126之間,位元流緩衝器136耦接於前面之音訊/視訊解多工電路126和後面視訊解碼器128之間,以及顯示緩衝器138耦接於前面之視訊解碼器128和後面之顯示引擎130之間。如果通過使用小型緩衝器來實現一個耦接於具有不同資料處理速度之不同處理階段之間之緩衝器,在一個視訊幀之處理期間,該小型緩衝器會遇到下溢或者上溢,從而導致額外之讀取延時。如果通過使用大型緩衝器來實現一個耦接於具有不同資料處理速度之不同處理階段之間之緩衝器,在一個視訊幀之處理期間,以緩衝器成本為代價,該大型緩衝器可以避免下溢或者上溢。在本實施例中,通過使用環形緩衝器來實現資料緩衝器134、位元流緩衝器136和顯示緩衝器138中至少一個。由於環形緩衝器之內部特性,可以重複使用小型環形緩衝器之存儲空間,這樣,小型環形緩衝器可以用作大型緩衝器。此外,采用競賽模式環形緩衝器訪問控制方案可以防止後續處理階段從該環形緩衝器中獲取錯誤之資料,和/或防止前面之處理階段重寫還沒有被後續處理階段處理之緩存資料。簡言之,本發明提出在視訊接收系統內不同處理階段之間使用環形緩衝器,從而實現訪問延時和緩衝器成本之間之平衡。
第2圖是根據本發明實施例之第一視訊處理系統之示意圖。該視訊處理系統200是如第1圖所示之視訊接收系統120之一部分。在本實施例中,視訊處理系統200包括音訊/視訊解多工電路126、視訊解碼器128和位元流緩衝器136。此外,該位元流緩衝器136由如第3圖所示之環形緩衝器來實現。進一步地,采用
競賽模式環形緩衝器訪問控制方案,以防止視訊解碼器128從該環形緩衝器(例如,位元流緩衝器136)獲取錯誤之資料,並防止音訊/視訊解多工電路126覆蓋視訊解碼器128還沒有處理之緩存資料。
如第3圖所示,位元流緩衝器136是一個環形緩衝器,其具有頂部位址v_start和底部位址v_end。在一個實施例中,頂部位址v_start和底部位址v_end可以是實體位址,其定義了連續之實體存儲空間。在另一個實施例中,頂部位址v_start和底部位址v_end可以是虛擬位址,其定義了連續之邏輯存儲空間。因此,總位元流緩衝器大小等於(v_start-v_end)。可以按照從頂部位址v_start到底部位址v_end之方向,然後從底部位址v_end返回到頂部位址v_start,來訪問(讀/寫)該位元流緩衝器136。
在一個視訊幀之輸入資料(其包含編碼之視訊資料和編碼之音訊資料)之音訊/視訊解多工期間,音訊/視訊解多工電路126將視訊位元流之資料寫入到位元流緩衝器136內,從而寫指針wptr(其表示將視訊位元流之資料寫入到位元流緩衝器136之當前寫位址)向下移動。具體地,音訊/視訊解多工電路126分析輸入資料(其包含編碼之視訊資料和編碼之音訊資料),並將視訊位元流之資料寫入到位元流緩衝器136內。因此,音訊/視訊解多工電路126根據存儲在位元流緩衝器136內之視訊資料之大小更新該寫指針wptr。當該寫指針wptr達到底部位址v_end時,該寫指針wptr將返回到頂部位址v_start,從而將視訊位元流之資料無間隙地繼續寫入到位元流緩衝器136內。
在一個視訊幀之視訊位元流之視訊解碼期間,視訊解碼器128從位元流緩衝器136中讀取視訊位元流之資料,從而讀指針rptr(其表示從位元流緩衝器136中讀取視訊位元流之資料之當前讀位址)向下移動。當該讀指針rptr達到底部
位址v_end時,該讀指針rptr將返回到頂部位址v_start,從而從位元流緩衝器136中無間隙地繼續讀取視訊位元流之資料。
在視訊解碼器128讀取並處理存儲在位元流緩衝器136內之舊資料部分之後,可以重複使用緩存該舊資料部分之存儲空間,以緩存音訊/視訊解多工電路126所生成之新資料部分。此外,在音訊/視訊解多工電路126所生成之新資料部分覆蓋舊資料部分(其已由視訊解碼器128讀取並處理)之後,視訊解碼器128再次讀取該存儲空間,以獲取新資料部分。由於環形緩衝器之內部特性,寫指針wptr跟隨讀指針rptr,並且,讀指針rptr也跟隨寫指針wptr。寫指針wptr和讀指針rptr之間使用競賽模式,以控制作為環形緩衝器之位元流緩衝器136之訪問(讀/寫)。根據競賽模式環形緩衝器訪問控制方案,音訊/視訊解多工電路126包括將寫指針wptr更新到視訊解碼器128之寫控制器202,以及視訊解碼器128包括將讀指針rptr更新到音訊/視訊解多工電路126之讀控制器204。
第4圖是根據本發明實施例之控制位元流緩衝器136之寫操作之方法之流程圖。假設結果本質上是相同的,無需嚴格按照第4圖所示之順序執行步驟。寫控制器202采用如第4圖所示之方法。在步驟402中,寫控制器202設置初始起點位置,其中,起點表示音訊/視訊解多工電路126將視訊位元流存儲到位元流緩衝器136之起始位址。由於位元流緩衝器136是環形緩衝器,該初始起點位置設置為頂部位址v_start和底部位址v_end之間之一個位址。此外,開始將視訊位元流存儲到位元流緩衝器136的時候,將視訊位元流之第一資料部分寫入到寫位址所尋址之記憶體字(memory word),該寫位址即是初始起點位置。
在步驟404中,寫控制器202比較其寫指針wptr與接收到之讀指針rptr,以檢測寫指針wptr與讀指針rptr之間之差是否沒有達到閾值(例如,wptr!=rptr-1
)。當寫指針wptr與讀指針rptr之間之差沒有達到該閾值時(例如,wptr!=rptr-1),寫控制器202繼續或者恢復(resume)將視訊位元流寫入到位元流緩衝器136內(步驟408)。在本實施例中,該閾值等於寫指針wptr遞增之步長(step size)。但是,此僅用於示例目的,不用於限制本發明。
當寫指針wptr與讀指針rptr之間之差達到該閾值時,(例如,wptr==rptr-1),意味著寫指針wptr將很快追上讀指針rptr,此時,寫控制器202停止將視訊位元流寫入到位元流緩衝器136中(步驟406)。這樣,競賽模式環形緩衝器訪問控制方案防止音訊/視訊解多工電路126覆蓋掉視訊解碼器128還沒有處理之編碼視訊資料。直到視訊解碼器128將讀指針rptr更新為新的值,寫控制器202才恢復將視訊位元流寫入到位元流緩衝器136。因此,在暫停將視訊位元流寫入到位元流緩衝器136之情况下,當由於讀指針rptr更新為新的值而使得寫指針wptr與讀指針rptr之間之差沒有達到該閾值(例如,wptr!=rptr-1)時,寫控制器202將恢復將視訊位元流寫入到位元流緩衝器136中(步驟404和408)。
在步驟408中,寫控制器202更新寫指針wptr,以移動該寫指針wptr,進而將視訊位元流寫入到位元流緩衝器136之下一個寫位址中。例如,寫控制器202根據如下偽碼更新寫指針wptr。
if(wptr==v_end)
wptr=v_start
else
wptr=wptr+1
在根據更新後之寫指針wptr將視訊位元流寫入到位元流緩衝器136之後,寫控制器202檢測是否存在需要存儲到位元流緩衝器136中之更多資料(步驟410)。當不存在需要存儲到位元流緩衝器136中之資料時,結束寫操作。否則控制流程繼續到步驟404。
第5圖是根據本發明實施例之控制位元流緩衝器136之讀操作之方法之流程圖。假設結果本質上是相同的,無需嚴格按照第5圖所示之順序執行步驟。讀控制器204采用如第5圖所示之方法。在步驟502中,讀控制器204檢測起始起點位置是否在頂部位址v_start和底部位址v_end之間。如上所述,起點表示存儲到為環形緩衝器之位元流緩衝器136中之視頻位元流之起始位址。僅當起始起點位置在頂部位址v_start和底部位址v_end之間時,激活競賽模式環形緩衝器訪問控制方案。因此,當起始起點位置在頂部位址v_start和底部位址v_end之間時,控制流程繼續至步驟504。
在步驟504中,讀控制器204比較其讀指針rptr與接收到之寫指針wptr,以檢測讀指針rptr是否沒有追上寫指針wptr(例如,rptr!=wptr)。當讀指針rptr沒有追上寫指針wptr時(例如,rptr!=wptr),讀控制器204繼續或者恢復從位元流緩衝器136中讀取視頻位元流之資料(步驟508)。
然而,當讀指針rptr追上寫指針wptr時(例如,rptr==wptr),讀控制器204停止從位元流緩衝器136中讀取視訊位元流之資料。這樣,競賽模式環形緩衝器訪問控制方案防止視訊解碼器128從位元流緩衝器136中獲取錯誤之編碼之視訊資料。直到音訊/視訊解多工電路126將寫指針wptr更新為新的值,讀控制器204才恢復從位元流緩衝器136中讀取視訊位元流之資料。因此,在暫停從位元流緩衝器136中讀取視訊位元流之資料之情况下,當由於寫指針wptr更新為新的值而使得讀指針rptr沒有追上寫指針wptr(例如,rptr!=wptr)時,讀控制器204將恢復從位元流緩衝器136中讀取視訊位元流之資料(步驟504和508)。
在步驟508中,讀控制器204計算讀取長度,該讀取長度表示仍然等待從位元流緩衝器136獲取到視訊解碼器128之資料之數量,從而用於進一步處理。
例如,讀控制器204根據如下偽碼計算該讀取長度。
if(wptr<rptr)
length=(v_end-rptr)+(wptr-v_start)
else
length=wptr-rptr
在步驟510中,讀控制器204更新讀指針rptr,以移動該讀指針rptr,從而從位元流緩衝器136之下一個讀位址中讀取視訊位元流之資料。例如,讀控制器204根據如下偽碼更新讀指針rptr。
if(rptr==v_end)
rptr=v_start
else
rptr=rptr+1
在根據更新後之讀指針rptr從位元流緩衝器136中讀取視訊位元流之資料之後,讀控制器204檢測幀解碼操作是否完成(步驟512)。當幀解碼操作完成時,結束讀操作。否則控制流程繼續到步驟504。
第6圖是根據本發明實施例之第二視訊處理系統之示意圖。該視訊處理系統600是如第1圖所示之視訊接收系統120之一部分。在本實施例中,視訊處理系統600包括視訊解碼器128、顯示引擎130、顯示控制電路132和顯示緩衝器138。此外,該顯示緩衝器138由如第7圖所示之環形緩衝器來實現。采用競賽模式環形緩衝器訪問控制方案,以防止視訊解碼器128覆蓋顯示引擎130還沒有使用來用於視訊播放之緩存之像素資料。
如第7圖所示,顯示緩衝器138是一個環形緩衝器,其具有頂部位址Buf_start和底部位址Buf_end。在一個實施例中,頂部位址Buf_start和底部位址Buf_end可以是實體位址,其定義了連續之實體存儲空間。在另一個實施例中,頂部
位址Buf_start和底部位址Buf_end可以是虛擬位址,其定義了連續之邏輯存儲空間。因此,總之顯示緩衝器大小等於(Buf_start-Buf_end)。例如,總之顯示緩衝器大小等於n(n≧2)列編碼塊列之像素資料之數量,其中每個編碼塊包含m(m≧1)條像素綫(pixel line)。編碼塊是視訊編碼標準之基本處理單元。例如,當視訊編碼標準為H.264時,一個編碼塊是一個宏塊(macroblock,MB)。又例如,當視訊編碼標準為VP9時,一個編碼塊是一個超級塊(super block,SB)。還例如,當視訊編碼標準為高效視訊編碼(HEVC,High Efficiency Video Coding)時,一個編碼塊是一個編碼樹單元(coding tree unit,CTU)。
由於顯示緩衝器138是一個環形緩衝器,可以按照頂部位址Buf_start到底部位址Buf_end之方向,然後從底部位址Buf_end返回到頂部位址Buf_start來訪問(讀/寫)該顯示緩衝器138,。
在一個視訊幀之視訊解碼期間,視訊解碼器128將重構視訊幀之像素資料寫入到顯示緩衝器138內,從而像素資料之寫位址向下移動。當寫位址到達底部位址Buf_end時,寫位址將返回到頂部位址Buf_start,從而將該重構視訊幀之像素資料無間隙地寫入到顯示緩衝器138內。
在重構視訊幀之視訊播放期間,顯示引擎130從顯示緩衝器138中讀取該重構視訊幀之像素資料,進而該像素資料之讀位址向下移動。當讀位址到達底部位址Buf_end時,該讀位址將返回到頂部位址Buf_start,從而從顯示緩衝器138中無間隙地繼續讀取該重構視訊幀之像素資料。
在顯示引擎130讀取並處理存儲在顯示緩衝器138內之舊資料部分之後,可以重複使用緩存該舊資料部分之存儲空間,以緩存視訊解碼器128所生成之新資料部分。此外,在視訊解碼器128所生成之新資料部分覆蓋舊資料部分(其
已由顯示引擎130讀取並處理)之後,顯示引擎130再次讀取該存儲空間,以獲取新資料部分。除非顯示緩衝器138內已經存在一些可用之視訊幀之像素資料,否則不開始視訊幀之視訊播放。由於環形緩衝器之內部特性,寫位址跟隨讀讀位址。為了實現流暢之視訊播放,不能停止顯示緩衝器138之讀操作。因此,讀操作和寫操作之間采用競賽模式,以控制為環形緩衝器之顯示緩衝器138之寫操作。根據競賽模式環形緩衝器訪問控制方案,視訊解碼器128包括重構綫計數器602,其維護重構綫計數值R_Line,該計數值R_Line表示視訊解碼器128所重構之像素綫之數量,以及顯示引擎130包括顯示綫計數器604,其維護顯示綫計數值D_Line,該計數值D_Line表示通過顯示引擎130在顯示設備140上所顯示之像素綫之數量。
在本實施例中,視訊解碼器128用於執行基於塊之解碼,顯示引擎130用於執行基於掃描綫之顯示。因此,每次完全解碼一個編碼塊列時,重構綫計數器602將給該重構綫計數值R_Line加上第一遞增值(例如,等於一個編碼塊之高度之值)。例如,假設一個編碼塊在行方向上有N個像素,當完全解碼一個編碼塊列時,該重構綫計數值R_Line更新為R_Line+N。此外,每次完全顯示一個像素綫時,顯示綫計數器604將給顯示綫計數值D_Line增加第二遞增值(例如,1)。例如,當完全顯示一個像素綫時,顯示綫計數值D_Line將更新為D_Line+1。
第8圖是根據本發明實施例之顯示控制方法之流程圖。假設結果本質上是相同的,無需嚴格按照第8圖所示之順序執行步驟。顯示控制電路132采用如第8圖所示之方法。在本實施例中,視訊解碼器128更新重構綫計數值R_Line至顯示控制電路132,顯示引擎130更新顯示綫計數值D_Line至顯示控制電路132。因此,顯示控制電路132可以參考重構綫計數值R_Line以瞭解當前視訊幀之解碼
狀態,並且參考顯示綫計數值D_Line以瞭解當前視訊幀之顯示狀態。開始時,顯示控制電路132比較重構綫計數值R_Line與顯示綫計數值D_Line,以判斷是否開始重構視訊幀之視訊播放。當R_Line≧D_Line,顯示控制電路132給顯示引擎分配幀基位址(frame base address)ADDR,其中該幀基位址表示視訊解碼器128將該重構視訊幀存儲到顯示緩衝器138內之起始位址。
在步驟804中,顯示控制電路132比較重構綫計數值R_Line與顯示綫計數值D_Line,以判斷是否停止顯示緩衝器138之讀操作。在本例子中,顯示控制電路132檢測重構綫計數值R_Line與顯示綫計數值D_Line之間之差是否沒有達到閾值(例如,R_Line!=D_Line+k),其中,根據實際設計考慮,閾值k可以設置為任何正整數值。當重構綫計數值R_Line與顯示綫計數值D_Line之間之差沒有達到該閾值時,(例如,R_Line!=D_Line+k),顯示控制電路132將沒有使能控制信號Sctrl以指示視訊解碼器128不停止將重構視訊幀之像素資料寫入到顯示緩衝器138內。隨後,流程繼續至步驟810,進而顯示引擎130從顯示緩衝器138中繼續讀取重構視訊幀之像素資料,並驅動顯示設備140顯示重構視訊幀之像素資料。因此,在步驟810中,通過顯示引擎130在顯示設備140上顯示一個像素綫,並且相應地顯示綫計數器604更新顯示綫計數值D_Line(例如,D_Line=D_Line+1)。
然而,當重構綫計數值R_Line與顯示綫計數值D_Line之間之差達到該閾值時,(例如,R_Line==D_Line+k),意味著視訊解碼速度比視訊播放速度更快,顯示控制電路132使能控制信號Sctrl以指示視訊解碼器128停止將重構視訊幀之像素資料寫入到顯示緩衝器138內(步驟806)。這樣,競賽模式環形緩衝器訪問控制方案防止視訊解碼器128覆蓋顯示引擎130還沒有使用以用於視訊播放之緩存之像素資料。如上所述,為了實現流暢之視訊播放,不能暫停顯示緩
衝器138之讀操作。隨後,流程繼續到步驟808,進而顯示引擎130從顯示緩衝器138中繼續讀取重構視訊幀之像素資料,並驅動顯示設備140顯示重構視訊幀之像素資料。相似地,在步驟808中,顯示綫計數器604相應地更新顯示綫計數值D_Line(例如,D_Line=D_Line+1)。
直到顯示引擎130(特別是顯示綫計數器604)更新顯示綫計數值D_Line為新的值時,顯示控制電路132才指示視訊解碼器128將重構視訊幀之像素資料恢復寫入到顯示緩衝器138。因此,在暫停將視訊位元流寫入到顯示緩衝器138之情况下,當由於顯示綫計數值D_Line更新為新的值而使得重構綫計數值R_Line與顯示綫計數值D_Line之間之差沒有達到該閾值時(例如,R_Line!=D_Line+k),顯示控制電路132禁能(de-assert)控制信號Sctrl以指示視訊解碼器128恢復寫入重構視訊幀之像素資料到顯示緩衝器138內(步驟804和810)。
在步驟812中,顯示控制電路132檢測是否存在需要顯示之更多像素綫。當不存在需要顯示之像素綫時,結束顯示控制操作。否則控制流程繼續到步驟804。
第9圖是根據本發明實施例之第三視訊處理系統之示意圖。該視訊處理系統900是如第1圖所示之視訊接收系統120之一部分。在本實施例中,視訊處理系統900包括接收電路122、音訊/視訊多路解複用電路126和資料緩衝器134。此外,該資料緩衝器134由如第10圖所示之環形緩衝器來實現。進一步地,采用競賽模式環形緩衝器訪問控制方案,以防止音訊/視訊多路解複用電路126從環形緩衝器(例如,資料緩衝器134)中獲取錯誤之資料,並且防止接收電路122覆蓋音訊/視訊多路解複用電路126還沒有處理之緩存資料。
在一個示例設計中,如第1圖所示之通信鏈結110可以是無綫通信鏈結。
因此,接收電路122用於接收來自無綫通信鏈結之資料包。例如,接收電路122可以是無線上網(Wireless Fidelity,WiFi)接收器,但是此僅用於示例目的,並不用於限制本發明。
在另一個示例設計中,如第1圖所示之通信鏈結110可以是有綫通信鏈結。因此,接收電路122用於接收來自有綫通信鏈結之資料包。例如,接收電路122可以是通用串列匯流排(Universal Serial Bus,USB)接收器或者高解析度多媒體接口(High-Definition Multimedia Interface,HDMI)接收器,但是此僅用於示例目的,並不用於限制本發明。
如第10圖所示,資料緩衝器134是一個環形緩衝器,其具有頂部位址v_start和底部位址v_end。在一個實施例中,頂部位址v_start和底部位址v_end可以是實體位址,其定義了連續之實體存儲空間。在另一個實施例中,頂部位址v_start和底部位址v_end可以是虛擬位址,其定義了連續之邏輯存儲空間。因此,總之資料緩衝器大小等於(v_start-v_end)。可以按照從頂部位址v_start到底部位址v_end之方向,然後從底部位址v_end返回到頂部位址v_start,來訪問(讀/寫)該資料緩衝器134。
在一個視訊幀之資料包之接收期間,接收電路122將資料包之有效載荷資料寫入到資料緩衝器134內,從而寫指針wptr(其表示將資料包之有效載荷資料寫入到資料緩衝器134之當前寫位址)向下移動。具體地,接收電路122接收來自通信鏈結110之資料包,並解包接收到之資料包,以將包含在該接收到之資料包內之有效載荷資料寫入到資料緩衝器134內。因此,接收電路122根據接收到之資料包之數量和包含在每個接收到之資料包內之有效載荷資料之大小更新該寫指針wptr。當該寫指針wptr達到底部位址v_end時,該寫指針wptr將返回到
頂部位址v_start,從而將資料包之有效載荷資料無間隙地繼續寫入到資料緩衝器134內。
在一個視訊幀之輸入資料(其包含至少一個資料包之有效載荷資料)之音訊/視訊解多工期間,音訊/視訊解多工電路126從資料緩衝器134中讀取該輸入資料,從而讀指針rptr(其表示從資料緩衝器134中讀取輸入資料之當前讀位址)向下移動。當該讀指針rptr達到底部位址v_end時,該讀指針rptr將返回到頂部位址v_start,從而從資料緩衝器134中無間隙地繼續讀取輸入資料。
在音訊/視訊解多工電路126讀取並處理存儲在資料緩衝器134內之舊資料部分之後,可以重複使用緩存該舊資料部分之存儲空間,以緩存接收電路122所生成之新資料部分。此外,在接收電路122所生成之新資料部分覆蓋舊資料部分(其已由音訊/視訊解多工電路126讀取並處理)之後,音訊/視訊解多工電路126再次讀取該存儲空間,以獲取新資料部分。由於環形緩衝器之內部特性,寫指針wptr跟隨讀指針rptr,並且,讀指針rptr也跟隨寫指針wptr。寫指針wptr和讀指針rptr之間使用競賽模式,以控制為環形緩衝器之資料緩衝器134之訪問(讀/寫)。根據競賽模式環形緩衝器訪問控制方案,接收電路122包括將寫指針wptr更新到音訊/視訊解多工電路126之寫控制器902,以及音訊/視訊解多工電路126包括將讀指針rptr更新到接收電路122之讀控制器904。
第11圖是根據本發明實施例之控制資料緩衝器134之寫操作之方法之流程圖。假設結果本質上是相同的,無需嚴格按照第11圖所示之順序執行步驟。寫控制器902采用如第11圖所示之方法。在步驟1102中,寫控制器902設置初始起點位置,其中,起點表示接收電路122將有效載荷資料存儲到資料緩衝器134之起始位址。由於資料緩衝器134是環形緩衝器,該初始起點位置設置為頂部位
址v_start和底部位址v_end之間之一個位址。此外,開始將資料包之有效載荷資料存儲到資料緩衝器134的時候,將有效載荷資料之第一資料部分寫入到寫位址所尋址之存儲字節,該寫位址即是初始起點位置。
在步驟1104中,寫控制器902比較其寫指針wptr與接收到之讀指針rptr,以檢測寫指針wptr與讀指針rptr之間之差是否沒有達到閾值(例如,wptr!=rptr-1)。當寫指針wptr與讀指針rptr之間之差沒有達到該閾值時(例如,wptr!=rptr-1),寫控制器902繼續或者恢復將資料包之有效載荷資料寫入到資料緩衝器134內(步驟1108)。在本實施例中,該閾值等於寫指針wptr遞增之步長。但是,此僅用於示例目的,不用於限制本發明。
然而,當寫指針wptr與讀指針rptr之間之差達到該閾值時,(例如,wptr==rptr-1),意味著寫指針wptr將很快追上讀指針rptr,此時,寫控制器902停止將資料包之有效載荷資料寫入到資料緩衝器134中(步驟1106)。這樣,競賽模式環形緩衝器訪問控制方案防止接收電路122覆蓋掉音訊/視訊解多工電路126還沒有處理之有效載荷資料。直到音訊/視訊解多工電路126將讀指針rptr更新為新的值,寫控制器902才恢復將資料包之有效載荷資料寫入到資料緩衝器134。因此,在暫停將資料包之有效載荷資料寫入到資料緩衝器134之情况下,當由於讀指針rptr更新為新的值而使得寫指針wptr與讀指針rptr之間之差沒有達到該閾值(例如,wptr!=rptr-1)時,寫控制器902恢復將資料包之視訊位元流寫入到資料緩衝器134中(步驟1104和1108)。
在步驟1108中,寫控制器902更新寫指針wptr,以移動該寫指針wptr,進而將視訊位元流之資料寫入到資料緩衝器134之下一個寫位址中。例如,寫控制器902根據如下偽碼更新寫指針wptr。
if(wptr==v_end)
wptr=v_start
else
wptr=wptr+1
在根據更新後之寫指針wptr將資料包之有效載荷資料寫入到資料緩衝器134之後,寫控制器902檢測是否存在需要存儲到資料緩衝器134中之更多資料(步驟1110)。當不存在需要存儲到資料緩衝器134中之資料時,結束寫操作。否則控制流程繼續到步驟1104。
第12圖是根據本發明實施例之控制資料緩存器134之讀操作之方法之流程圖。假設結果本質上是相同的,無需嚴格按照第12圖所示之順序執行步驟。讀控制器904采用如第12圖所示之方法。在步驟1202中,讀控制器904檢測起始起點位置是否在頂部位址v_start和底部位址v_end之間。如上所述,起點表示存儲到為環形緩存器之資料緩存器134中之有效載荷資料之起始位址。僅當起始起點位置在頂部位址v_start和底部位址v_end之間時,激活競賽模式環形緩存器訪問控制方案。因此,當起始起點位置在頂部位址v_start和底部位址v_end之間時,控制流程繼續至步驟1204。
在步驟1204中,讀控制器904比較其讀指針rptr與接收到之寫指針wptr,以檢測讀指針rptr是否沒有追上寫指針wptr(例如,rptr!=wptr)。當讀指針rptr沒有追上寫指針wptr時(例如,rptr!=wptr),讀控制器904繼續或者恢復從資料緩存器134中讀取有效載荷資料之資料(步驟1208)。
然而,在步驟1206中,當讀指針rptr追上寫指針wptr時(例如,rptr==wptr),讀控制器904停止從資料緩衝器134中讀取資料包之有效載荷資料。這樣,競賽模式環形緩衝器訪問控制方案防止音訊/視訊解多工電路126從資料緩衝器134中獲取錯誤之有效載荷資料。直到接收電路122將寫指針wptr更新為新的值,
讀控制器904才恢復從資料緩衝器134中讀取資料包之有效載荷資料。因此,在暫停從資料緩衝器134中讀取資料包之有效載荷資料之情况下,當由於寫指針wptr更新為新的值而使得讀指針rptr沒有追上寫指針wptr(例如,rptr!=wptr)時,讀控制器904將恢復從資料緩衝器134中讀取資料包之有效載荷資料(步驟1204和1208)。
在步驟1208中,讀控制器904計算讀取長度,該讀取長度表示仍然等待從資料緩衝器134獲取到音訊/視訊解多工電路126之資料之數量,從而用於進一步處理。例如,讀控制器904根據如下偽碼計算該讀取長度。
if(wptr<rptr)
length=(v_end-rptr)+(wptr-v_start)
else
length=wptr-rptr
在步驟1210中,讀控制器904更新讀指針rptr,以移動該讀指針rptr,從而從資料緩衝器134之下一個讀位址中讀取資料包之有效載荷資料。例如,讀控制器904根據如下偽碼更新讀指針rptr。
if(rptr==v_end)
rptr=v_start
else
rptr=rptr+1
在根據更新後之讀指針rptr將從資料緩衝器134中讀取有效載荷資料之資料之後,讀控制器904檢測幀音訊/視訊解多工操作是否完成(步驟1212)。當幀音訊/視訊解多工操作完成時,結束讀操作。否則控制流程繼續到步驟1204。
為了實現流暢之視訊播放,不能暫停顯示緩衝器138之讀操作。然而,由於某些因素,視訊解碼器128可能不能及時提供一個重構視訊幀之某些像素資
料。例如,由於視訊發送系統100與視訊接收系統120之間之通信鏈結(例如,有綫通信鏈結或無綫通信鏈結)110之頻寬改變而導致解碼速度變得不穩定。在顯示引擎130開始驅動顯示設備140顯示該部分重構視訊幀時,若部分重構視訊幀之重構像素資料還沒有準備好,顯示設備140上將顯示殘缺之圖像,從而導致視訊質量差。為了防止顯示設備140顯示殘缺之圖像,本發明進一步提出幀基位址切換方案。
請同時參考第6圖和第13圖,第13圖是根據本發明實施例之幀基位址切換電路之示意圖。該幀基位址切換電路1302是如第1圖和第6圖所示之顯示控制電路132之一部分。如上所述,顯示緩衝器138用於緩存重構幀(其為正在解碼之當前幀)之像素資料,並且,參考幀緩衝器139用於緩存一個或多個參考幀(其是已經解碼之前面之幀)。在本實施例中,幀基位址切換電路1302由具有第一輸入端口、第二輸入端口和輸出端口之多工器來實現,該第一輸入端口用於接收重構幀基位址,該第二輸入端口用於接收參考幀基位址,輸出端口用於選擇性地輸出重構幀基位址或者參考幀基位址作為顯示引擎130所使用之幀基位址ADDR。如第13圖所示,根據比較重構綫計數值R_Line和顯示綫計數值D_Line之結果控制該幀基位址切換電路1302,重構綫計數值R_Line由重構綫計數器602維護,顯示綫計數值D_Line由顯示綫計數器604維護。當重構綫計數值R_Line小於顯示綫計數值D_Line時,意味著視訊解碼器128不能及時提供所需要之像素綫資料,幀基位址切換電路1302將選擇參考幀基位址作為幀基位址ADDR。當重構綫計數值R_Line不小於顯示綫計數值D_Line時,意味著視訊解碼器128能及時提供所需要之像素綫資料,幀基位址切換電路1302將選擇重構幀基位址作為幀基位址ADDR。
重構幀基位址表示存儲在顯示緩衝器138內之重構視訊幀(其為正在解
碼之當前幀)之起始位址。參考幀基位址表示存儲在參考幀緩衝器139內之參考視訊幀(其為已經解碼之前一幀)之起始位址。如第6圖所示,顯示控制電路132提供幀基位址ADDR給顯示引擎130。當幀基位址ADDR設置成重構幀基位址時,顯示引擎130根據該幀基位址ADDR從顯示緩衝器138中獲取重構視訊幀(其為正在解碼之當前幀)之像素資料,並根據重構視訊幀(其為正在解碼之當前幀)之像素資料驅動顯示設備140。當幀基位址ADDR設置成參考幀基位址時,顯示引擎130根據該幀基位址ADDR從參考幀緩衝器139中獲取參考幀(其為已解碼之前一幀)之像素資料,並根據參考幀(其為已解碼之前一幀)之像素資料驅動顯示設備140。
當解碼速度在整個當前視訊幀之視訊播放期間穩定時,顯示設備140將完全顯示該當前視訊幀。然而,當解碼速度僅在部分當前視訊幀之視訊播放期間穩定時,顯示設備140將顯示部分該當前視訊幀,並進一步顯示部分前一視訊幀。第14圖是根據本發明實施例之顯示設備140上所顯示之視訊幀。顯示視訊幀IMG由部分重構幀和部分參考幀構成。在重構綫計數值R_Line小於顯示綫計數值D_Line之前,通過顯示引擎130使用設置為重構幀基位址之幀基位址ADDR,在顯示設備140之第一區域上顯示重構視訊幀(其為正在解碼之當前幀)之像素資料。在重構綫計數值R_Line小於顯示綫計數值D_Line之後,通過顯示引擎130使用設置為參考幀基位址之幀基位址ADDR,在顯示設備140之第二區域上顯示參考幀(其為已解碼之前一幀)之像素資料。在從重構幀基位址到參考幀基位址之自動切換之幫助下,當由於視訊發送系統100和視訊接收系統120之間之頻寬改變而導致之解碼速度不穩定時,顯示設備140上將不會顯示殘缺之圖像。
該領域之習知技藝者易知,可在保持本發明之教示內容之同時對裝置及方法作出諸多修改及變動。因此,以上公開內容應被視為僅受隨附申請專利範
圍之範圍之限制。
Claims (20)
- 一種視訊處理系統,包括:儲存設備,包括:位元流緩衝器,其中所述位元流緩衝器為環形緩衝器;音訊/視訊解多工電路,用於接收輸入資料,並對所述輸入資料執行音訊/視訊解多工操作以將視訊位元流的資料寫入到所述環形緩衝器內;以及視訊解碼器,用於從所述環形緩衝器中獲取所述視訊位元流的資料,並對所述獲取的所述視訊位元流的資料執行視訊解碼操作,其中解碼得到的重構視訊幀的像素資料寫入第二環形緩衝器內。
- 如申請專利範圍第1項所述之視訊處理系統,其中,所述音訊/視訊解多工電路進一步用於更新寫指針至所述視訊解碼器,其中所述寫指針表示所述音訊/視訊解多工電路將所述視訊位元流的資料寫入到所述環形緩衝器之當前寫位址;所述視訊解碼器包括:讀控制器,用於比較所述寫指針與讀指針,並在所述讀指針追上所述寫指針時,停止從所述環形緩衝器中獲取所述視訊位元流的資料,其中所述讀指針表示所述視訊解碼器從所述環形緩衝器中獲取所述視訊位元流的資料的當前讀位址。
- 如申請專利範圍第2項所述之視訊處理系統,其中,直到所述音訊/視訊解多工電路更新所述寫指針為新的值,所述讀控制器才恢復從所述環形緩衝器中獲取所述視訊位元流的資料。
- 如申請專利範圍第1項所述之視訊處理系統,其中,所述視訊解碼器進一步用於更新讀指針至所述音訊/視訊解多工電路,其中所述讀指針表示所述視訊解碼器從所述環形緩衝器中獲取所述視訊位元流的資料的當前讀位址;所述音訊/視訊解多工電路包括:寫控制器,用於比較所述讀指針與寫指針,並在所述寫指針與所述讀指針之間之差達到閾值時,停止將所述視訊位元流的資料寫入到所述環形緩衝器,其中所述寫指針表示所述音訊/視訊解多工電路將所述視訊位元流的資料寫入到所述環形緩衝器之當前寫位址。
- 如申請專利範圍第4項所述之視訊處理系統,其中,當所述寫指針落後於所述讀指針所述閾值時,所述寫控制器停止將所述視訊位元流的資料寫入到所述環形緩衝器內,其中,所述閾值等於所述寫指針的單元遞增量。
- 如申請專利範圍第4項所述之視訊處理系統,其中,直到所述視訊解碼器更新所述讀指針為新的值,所述寫控制器才恢復將所述視訊位元流的資料寫入到所述環形緩衝器內。
- 一種視訊處理系統,包括:儲存設備,包括:顯示緩衝器,其中所述顯示緩衝器為環形緩衝器;視訊解碼器,用於對從第二環形緩衝器中讀出的視訊位元流的資料執行視訊解碼操作,以將重構視訊幀的像素資料寫入所述環形緩衝器內;以及顯示引擎,用於從所述環形緩衝器中獲取所述重構視訊幀的像素資料,並根據所述獲取的所述重構視訊幀的所述像素資料驅動顯示設備。
- 如申請專利範圍第7項所述之視訊處理系統,其中,所述視訊解碼器包括第一計數器,所述第一計數器用於維護表示所述視訊解碼器所重構的像素綫的數量的第一計數值;所述顯示引擎包括第二計數器,所述第二計數器用於維護表示通過所示顯示引擎顯示在所述顯示設備上的像素綫的數量的第二計數值;其中所述視訊處理器系統還包括:顯示控制電路,用於接收來自所述視訊解碼器的所述第一計數值,接收來自所述顯示引擎的所述第二計數值,並參考所述第一計數值和所述第二計數值以控制所述顯示引擎。
- 如申請專利範圍第8項所述之視訊處理系統,其中,所述顯示控制電路進一步用於比較所述第一計數值與所述第二計數值,並且在所述第一計數值與所述第二計數值之間之差達到閾值時,指示所述視訊解碼器停止將所述重構視訊幀的像素資料寫入到所述環形緩衝器內。
- 如申請專利範圍第9項所述之視訊處理系統,其中,直到所述第二計數值更新為新的值,所述顯示控制電路才指示所述視訊解碼器恢復將所述重構視訊幀的像素資料寫入到所述環形緩衝器內。
- 一種視訊處理系統,包括:儲存設備,包括:資料緩衝器,其中所述資料緩衝器為環形緩衝器;接收電路,用於接收資料包,並解壓所述資料包以將所述資料包的有效載荷資料寫入到所述環形緩衝器內;音訊/視訊解多工電路,用於從所述環形緩衝器中獲取輸入資料,並對獲取的所述輸入資料執行音訊/視訊解多工操作,其中獲取的所述輸入資料包括至少一個所述資料包的有效載荷資料;以及視訊解碼器,用於對視訊位元流的資料執行視訊解碼操作,以將重構視訊幀的像素資料寫入第二環形緩衝器內。
- 如申請專利範圍第11項所述之視訊處理系統,其中,所述接收電路進一步用於更新寫指針至所述音訊/視訊解多工電路,其中所述寫指針表示所述音訊/視訊解多工電路將有效載荷資料寫入到所述環形緩衝器之當前寫位址;其中所述音訊/視訊解多工電路包括:讀控制器,用於比較所述寫指針與讀指針,並在所述讀指針追上所述寫指針時停止從所述環形緩衝器中獲取有效載荷資料,其中所述讀指針表示所述音訊/視訊解多工電路從所述環形緩衝器中獲取有效載荷資料之當前讀位址。
- 如申請專利範圍第12項所述之視訊處理系統,其中,直到所述接收電路更新所述寫指針為新的值,所述讀控制器才恢復從所述環形緩衝器中獲取有效載荷資料。
- 如申請專利範圍第11項所述之視訊處理系統,其中,所述音訊/視訊解多工電路進一步用於更新讀指針至所述接收電路,其中所述讀指針表示所述音訊/視訊解多工電路從所述環形緩衝器中獲取有效載荷資料之當前讀位址;其中所述接收電路包括:寫控制器,用於比較所述讀指針與寫指針,並在所述寫指針與所述讀指針之間之差達到閾值時,停止將有效載荷資料寫入到所述環形緩衝器,其中所述寫指針表示所述接收電路將有效載荷資料寫入到所述環形緩衝器之當前寫位址。
- 如申請專利範圍第14項所述之視訊處理系統,其中,當所述寫指針落後於所述讀指針所述閾值時,所述寫控制器停止將有效載荷資料寫入到所述環形緩衝器內,其中,所述閾值等於所述寫指針的單元遞增量。
- 如申請專利範圍第14項所述之視訊處理系統,其中,直到所述音訊/視訊解多工電路更新所述讀指針為新的值,所述寫控制器才恢復將有效載荷資料寫入到所述環形緩衝器內。
- 如申請專利範圍第11項所述之視訊處理系統,其中,所述接收電路接收通過無綫通信鏈結傳輸的所述資料包。
- 如申請專利範圍第17項所述之視訊處理系統,其中,所述接收電路為無線上網接收器。
- 如申請專利範圍第11項所述之視訊處理系統,其中,所述接收電路接收通過有綫通信鏈結傳輸的所述資料包。
- 如申請專利範圍第19項所述之視訊處理系統,其特徵在於,所述接收電路為通用串列匯流排接收器或者高解析度多媒體接口接收器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662361091P | 2016-07-12 | 2016-07-12 | |
US62/361,091 | 2016-07-12 | ||
US15/646,095 US20180018999A1 (en) | 2016-07-12 | 2017-07-11 | Video processing system using ring buffer and racing-mode ring buffer access control scheme |
US15/646,095 | 2017-07-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201813406A TW201813406A (zh) | 2018-04-01 |
TWI666930B true TWI666930B (zh) | 2019-07-21 |
Family
ID=60940727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106123206A TWI666930B (zh) | 2016-07-12 | 2017-07-11 | 一種使用環形緩衝器和競賽模式環形緩衝器訪問控制方案的視訊處理系統 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20180018999A1 (zh) |
CN (1) | CN109246475B (zh) |
TW (1) | TWI666930B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3783498A1 (en) * | 2019-08-22 | 2021-02-24 | Ams Ag | Signal processor, processor system and method for transferring data |
CN112286657A (zh) * | 2020-10-23 | 2021-01-29 | 海光信息技术股份有限公司 | 电子设备和中断处理方法 |
JP2023019077A (ja) * | 2021-07-28 | 2023-02-09 | 日立Astemo株式会社 | 車載処理装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200301062A (en) * | 2001-11-30 | 2003-06-16 | Matsushita Electric Ind Co Ltd | A method of mpeg-2 video variable length decoding in software |
CN102625193A (zh) * | 2011-01-27 | 2012-08-01 | 郑州威科姆科技股份有限公司 | 一种借助辅助文件实现多媒体文件网络播放的方法 |
TW201308986A (zh) * | 2011-03-31 | 2013-02-16 | Intersil Inc | 視訊同步 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2156463A1 (en) * | 1994-09-05 | 1996-03-06 | Nobuyuki Aoki | Data reproducing method and data reproducing apparatus |
US6009231A (en) * | 1994-09-05 | 1999-12-28 | Sony Corporation | Reproduction of information using a ring buffer with read and write pointers separated from each other by substantially half of the total ring buffer capacity |
US7403564B2 (en) * | 2001-11-21 | 2008-07-22 | Vixs Systems, Inc. | System and method for multiple channel video transcoding |
US7920630B2 (en) * | 2003-01-21 | 2011-04-05 | Broadcom Corporation | Buffer descriptor data structure for communication link between decode and display processes in MPEG decoders |
KR100539886B1 (ko) * | 2004-09-10 | 2005-12-28 | 삼성전자주식회사 | 디지털 방송 수신 장치 및 그 방법 |
WO2006100625A1 (en) * | 2005-03-21 | 2006-09-28 | Koninklijke Philips Electronics N.V. | Processing a data array with a meandering scanning order using a circular buffer memory |
JP4719167B2 (ja) * | 2007-02-19 | 2011-07-06 | 株式会社東芝 | 半導体メモリ情報蓄積装置とその書き込み不良対策方法 |
JP4889573B2 (ja) * | 2007-06-07 | 2012-03-07 | ヤマハ株式会社 | 画像処理装置 |
CN101404741B (zh) * | 2008-11-06 | 2011-04-06 | 北京创毅视讯科技有限公司 | 一种音频播放装置、方法及一种数字电视芯片 |
JP2010160653A (ja) * | 2009-01-07 | 2010-07-22 | Renesas Electronics Corp | リングバッファ回路及びその制御回路 |
CN102110461B (zh) * | 2009-12-24 | 2014-07-16 | 晨星软件研发(深圳)有限公司 | 存储器控制器及其控制方法 |
US8493992B2 (en) * | 2010-02-04 | 2013-07-23 | Texas Instruments Incorporated | Interrelated WiFi and USB protocols and other application framework processes, circuits and systems |
US9497466B2 (en) * | 2011-01-17 | 2016-11-15 | Mediatek Inc. | Buffering apparatus for buffering multi-partition video/image bitstream and related method thereof |
US8990435B2 (en) * | 2011-01-17 | 2015-03-24 | Mediatek Inc. | Method and apparatus for accessing data of multi-tile encoded picture stored in buffering apparatus |
JP5769868B2 (ja) * | 2012-02-29 | 2015-08-26 | 三菱電機株式会社 | データ転送装置、データ転送方法及びデータ転送プログラム |
US9753733B2 (en) * | 2012-06-15 | 2017-09-05 | Apple Inc. | Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer |
CN103034538B (zh) * | 2012-12-24 | 2015-06-17 | 珠海拓普智能电气股份有限公司 | 一种嵌入式操作系统中驱动程序的多级缓存处理方法 |
US20150206596A1 (en) * | 2014-01-21 | 2015-07-23 | Nvidia Corporation | Managing a ring buffer shared by multiple processing engines |
JP6732534B2 (ja) * | 2015-05-29 | 2020-07-29 | キヤノン株式会社 | データ処理装置、データ処理方法 |
-
2017
- 2017-07-11 US US15/646,095 patent/US20180018999A1/en not_active Abandoned
- 2017-07-11 TW TW106123206A patent/TWI666930B/zh active
-
2018
- 2018-01-23 CN CN201810062729.XA patent/CN109246475B/zh active Active
-
2020
- 2020-01-05 US US16/734,384 patent/US10984832B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200301062A (en) * | 2001-11-30 | 2003-06-16 | Matsushita Electric Ind Co Ltd | A method of mpeg-2 video variable length decoding in software |
CN102625193A (zh) * | 2011-01-27 | 2012-08-01 | 郑州威科姆科技股份有限公司 | 一种借助辅助文件实现多媒体文件网络播放的方法 |
TW201308986A (zh) * | 2011-03-31 | 2013-02-16 | Intersil Inc | 視訊同步 |
Also Published As
Publication number | Publication date |
---|---|
CN109246475A (zh) | 2019-01-18 |
TW201813406A (zh) | 2018-04-01 |
US20180018999A1 (en) | 2018-01-18 |
US10984832B2 (en) | 2021-04-20 |
US20200143836A1 (en) | 2020-05-07 |
CN109246475B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI666930B (zh) | 一種使用環形緩衝器和競賽模式環形緩衝器訪問控制方案的視訊處理系統 | |
CN109218822B (zh) | 一种视频处理系统 | |
JP7336459B2 (ja) | 符号化されたビデオビットストリームの低遅延消費 | |
US9509940B2 (en) | Image output device, image output method, and recording medium | |
US20130148740A1 (en) | Method and apparatus for processing partial video frame data | |
CN107077313B (zh) | 用于非媒体内容的远程显示的改进延迟和效率 | |
US7609768B2 (en) | Video buffer control apparatus for dual video decoding and digital broadcasting receiver thereof | |
KR102619668B1 (ko) | 슬라이스 업데이트 맵을 이용하는 장치 및 방법 | |
US9654725B2 (en) | Video processing method, video displaying method and video processing device | |
TWI492632B (zh) | 於一視訊顯示系統中執行視訊顯示控制之方法,及相關視訊處理電路與視訊顯示系統 | |
CN115103208A (zh) | 一种视频数据的行缓存方法、行读取方法及处理系统 | |
US20170223349A1 (en) | Video transmitting system with on-the-fly encoding and on-the-fly delivering and associated video receiving system | |
US20070183510A1 (en) | Method and apparatus for decoding video that alternately store lines of picture in pixel units and method of storing reference picture | |
JP2011034370A (ja) | メモリコントローラ | |
WO2022127913A1 (zh) | 游程解码电路、控制方法、电子装置及可读存储介质 | |
CN111757034A (zh) | 一种基于fpga的视频同步显示方法、装置和存储介质 | |
CN111726626B (zh) | 集成电路及用于视频解码的概率表存储方法 | |
CN103124348A (zh) | 一种在无线视频/音频数据传输中使用的预测丢帧方法 | |
TWI512675B (zh) | 影像處理裝置與方法 | |
CN108024033B (zh) | 一种基于arinc818协议的视频图像发送电路 | |
CN109218725B (zh) | 一种视频编码器、视频解码器及视频处理系统 | |
US10025550B2 (en) | Fast keyboard for screen mirroring | |
US8514944B2 (en) | Reducing motion compensation memory bandwidth through memory utilization | |
JP6723613B2 (ja) | 画像処理システム、遊技機 | |
US20030121038A1 (en) | Caching system and method supporting improved trick mode performance in video decoding systems |