TWI310137B - Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions - Google Patents

Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions Download PDF

Info

Publication number
TWI310137B
TWI310137B TW092109146A TW92109146A TWI310137B TW I310137 B TWI310137 B TW I310137B TW 092109146 A TW092109146 A TW 092109146A TW 92109146 A TW92109146 A TW 92109146A TW I310137 B TWI310137 B TW I310137B
Authority
TW
Taiwan
Prior art keywords
byte
data
start code
mode
bytes
Prior art date
Application number
TW092109146A
Other languages
English (en)
Other versions
TW200404229A (en
Inventor
J Sullivan Cary
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of TW200404229A publication Critical patent/TW200404229A/zh
Application granted granted Critical
Publication of TWI310137B publication Critical patent/TWI310137B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0602Systems characterised by the synchronising information used
    • H04J3/0605Special codes used as synchronising signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

1310137 九、發明說明 本申請案源自且主張2002年4月19日申辦之美國 專利申請案第60/3 74,1 92號權利。 【發明所屬之技術領域】 本發明係關於用以防止啟始碼模擬與為進行資料 處理之方法及系統。 【先前技術】 數位資料通常是從一種傳送器傳到另一種接收器。 器通常會包含編碼器,此者可進行資料編碼以供傳輸 接收器,此者通常會含有一解碼器,可將所收資料予 碼。數位資料的種類各有不同,像是視訊資料、音訊賓 音訊/視訊資料、文字資料、電腦可執行程式資料、稽 料、資料庫資訊等。當傳送數位資料時,通常會在某 式的通道内來傳送。相等地,電腦記憶體或任何儲存 或儲存媒體可在本案中被視為是一種傳送通道。 當傳送數位資料時,重要的是要能夠尋得該通道中 料内的特定點。這是為了多項目的,像是為定位出能 行經該通道之資料傳輸作業錯誤或漏失復原作業的點 以能夠在整個串流起點以外之位置開始解碼處理的點 或者是能夠搜尋運用於不同目的之不同種類資料的點 如此,例如在解碼器端,解碼器及其他處理數位資料 件經常是需要瞭解資料内文,以便能夠適當地處理 料。而若能夠按所送出之資料的第一個位元開始且 臨時 填塞 傳送 :及 以解 .料、 案資 種型 裝置 之資 夠進 處、 處, 處。 之元 該資 該解 5 1310137 碼器能夠執行而無錯誤發生,則這就不會那麼重要。在此 情況下,理想上解碼器會根據知悉該資料之格式為何而僅 追蹤被送出的資訊。不幸地,此理想狀況通常不會發生。 會出現錯誤及其他問題,而成為對於設計並使用該傳收數 位資料之系統的人員一項挑戰。在一些情況裡,像是當諧 調進入一正在傳發之廣播資料串流時,解碼器無法在資料 傳輸作業啟始處開始。藉由資料格式剖析處理來定位點處 或亦將要求解碼器内顯著的複雜處理量。 在許多種的通道環境裡,會藉由在資料内提供所謂的再 同步標號來解決這些項目。再同步標號可提供一種機制, 藉此機制一系統可開始其解碼作業或從一錯誤中復原。例 如,當按一序列位元或位元組而串流傳送數位資料時,令 該串流裡具有再同步標號可對一解碼器提供參考點,由此 以當於傳輸作業中出現錯誤時即可進行復原。 一種可採用再同步標號的方式是啟始碼的情境。啟始碼 係一具有一特定數值之位元或位元组字串。一般說來,許 多系統傾向於載荷位元組(即如H.222.0/MPEG-2系統),而 可將啟始碼定義為單一求值的位元組字串。該單一性的位 元組字串提供一呈現模式,而該者可表示出一再同步點 處。再同步點處通常表示某一能夠獨立地解碼之資料量的 起點或邊界。例如,H.262/MPEG-2視訊資料,再同步點 處可標定出一切點的起點(亦即可獨立地解碼的圖像範 圍),一圖像起點、一 G Ο P (亦即「圖像集組」或可 獨立解碼之圖像序列)的起點、或是新視訊序列的起點。 1310137 數位視訊串流亦可包含所謂的辅助性或補充性的資料,這 些可前置以一啟始碼。 有時,啟始碼會不只被用於一像是一視訊串流之資料串 流内,而是可用於一系統的多工層級。H.222.0/MPEG-2系 統規格即為一範例,此系統會運用啟始碼,並且載荷經交 錯以系統層級資訊與音訊資訊的視訊資料串流。
由於啟始碼因可提供一資料串流内之再同步點處而極 為重要,因此避免在實際上並非意欲作為代表啟始碼之處 模擬該資料串流内之啟始碼會是個很好的想法。 例如,考慮下列事項。啟始碼定義一特定位元或位元組 模式,可識別出新資料單元的起點。如某人在這些啟始碼 間送出任意資料,則該任意資料有可能,在其内或甚本身, 含有與用來作為一啟始碼之模式相同的模式。例如,若某 人假定刻正載送的資料完全屬隨機性,如一啟始碼為K位 元長度,則在某特定位元位置處開始偶發地模擬各位元内 之啟始碼的機率會是1 /2k。
在一些情況下,可判斷若一啟始碼的位元數目確屬龐 大,則或極不易出現偶發模擬該啟始碼。在這些情況下, 如啟始碼偶發模擬的後果不太嚴重,則或可判定不必採取 措施以確保防止偶發性的啟始碼模擬。對於一些音訊資料 格式而言即為如此。通常,這些格式並不會利用按每秒位 元述所測度之非常快的位元速率,因此在任何特定的時間 間隔過程中,不太可能會偶發地模擬一啟始碼。對於視訊 資料而言,一般並非如此,因為對於視訊資料傳輸而言, 7 1310137 其位元速率通常會很高。
在過去的主要視訊編碼標準裡(或許除一者以外),資料 酬載内的視訊語法格式既已被設計成避免啟始碼模擬。意 即,如某人知悉是由哪一種資料元素組成該視訊語法,則 此人可審慎地設計語法而不會出現偶發性的啟始碼模擬。 例如,在一傳統視訊編碼標準内的啟始碼會以一 〇位元之 長字串開始,隨後是一個1位元。此長字串可含有2 3個0 位元,而隨後是一個1位元。玆假定大多數的所傳資料是 利用可變長度數碼(通常非正式稱為Huffman數碼)而經 熵(Entropy)編碼。在此為範例目的,將該可變長度數碼 (VLC)定義為可變深度樹狀結構數碼,此者可用以於一 組表示符號之間進行選擇。一種利用二元樹VLC的技術是 為確認該樹狀物内從根點到每一代表一有效符號之葉點 的路徑上,會總是在其某處具有一個「1」,且該樹狀結構 不會過深。
如此,例如假使某人曉得每一可變長度數碼字串不會 長於 10個位元長度,且每個這種字串裡會具有至少一個 「1」值位元,則可知道從該V L C而來的編碼資料序列裡, 絕對不會含有超過1 8個連續性零值位元。意即,最劣情 況會是1000000000,此後跟隨一〇〇〇〇〇〇〇〇01。如此,若 某人仔細地設計該語法,並檢視每一個0及每一個1值位 元的位置以確定在一橫列中會出現多少個 0,則該人可利 用一啟始碼,其中含有較該語法中所能出現之最長者還要 長的0字串。例如,可設計該語法,讓有效語法在一並非 8 1310137 是啟始碼之位置處不會含有2 3個0。如此,每次出現2 3 個0即係一啟始碼,而解碼器應能夠正確地偵測啟始碼。 上述運作看來雖屬直觀,然其運作實相當不易進行, 因為必須按每一種會被傳送之可能順序方式來檢視所有待 予傳送的可能資料(在位元層級處),以確保不會偶發性地 送出一啟始碼模式。這會是艱苦的語法設計方法而易生錯 誤。
這種位元層級檢視設計處理概略描述出以往設計許多 視訊編碼規格的方式(如Η_26 1、MPEG-1、H.262/MPEG-2、 多數的 H.263及MPEG-4)。唯一的例外是ITU-T建議書 Η. 2 6 3的附件E,此者利用一種稱為算術編碼處理的技術, 以從一數學規格按演算法方式產生壓縮位元。在此,在熵 編碼器結束處會有一額外處理,這會檢視所產生的位元, 且在解碼器端,如一橫列中有過多的0位元,則會在遇到 一預定數量的〇之前,插入一「標號」位元(一 1位元)。 在解碼器端,解碼器會計算零值個數,且若遇到零值關鍵 數,則會瞭解既已遇到一真實的啟始碼。如該解碼器觀察 到比起該關鍵數少一個零,則會知道後續的1位元係一被 插入避免啟始碼模擬的標號位元,拋除該位元,然後取出 次一位元視之為後續的真實資料。 這種解法的問題是,這會令編碼器及解碼器需於位元層 級處檢視並處理入方資料。分析待予處理之肓料*且將其 位置位移單一個位元位置會變成非常困難,同時會不利地 增加該解碼器負擔。位元方式的位移處理也是一種處理 9 1310137 器密集的作業。 從而,本發明藉提供防止啟始碼模擬之改良方法及系 統,以針對解決此等相關問題。 【發明内容】
在此說明各種方法及系統,以藉高於位元層級之質粒度 (granularity)處所執行之運作,而供防止啟始碼模擬的解決 方式。可藉由在位元層級以外之層級處執行以強化處理效 率。根據本發明一或更多具體實施例,一啟始碼模擬防止 方法會搜尋與大於單一位元之固定大小的資料局部有關之 資料模式。當尋獲一特定模式時,會將啟始碼模擬防止資 料插入以防止啟始碼模擬。所插入的資料會大於單一位 元,且在一些具體實施例裡,是由位元組所組成。當解碼 器對一經插入有啟始碼模擬防止資料之資料進行解碼時, 可簡易地識別出合法啟始碼,然後移除該啟始碼模擬防止 資料,以提供意欲載送之原始資料。
在各種具體實施例裡,可進行啟始碼模擬防止處理,防 止在像是位元組邊界之資料邊界以外的位置處,出現啟始 碼值的偶發性模擬。可將這些具體實施例運用在有關於並 不總是在所處理之資料内保留該等資料對準邊界的系統。 在一些系統中,所述技術可提供一種基礎,即當遺失資料 邊界時,能夠自此復原回該解碼器系統。 此外,也說明一種資料填塞方法,此法可讓酬載資料在 大小上會被約進到一整數的位元組大小值,然後按照可 10 1310137 由一解碼器簡易偵知的方式,將填塞資料增置其内。 【實施方式】 概要
後文中將說明各種在位元層級以上之質粒度處俾防止 啟始碼模擬的方法及系統。藉在位元層級以上之質粒度處 運作,可提高處理效率。在本案情境裡,在位元層級以上 之質粒度處運作係稱之為一處理方法,此法會搜尋與大於 單一位元之固定大小的資料局部有關之資料模式。例如, 固定大小之資料局部可包含位元組(如8位元)、「字組」(如 1 6位元)、「雙字組」(3 2位元)等。如此,本發明技術可於 其内以及在各位元組、字組等間搜尋模式。 此外,也說明一種資料填塞方法,此法可讓酬載資料在 大小上會被約進到一整數的位元組大小值,然後按照可由 一解碼器簡易偵知的方式,將填塞資料增置其内。
在各種具體實施例裡,可進行啟始碼模擬防止處理,防 止在像是位元組邊界之資料邊界以外的位置處,出現啟始 碼值的偶發性模擬。可將這些具體實施例運用在有關於並 不總是在所處理之資料内保留該等資料對準邊界的系統。 在一些系統中,所述技術可提供一種基礎,即當遺失資料 邊界時,能夠自此復原回該解碼器系統。 此外,後述範例雖係按視訊資料情境所討論,然應知悉 且瞭解本發明技術可與任何通常是經編碼及解碼,並且希 望擁有或必須具備啟始碼模擬防止作業之資料型態關聯 11 1310137 運用。這種資料的範例可如音訊資料、音訊/視訊資料等。
第1圖係一流程圖,描述根據本發明一具體實施例之方 法中的各項步驟。可按任何適當硬體、軟體、韌體或彼等 組合來實作該方法。在所述及說明具體實施例中,該方法 至少是部分地按軟體所實作。此外,讀者應注意到是將本 方法描述為具有兩個不同分支-其一標定為「編碼器」,另 一標定為「解碼器」。該「編碼器」分支說明一編碼器所執 行或相關聯的各項步驟。類似地,該「解碼器」分支說明 一解碼器所執行或相關聯的各項步驟。
步驟1 0 0取得或產生某一數量,而欲供於一啟始碼之後 進行傳輸的資料。該資料可包含任何適當資料。此資料型 態範例可包含,但不限於此,一數量之視訊資料、音訊資 料及/或音訊/視訊資料等等。步驟1 0 1將該資料前置以啟 始碼。此步驟可有效地經啟始碼加置於在該步驟1 0 0處所 獲或所生資料前。步驟1 02檢查或搜尋入方資料以找出一 或更多個固定大小資料局部的模式。在所述及說明具體實 施例裡,所尋找的(各)模式包含至少兩個固定大小資料局 部,且各者資料局部包含至少兩個位元。步驟1 0 4決定是 否尋得一模式。如並未尋得一模式,則本方法分支前進到 可傳送該資料的步驟1 〇 8。 如另一方面,確已尋得一模式,則步驟1 0 6會插入一與 含有該模式之資料相關的啟始碼模擬防止資料。在所述及 說明具體實施例裡,該啟始碼模擬防止資料個別實例包含 一個以上的位元。最好,該啟始碼模擬防止資料包含一 12 1310137
定數量的資料,而以位元數而言,此數量會等於一個別的 固定大小資料局部。如此,一固定大小資料局部包含8個 位元(稱為一位元組之資料量值),該啟始碼模擬防止資料 會包含8個位元。在插入一啟始碼模擬防止資料後,步驟 1 0 8傳送該資料。步驟1 1 0決定在次一啟始碼前是否確有 額外資料待予傳送。如是,則本方法回到步驟 1 〇 2,然後 按如上方式進行處理。如否,本方法會於步驟111決定是 否確有額外資料待予傳送。如是,則本方法分支回到步驟 1 0 0。如否,則本方法可於步驟11 2結束。
另外,考慮如下情況。注意運用此特定技術之一範例係 為將該啟始碼區隔成一「啟始碼字首」及一「啟始碼型態」 字尾,在此該字首係一單一獨具串列之數值,而該字尾是 表示後隨於該啟始碼之資料型態。特別是,這是 MPEG-2 啟始碼的結構。一種涵蓋字首/字尾結構之更一般性運用形 式,就是具有一 4尤多啟始碼模式的廣義概念。然後,也 可具也一 4尤多模擬防止模式。只要各種啟始碼模式互異 於各種模擬防止模式,且在酬載資料處理中會避免所有的 啟始碼模式,本法則就可正常運作。此外,無須必然地假 定各啟始碼模式皆具有相同的長度。 在解碼器端,考慮如下項目。一旦編碼器既已插入該啟 始碼模擬防止資料後,即可在某點處為以適當解譯其他資 料而被識別及移除或忽略。亦考慮當該解碼器接收所傳資 料時,此者會尋找合法的敌始碼。一旦尋獲合法的啟始碼, 此者會曉得由啟始碼定義之資料邊界位於何處。現在, 13 1310137 該解碼器可開始尋找並移除該啟始碼模擬防止資料,以便 進一步處理真實資料。
詳細地說,步驟11 4收到既經處理一編碼器以防止模擬 啟始碼的所傳資料。步驟 1 1 8處理該資料以尋得該啟始 碼。一旦尋獲該啟始碼且經適當處理(即如讀取並拋除)之 後,步驟1 2 0會搜尋資料以識別出啟始碼模擬防止資料。 一旦尋獲該啟始碼模擬防止資料,步驟1 2 2會移除該啟始 碼模擬防止資料。一旦既已移除該啟始碼模擬防止資料, 即可按所收資料型態之典型方式來處理該資料。例如,可 如步驟1 24交由一消費者裝置來運用該資料。 第一示範性方法
現述方法僅說明如第 1圖所繪示之本方法其一特定範 例。在現述方法裡,每當一串N+1位元組的酬載資料相符 於整個啟始碼字首,或者是相符於前N個位元組之啟始碼 字首再加上該模擬防止位元組的數值時,就會插入一位元 組的模擬防止資料。此方法增接附資料的頻率會低於在標 題為「第二示範性方法」乙節中所述方法,從而降低為送 出酬載資料的傳輸容量需求。 MPEG-2啟始碼字首結構開始於經位元組對準之位置, 且具有2 3個0然後為一個1。可將此啟始碼字首直接設定 如下: 00000000 00000000 00000001 14 1310137 可按一種模式來產生此結構,此模式含有一些數量而具 相同數值之位元組N,然後是一具有其他不同數值之位元 組。在Μ P E G - 2裡,可令該N = 2,而前兩個位元組為0 (稱 之為「W」),而最後一個位元組為1 (稱之為「X」)。如 此,該啟始碼字首會具有如下模式:
WWX
在這三個位元組之後,MPEG-2裡會緊隨有另一個位元 組,並可識別出這是哪一種啟始碼。此後續位元組被稱為 「Υ」。基本上該啟始碼包含一啟始碼字首 WWX,然後是 一個可識別出啟始碼型態的位元組Υ。整個MPEG-2啟始 碼可表示如下:
WWXY
該啟始碼字首(WWX)具有固定數值,而 Υ具有數個不 同數值,可表示出啟始碼型態(即如切片、圖像、GOP、序 列、系統等等)。 根據本發明其一具體實施例,該資料會被處理以尋得模 式WWX。當尋獲該模式WWX時,會將啟始碼模擬防止資 料插入以防止進行啟始碼模擬。在此,該啟始碼模擬防止 資料包含一位元組的Ζ,具有一不同於 W及X位元 15 1310137 組之值的數值。如此,假定該編碼器正檢查資料位元組, 且注意到該模式 WWX。回應於在該資料中發現此模式, 該編碼器會插入一具數值Z之位元組,以提供如下模式:
WWZX 在此,該編碼既已確保這個待予傳送且由該解碼器處理 之酬載資料,並不會偶發地模擬一啟始碼或啟始碼字首。 現考慮下列項目。正如酬載資料有機會藉任意地含有WWX 模式來模擬啟始碼字首,該酬載資料也有機會任意地模 擬含有啟始碼模擬防止資料之資料。亦即,酬載資料或 内含地含有WWZX模式。倘屬此情境,且該編碼器不進行 任何動作,則當解碼器試圖移除該啟始碼模擬防止資料 時,就會移除該Z位元組,而在本例中這會是真實資 料。 因此,在各所述具體實施例裡,編碼器係經組態設定 以不僅是防止該酬載資料不致於模擬該啟始碼或該啟始碼 字首,而是該編碼器亦經組態設定以防止不致於因利用啟 始碼模擬防止資料而使得該資料模擬資料模式。詳細地 說,在本例裡,如該編碼器識別出該模式WWZ,此者會 將一具該數值Z之位元組插置於該第二W與該Z間,以 提供下列模式(經插入的位元組 Z是出現如下的第一個 Z): 16 1310137 wwzz 現在,從解碼器的觀點來考慮經處理的資料。如該解碼 器觀察到任何由WWZ然後為一個Z或是X所組成的位元 組模式,則此者知悉第一個Z為被該編碼器所插入的模擬 防止位元組。從而,解碼器可拋除第一個 Z。如此,在本 例中,會有兩種當插入模擬防止位元組的情況。第一種情 形是當該資料會偶發性地模擬一啟始碼或啟始碼字首時。
第二種情形是當該資料會偶發性地模擬一既經插入一模擬 防止1立元組之資料時。 在任一情況下,該編碼器可僅尋找適當模式,拋除模擬 防止位元組,然後如常地處理該資料。
為按更屬程式化的方式來說明上述處理作業,請考慮 下列項目。在編碼器端,為送出一封包P []的B位元組, 此係以一啟始碼字首為始,該者由 N個以上位元組的相 同數值W而最後是一位元組的不同數值X所構成,隨後 則是一單一位元組而具數值γ的識別啟始碼型態字尾, 吾人可操作下述虛擬碼處理,此處理會插入具數值Z之 模擬防止位元組(在此W、X、Y及Z具有互異數值,且P[B-1] 不等於 W),在此待送以填塞該通道之額外資料量標示為 E : int B, N, E, i, j ; byte *P, W, X, Y, Z; for (j = 0; j <N+E; j + + ) /* start code prefix (SCP) */ send—byte ( W ) ; /* jth byte of SCP */ send—byte ( X ) ; /* last byte of SCP */ 17 1310137 send—byte( Υ ); /* start code type suffix */ for (i=j=0; i<B; i++) { if(j >= N ScSc (P[i] == χ I I == z) ) { send—byte( Z ); j = 〇; } send_byte( P[i] ); /* a byte of data payload */ if (P[i] == w) j++; else j = 〇; 操作該 尋獲、 多具相 :°亦假 置入― 並決定 同時移 有互異 在上述的虛擬碼中,「send_byte()」會被假設成 資料單元的傳輸作業(第1圖的處理程序i 〇 8)。 在解碼器端’為接收該封包,會假設該解碼既已 讀取及拋除已知的啟始碼字首,此者含有N個或更 同數值的位元組W及一具不同數值之最後位元組〉 定現希望將未知的單一位元組啟始碼型態字尾讀取 變數Y内,且將酬載資料封包讀入該陣列P门内, 酬載資料量及將該數量指示值置放於變數B内,而 除具數值Z的模擬防止資料(在此w、X、Y及Z具 數值,且P[B-1]不等於w): int B, N, j, next; byte *P, W, X, Y, z; /* assume start code prefix was already read */ Y = receive_byte( ); /* start code type suffix */ for(B=j =0, next = 0; more一data () && !next; B+ + ) { P[B] = receive—byte (); if (j >= N) { if (P [B] == W) j++; else{ j = 〇 ; next = (P [B] x); if(P [B] == Z) B--; 18 1310137 }else if (P [B] == W) j ++; else j = 0; } if(next) /* another start code found */ B -= j+1; 在上述的虛擬碼中,「receive_byte()」函式會被假 操作該資料單元的接收作業,而「more_byte()」函式 假設成是否仍有其他資料單元待予接收(此二者函式 成第1圖的處理程序114)。 上述方法可供於該啟始碼前進行任意數量之W數 填塞作業。也可將數學公式等化成將W數值字首的數 定為N。 第二示範性方法 本後述方法將說明如第 1圖所繪之方法的另一特 例。在此,該方法會在每當該酬載内一串的N位元組 與該啟始碼字首之前N個位元组相符時,即插入一位 模擬防止資料,無論後續酬載資料的數值如何皆同。 前述範例的命名法,如該資料含有「W W」而後接他 模式,本方法即插入一模擬防止位元組。從而,當編 識別出該模式W W時,此者會插入一模擬防止位元組 供下列模式:
WWZ 設成 會被 可組 值的 量固 定範 資料 元組 利用 者的 碼器 以提 19 1310137 第一項說明之方法與在此所述之方法兩者間的差異, 就在於該第一方法會觀察前N+ 1個位元組,以確認應於何 處插入一模擬防止位元組,而本述方法則是會觀察前 N 個位元組。
該第一方法會減少待予傳送之額外資料量,而本述方法 則是運用較簡易之規則而運作。如此,這兩種方法可共集 地提供減少所傳資料量與減少規則複雜度之間的選擇。藉 前述第一方法,資料量會相對於該所述第二方法而為低。 藉前述第二方法,可運用較為簡易的規則。 為按程式化方式來說明上述處理,請考慮下列項目。 在編碼器端,為送出一封包P □的B位元組,此係以一啟 始碼字首為始,該者由正好N個位元組的相同數值W而 最後是一位元組的不同數值X所構成,隨後則是一單一 位元組而具數值Y的識別啟始碼型態字尾,吾人可操作 下述虛擬碼處理,此處理會插入具數值Z之模擬防止位 元組(在此W、X、Y及Z具有互異數值,且P[B-1]不等 於W):
20
1310137 int B, N, i, j; byte *P, W, X, Y, Z; for (j =0; j <N; j + + ) /* start code prefix */ send_byte( W ); /* first byte of start code */ send—byte( X ); /* last byte of start code */ send_byte( Y ); /* start code type suffix */ for(i=j =0; i<B; i + + ) { send一byte ( P [i] ) ; /* a byte of data payload */ if ( P[i] != W ) j=〇; else if ( + +j == N) send—byte ( j = 〇 ; 在上述的虛擬碼中,「send_byte()」會被假設成操作該 資料單元的傳輸作業(第1圖的處理程序1 〇 8)。 在解碼器端,為接收該封包,會假設該解碼既已尋獲、 讀取及拋除已知的啟始碼字首,此者含有正好N個具相同 數值的位元組及一具不同數值之最後位元組X,而現希望 將未知的單一位元組啟始碼型態字尾讀取置入一變數 Y,且將酬載資料封包讀入該陣列 P □内,並決定酬載資 料量及將該數量指示值置放於變數B内,而同時移除具數 值Z的模擬防止資料(在此W、X、Y及Z具有互異數 值,且P[B-1]不等於W):
21 1310137 int B, N, j, k; byte *P, W, X, Y, Z; /* assume start code prefix was already read */ Y = receive_byte ( ); /★ start code type suffix */ for(B=j=0, k=Z; more—data () &:& k ! = X; B++) { P [B] = receive—byte ();
if(p[B] == W) J if (++j == N) { k = receive—byte( ); /* more—data () always */ if(k != Z && k != X) declare—error (); j = 〇; } }else j = 0;
} if(k == X) /* another start code found */ B -= N; 在上述的虛擬碼中’ r receive_byte()」函式會被假設成 操作該為料單元的接收作業,而「more—byte()」函式會被 假設成疋否仍有其他資料單元待予接收(此二者函式可組 成第1圖的處理程序114)。 吾人相k可藉由對前述第二方法約為1/256N,而對前述 第一方法約為1 /25 6(n + U之因數,依上述方法來擴展大量的 理想性隨機輸入酬载資料。若N為大,則這些量值會屬微 小(亦即2以上,注意對於MPEG-2啟始碼,N = 2)。對於酬 載而言,最劣情況的展開因數相信會是對前述第二方法為 1/N,而對前述第—方法約為1/(N+1)。若N增加,在統計 及最劣情況分析裡,該酬載展開因數會減少_然各啟始碼 本身所用的資料量會增加。 應瞭解前述模择防止處理程序並不需仰賴在開始送出 之前先知悉封包内有多少資料而定。如此,不會增加顯著 22 1310137 的延遲。 此第二方法列式方式會假定所插置之模擬防止位元組 會是具數值z的單一位元組。在此,有可能替以利用任何 數值或多個數值或一或更多串的數值以供作為模擬防止資 料,只要所插入之資料的第一位元組不等於w或X即可, 因為若是如此將會模擬一有效啟始碼或看似該字首起點的 連續資料。
在此實可於這些模擬防止位元組内載荷資訊(例如像是 第一 H.263-形式的GOB碼框ID/圖像序列編號,或是僅為 設定該M S B為1而利用其他七個位元送出一 A S C 11字 元)。
如考慮在解碼器端的封包結束處會發生何事,吾人可瞭 解若該資料封包酬載的最後位元組不是W,則會較為容易 控制運作。這意味著在一啟始碼前的最後位元組將永遠不 會需要成為一模擬防止位元組,並且可由該解碼器在該酬 載資料結束處與對次一啟始碼之等於 W的位元組序列起 點間定位出一可偵得邊界。強制為此也可供在酬載結束後 與在次一啟始碼之前填塞入任意數量的 W位元組(例如, 零位元組),而不致失去酬載結束點的蹤跡。 資料填塞作業 正常時,即以視訊資料,被按資料酬載方式送出的資料 或將不會是位元組的整數倍數。例如,某人可令6 2 7位元 為兩個啟始碼之間待予送出的資料。然此系統多工層級 23 1310137 可按位元組方式運作。這可像是MPEG-2規格。其他像是 為能夠偵測一些因傳輸錯誤所生之虛假啟始碼模式,或能 夠進行酬載起點之資料内容的簡易解碼作業處理等原因, 也會是造成希望讓封包會含有像是位元組之資料單元的整 數倍數之需求。如此,某人或必須送出略多一點資料,藉 以載荷該6 2 7個位元的資料。然問題會變成如何填塞以化 為位元組的整數倍數。
還有其他當僅送出額外填塞資料時會很有用的情況。例 如,如一頻道具有1百萬位元/秒之容量,而待傳送的酬載 資料量僅9 0 0千位元/秒,則會需要或希望以填塞資料來填 滿該頻道。 根據本發明一具體實施例,一資料填塞技術可讓額外資 料加置入該頻道内,以大致上填滿該酬載資料。
第2圖係一流程圖,此者描述根據本發明一具體實施 例之方法中的各項步驟,其中該等啟始碼會被假定是以一 串等於零值的位元為開始。步驟200建立意欲傳送之資料 的結束位置。步驟202將一「1」位元插入在該酬載資料 的最後位元之後。步驟2 04決定所需送出之位元組整數倍 數的額外資料數量。步驟2 0 6會在所插入之「1」位元後 插入所需的「0」位元數。步驟2 0 8會加置任何所欲數量 的填塞資料位元組。該填塞資料可由任何經設計以避免會 對真實酬載資料及所意欲之啟始碼各個位置發生混淆的資 料模式所組成。這通常是由插入數值「〇」的位元組所實 作。 24 1310137
即以一例,考慮下列項目。假定現欲送出該6 2 7位元。 在此,步驟2 0 2會將一個「1」位元插入在該第6 2 7位元後。 接著,步驟204決定會再需要四個的位元以提供整數倍數 的位元組-在此為79位元組。從而,步驟206會在經插入 之「1」位元後插入四個「0」位元或0 0 0 0。現在既已建妥 一整數倍數的位元組,步驟2 0 8會視需要增附任何所欲數 量之位元組的填塞資料。在此特例裡,可將具數值「0」的 位元組插入。該填塞資料可用來僅作為填塞資料,或是作 為一些其他目的,像是含有可按某些目的而交由解碼器運 用的資訊。
現在,考慮解碼器端的情況。該解碼器接收該填塞資 料,並可於該資料的結束處開始,且經由該資料而向後觀 察。所有該解碼啟所最初觀察到的位元組會是0位元組, 一直到該者取獲具「1」位元的位元組為止。該「1」位元 會告訴該解碼器酬載或真實資料結束處的位置。如此,一 旦該解碼器尋獲被插入的「1」位元後,此者會決定該真實 資料確於何處結束。 如此,上述技術可適用於「約進」所傳送之位元數,使 得被送出的位元數會含有一位元組的整數倍數。此外,可 利用這些技術而於各個表指出酬載資料起點之啟始碼間填 滿填塞資料。 對於非邊界對準之位置的啟始碼模擬防止作業 上述各具體實施例可在經設計以保留該資料之邊界對 25 1310137 準或位元組對準的系統内良好運作。然而,確實亦有一些 系統並不會總是保持追蹤該資料邊界對準。
例如,在其一這種系統裡,稱為ITU-T H.320,有可能 漏失追蹤相對於該資料串流起點之系統起點内各位元組的 資料,這是因為會按一序列位元而非位元組來傳送資料, 並且會出現未知數量的偶然性資料漏失。如該系統漏失追 蹤位元組對準,且若模擬防止作業僅能防止模擬該位元組 邊界上的起點,則會妨礙到系統從一位元組對準漏失而復 原的能力。例如,假使系統僅防止在位元組邊界上的啟始 碼模擬,則有可能會在位元組邊界以外的位置處進行啟始 碼模擬。亦即,在位元組邊界上對啟始碼模擬防止資料而 進行編碼的系統,或許不會在意出現在位元組邊界以外之 位置的位元位移啟始碼模擬。對於維護或保留位元組邊界 位置的系統來說,這不會是問題。這是因為,由於這些系 統知悉位元組邊界位於何處,彼等可僅需定位該位元組邊 界並尋找真實啟始碼。一旦尋得真實啟始碼後,系統可按 如前述方式復原。在既已漏失位元組邊界的系統裡,無論 其原因為何,這都會是一個問題,因為系統或會利用一在 位元位移位置上進行之模擬啟始碼來嘗試復原。詳細地 說,如漏失該位元組邊界,則系統或會在某相對於各原始 位元組邊界之任意對準位置處,嘗試著尋找到任何相符於 該啟始碼模式之資料。如這種資料並非一真實啟始碼,而 是一在位元位移位置處的模擬啟始碼,則自該位置的復原 作業會嚴重地妨礙到系統進行合法復原的能力。 26 1310137 底下所述具體實施例係為提供防止在並不必然起始於 一資料邊界之位置處,即如位元組邊界,進行啟始碼模擬 的各種方法及系統。從而,這些方法與系統可有利地相關 運用在並不總是保留資料邊界位置處之資料對準的系統。 此外,在該等因某些理由而漏失追蹤該資料邊界之系統 裡,本發明方法及系統可提供一種僅利用合法啟始碼而進 行合法復原的方式。
早期中斷
第一種所加討論的方式是稱為「早期中斷」方式。在 此,該早期中斷方式係針對在有任何出現一啟始碼之經移 位版本的機會前,即行中斷一潛在啟始碼模擬。這是藉 由對於該啟始碼相對於一資料位元組之起點的各個經位移 位置,詳細地分析在啟始碼設計内之各位元的模式所達 成。然後,不以僅當一位元組對準啟始碼出現時插入一特 殊模擬防止位元組,而是本法會插入一模擬防止位元組, 其方式是防止在相對於該資料邊界(在本例中為一位元組 邊界)而位移之位置處,進行該啟始碼模式之非對準模擬 作業。 偵測一真實啟始碼可提供偵測出該資料相對於該資料 邊界或位元組邊界之真實對準的能力。這是因為通常會將 啟始碼設計成總是從一資料或一位元組邊界開始。在偵測 到該資料裡真實啟始碼的位置後,接收器可利用這項各位 元組之起始位置的知悉項目,以進行將該酬載資料區分離 27 1310137 於該啟始碼且離於該啟始碼模擬防止資料之解碼處理。這 是因為該解碼器可被設計成瞭解在該所傳資料内,用來防 止模擬啟始碼模式的方法。 第3圖係一流程圖,描述根據本發明一具體實施例之方 法中的各項步驟。所述方法提供一範例,可如何進行啟始 碼模擬防止以確保不會在位元位移位置模擬各啟始碼。
步驟 300會按位元方式多次地相對於一或更多資料邊 界來位移部分的啟始碼。在一具體實施例裡,該經位元移 位之啟始碼局部包含啟始碼字首。步驟3 0 2識別出在該啟 始碼局部内的一或更多個特徵模式,這些會出現在相對於 至少一資料邊界之每一位元位移數位置處。步驟3 04會利 用在步驟3 02内識別出的(各)特徵模式,作為搜尋模式以 進行啟始碼模擬防止資料插入作業。 在此僅為一說明進行方式之範例,請參照第4圖考慮下 列項目。
考慮該啟始碼字首被建構成具數值Ox 00之N位元組(利 用C語言傳統,「Ox」表示十六進位數值,所以0x00表示 十六進位位元組數值等於零),隨後是一具有數值0x01的 位元組,其中N = 2。例如,在第4圖内出現一示範性啟始 碼字首,並且其起點相符於由實線括號所表示的資料邊 界。如此,該啟始碼字首的一第一位元組由前八個零組成, 第二位元組由次八個零組成等等。在這前八個零之前會是 一表示前置資料之任意未知值的位元組「X」值。現在,當 此啟始碼字首或局部經相對於所述資料邊界而位元方式 28 1310137
位移時(一種位元方式位移可如在第4圖頂部底下所繪), 會出現一特徵模式,這是由虛線括號所表示。藉檢視由該 啟始碼字首相對於該位元組起點之各個位移局部產生的位 元模式,本例中可決定在任何含有此啟始碼之經位移拷貝 的資料序列裡,至少總是會出現N個具有數值0x00之位 元組。如此,經模擬位元位移之啟始碼字首其一特徵模式 就是出現N個具數值0x00的位元組。現可利用此特徵模 式作為搜尋模式,以進行啟始碼模擬防止資料,因為這個 在任何單一對準位置之模式防止作業能夠防止在所有對準 位置處出現啟始碼。
更詳細地說,考慮在標題「第一示範性方法」底下的前 述方法。在此,如含有N個0x00值之位元組而隨後為0x0 1 值或Z的模式之資料,則會插入一模擬防止位元組。從而, 新模式會含有N位元組的值0x00,隨後是一具數值Z之位 元組,隨後是一具數值0x01或Z之位元組(每當遇到兩種 長度為N+1之摸式其中一者時,其輸入資料長度就會擴充 一個位元組)。 根據本案所述之早期中斷方法,所欲者係為防止該啟 始碼字首的所有位移版本或局部,而非僅在一位元組對準 位置之啟始碼字首而已。因此,根據本方法及關聯於此特 定範例,會在任一具0x00之N個位元組序列的最後位元 組之前,插入一個具某數值Z之模擬防止位元組,如此 來防止任一具0x00之N個位元組序列,且防止相對於任 何位元組對準定位的所有啟始碼經位移拷貝。在本例中, 29 1310137
會檢查該模式,並僅會在各位元組對準位置處插入模擬防 止位元組。即以一例,考慮第5圖,其中顯示一 N = 2的序 列,而模擬防止位元組(如八個顯示為「z」之位元所表示) 被插入在該含一位元位移啟始碼字首之序列内的最後位元 組前。雖未於地5圖中明確顯示,然此者假定為便第5圖 說明,最後四個標為「X」值的位元至少其一不會等於零(否 則,該模擬防止處理會既已在緊隨於含有這最後四個標為 「X」值之位元組後的位置處,插置入另一模擬防止位元 組)。 如此,本方法可認知出該啟始碼字首的所有位元位移位 置,並中斷該序列為以防止任何的位元位移啟始碼字首模 擬。可無須要求在該編碼器内進行位元方式處理而達成此 目的,這是因為編碼器會僅在被對準於位元組邊界之各位 置處搜尋特徵模式,且僅按整位元組單元的方式插入模擬 防止資料。
此外,該編碼器也可插入一模擬防止位元組,以避免酬 載資料竟模擬該既經插入模擬防止資料之資料的情況。例 如,假使該編碼器看到N -1個具有數值0 X 0 0的位元組而 隨後為一具有模擬防止資料(即如 Z)之數值的位元組,則 該編碼器會插入一模擬防止位元組。 或另者,如該資料酬載含有一 N -1個等於0x00資料位 元組之序列,然後是一等於Z之位元組,且亦隨之以一 等於 0 X 0 0的位元組,則編碼器會僅為此目的插入一位元 組。這可減少插入模擬防止資料的數量,然這會要求在編 30 1310137 碼器及解碼器内進行可變長度的序列處理。 如此,可對如前述之特定啟始碼字首值,按如下表總結 出一種對於此特例的早期中斷方法:
待予替換之模式 替換模式 N位元組= 0x00 N -1位元組=0 X 0 0, 位元組=Z,位元組=0 X 0 0 N-1位元組=0x00, 位元組=z N -1位元組=0 X 0 0, 位兀組=Z,位兀組=Z 第一早期中斷方法
現請考慮從解碼器觀點的情況。在解碼器處,每當解碼 器觀察到N個具0x00數值之位元組時,解碼器會知道這 一定是真實啟始碼字首,因為編碼器既已在各處,包括位 元位移位置,防止發生並非是一啟始碼的情況。該解碼器 可執行此啟始碼偵測作業,而無需用到位元方法處理,因 為當從任何相對於位元組邊界之對準位置開始時,可發現 到供以偵測真實啟始碼的特徵模式。一旦解碼器知悉真實 啟始碼位於何處後,此者會知道該位元組對準。這是因為 該真實啟始碼是從該位元組對準位置開始。如此,在此特 定範例裡,該解碼器知道下一個並非Ox 0 0的位元組裡會含 有啟始碼字首的結束處。然後,該解碼器可尋找結束該啟 始碼字首(在本例中為「1」位元)之位元的模式,接著此者 即可尋找真實的酬載資料。 另外考慮一旦解碼器藉由定為該啟始碼字首而知悉該 31 1310137 位元組對準後,此者可簡易地定位出被插入的模擬防止 料。這是因該模擬防止資料是在各位元組對準位置處所 入之事實而獲得。由於解碼器知道該位元組對準,此者 在各位元組對準處尋找模擬防止資料模式。亦即,此者 在如前表所述之各位元組對準處尋找替換模式。然後可 除該模擬防止資料並繼續進行在其解碼處理程序。 上述方法會有利,原因在於雖然執行模擬防止處理之 碼器可在所有的位元位移位置處防止模擬,不過這確會 位元層級處藉由檢視該資料序列而進行,並僅於位元組 級處操控該資料,如此降低在本處理方法中執行位元方 運算的複雜度。對於解碼器亦然,該者可偵測是否出現 實啟始碼,以及藉由在位元組上所執行的運算,然後這 復原位元組對準,並藉由在位元組上所執行的運算來移 該模擬防止資料。 互較並比對此第一早期中斷方法與按該「第一示範性 法」乙節中所述之方法,考慮下列項目。該第一早期中 方法之一缺點是,由於這會尋找一較短模式(即如 N位 組而非N + 1位元組),因此這會較頻繁地插入資料。然而 確也另有解決方法。詳細地說,N的數值可提高。亦即 不以利用3位元組啟始碼字首,而可利用4位元組啟始 字首。不過,這會增加另一種需被插入該系統内之資料 數量。亦即,每當編碼器插入一啟始碼時,這就會插 一較長的啟始碼,而即以提高增附資料量來說,確會 佔較高成本。不過,此早期中斷方法其一優點是能夠讓 資 插 可 會 移 編 在 層 式 真 可 除 方 斷 元 瑪 的 入 耗 解 32 1310137 碼器復原位元組對準。 一早期中斷方法第二具體實施例可為執行搜尋一模式 相符結果,以及對於一替代性模式之模式替換作業,而此 替代性模式與在第一所述設計裡所替換之多重模式係屬共 通。此替代性具體實施例之範例可如下表所示.: 待予替換之模式 替換模式 N-1位元組=0x00 N -1位元組=0 X 0 0, 位元組=z 第二早期中斷方法
在此第二早期中斷方法裡,單一搜尋模式(N-1位元組 等於 0x0 0)即足以防止對所有位移位置之啟始碼模擬,這 是因為此模式係共通於如說明該第一早期中斷方法之列表 内兩橫列的所示模式。
現將從解碼器觀點來考慮此第二情況,不會改變一真實 啟始碼字首的偵測作業,這會包含如在第一早期中斷方法 内的辨識出現N個具0 X 0 0數值之位元組。此外,即如在 該第一早期中斷方法,一旦解碼器知悉該真實啟始碼位於 何處後,此者會知悉該位元組對準,這是因為該真實啟始 碼開始於一位元組對準位置,並且接著可簡易地定位出先 前藉尋找該替換模式而所插置之模擬防止資料,然後移除 該模擬防止資料並繼續進行其解碼作業。 相較於第一早期中斷方法,此第二早期中斷方法可藉該 模式搜尋處理,而減少進行辨識時所必要的模式數。因 33 1310137 此,可降低該搜尋處理的複雜度,而仍能因運用對一較短 模式的相符結果,而提高所插入之模擬防止資料的品質。 依該第一早期中斷方法,可藉由提高N值來減少增附 模擬防止資料數量,不過這會增加真實啟始碼資料的數 量。
一項重要的觀察結果,就是該第二早期中斷方法在建 構上會類似於「第二示範性方法」乙節中所述之方法,原 因在於這會利用一種對單一短型模式,而非對多個較長模 式,之模式相符結果,(相對於該「第一示範性方法」以 及該第一早期中斷方法,各者係運用多個模式)。特別是, 檢視這些方法顯示出為在相對於各位元组邊界之對準的任 意位移位置處,防止模擬長度為N+ 1之啟始碼字首的第 二早期中斷方法編碼模式搜尋及替換處理,會正好與為在 經對準於位元組邊界的位置處,防止模擬長度為 N之啟 始碼字首的「第二示範性方法」編碼模式搜尋及替換處理 相同。
利用多重長度啟始碼進行模擬防止 上述各早期中斷方法可提供一種能夠在當發生漏失位 元組對準之問題時的解法,這會關聯於在任何其開始位置 不重合於一資料邊界之位元位移位置處防止啟始碼模擬。 然而,該等進行方式是以相較於對僅防止出現在各對準位 置處之啟始碼模擬所必要者,更頻繁地增加模擬防止資料 作為代價。在底下說明的具體實施例裡,提供一種方法, 34 1310137 可按類似於早期中斷方法的方式具有對準復原能力,且可 降低插入模擬防止資料及啟始碼資料的總量。在討論該特 定解法前,先考慮下列項目。
現有多種會連同啟始碼送出的資料型態。例如,以視訊 資料,常見對各GOP、各圖像以及在各圖像之個別可解碼 範圍内(即如一切片啟始碼)送出一啟始碼。此外,現有多 種的圖像型態,像是I -、P -及B -圖像。如此,在任何特定 系統裡,會有許多不同型態的啟始碼。有些啟始碼比起它 者會更為頻繁地出現。例如,切片上的啟始碼會比起GOP 或序列上的啟始碼更為頻繁地出現。
給定如此,當設計一系統時,會希望令出現較為頻繁之 啟始碼短於出現較不頻繁的啟始碼。根據如下所述之各具 體實施例,會在兩種以上不同長度之啟始碼字首間加以區 別。對於具較長長度之啟始碼字首,會防止在酬載内容内 的位元位移模擬。這可藉由採用具較長長度之啟始碼字首 的早期中斷方法而達成。對於具較短長度之啟始碼字首, 只需防止這種啟始碼的位元組對準模擬。在這種系統裡, 如果比起較短的啟始碼,顯著地較少傳送出較長的啟始 碼,而使得平均啟始碼長度接近於該較短啟始碼長度,則 可進一步提高效率。 藉此解法,當資料被運用在並不保留位元組對準的環境 内時,可藉於該資料内搜尋該較長啟始碼來復原位元組對 準。一旦定位出該較長啟始碼並且復原位元組對準後,也 可僅藉位元組方式的搜尋作業,找到緊隨其後的較短啟 35 1310137 始碼位置。 即已一例說明如何實作此項,考慮下列項目。在本例 中,該較長啟始碼字首的長度會被標示為NL+ 1,而該較短 啟始碼字首的長度會被標示為Ns + 1。 依本例所用之啟始碼字首的特定結構,即使是在並不保 留位元組對準的系統裡,可利用一種位元組方式的 個
具0x00值之位元組搜尋作業,而在資料串流内偵測到該較 長位元位移啟始碼。這些特定啟始碼值可提供簡易的位元 組方式偵測功能。 詳細地說,一較佳範例方法係為設定NL = NS + 1。然後可 按如下表總結一種模擬防止處理: 待予替換之模式 替換模式 N s位元組=〇 X 〇 〇, N s位元組=0 X 0 0, 位元組=0 X 0 1 位元組=Ζ,位元組=0 X 0 1 N s位元組=〇 X 〇 〇, N s位元組二0 X 0 0, 位元組=0 X 0 0 位元組=Ζ,位元組=0 X 0 0 Ns位元組二Οχ00, N s位元組=0 X 0 0, 位元組=Ζ 2個位元組=Ζ 利用多重長度啟始碼之第一模擬防止處理 在上表中,該第一橫列描述一待予替換之第一模式,及 一防止在位元組對準位置處進行較短啟始碼模擬之替換模 式。第二橫列描述一第二模式,及一防止在位元組對準位 置與非位元組對準位置兩者處進行較長啟始碼模擬之替換 模式。而第三橫列描述一第三模式,及一位元組的替換 36 1310137 模式,這可供區別由該模擬防止處理所插置之 z值位元 組,與其他自然正巧在資料酬載内跟隨Ns個0x00值位元 組之後的Z值位元組。注意這仍可讓編碼器就在任何啟始 碼前插入任何數量的零值位元組,而不致傷害到解碼器識 別出資料酬載終點之位置或次一啟始碼之位置的能力。事 實上,如果編碼器選擇在一些較短啟始碼之前插入某數量 的零值位元組,則任何這種零值插入方式皆可增獲較快的 位元組對準復原能力。
或另者,可修飾前述處理裡的第三橫列,使得只有在 Ns個數值0x00之輸入資料位元組後隨一 Z值位元組,而 同時也後隨一數值0x00之位元組輸入資料的情形下,才 會插入額外的Z值位元組。這可減少插入模擬防止資料 的數量,然這會要求在編碼器及解碼器内的可變長度序列 處理。 此第一方法可將所需以模擬防止的資料量,從會需要以 防止較短啟始碼數值非對準模擬,減少到可降約1 7 1之因
數的數量(減少模擬防止處理資料擴大因數,從約減少 256Ns 第6圖為係一流程圖,說明根據一利用模擬防止資料 之具體實施例的方法步驟,此模擬防止資料與可含有不同 長度之啟始碼或啟始碼字首的資料相關聯。可按各種適當 硬體、軟體、韌體或彼等組合等方式實作該方法。在本述 具體實施例中,該方法係藉經適當組態設定之編碼器所實 作。 37 1310137
步驟6 Ο 0搜尋相關於具不同長度之啟始碼的模式。可運 用任何適當數量的不同長度。在上述範例中’會利用具有 兩個個別長度的啟始碼。回應於尋得一第一模式型態,步 驟6 0 2會插入模擬防止資料,以防止模擬具第一長度的啟 始碼。在此,該第一模式型態可為相關於該較短啟始碼者, 且可按照出現於上表内第一橫列之「待予替換之模式」縱 行内的模式作為範例。此外,可按照出現在上表内第一橫 列之「替換模式」縱行内的模式,作為對此特定模式及對 此特定範例之相對應模擬防止資料的範例。 回應於尋得一第二模式型態,步驟6 0 4會插入模擬防止 資料,以防止模擬具第二長度的啟始碼。在此,該第二模 式型態可為相關於該較長啟始碼者,且可按照出現於上表 内第二橫列之「待予替換之模式」縱行内的模式作為範例。 此外,可按照出現在上表内第二橫列之「替換模式」縱行 内的模式,作為對此特定模式及對此特定範例之相對應模 擬防止資料的範例。
此方法也適於提供一種區別模擬防止處理所插入之數 值Ζ的位元組,與其他正巧在資料酬載内跟隨在N s個位 元組之數值0 X 0 0後的數值Ζ位元組之方式,雖然該流程 圖並未明確地說明此點。 現考慮在解碼器端會出現何事。在解碼器端,如漏失了 位元組對準,可由解碼器尋找一長啟始碼字首來進行復 原。注意由於在編碼器處進行的模擬防止處理,故可在所 有位元位移位置處防止模擬長啟始碼字首。如此,一旦解 38 1310137 碼器尋獲一對應於一真實長啟始碼字首的模式,這就會已 經定位出該真實啟始碼。藉定位該真實的長啟始碼,可瞭 解既已復原該位元組對準。亦即,由於該真實的長啟始碼 出現在位元組對準位置處,尋得一長啟始碼可重建位元組 對準。一但該解碼器復原該位元組對準,這就可僅在適當 的位元組對準位置處尋找較短啟始碼。關聯於本處理,該 解碼器可按如前述方式移除模擬防止資料。
上述處理會有利,原因是可提供一種當遺失位元組對準 時能夠復原位元組對準的機制。此外,藉由採用不同長度 的啟始碼或啟始碼字首這項事實,所述方法可避免因額外 資訊而造成資料串流的負擔,原因是比起較不常用的啟始 碼字首,最頻繁使用的啟始碼字首會被令為較短。
即如上述第二早期中斷方法的情況,也有可能藉縮短模 式長度,來減少編碼器及解碼器所需要搜尋的模式數量。 在此情況下,待予測試以防止模擬具不同長度之啟始碼的 模式會為相同,這可供合併相同的處理步驟。例如,若(各) 用以於步驟6 02内偵測該第一模式型態的模式以及(各)用 以於步驟604内偵測該第二模式型態的模式會為相同者, 則可合併步驟6 0 2及6 0 4。一種利用說明此多重長度啟始 碼功能以合併各步驟的第二模擬防止處理可如下表所 示。該處理對應於以防止長度為NL+1 (而長度為Ns + 2)之 第二早期中斷方法的非對準啟始碼模擬,並且亦對應於 以防止長度為N s + 1之位元組對準啟始碼模擬的第二示範 性方法。如此,單一模式的搜尋及替換可足以防止兩種的 39 1310137 啟始碼模擬。 待予替換之模式 替換模式 N s位元組=〇 X 〇 〇 Ns位元組= 〇x〇〇, 位元組=z 利用多重長度啟始碼之第二模擬防止處理
此利用多重長度啟始碼之第二模擬防止處理可簡化模 式搜尋及替換處理,因為這可減少所需以偵測及替換的模 式數量。然而,被插入的模擬防止資料量會增加,這是因 為運用對較短模式的相符結果之故。相對於上述利用多重 長度啟始碼之第一模擬防止處理而言,被插入的模擬防止 資料量會增加約一 16/3 = 5.33倍之因數(增加該模擬防止處 理資料會令因數從約擴大到約^7)。 改善結果
會有一些關於令偵測特定模式如何變得簡易以及何者 可被用來強化處理效率性的改善結果。對於底下給定之範 例目的,啟始碼字首會被假定為含有某數量具數值W = 0x00 的位元組,其後是一具X = 0 X 0 1數值的位元組。然而,應 瞭解下述原理可關聯運用在其他具有與這些範例裡所給定 之數值不同的啟始碼字首。 第一項改善結果如下。利用如前所設之註記(即如 w、 X及Z),可將Z及X,或是Z及W,選定為僅於單一位元 互異的數值。為說明具Z及X互異僅單一位元之適用 40 1310137 性,考慮由資料接收器所執行的處理。當一解碼器搜尋該 資料串流以偵知啟始碼並移除模擬防止資料時,在偵得N 個以上數值Ox00的位元組後,此可執行一項該輸入資料的 次一位元組是否等於Z或X的測試。如Z及X具一個以上 位元之數值的互異處,則利用虛擬C程式設計架構以利於 處理要求,該測試可按如下方式執行: if(in—byte != Z && in_byte != X) { etc . }else{ etc . } 然而,如Z及X僅具一個位元之數值的互異處,則利 用虛擬C程式設計架構,並假設X為0x01而Z為0x81, 則該測試可按如下方式執行: if ((in—byte Sc 0x7F) == 0x01) { etc . }else{ etc . } 此第二改善結果認知到前述的一些模擬防止處理裡,會 區別出三種模式。如某人意欲這些模式彼此間會按最小位 元數而互異,則會需要兩個位元以區別這三種模式。不 過,兩個位元即足以識別四個物項或模式。在此,會僅有 三個模式需要互相區別,且如此這可為有利,這是因為會 有該系統目前未運用於一般資料的第四個模式。現在,如 41 1310137
解碼器經組態設定以令該模擬防止資料等於一 2或 3的 值,則這意味著該系統可僅藉觀察各模式裡的兩個最低有 效位元,而於上述三種模式間加以區別。例如,若W等於 0x00,X等於0 X 01而Z等於0 X 0 2,則假使兩個最低有效 位元為0,則這會是初始位元組數值W的重複項;如兩個 最低有效位元為1,則這會是最終位元組數值X ;如兩個 最低有效位元為 2,則這會是模擬防止資料Z。另外一個 值,即數值3,可視為是除一般資料以外的特殊值。如此, 在編碼器端,不以尋找三種模式,而是可尋找四種模式, 並且可簡易地找到,這是因為它們除兩個最低有效位元以 外,其他完全相同。這可增快速度,並簡化在編碼器及解 碼器處的處理作業。
如此,不以模擬防止處理來替換三個序列的數值,而是 該系統可替換四個序列的數值。可僅藉兩個位元的值來互 相區別這四個序列。換言之,為偵測輸入資料是否具有這 些特另數值其一者(目前作支定W = 0x00、X = 0x01而Z = 0x81) 的解碼器或編碼處理可僅如下: if ((in—byte & 0x7E) { etc . }else{ etc . 可將第四個特別位元組數值(本例中為 0 X 8 0)用於各種 目的,像是其他型態的啟始碼或可由系統令之留以未用。 而第三個改善結果,可請考慮下列項目。在此,能夠 42 1310137 於資料酬載終點後以具數值W之位元組來舖平空間,而無 須於各舖平數值間插入模擬防止位元組,因為在W序列之 後待將抵達的次一值為X,這是表示一真實啟始碼字首。 這可讓因某些理由而依任何整數倍數之「填塞」位元組填 滿傳輸頻道,像是對準於特殊邊界(即如32位元DWORD 邊界或固定長度封包邊界),或者是當並未需要傳送資訊時 而僅填滿一固定位元速率頻道。
舖平處理的另一項好點是如啟始碼數值經選定以能夠 進行之,則可讓編碼器舖平,俾於漏失位元組對準的情況 下提供再同步到位元組邊界。如此,編碼器可決斷要多頻 繁送出一或更多額外的舖平位元組,讓解碼器能夠進行位 元組對準復原。有些編碼器可藉在每個啟始碼之前增置額 外的舖平資料而經常進行位元組對準復原,其他的則是可 選擇較不頻繁。 在W = 0x00且X = 0x01情況下,有些特別值得注意的Z 數值為 Z=0x80、 0x02、 0x81 及 0x03。
一格式規格可標定待增加以進行位元組對準復原之額 外舖平位元組的最低頻率,或是可將額外的舖平處理相關 於資料串流内的特定型態啟始碼(像是舖平在壓縮視訊串 流内各圖像的起點,但不要求在像是Μ P E G - 2或Η . 2 6 3視 訊裡稱為切片或GOB啟始碼之較低層級啟始碼前舖平)。 示範性計算環境 第7圖說明·-適當的計算環境7 00,其上可實作如後述 43 1310137 之系統及相關方法。 應瞭解該計算環境7 0 0僅係一適當計算環境的範个 非意指對如前所述之編碼/解碼系統運用範圍或功能 任何限制。而且該計算環境7 0 0亦不應被解讀為具有 示範性計算環境7 0 0所述之各元件任者或彼等組合相 任何相關性或必備條件。 各種所述具體實施例可為運作於其他各種一般目 特殊目的之計算系統環境或組態。適合運用於媒體處 統之眾知計算系統、環境及/或組態的範例包括,但 於,個人電腦 '伺服器電腦、精簡型客户端裝置、複 客戶端裝置、手攜式或膝上型裝置、多處理器系統、 理器基礎式系統、機頂盒、可程式化消費性電子裝置 路PC、迷你電腦、大型主機電腦,以及包含前述各系 裝置任者之分散式計算環境等等。 在一些實作裡,可依照由一電腦所執行之如程式模 電腦可執行指令之一般情境來良好敘述該等系統及相 法。一般說來,程式模組包括能夠執行特定任務,或 作特定抽象資料型態的副程式、程式、物件、元件、 結構等。也可於分散式計算環境來實作各項具體實施 其中是由經一通訊網路所鏈結之許多遠端處理裝置來 各項任務。在第一分散式計算環境裡,程式模組可位 有記憶體儲存裝置之本地或遠端電腦儲存媒體兩者處 述計算系統的元件可用來實作按如前述方式運作的編 及解碼器。 J ,而 性的 與該 關的 的或 理系 不限 雜型 微處 、網 統或 組的 關方 是實 資料 例, 執行 在含 。所 碼器 44 1310137 根據如第 7圖知所述示範性具體實施例,該計算環境 7 0 0圖續·為含有一或更多處理器或處理單元7 0 2、一系統記 憶體7 0 4,以及一耦接包含該系統記憶體7 0 4及該處理器 7 0 2之各式系統元件的匯流排7 0 6。
匯流排 7 0 6係為代表一或更多任何多種型態之匯流排 結構,這包含一記憶體匯流排或記憶體控制器、一周邊匯 流排、一加速圖形埠及一處理器或是利用各式匯流排架構 之局部匯流排。僅以範例而言,而不限於此,這些架構包 括「工業標準架構(ISA)」匯流排、「微通道架構(MCA)」 匯流排、「經強化之IS A (EISA)」匯流排、「視訊電子標準 協會(VESA)」局部匯流排以及「周邊元件互連(PCI)」匯流 排,又稱為Mezzanine匯流排。 電腦700通常是包含各種電腦可讀取媒體。這種媒體可 為任何可用媒體,可由該電腦700本地或遠端存取,且這 包含揮發性及非揮發性媒體,可移除式及非可移除式媒體 兩種。
在第7圖裡,該系統記憶體7 0 4包含電腦可讀取媒體, 這可按像是隨機存取記憶體(RAM) 7 1 0之揮發性,及/或像 是唯讀記憶體(ROM) 708之非揮發性形式者。一基本輸入/ 輸出系統(B I Ο S ) 7 1 2含有基本副程式,可像是在開機過程 中,協助該電腦700内之各元件間傳送資訊,此BIOS係 經存放於ROM 708内。該RAM 710通常是含有資料及/或 程式模組,可立即地由該處理單元702所存取及/或現即可 運作其上。 45 1310137
電腦7 0 0可進一步包含其他可移除/非可移除、揮發性/ 非揮發性電腦儲存媒體。即以一例,第7圖說明一硬碟機 7 2 8,可對此非可移除、非揮發性磁性媒體(未以圖示,通 稱為一 「硬碟機」)進行讀出與存入作業;一磁碟機7 3 0, 可對一可移除、非揮發性磁片7 3 2 (即如一 「軟碟片」)進 行讀出與存入作業;以及一光碟機 7 3 4,可對一可移除、 非揮發性光碟片736,即如一 CD-ROM、DVD-ROM或其他 光學媒體,進行讀出與存入作業。該硬碟機 7 2 8、磁碟機 730及光碟機734各者係藉一或更多介面而連接於匯流排 706 °
這些碟機及其相關電腦可讀取媒體可提供電腦可讀取 指令、資料結構、程式模組及電腦7〇〇其他資料的非揮發 性儲存功能。示範性環境在此雖係描述為採用一硬碟機 728、可移除式磁片732及光碟片73 6,然對於熟諳本項技 藝之人士,應即瞭解亦可在本示範性作業環境裡,運用能 夠儲存可由一電腦存取之資料的其他型態電腦可讀取媒 體,像是磁匣、快閃記憶體卡、數位視訊片、隨機存取記 憶體(RAM)、唯讀記憶體(ROM)等等。 可將多個程式模組存放在該硬碟機7 2 8、可移除式磁片 732、光碟片73 6、ROM 708或RAM 7 10上,僅為範例, 包含,但不限於此,一作業系統 714、一或更多應用程式 7 1 6 (即如多媒體應用程式7 2 4)、其他程式模組7 1 8以及 程式資料720。使用者可透過輸入裝置,像是鍵盤738與 點指裝置740 (像是滑鼠),將指令及資訊輸入到電腦700 46 1310137 内。其他的輸入裝置可 立 風、搖桿、遊戲板、衛星::訊/視訊輸入裳置753、麥克 該等及其他裝置係經由各列埠、掃描器等(未以圖示)。 742而連接到(各)處理單=接於匯流t 7〇6之輸入介面 流排結構所連接,像a、, 2 ’但亦可错由其他介面與匯 排(USB)。 平行埠、遊戲淳或是通用序列匯流 也可透過一介面,傻县 疋視訊配接卡或視訊/圖形卡7 4 4, 將一監視器7 5 6或盆#刑& , t恶的顯示器連接到匯流排7 0 6。 除監視器外,個人電腦通常 遇吊會還包含其他的周邊輸出裝置 (未以圖示)’像是制队及印矣地 I7表機’可經輸出周邊介面746 而連接。 電腦700可利用接到—戋 一兄更多電腦,如遠端電腦750, 的邏輯連線而運作於一網技p lir 接长*兄。遠端電腦7 5 0可包含本 案中對於所列述之各項或所有 . | q疋件及特性。 即如第 7圖所示,雷腦备 包脚糸統700可透過一區域網路 (LAN)75 1及一般性的廣域網故α 尹、4 Α路(WAN) 752,相通耦接於遠 端裝置(即如遠端電腦7 5 0)。# ’ &種網接環境常見於辦公室、 泛企業電腦網路、企業内雷聦如 录n电也網路及網際網路。 田用於LAN網接%境内時,電腦7〇〇會透過一適當 網路介面或配接卡748連接至該lan 751。當時用於一 WAN網接環境内時,電腦700通常是包含一數據機754或 其他用以於廣域網路752上建立通訊的裝置。數據機754 可為内接或外裝式’可經使用者輸入介面742,或是其他 適當機制而連接到該系統匯流排7〇6。 47 1310137 在一網接環境裡,如前對於個人電腦7 0 0所描述的程式 模組,或其局部,可存放在一遠端記憶體儲存裝置内。僅 為範例,而非限制,第7圖可說明遠端應用程式7 1 6係常 駐於該遠端電腦7 5 0的記憶體裝置内。應瞭解所示及描述 之網路連線僅屬示範性,且亦可採用其他用以於各電腦間 建立通訊鏈路的裝置。 結論
許多上述各方法與系統可提供在位元層級以外的其他 層級處的啟始碼模擬防止。這會較為有利,原因在於可簡 化處理複雜度。此外,多項具體實施例可提供用於資料填 塞的直觀方法,可在當必要時能夠確保傳送一整數倍數之 位元組。此外,各式具體實施例可提供在並不必然重合於 資料邊界之位元位移位置處的啟始碼模擬防止。而又其他 具體實施例可達到各種處理效率性,而又同時提供一種機 制,藉此可在漏失時能夠復原資料邊界對準。對於熟諳本 項技藝之人士而言,其他優點可為顯見。 本發明雖既已按如具結構特性及/或方法步驟之特定語 言所述,然應瞭解如後申請專利範圍所定義之發明並不必 然受限於所述特性或步驟。相反地,各項特性或步驟係經 揭示為實作本項申辦發明之較佳形式。 【圖式簡單說明】 第1圖係一流程圖,描述根據本發明一具體實施例之 48 1310137 方法中的各項步驟。 第2圖係一流程圖,描述根據本發明一具體實施例之方 法中的各項步驟。 第3圖係一流程圖,描述根據本發明一具體實施例之方 法中的各項步驟。 第4圖係一略圖,說明根據本發明一具體實施例内之處 理方法其一特點。
第5圖係一略圖,說明根據本發明一具體實施例内之處 理方法其一特點。 第6圖係一略圖,說明根據本發明一具體實施例内之處 理方法其一特點。 第7圖係一計算環境高階圖式,此者與可加以實作之一 或更多具體實施例相關。 【元件代表符號簡單說明】 1 00-604流程步驟 700.計算環境
7 02 .處理單元 7 04 .系統記憶體 706.匯流排 708•唯讀記憶體(ROM) 710.隨機存取記憶體(RAM) 7 12.基本輸入/輸出系統(BIOS) 7 1 4 .作業系統 7 1 6 .應用程式 7 1 8 .程式模組 7 2 0 .程式資料 724.多媒體應用程式 726.資料媒體介面 7 2 8 .硬碟機 7 3 0.磁碟機 49 1310137 7 3 2 .非揮發性磁片 7 3 6 .光碟片 740.滑鼠 744.視訊配接卡 7 4 8 .網路 75 1 ·區域網路(LAN) 7 5 3 .音訊/視訊輸入裝置 7 5 6 .監視器 7 3 4 .光碟機 73 8.鍵盤 742.輸入介面 746.輸出周邊介面 7 5 0 .遠端電腦 752.廣域網路(WAN) 7 5 4 .數據機
50

Claims (1)

  1. 十、申請專利範圍 1. 一種用於準備經編碼資料以供解碼方法,其包含以下步 驟: 在一資料串流中,接收包含至少一啟始碼的經編碼資 料; 基於該經接收資料中一位元组邊界處一啟始碼模式的 位置復原位元組對準,其中該經編碼資料起因於一編碼 器,其使用一特徵模式作為一搜尋模式以相關於該啟始碼 模式在該經編碼資料上進行模擬防止資料插入作業,其中 該特徵模式包含複數位元組,其發生在該啟始碼模式之複 數位元方式位移之每一者内且經識別來防止與一或多個 位元組對準位置相關之每位元位移位置處的該啟始碼模 式之模擬,’ 在該經接收資料中之該一或多個位元組對準位置處,搜 尋包含一模擬防止位元組之複數位元組的一模式;及 如果在該經接收資料中發現包含該模擬防止位元組之 該複數位元組的該模式,自該經接收資料移除該模擬防止 位元組。 2.如申請專利範圍第1項所述之方法,其中該經編碼資料 包含視訊資料。 3 .如申請專利範圍第1項所述之方法,其中該特徵模式僅 具有零值位元組。 51 1310137 4. 如申請專利範圍第1項所述之方法,其中包含該模擬防 止位元組的該複數位元組之模式等於在該模擬防止資料 插入作業期間由該編碼器所使用之一替換模式。 5. 如申請專利範圍第1至4項之任一項所述之方法,其中 包含該模擬防止位元組之複數位元組的模式包含: 至少兩位元組,其各者等於零;及 該模擬防止位元組。 6. 如申請專利範圍第1至4項之任一項所述之方法,其中 該模擬防止位元組等於0x03。 7. 如申請專利範圍第1至4項之任一項所述之方法,其中 該啟始碼模式包含一啟始碼字首。 8. 如申請專利範圍第7項所述之碼方法,其中該啟始碼字 首包含複數連續零之一字串。 9. 如申請專利範圍第7項所述之方法,其中該啟始碼字首 包含複數連續零且隨後立即為一 1之一字串。 1 0 ·如申請專利範圍第1至4項之任一項所述之方法,其中 該啟始碼模式之位置由3 1連續零隨後立即為一 1的一字 52 1310137 串所指示。 11 ·如申請專利範圍第1至4項之任一項所述之方法,其中 該特徵模式具有三零值位元組。 12.如申請專利範圍第1至3項之任一項所述之方法,其 中該特徵模式之複數位元組之各者具有一 0x00之值,且 其中如果在該被編碼之資料中發現該特徵模式,包含該模 擬防止位元組之該複數位元組的該模式為一替換模式,該 替換模式為: N-1位元組各者等於0x00之值, 後隨該模擬防止位元組, 後隨第N個位元組等於0x00之值。 1 3. —種用於格式化資料以供遞送作為一經編碼資料流的 方法,其包含以下步驟: 搜尋被編碼之資料中之一或多個搜尋模式,該一或多個 搜尋模式之各者包含複數位元組;及 如果在該被編碼之資料中發現該一或多個搜尋模式之 一者,在一編碼資料串流中,以一替換模式替換該被發現 之模式,該替換模式包含該被發現之模式中之資料,連帶 一模擬防止位元組; 其中使用一特徵模式作為該一或多個搜尋模式之一 者,來相關於一啟始碼模式在該被編碼資料上進行模擬防 53 1310137 止資料插入作業,其中該特徵模式包含複數位元組,其發 生在該啟始碼模式之複數位元方式位移之每一者内且經 識別來防止與一或多個位元組對準位置相關之每位元位 移位置處的該啟始碼模式之模擬,藉以基於在一位元組邊 界處之該啟’始碼模式的位置而促進一解碼器處位元組對 準的復原。 1 4 ·如申請專利範圍第1 3項所述之方法,其中該編碼資料 包含視訊資料。 1 5 .如申請專利範圍第1 3項所述之方法,其中該特徵模式 僅具有零值位元組。 16.如申請專利範圍第13項所述之方法,其中該一或多個 搜尋模式之各者包含至少三位元組。 1 7 ·如申請專利範圍第1 6項所述之方法,其中該至少三位 元組包含: 至少兩位元組,其各者等於零;及 一位元組,其中該位元組之六最高有效位元(byte’s six most-significant)之各者為零。 1 8.如申請專利範圍第1 3至1 7項之任一項所述之方法,其 中該模擬防止位元組等於0x03。 54 1310137 1 9 ·如申請專利範圍第1 3至1 7項之任一項所述之方法,其 中該複數位元組之特徵模式包含三位位元組,其各者等於 零。 20.如申請專利範圍第13至17項之任一項所述之方法,其 中該啟始碼模式包含一啟始碼字首,以及其中該啟始碼字 首由各者等於0x00之兩位元組隨後立即為等於0x0 1之一 位元組所組成。 2 1.如申請專利範圍第1 3至1 7項之任一項所述之方法,其 中該解碼器之位元組對準復原包含在相關於一位元組邊 界之一或多位元位移位置處,搜尋由等於零之一位元組隨 後立即為一三位元組啟始碼字首所組成之一四位元組模 式之步驟。 22.如申請專利範圍第1 3至1 7項之任一項所述之方法, 其中該特徵模式之複數位元組之各者具有一 0x00之值, 且其中如果在該被編碼之資料中發現該特徵模式,該替換 模式為: N-1位元組各者等於0x00之值, 後隨該模擬防止位元組, 後隨第N個位元組等於0x00之值。 55 1310137 2 3 .如申請專利範圍第1 3項所述之方法,其更包含以下步 驟:傳送一舖平位元組,其後隨一啟始碼字首作為該啟始 碼模式,藉以促進位元組對準的復原。 24.如申請專利範圍第23項所述之方法,其更包含以下步 驟:在該傳送步驟之前,基於啟始碼型態決定是否傳送該 舖平位元組。 56 1310137 七、(一)、本案指定代表圖為··第 1 圖 (二)、本代表圖之元件代表符號簡單 說明: 1 0 0 -1 2 4流程步驟
    八、本案若有化學式時’請揭不最能顯不 發明特徵的化學式:
    無 4
TW092109146A 2002-04-19 2003-04-18 Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions TWI310137B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US37419202P 2002-04-19 2002-04-19

Publications (2)

Publication Number Publication Date
TW200404229A TW200404229A (en) 2004-03-16
TWI310137B true TWI310137B (en) 2009-05-21

Family

ID=29251157

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092109146A TWI310137B (en) 2002-04-19 2003-04-18 Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions

Country Status (8)

Country Link
US (1) US7248740B2 (zh)
EP (1) EP1500278B1 (zh)
JP (1) JP4448334B2 (zh)
KR (1) KR100895932B1 (zh)
CN (1) CN100499824C (zh)
HK (1) HK1075565A1 (zh)
TW (1) TWI310137B (zh)
WO (1) WO2003090470A2 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60310368T2 (de) * 2002-01-22 2007-03-29 Microsoft Corp., Redmond Verfahren zur verhinderung von startkode-emulation und stopfdaten
US7305036B2 (en) * 2002-05-14 2007-12-04 Broadcom Corporation System and method for entropy code preprocessing
US20040067042A1 (en) * 2002-10-07 2004-04-08 Hughes Robert K. Extended time-code for multimedia presentations
US8427494B2 (en) * 2004-01-30 2013-04-23 Nvidia Corporation Variable-length coding data transfer interface
US8023564B2 (en) * 2004-02-04 2011-09-20 Broadcom Corporaiton System and method for providing data starting from start codes aligned with byte boundaries in multiple byte words
US7590059B2 (en) * 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
JP4444762B2 (ja) * 2004-08-25 2010-03-31 パナソニック株式会社 デマルチプレクサ
US7340441B1 (en) 2004-12-17 2008-03-04 The Mathworks, Inc. Search directions in pattern search via rotation
US8081755B2 (en) * 2005-05-20 2011-12-20 Microsoft Corporation JPEG2000 syntax-compliant encryption with full scalability
US7953224B2 (en) * 2005-05-20 2011-05-31 Microsoft Corporation MPEG-4 encryption enabling transcoding without decryption
WO2007034634A1 (ja) * 2005-09-20 2007-03-29 Pioneer Corporation デジタル放送受信機
JP4229149B2 (ja) * 2006-07-13 2009-02-25 ソニー株式会社 ビデオ信号処理装置およびビデオ信号処理方法、ビデオ信号符号化装置およびビデオ信号符号化方法、並びにプログラム
WO2008064058A2 (en) * 2006-11-21 2008-05-29 Abbott Laboratories Use of a terpolymer of tetrafluoroethylene, hexafluoropropylene, and vinylidene fluoride in drug eluting coatings
US7974307B2 (en) * 2006-11-30 2011-07-05 Vestel Elektronik Sanayi Ve Ticaret A.S. Methods and apparatus for data decoding/encoding and for searching for/inserting stuffing bytes
KR100841338B1 (ko) * 2007-02-27 2008-06-26 삼성전자주식회사 비디오 디코더를 위한 에뮬레이션 방지 바이트 제거 장치
US9503777B2 (en) * 2007-06-05 2016-11-22 Broadcom Corporation Method and system for unified start code emulation prevention bits processing for AVS
US8726125B1 (en) 2007-06-06 2014-05-13 Nvidia Corporation Reducing interpolation error
US8725504B1 (en) 2007-06-06 2014-05-13 Nvidia Corporation Inverse quantization in audio decoding
US8477852B2 (en) * 2007-06-20 2013-07-02 Nvidia Corporation Uniform video decoding and display
US8576918B2 (en) * 2007-07-09 2013-11-05 Broadcom Corporation Method and apparatus for signaling and decoding AVS1-P2 bitstreams of different versions
US8849051B2 (en) * 2007-09-17 2014-09-30 Nvidia Corporation Decoding variable length codes in JPEG applications
US8502709B2 (en) * 2007-09-17 2013-08-06 Nvidia Corporation Decoding variable length codes in media applications
US8934539B2 (en) 2007-12-03 2015-01-13 Nvidia Corporation Vector processor acceleration for media quantization
US8687875B2 (en) * 2007-12-03 2014-04-01 Nvidia Corporation Comparator based acceleration for media quantization
US8704834B2 (en) * 2007-12-03 2014-04-22 Nvidia Corporation Synchronization of video input data streams and video output data streams
TWI361009B (en) 2008-03-06 2012-03-21 Realtek Semiconductor Corp Method and apparatus for processing audio/vedio bi
CN101534438B (zh) * 2008-03-14 2013-02-13 瑞昱半导体股份有限公司 影音位流处理方法及装置
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US7949775B2 (en) 2008-05-30 2011-05-24 Microsoft Corporation Stream selection for enhanced media streaming
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
US9307267B2 (en) 2008-12-11 2016-04-05 Nvidia Corporation Techniques for scalable dynamic data encoding and decoding
US8897377B2 (en) * 2009-12-31 2014-11-25 Broadcom Corporation Transcoding multiple media elements for independent wireless delivery
CN101800892B (zh) * 2010-03-04 2013-03-06 青岛海信信芯科技有限公司 多媒体码流识别的方法和装置
US9325999B2 (en) 2011-03-10 2016-04-26 Sharp Kabushiki Kaisha Video decoder for slices
US10230989B2 (en) * 2011-06-21 2019-03-12 Texas Instruments Incorporated Method and apparatus for video encoding and/or decoding to prevent start code confusion
TWI455020B (zh) * 2012-01-31 2014-10-01 Mstar Semiconductor Inc 資料包裝裝置及資料包裝方法
CN102802023B (zh) * 2012-08-29 2014-08-27 上海国茂数字技术有限公司 一种快速防止出现伪起始码的方法及装置
US9336072B2 (en) 2014-02-07 2016-05-10 Ralph Moore Event group extensions, systems, and methods
US9854261B2 (en) * 2015-01-06 2017-12-26 Microsoft Technology Licensing, Llc. Detecting markers in an encoded video signal
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
CN106933767B (zh) * 2017-03-10 2020-04-24 重庆湃芯创智微电子有限公司 一种适用于jesd204b协议的逗号检测和字对齐方法及系统
US11375332B2 (en) 2018-04-09 2022-06-28 Dolby International Ab Methods, apparatus and systems for three degrees of freedom (3DoF+) extension of MPEG-H 3D audio
CN113993060A (zh) 2018-04-09 2022-01-28 杜比国际公司 用于mpeg-h 3d音频的三自由度(3dof+)扩展的方法、设备和系统
CN112486885B (zh) * 2020-12-07 2024-06-07 珠海优特智厨科技有限公司 数据帧的生成方法、存储介质及计算机设备
KR102477168B1 (ko) * 2021-02-02 2022-12-14 엘아이지넥스원 주식회사 디지털 시리얼 데이터 통신 장치 간에 노이즈 간섭에 따른 데이터 왜곡 복원 방법

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847877A (en) * 1986-11-28 1989-07-11 International Business Machines Corporation Method and apparatus for detecting a predetermined bit pattern within a serial bit stream
JP2674059B2 (ja) 1988-02-09 1997-11-05 キヤノン株式会社 カラー画像データ伝送方法
GB9012538D0 (en) 1990-06-05 1990-07-25 Philips Nv Coding of video signals
CA2335403C (en) 1990-06-05 2002-03-19 Koninklijke Philips Electronics N.V. Optical readable disc storing full-motion video scene
US5784631A (en) * 1992-06-30 1998-07-21 Discovision Associates Huffman decoder
US5699123A (en) * 1993-10-20 1997-12-16 Victor Company Of Japan, Ltd. Television receiver with an adjustable frame size
AU5826794A (en) 1993-11-30 1995-06-19 General Electric Company Data word indicator in a system for assembling transport data packets
US5784110A (en) 1993-11-30 1998-07-21 General Electric Company Data processor for assembling transport data packets
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
US6026182A (en) 1995-10-05 2000-02-15 Microsoft Corporation Feature segmentation
JPH09182067A (ja) 1995-10-27 1997-07-11 Toshiba Corp 画像符号化/復号化装置
KR100773304B1 (ko) 1996-03-18 2007-11-06 가부시끼가이샤 도시바 부호화 장치 및 부호화 방법
US5870444A (en) 1996-04-23 1999-02-09 Scientific-Atlanta, Inc. Method and apparatus for performing very fast message synchronization
US5661665A (en) 1996-06-26 1997-08-26 Microsoft Corporation Multi-media synchronization
CN1107418C (zh) 1996-07-05 2003-04-30 松下电器产业株式会社 显示多个视频物面的时间标记和同步的方法
JPH1066036A (ja) 1996-08-15 1998-03-06 Oki Electric Ind Co Ltd Tv方式変換装置
US5898897A (en) 1996-10-18 1999-04-27 Samsung Electronics Company, Ltd. Bit stream signal feature detection in a signal processing system
JP4013286B2 (ja) 1997-01-22 2007-11-28 松下電器産業株式会社 画像符号化装置と画像復号化装置
US5955977A (en) * 1997-03-31 1999-09-21 Sharp Laboratories Of America, Inc. System for avoiding start code emulation and long carry-over propagation
JPH11110915A (ja) 1997-09-30 1999-04-23 Sony Corp 信号記録再生装置及び方法
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
GB9807208D0 (en) 1998-04-03 1998-06-03 Nds Ltd Method and apparatus for detecting a sequence in a bitstream
AU3573099A (en) 1998-04-24 1999-11-16 Rockwell Science Center, Llc N-bit video coder and method of extending an 8-bit mpeg video coder
EP1018840A3 (en) 1998-12-08 2005-12-21 Canon Kabushiki Kaisha Digital receiving apparatus and method
US7551672B1 (en) 1999-02-05 2009-06-23 Sony Corporation Encoding system and method, decoding system and method, multiplexing apparatus and method, and display system and method
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
JP4292654B2 (ja) 1999-03-19 2009-07-08 ソニー株式会社 記録装置および方法、再生装置および方法、並びに記録媒体
GB2363279B (en) 1999-04-01 2003-10-22 Ravisent Technologies Inc Method for preventing dual-step half-pixel motion compensation accumulation errors in prediction-rich MPEG-2 sequences
GB2353653B (en) 1999-08-26 2003-12-31 Sony Uk Ltd Signal processor
JP3694888B2 (ja) 1999-12-03 2005-09-14 ソニー株式会社 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体
GB9930788D0 (en) 1999-12-30 2000-02-16 Koninkl Philips Electronics Nv Method and apparatus for converting data streams
DE60310368T2 (de) 2002-01-22 2007-03-29 Microsoft Corp., Redmond Verfahren zur verhinderung von startkode-emulation und stopfdaten

Also Published As

Publication number Publication date
CN1656821A (zh) 2005-08-17
WO2003090470A3 (en) 2004-03-11
JP2005523659A (ja) 2005-08-04
EP1500278A2 (en) 2005-01-26
US20040030665A1 (en) 2004-02-12
US7248740B2 (en) 2007-07-24
WO2003090470A2 (en) 2003-10-30
KR20040099461A (ko) 2004-11-26
TW200404229A (en) 2004-03-16
EP1500278B1 (en) 2014-08-27
CN100499824C (zh) 2009-06-10
JP4448334B2 (ja) 2010-04-07
HK1075565A1 (zh) 2005-12-16
KR100895932B1 (ko) 2009-05-07

Similar Documents

Publication Publication Date Title
TWI310137B (en) Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions
JP5175371B2 (ja) 開始符号エミュレーションの防止およびデータ充填のための方法およびシステム
JP4392442B2 (ja) FlexMuxストリームをストリーム形成、受信及び処理する装置及び方法
JP5289333B2 (ja) データストリームを生成し、データストリーム内の位置を識別する方法
CN100433838C (zh) 解码方法和解码设备
JP2658896B2 (ja) 同期回路
KR20020044693A (ko) 데이터 분할 기법을 이용한 영상 부호화 전송방법
US6771193B2 (en) System and methods for embedding additional data in compressed data streams
JP5172062B2 (ja) ビデオを復号する再同期方法
US6560288B1 (en) Method and system for variable length decoding
US20020093978A1 (en) Synchronous protocol encoding and decoding method
EP0950224B1 (en) Method in connection with serial data transfer to recognize a fixed pattern
JP3175926B2 (ja) ストリームパケット化装置および方法
WO2005038643A1 (fr) Procede de formation d'un flux de donnees qui peut etre accede de maniere aleatoire et procede de decodage correspondant
Zhou et al. On the security of multimedia encryption schemes based on multiple huffman table (mht)
JP2000209100A (ja) デコ―ダ及びデコ―ド方法
JP2002084336A (ja) データ伝送制御方法及びデータ伝送システム

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent