PL207381B1 - Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika - Google Patents
Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnikaInfo
- Publication number
- PL207381B1 PL207381B1 PL374812A PL37481298A PL207381B1 PL 207381 B1 PL207381 B1 PL 207381B1 PL 374812 A PL374812 A PL 374812A PL 37481298 A PL37481298 A PL 37481298A PL 207381 B1 PL207381 B1 PL 207381B1
- Authority
- PL
- Poland
- Prior art keywords
- memory
- bitstream
- sector
- buffer memory
- coupled
- Prior art date
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Television Signal Processing For Recording (AREA)
Description
Opis wynalazku
Przedmiotem wynalazku jest urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika.
Wprowadzenie dysków zapisywanych skompresowanymi cyfrowo sygnałami dźwiękowymi i wizualnymi, na przykład z wykorzystaniem protokołów kompresji MPEG, oferuje konsumentom jakość dźwięku i obrazu praktycznie nieodróżnialną od jakości materiału oryginalnego. Jednakże użytkownicy będą oczekiwać od takich cyfrowych dysków wideo (DVD) oferowania cech użytkowych podobnych do tych jakie oferuje analogowy magnetowid kasetowy (VCR). Na przykład, VCR może odtwarzać do przodu lub wstecz z szybkościami innymi niż szybkość zapisu. Takie cechy niestandardowej prędkości odtwarzania są znane również jako trikowe tryby pracy. Trikowe tryby pracy są trudniejsze do zrealizowania w przypadku zakodowanych sygnałów wideo MPEG ze względu na hierarchiczną naturę tej kompresji, która formuje z obrazów grupy posiadające różne stopnie kompresji. Grupy te są określane jako grupy obrazów lub GOP (ang. qroups of pictures) i wymagają dekodowania w sekwencji. Szczegółowy opis standardu MPEG2 jest opublikowany jako Standard ISO/IEC 13818-2. Jednak, w uproszczeniu, strumień sygnału MPEG 2 może zawierać trzy rodzaje obrazów posiadają cych różne stopnie kompresji treści. Klatka kodowana wewnętrznie (klatka typu I) charakteryzuje się najmniejszą kompresją z tych trzech typów i może być dekodowana bez odniesień do jakiejkolwiek innej klatki. Klatka prognozowana (klatka typu P) jest kompresowana w odniesieniu do poprzedzającej klatki typu I lub typu P i osiąga wyższy stopień kompresji niż klatka kodowana wewnętrznie. Trzeci rodzaj klatki MPEG określany jako kodowany dwukierunkowo (klatka typu B) może być kompresowany w oparciu o prognozy pochodzące z klatek poprzedzają cych i/lub nastę pnych. Klatki kodowane dwukierunkowo posiadają najwyższy stopień kompresji. Te trzy rodzaje klatek MPEG są ułożone w grupy obrazów, GOP. GOP może, dla przykładu, zawierać 12 klatek ułożonych jak na fig. 1A. Ponieważ tylko klatka kodowana wewnętrznie może być dekodowana bez odniesienia do jakiejkolwiek innej klatki, każda grupa obrazów może być dekodowana tylko w następstwie zdekodowania klatki typu I. Pierwsza klatka prognozowana (klatka P) może być dekodowana i przechowywana na podstawie modyfikacji pamiętanej poprzedzającej klatki typu I. Następujące kolejno klatki P mogą być przewidywane na podstawie zapamiętanej poprzedniej klatki P. Prognozowanie klatek typu P wskazane jest na fig. 1A przez zakrzywione ciągłe strzałki.
Znane jest z opisu patentowego US 5535008 urządzenie do odtwarzania (pokazane tam na Fig. 3). Urządzenie to zawiera, wśród innych elementów, jednostkę CPU połączoną bezpośrednio z pamięcią. Bufor pamięci podłączony jest do menagera pamięci, który, z kolei, podłączony jest do CPU.
Znane jest z opisu US 5543925, urządzenie do odtwarzania zapisanego sygnału z selektywnym sterowaniem obecności użytkownika prezentacji obrazu. Urządzenie to zawiera, między innymi, mikrokontroler dołączony do pamięci RAM i interfejs, za pomocą którego mikrokontroler może zapisywać i odczytywać usuwalny cyfrowy noś nik danych, taki jak moduł pamię ci np. w postaci programowalnej pamięci stałej wymazywalnej elektrycznie EEPROM.
Z opisu zgł oszenia europejskiego nr 0 737 975 A2 znany jest noś nik zapisu, urzą dzenie zapisujące i sposób zapisywania danych na tym nośniku, a także urządzenie odtwarzające, sposób odtwarzania danych z tego nośnika. Urządzenie dysku optycznego przedstawione w tym opisie zawiera, między innymi, sekcję procesora systemowego podłączonego do sekcji danych RAM i sekcji sterowania dyskiem.
Z publikacji europejskiego zgł oszenia patentowego nr 0 651 391 A2 znane jest urzą dzenie do odtwarzania zdolne do zapisywania i odtwarzania programu, takiego jak film, na nośniku zapisowym, takim jak dysk optyczny lub CD-ROM, a zwłaszcza, urządzenie odtwarzające z funkcją przeszukiwania do przeszukiwania żądanej ramki z dużą szybkością. System odtwarzania, przedstawiony w tym opisie, zawiera przetwornik dołączony do sekcji sterowania przetwornikiem. Sekcja przeszukiwania niniejszego urządzenia zawiera sekcję sterowania systemem podłączoną do pamięci danych i pamięci obrazu.
Z europejskiego opisu zgłoszenia nr 0 696 798 znane jest urządzenie do zapisywania danych, nośnik do zapisania danych i urządzenie do odtwarzania danych. Urządzenie do odtwarzania danych zawiera komputer połączony z interfejsem komputerowym.
Znany jest z opisu patentowego EP 696 798 sposób i urządzenie do rejestrowania danych, nośnik danych oraz sposób i urządzenie do odtwarzania danych. Zgłoszenie to ujawnia rejestrowanie sygnału MPEG na różnych rodzajach nośników dyskowych, a także ujawnia dodatkowo format rejestrowania zawierający dodatkowe informacje zarejestrowane oddzielnie od danych, jako subkody
PL 207 381 B1 w każ dym sektorze zapisanego noś nika. Te subkody dostarczają informacji, na przykł ad o typie obrazu, związane z danymi w każdym sektorze i mogą być użyte podczas odtwarzania do sterowania procesem reprodukcji danych.
Znany jest z opisu patentowego USA 5 535 008 skokowy tryb reprodukcji danych zapisanych w formacie MPEG, na przykład przy uż yciu CD-ROM. Z kolei patent amerykań ski 5 535 008 ujawnia reprodukcję wielu danych rozmieszczonych w określonych wcześniej odstępach i w ten sposób dane, które mają zostać odtworzone jako następne mogą zostać zlokalizowane przez odjęcie pierwszej ustalonej wartości od zakładki całkowitej liczby określonych wcześniej interwałów. Patent ten wykorzystuje średnie odległości pomiędzy klatkami typu I do adresowania przetwornika w celu szybkiego zgodnego z torem przebiegu lub wstecznego odtwarzania.
Znany jest z opisu patentowego EP 0 737 975 sposób rejestrowania w formacie MPEG dla dysku optycznego. Rejestrowany format zawiera obszar zarządzania oraz obszar programu, gdzie dane programu mają hierarchiczną strukturę. Ujawniony format odznacza się pewnymi podobieństwami do formatu przystosowanego do uniwersalnego dysku wideo, czyli DVD.
Znane jest z opisu patentowego US 5 543 925 cyfrowe urządzenie odtwarzające służące do reprodukcji cyfrowo przetworzonych obrazów fotograficznych. Zdyskretyzowane obrazy zostają zapisane na optycznym dysku kompaktowym w celu prezentacji na ekranie zgodnie z przechowywanymi danymi reprezentującymi albo zarejestrowaną wcześniej sekwencję, albo sekwencję zdefiniowaną przez użytkownika. W powyższym opisie patentowym ujawniono, że dla każdego przechowywanego zdygitalizowanego obrazu, pliki tego obrazu zawierają pewną liczbę plików niższego rzędu, podplików, które definiują ten sam zeskanowany obraz z różnymi rozdzielczościami. Stwierdzono, iż te wersje o wielu rozdzielczościach tego samego obrazu korzystnie redukują czas oczekiwania na prezentację obrazu.
Odtwarzanie cyfrowo kodowanych obrazów z dużą prędkością jest ujawnione w kolejnym opisie patentowym EP 0 0651 391. W szczególności zgłoszenie to ujawnia użycie obydwu, dwu- i trzyklatkowych pamięci, które przechowują wiele grup obrazów w celu użycia podczas zwrotnej reprodukcji klatek. Selekcja sygnału wyjściowego zmienia się na przemian pomiędzy pamięciami zdekodowanych obrazów. Czasy selekcji pamięci i trzymania obrazu wyjściowego są wrażliwe na dostępność zdekodowanych obrazów oraz czas potrzebny do pozyskania następnego pożądanego obrazu.
Hierarchiczna natura zakodowanych klatek zawierająca grupy obrazów MPEG wymaga, aby klatki typu I i P każdej grupy były dekodowane do przodu. W ten sposób, funkcje trybu wstecznego mogą zostać zrealizowane za pomocą wykonywania efektywnych skoków wstecz do wcześniejszej lub poprzedzającej klatki typu I i następnie dekodowania do przodu wskroś danej grupy obrazów. Zdekodowane klatki są przechowywane w pamięci bufora klatek w celu kolejnych odczytów w kierunku wstecznym, tak aby uzyskać żądaną sekwencję programu wstecznego. Figura 1B ilustruje odtwarzanie do przodu z normalną prędkością do chwili t0, po czym wybrany jest trikowy wsteczny tryb odtwarzania o potrójnej prędkości. Trikowy tryb pracy zainicjowany jest w chwili t0, gdy dekodowana i wyświetlana jest klatka I(25). Następną żądaną do deszyfracji ramką jest klatka I(13), w związku z czym zmieniona zostaje pozycja przetwornika tak aby osiągnął on ramkę I(13), jak wskazuje to strzałka J1_. Po odczytaniu i zdekodowaniu klatki typu I(13) przetwornik przesuwa się w celu osiągnięcia i zdekodowania klatki P(16), jak wskazuje strzałka J2. Proces ten jest powtarzany, zgodnie ze wskazaniem strzałek J3, J4. W ślad za pobraniem i zdekodowaniem klatki P(22) przetwornik zostaje przemieszczony, jak oznaczono to strzałką Jn, w celu odczytania klatki I(1). Płynne przedstawienie ruchu obrazów wymaga dekodowania i wyświetlania klatek typu I oraz P, a także, co jest możliwe, typu B. Proces skoku i odtwarzania powtarzany jest dla poprzedzającej grupy obrazów posuwając się w ten sposób skokowo do tyłu poprzez zarejestrowane dane, odtwarzając jednocześnie w sposób płynny materiał w odwrotnej kolejności na wyjściu wideo.
Realizacja wizualnie płynnej reprodukcji w trybie odtwarzania trikowego wymaga dokonywanego w odpowiednim czasie przeszukiwania dysku oraz dostępu do wybranych obrazów w pamięci. Chociaż każdy dysk cyfrowy jest zakodowany wraz z systemem nawigacji danych, co udostępnia punkty dostępu do obrazów w każdej jednostce obiektu wizualnego, to ilość tych punktów jest ograniczona i mogą one w sposób naturalny przyczyniać się do czasowo schodkowego ruchu obrazów. W celu osiągnięcia czasowo płynnego odtwarzania w trybie trikowym, z wielokrotnymi prędkościami w tył i do przodu, wymagany jest dostęp i dekodowanie wszystkich zakodowanych obrazów. Pomimo tego, iż takie działanie jest możliwe kosztem pojemności pamięci, to jednak analiza strumienia bitów
PL 207 381 B1 oraz selekcja w celu przechowywania w pamięci buforowej stwarza możliwości udoskonalonego odtwarzania w trybie trikowym poprzez efektywne wykorzystanie pamięci.
Urządzenie według wynalazku charakteryzuje się tym, że posiada mikroprocesor-kontroler nadzorujący identyfikację informacji w strumieniu bitów i kontrolujący pamięć bufora systemu do przechowywania pierwszej części strumienia bitów wyprowadzonego z adresu sektora, połączony z pamięcią bufora strumienia bitów oraz z pamięcią bufora systemu i kontrolerem bezpośredniego dostępu do pamięci, który to kontroler jest połączony z pamięcią bufora strumienia bitów do odzyskiwania i wyprowadzania strumienia bitów z adresu sektora, zaś pamięć bufora strumienia bitów jest połączona z procesorem linkującym, który to procesor połączony jest z przetwornikiem optycznym, przy czym pamięć odbiera cyfrowo zakodowany sygnał bufora strumieni bitów z procesora linkującego, a pamięć bufora systemu gromadząca dane jest połączona w sposób sterowalny z pamięcią bufora strumienia bitów.
W innej odmianie, wynalazek charakteryzuje się tym, ż e posiada mikroprocesor-kontroler przetwarzający przechowywany strumień bitów i wskazujący identyfikację oraz przechowujący adres sektora zidentyfikowanego kodu startowego MPEG, połączony jest z pamięcią bufora strumienia bitów oraz z buforem strumienia bitów i z kontrolerem bezpośredniego dostępu do pamięci do przeszukiwania i identyfikacji kodu startowego MPEG oraz mikroprocesor-kontroler połączony jest z detektorem kodu startowego, zaś pamięć bufora strumienia bitów jest połączona z procesorem linkującym, który to procesor połączony jest z przetwornikiem optycznym, przy czym pamięć odbiera cyfrowo zakodowany sygnał z procesora.
Urządzenie według innej odmiany wynalazku zawiera mikroprocesor-kontroler połączony z dekoderem wideo dla odczytu przechowywanego cyfrowo kodowanego sygnału z pamięci bufora strumienia bitów w odpowiedzi na odpowiednio pierwszą i drugą sekwencję i dla sterowania dekoderem wideo, który to dekoder połączony jest z pamięcią bufora strumienia bitów, dekodującego pochodzące z niej obrazy, zaś pamięć bufora strumienia bitów jest połączona z procesorem linkującym, który to procesor jest połączony z przetwornikiem optycznym, przy czym pamięć odbiera cyfrowo zakodowany sygnał z procesora.
Inna odmiana wynalazku zawiera mikroprocesor-kontroler połączony z kontrolerem bezpośredniego dostępu do pamięci dla odczytu przechowywanego kodowanego cyfrowo sygnału z pamięci bufora strumienia bitów w odpowiedzi na odpowiednio pierwszą i drugą sekwencję, i dla sterowania pamięcią bufora strumienia bitów, który to kontroler połączony jest z pamięcią bufora strumienia bitów, zaś pamięć bufora strumienia bitów połączona jest z procesorem linkującym, który to procesor połączony jest z przetwornikiem optycznym, przy czym pamięć odbiera cyfrowo zakodowany sygnał.
Przedmiot wynalazku w przykładach wykonania jest przedstawiony na rysunku, na którym fig. 1A przedstawia grupę obrazów MPEG 2, fig. 1B - zarejestrowane grupy obrazów podczas odtwarzania i trikowego odtwarzania wstecz z potrójną prędkością, fig. 2 - schemat blokowy przykładowego odtwarzacza dysków cyfrowych zawierającego rozwiązanie według wynalazku, fig. 3 - bardziej szczegółowo część schematu blokowego z fig. 2, fig. 4 - odtwarzacz dysków cyfrowych z fig. 2 z innym urządzeniem według wynalazku, fig. 5A i fig. 5B - przykładowy strumień bitów przed buforowaniem, fig. 5C - 5D - przykładowe dane w pamięci buforowej, fig. 6 - sieć działań dla uzyskania kodów startowych, rozłożonych w poprzek granic sektora, zaś fig. 7 - wykres ilustrujący sekwencję dla trikowego trybu odtwarzania wstecz z potrójną prędkością (3X).
Fig. 2 przedstawia przykładowy schemat blokowy odtwarzacza cyfrowych dysków wideo.
W bloku 10 przedstawiono napęd, który może przyjmować zapisane cyfrowo dyski 14 w celu wprawienia ich w ruch obrotowy przez silniczek 12. Na dysku 14 zapisany jest sygnał cyfrowy jako spiralna ścieżka zawierająca dziurki o odpowiedniej długości określona przez kodowanie modulacyjne 8/16 wrażliwe na odpowiednie bity sygnału danych. Zapis na dysku 14 jest odczytywany przez przetwornik 15, który zbiera odbitą iluminację lasera. Odbite światło lasera gromadzone jest przez fotodetektor lub optyczne urządzenie zbierające. Urządzenie obrazujące, na przykład soczewki lub zwierciadło, które stanowi część przetwornika 15, jest serwosterowane oraz napędzane przez silniczek 11 w celu śledzenia zapisanej ścieżki. Różne części nagrania mogą być dostępne dzięki nagłym zmianom pozycji urządzenia obrazującego. Serwosterowane silniczki 11 i 12 są napędzane przez układ scalony 20 do sterowania. Przetwornik 15 sprzężony jest z przedwzmacniaczem 30, który zawiera obwody napędowe oświetlacza laserowego oraz przedwzmacniacz, który zapewnia wzmocnienie i korekcję wyjścia odbitego sygnału z optycznego urządzenia zbierającego. Wzmocniony i skorygowany sygnał odtwarzania pochodzący z przedwzmacniacza 30 doprowadzony jest do bloku procesora kanałowego 40,
PL 207 381 B1 gdzie sygnał odtwarzania służy do synchronizacji pętli synchronizacji fazowej, która jest wykorzystywana do demodulacji modulacji 8:16 wykorzystywanej podczas rejestracji.
Strumień bitów kodowany w systemie MPEG kodowany jest w sposób umożliwiający detekcję i korekcję błędów za pomocą kodowania iloczynem Reed-Solomona, które jest stosowane w blokach po 16 sektorów, gdzie każdy sektor zawiera 2048 bajtów załadowanych danych. W ten sposób w wyniku demodulacji 8:16 odtwarzany strumień danych zostaje pozbawiony przeplotu i przetasowania, a błąd zostaje skorygowany za pomocą korekcji iloczynem Reed-Solomona zaimplementowanej w pamięciach buforowych ECC 45 i 46 z fig. 4. Każdy bufor przechowuje 16 sektorów odtwarzanego strumienia danych ułożonych jako tablica w celu ułatwienia usunięcia przeplotu oraz umożliwienia przetwarzania iloczynowego wybranego wiersza i wybranej kolumny. Kaskadowe pamięci buforowe ECC wprowadzają pewne opóźnienie do odtwarzanego szeregowego strumienia bitów o wartości w przybliżeniu (2*16*1.4) milisekund, gdzie liczba 2 reprezentuje parę buforów ECC, 16 reprezentuje sektory, na których dokonywana jest korekcja, a 1.4 milisekundy reprezentuje okres sektora przy jednokrotnej IX prędkości obrotowej. W ten sposób odtwarzany szeregowy strumień bitów jest opóźniony przynajmniej o około 45 milisekund.
Strumień bitów 41 sygnału z korektą błędu zostaje doprowadzony poprzez procesor linkujący do pamięci 60A bufora strumienia bitów. Bufor ścieżki składa się z pamięci typu DRAM i jest wykorzystywany do przechowywania pewnej ilości odtwarzanych danych tak, że straty danych podczas zmiany pozycji przetwornika 15 lub urządzenia zbierającego nie skutkują żadnym widocznym ubytkiem podczas dekodowania. W ten sposób ostateczny strumień obrazu wyjściowego będzie odebrany przez widza jako płynny i ciągły. Pamięć 60A bufora strumienia bitów stanowi część przykładowej 16 megabitowej pamięci DRAM. Dalszy przykładowy blok 16 megabitowej pamięci SDRAM jest podzielony w celu utworzenia buforów klatek 60C i 60D, które służą przechowywaniu przynajmniej dwóch zdekodowanych klatek obrazów, w celu przechowywania skompresowanego strumienia bitów wideo w buforze 60B przed procesem dekodowania, utworzenia bufora 60E bitów audio i innych buforów 60F, 60G, 60H. Procesor kanałowy 40 zawiera również obwody sterujące taktowaniem, które kontrolują zapis poprzez procesor linkujący 505 do pamięci 60A bufora strumienia bitów. Dane mogą być zapisywane w sposób nieciągły do bufora strumienia bitów wskutek zmian w adresach odtwarzanych ścieżek, wynikających na przykład, z definiowanej przez użytkownika treści do odtwarzania wideo takiej jak cięcia reżyserskie, wybór rodziców lub nawet możliwe do wybrania przez użytkownika alternatywne kąty ujęć. W celu ułatwienia szybszego dostępu i uzyskania zarejestrowanego sygnału, dysk 14 może być obracany ze zwiększoną prędkością powodując w ten sposób większą prędkość bitów i możliwie nieciągłą akwizycję w odczytywanym strumieniu bitów.
Strumień zarejestrowanych danych zgrupowany jest w bloki ECC po 16 sektorów. Każdy sektor posiada unikalny adres identyfikacji sektora, który jest chroniony za pomocą bitów korekcji błędu, które są przetwarzane przez blok ECC 47 z fig. 4. Jednakże, ponieważ adres sektora jest krótki i specyficzny dla danego sektora, to żadne opóźnienie do sygnału adresu sektora 42 wynikające z bloku 47 korekcji błędu nie ma istotnego znaczenia. Sygnał adresu sektora 42 sprzężony jest w taki sposób, aby dostarczyć informację o pozycji do układu scalonego sterowania serwo 50. Układ scalony 50 dostarcza sygnały napędu i sterowania dla serwo silniczków 11 i 12. Silniczek 12 obraca dyskiem 14 oraz wykonuje serwosterowane obroty z różnymi prędkościami. Optyczne urządzenie zbierające lub przetwornik 15 jest pozycjonowany i serwosterowany przez silniczek 11 wrażliwy na sygnał adresu sektora 42, oraz dodatkowo, może być sterowany w celu gwałtownej zmiany pozycji lub skoku do innego adresu sektora lub lokalizacji na powierzchni dysku w odpowiedzi na żądanie adresu sektora, transmitowanego przez szynę sterującą I 2C 514 oraz sprzężony poprzez element 54 z fig. 4.
Odtwarzacz cyfrowych dysków wideo sterowany jest przez jednostkę centralną, CPU, mikroprocesor-kontroler 510 bloku 500, która przyjmuje odtworzony strumień bitów oraz znaczniki błędu z kanału IC 40 oraz wydaje instrukcje sterujące do serwa IC 50. Dodatkowo mikroprocesor-kontroler 510 przyjmuje rozkazy sterujące użytkownika z interfejsu użytkownika 90, funkcje sterujące dekodera MPEG pochodzące z dekodera wideo 530 bloku 500. Adresuje się systemową pamięć 80 bufora systemu, która dostarcza dane do mikroprocesora-kontrolera 510. Na przykład, pamięć 80 bufora systemu może zawierać zarówno pamięci RAM i PROM. Pamięć RAM może być użyta do przechowywania różnych danych uzyskanych ze strumienia bitów 41 przez CPU 510, na przykład dane takie mogą zawierać dane dotyczące deszyfracji, dane związane z zarządzaniem strumieniem bitów i pamięci buforowej klatek oraz dane nawigacyjne. Pamięć PROM może, przykładowo zawierać korzystne algo6
PL 207 381 B1 rytmy skoku przetwornika, które usprawniają trikowy tryb pracy przy obranej prędkości do przodu i wstecz.
Zakodowany w systemie MPEG strumień bitów doprowadzony zostaje do procesora linkującego
505 z fig. 3, który może służyć jako demultiplekser sprzętowy w celu rozdzielenia zakodowanego w systemie MPEG dźwięku i obrazu oraz sterowania danymi ze strumienia bitów w formacie DVD. Alternatywnie, demultipleksowanie strumienia bitów może być dokonywane pod kontrolą programową układu bezpośredniego dostępu do pamięci 60A bufora strumienia bitów z CPU 510 z fig. 3. Zakodowany strumień bitów przed lub w obrębie pamięci 60A bufora strumienia bitów jest przeszukiwany przez kontroler 510 w celu zlokalizowania i odczytania nagłówków oraz wyodrębnienia danych nawigacyjnych. Korzystne przeszukiwanie strumienia bitów będzie dyskutowane w odniesieniu do fig. 6.
Mikroprocesor-kontroler 510 sprzęgnięty jest z układem czołowym poprzez sygnał szyny sterującej I2C 514 w celu sterowania lub żądania od przetwornika przyjęcia nowej pozycji w celu osiągnięcia nowego sektora wymaganego przez sekwencję odtwarzania trikowego. Pozycjonowanie przetwornika może być sterowane przez korzystną przechowywaną sekwencję lub wzorzec skoków odtwarzania, który jest indeksowany w odniesieniu do adresów odtworzonych sektorów oraz adresów grup obrazów GOP odczytanych z danych pakietu nawigacyjnego zawartych w każdej jednostce bloku obiektu wizyjnego (inaczej VOBU). Przykładowe adresy sektorów oraz pakiet nawigacyjny VOBU przedstawione zostały na fig. 5A. Jednakże, w ślad za repozycjonowaniem przetwornika, sektory, które zostały wstępnie wyszukane z układu czołowego mogą być identyfikowane przez przykładowy mikroprocesor-kontroler 510 jako nie te, które są wymagane przez instrukcję skoku. W takim przypadku, mikroprocesor-kontroler 510 kasuje korzystnie te niepożądane dane w pamięci 60A bufora strumienia bitów oraz zapewnia, że tylko dane żądane są w tym buforze obecne.
Po zidentyfikowaniu adresów sektorów lub nagłówków, mikroprocesor-kontroler 510 steruje układem bezpośredniego dostępu do pamięci 60A bufora strumienia bitów, która efektywnie oddziela dane MPEG od innych danych w formacie DVD przechowywanych w buforze. W taki sposób układ wizji DMA 515 rozdziela skompresowane bity wizji, które przeznaczone są do przechowywania w przykładowym buforze bitów wideo 60B. Podobnie, skompresowane bity audio są odczytane z pamięci 60A bufora strumienia bitów oraz przechowane w buforze 60E bitów audio. Dane pod-obrazów również zostają odczytane z pamięci 60A bufora strumienia bitów przez układ DMA oraz przechowane w buforze 60F.
Skompresowany strumień bitów wizyjnych w buforze bitów wideo 60B jest przeszukiwany w celu odnalezienia obrazu lub kodów startowych wyższego poziomu przez detektor kodu startowego 520A. Wykryty sygnał kodu startowego 512 doprowadzony zostaje do mikroprocesora-kontrolera 510, który następnie komunikuje się z dekoderem wideo 530 za pomocą sygnału 511 w celu wskazania typu następnego obrazu, ustawień kwantyzera oraz zainicjowania procesu dekodowania. Sygnał stanu 513 dekodera jest doprowadzony z powrotem do mikroprocesora-kontrolera 510 w celu zakomunikowania zakończenia procesu dekodowania oraz tego, że dane obrazu są dostępne do wyświetlenia lub przechowywania. Można uważać, że bufor skompresowanych bitów wideo 60B działa jako bufor FIFO (first-in first-out - pierwszy na wejściu-pierwszy na wyjściu) lub bufor cykliczny, gdzie przechowywany strumień bitów jest dostępny i pobierany sekwencyjnie do potrzeb dekodowania MPEG, jednakże, praca w trybie trikowym może być korzystnie usprawniona dzięki swobodnemu dostępowi do bufora 60B, jak zostanie to opisane poniżej.
W obrębie dekodera wideo 530 strumień bitów wideo przetwarzany jest przez dekoder 531 zmiennej długości, który przeszukuje strumień bitów w celu odnalezienia wycinkowych i blokowych kodów startowych. Pewne zdekodowane obrazy z każdej grupy obrazów są zapisywane do bufora klatek 60C oraz 60D w celu użycia ich następnie jako prognostyki podczas otrzymywania lub konstruowania innych obrazów, na przykład obrazów typu P lub B, w grupie obrazów. Bufory klatek 60C oraz 60D mają pojemność przynajmniej dwóch klatek wideo. Rozseparowane pakiety audio są przechowywane w buforze 60E bitów audio, który jest odczytywany w trakcie procesu dekodowania sygnału audio w dekoderze 110. W następstwie dekodowania audio MPEG lub AC3 powstaje cyfrowy sygnał dźwiękowy, który doprowadzany jest do postprocesora dźwięku 130 w celu przeprowadzenia konwersji sygnału cyfrowego na analogowy oraz wygenerowania wyjściowych sygnałów dźwiękowych o różnych pasmach podstawowych. Wyjściowy cyfrowy sygnał wizyjny transformowany jest na format rastrowego rozwinięcia obrazu przez bufor wyświetlania 580 ze zdekodowanych bloków odczytywanych z bufora klatki odniesienia 60C/D. Jednakże, podczas pracy w trybie trikowym źródłem sygnału wyjściowego może być pamięć polowa korzystnie rekonfigurowana z pamięci niewykorzystywanej podPL 207 381 B1 czas pracy w trybie trikowym. Taka konwersja bloku w rozwinięcie rastrowe w buforze wyświetlania
580 może być korzystnie nadzorowana w odpowiedzi na pracę w trybie trikowym. Bufor wyświetlania sprzężony jest z urządzeniem kodującym 590, który wykonuje konwersję cyfrowo-analogową oraz generuje składniki wizyjne pasm podstawowych oraz zakodowane sygnały wizyjne.
Działanie przykładowego odtwarzania wideo przedstawione na fig. 2 może być rozważane w odniesieniu do fig. 1B, która ilustruje sekwencje odtwarzania do przodu i trikowego odtwarzania wstecz. Jak zostało to opisane uprzednio, zakodowane relacje istniejące w obrębie każdej grupy obrazów wymaga, aby każda grupa obrazów była dekodowana w kierunku do przodu poczynając od klatki typu I lub obrazu. W ten sposób, funkcje trybu wstecznego mogą być spełniane poprzez efektywne skoki wstecz w celu odczytania wcześniejszej lub poprzedzającej klatki typu I, a następnie dekodowania do przodu w obrębie tej grupy obrazów. Zdekodowane obrazy są przechowywane w pamięciach buforowych klatek w celu kolejnego odczytu w odwrotnym porządku. Jednakże, sekwencje, które zawierają obrazy typu B mogą wykorzystywać dalsze korzystne właściwości, które będą opisane dalej. Na fig. 1B zakłada się, w pewnym czasie poprzedzającym moment t0, na przykład w punkcie obrazu typu I I(1), warunki odtwarzania do przodu przykładowego odtwarzacza wideo w odpowiedzi na polecenie użytkownika. Każda grupa obrazów jest dekodowana do przodu jak przedstawiono na fig. 1A przez strzałki łączące klatki typu I, B i P. W pewnym czasie poprzedzającym moment t0, wybrany zostaje trikowy tryb odtwarzania wstecznego z potrójną prędkością, który jest inicjowany w chwili t0, gdzie zdekodowany i wyświetlony zostaje obraz typu I I(25). Jak zostało to opisane uprzednio, następnym obrazem wymaganym do dekodowania we wstecznym trybie trikowym, jest obraz typu I I(13), przez co przetwornik zostaje przemieszczony, jak wskazuje to strzałka J1, w celu osiągnięcia obrazu I(13). Odczyt sygnału i dekodowanie postępują za sekwencją odtwarzania wskazywaną na fig. 1B przez strzałki J1 w celu osiągnięcia klatki I(13), J2 w celu osiągnięcia klatki P(16), J3 klatki P(19), J4 klatki P(22)... J(n). Przeszkadzające klatki typu B ukazane na fig. 1B są odczytywane, ale mogą być odrzucane, na przykład w buforze poprzez zapis kasujący lub przez zaniechanie dekodera, jak wymaga tego specyfika każdego trikowego trybu odtwarzania. W celu uniknięcia opisanej uprzednio potrzeby dodatkowego buforowania wizji w trybie wstecznym, stosuje się różne korzystne sposoby działania dekodera MPEG, sterowania i alokacji pamięci buforowej.
Wyznaczenie danych obrazu może zostać wykonane w jednostkach sektorów, do których odwołania znajdują się w strumieniu bitów 41 lub pamięci 60A bufora strumienia bitów. Jednakże, ze względu na to, że kod startowy obrazu MPEG jest ukryty w sposobie formatowania danych DVD i nie musi rozpoczynać się wraz z granicą sektoru, wynikające z tego położenie kodów startowych obrazów w jednostkach sektorów może nieuchronnie zawierać fragmenty poprzedzających, co jest możliwe, sektorów niezawierających danych wizyjnych.
Fig. 5A przedstawia część przykładowego strumienia bitów 41 włączając jednostkę obiektu wideo zawierającą sektory danych audiowizualnych oraz danych pod-obrazów. Każdy sektor zawiera 2048 załadowanych bajtów z adresami sektorów przedstawionymi jako zacienione na granicach sektorów.
Na fig. 5B obraz wideo A kończy się w sektorze 54 i natychmiast po nim następuje obraz wideo B. Jednakże pozostałość kodu startowego obrazu B pojawia się w sektorze 65, z przeszkadzającymi sektorami 55 - 64 zawierającymi pod-obraz i dane audio.
Wyznaczenie lub lokalizacja danych obrazów/sektorów wideo w jednostkach sektorów zilustrowano na fig. 5C, gdzie kod startowy dla przykładowego obrazu A pokazany jest w sektorze 2 wraz z kodem startowym następnego obrazu B pojawiającym się w sektorze 9. Równanie 1 przedstawia lokalizację danych obrazu poprzez licznik sektorów - obraz A rozpoczyna się w sektorze 2, a kończy się w sektorze 9, obraz A trwa na przestrzeni 8 sektorów.
Fragmenty niepożądanych danych przedstawione są na fig. 5C, gdzie dane wideo zobrazowano w odniesieniu do numerów sektorów (wideo). Jednakże taki sposób numeracji sektorów wideo może być bezpośrednio związany z numerem sektora lub adresem w odtwarzanym strumieniu bitów. Na fig. 5C strumień bitów wideo przedstawiony został wraz z przykładowym obrazem A oznaczonym przez kod startowy obrazu rozpoczynającego się bajtem 1000 sektora wideo 2.
Poprzedzające 999 bajtów sektora 2 odpowiada danym z poprzedniego obrazu. Możliwe jest zastosowanie bardziej szczegółowego przetwarzania, gdzie dane obrazu lokalizowane są w jednostkach bajtów. Dokładne przetwarzanie bajtowe może wymagać bardziej skomplikowanego sterowania pamięcią niż to wymagane dla dokładności na poziomie sektorów. Jednakże, przy zastosowaniu dokładnego przetwarzania bajtowego, w buforze bitów wideo przechowywane są tylko kompletne dane
PL 207 381 B1 obrazów i w ten sposób eliminuje się fragmenty i unika się stanu zawieszenia dekodera wideo 530. Dokładne bajtowe określenie obrazów przedstawione jest na fig. 5C dla przykładowego obrazu A, gdzie kod startowy obrazu rozpoczyna się bajtem 500 sektora 9. Na tej podstawie można wyliczyć rozmiar obrazu A wykorzystując w tym celu równanie 2, który to rozmiar wynosi 13 835 bajtów. W ten sposób dokładne bajtowe adresy obrazów umożliwiają mikroprocesorowi-kontrolerowi 510 wskazanie określonego bajtu w przykładowym buforze bitów wideo 60B, od którego dekoder zmiennej długości VLD 531 z fig. 3 rozpocznie proces dekodowania.
Jeśli dane obrazu określone są w jednostkach sektorów, dekoder MPEG czytający obrazy z bufora bitów wideo musi być chroniony przed zawieszeniem wynikającym z fragmentów odrzuconych obrazów pojawiających się przed lub po zdekodowaniu pożądanego obrazu. Takie fragmenty obrazów przedstawiono w przykładowym buforze bitów wideo z fig. 5D, który pokazuje różnorakie sektory zawierające klatki typu P i B, gdzie niepożądane dane pochodzące z poprzedniego lub następnego obrazu oznaczono przez ukośne kreskowanie. Każda jednostka bloku obiektu wideo VOBU zawiera dane nawigacyjne, które identyfikują adres sektora końcowego pierwszego obrazu typu I oraz adresy ostatniego sektora dwóch następujących odniesień lub obrazy typu P pierwszej grupy obrazów VOBU. Dane nawigacyjne zawierają dodatkowo adresy sektora obrazów typu I w poprzedzających lub następujących jednostkach VOBU, i stąd bez trudności może być zrealizowany jedynie tryb trikowy oparty na klatkach typu I. Jednakże, problemy wynikające z fragmentów obrazów mogą zostać uniknięte, jeżeli bajt końcowy pożądanego obrazu zostanie zidentyfikowany. Mikroprocesor 510/A, na przykład typu ST20, jest korzystnie skonfigurowany jako sprzętowa wyszukiwarka, która przeszukuje dane przechowywane w buforze ścieżek w celu odnalezienia bajtu końcowego klatki typu I w obrębie sektora końcowego przechowywanego w pamięci 60A bufora strumienia bitów. W ten sposób poprzez identyfikację obrazu typu I, może ona być załadowana samotnie do bufora bitów wideo 60B, a zatem unikając przechowywania obrazów cząstkowych, które mogą powodować problemy z zablokowaniem dekodera. Przykładowy mikroprocesor 510/A może być wykorzystany do znalezienia kodów startowych wyłącznie w trybie obrazu typu I, ponieważ z danych nawigacyjnych znany jest sektor kończący. Jednakże, w przypadku klatek typu P, B lub wielorakich obrazów typu I, przykładowy mikroprocesor może nie stanowić praktycznego rozwiązania, ponieważ dla każdego bajtu danych w strumieniu bitów musi zostać przeprowadzony test, co oznacza intensywne wykorzystanie mikroprocesora-kontrolera 510.
Lokalizacja i określenie kodów startowych przed rozpoczęciem procesu dekodowania może zostać usprawnione przez pewien układ, który wykorzystuje procesor linkujący 505 z fig. 3 w celu wyszukiwania kodów startowych w strumieniu bitów przed pamięcią 60A bufora strumienia bitów. Takie wykorzystanie procesora linkującego 505 korzystnie wprowadza przetwarzanie wstępne lub analizę obrazu i/lub nagłówków audio, które mogą być sygnalizowane mikroprocesorowi-kontrolerowi 510. Posiadając zatem zidentyfikowane nagłówki w przychodzącym strumieniu bitów przed buforem ścieżek, obrazy i dźwięk wymagane przez określony tryb trikowy mogą być przechowywane w przykładowej pamięci 60A bufora strumienia bitów, przy czym niepożądane obrazy i inne dane kasowane są w tym buforze przez zapisanie.
W pierwszym układzie kody startowe zostają zlokalizowane dzięki wykorzystaniu detektora kodu startowego 520A, który przeszukuje strumień bitów albo w pamięci 60A bufora strumienia bitów albo buforze bitów wideo 60B. Chociaż sposób ten posiada tę zaletę, iż projekt detektora kodu startowego MPEG jest znany, to jednak, detektor ten wymaga przylegających danych. Stąd przeszukiwane mogą być tylko dane w buforze bitów wideo, bez struktur danych DVD i transportowych. Tym samym, przeszukiwanie danych MPEG w buforze mechanicznym/ścieżek może być trudne do usprawnienia, może nie optymalnie wykorzystywać pamięć, a przykładowy mikroprocesor-kontroler 510 może być przeciążony przerwaniami, wymagając w ten sposób uzupełnienia o drugi mikroprocesor, na przykład 510A w celu implementacji wykrywania kodu startowego.
W urządzeniu według wynalazku, detekcja kodu startowego jest usprawniona przez detektor kodu startowego, który przeszukuje strumień bitów wyłącznie pod kątem kodów startowych MPEG przed lub w obrębie pamięci 60A bufora strumienia bitów. W ten sposób, poprzez korzystne zastosowanie wczesnej analizy nagłówków wizji MPEG w strumieniu bitów, mogą zostać antycypowane wymagania trikowego odtwarzania obrazów i może zostać wykonana praca pamięci określona dla odtwarzania trikowego. Taka sama korzystna analiza może zostać zastosowana wobec strumienia pakietów wideo przed buforem bitów wideo podczas pracy w trybie trikowym. Na przykład, w trybie odtwarzania wstecznego, takie przetwarzanie wstępne zezwala na buforowanie określonego wyboru obrazów
PL 207 381 B1 w celu dekodowania w trakcie pracy trikowej oraz na usunię cie niepożądanych obrazów przed zapamiętaniem. Taka selekcje obrazów, na przykład odrzucenie klatek typu B, może w przybliżeniu podwoić liczbę obrazów typu I i P przechowywanych w przykładowym buforze bitów wideo 60B podczas odtwarzania trikowego. A zatem identyfikacja i odróżnienie danych pożądanych od niepożądanych jest prostą konsekwencją przetwarzania wstępnego lub analiz dokonywanych przez pamięć buforową, co pozwala na przechowywanie przez bufor bitów wideo 60B tylko pożądanych lub określonych przez odtwarzanie trikowe obrazów. Stąd możliwe jest przechowywanie większej ilości jednostek obiektów wideo określonych przez tryb trikowy, usprawniając w ten sposób płynne odtwarzanie ruchu w trybie trikowym.
Korzystnie w urządzeniu pojemność pamięci 60A bufora strumienia bitów oraz bufora bitów wideo 60B jest zwiększona w trakcie odtwarzania w trybie trikowym dzięki wybieraniu w celu przechowania tylko tych danych, które będą kolejno wykorzystywane. Na przykład, w przykładowym trybie odtwarzania trikowego nie są dekodowane klatki typu B, a zatem nie muszą być one przechowywane w buforach ścieżki lub bitów wideo. W ten sposób przechowuje się tylko obrazy pożądane, a niepożądane lub inne dane są odrzucane. W celu usprawnienia tej korzystnej selekcji pomiędzy pożądanymi, a niepożądanymi obrazami wymagane jest, aby strumień bitów lub strumień pakietu wideo podlegał przetwarzaniu wstępnemu, analizie lub przeszukiwaniu w celu zlokalizowania nagłówka sekwencji, nagłówka grupy obrazów lub nagłówka obrazu przed załadowaniem do pamięci. Taka analiza lub wstępne przetworzenia skompresowanego strumienia bitów pozwala na wyznaczenie parametrów MPEG takich, jak dane time_code, closed_gop oraz broken_link dla każdej grupy obrazów GOP. Dodatkowo, dzięki wstępnemu przetwarzaniu strumienia pakietu może zostać zlokalizowany kod startowy obrazu picture_start_code, pozwalając w ten sposób na obróbkę nagłówka obrazu picture_header, co z kolei pozwala na wyznaczenie, przykładowo, odniesienia czasowego temporal_reference, typu kodowania obrazu picture_coding_type (I, P i B). Jednakże taka korzystna analiza MPEG jest trudna, jak zostało to opisane, ze względu na podział na partycje DVD danych MPEG na sektory po 2048 bajtów. W dodatku, ze względu na to, że kody startowe MPEG (4 bajty) nie są ustawione zgodnie z sektorami, przykładowy kod startowy obrazu może być rozłożony w poprzek granicy sektora. Fig. 5B ilustruje strumień bitów przed pamięcią 60A bufora strumienia bitów, gdzie obraz A kończy się w sektorze 54, i natychmiast za nim następuje kod startowy obrazu B. Jednakże pozostałość kodu startowego obrazu B pojawia się w sektorze 65, wraz z wystąpieniem przeszkadzających tutaj sektorów 55 -64 zawierających pod-obraz oraz dane audio.
Fig. 5C ilustruje zdemultipleksowany strumień bitów sektora wideo przed buforem bitów wideo 60B, gdzie kod startowy przykładowego obrazu ukazany jest w sektorze 2 wraz z kodem startowym następnego obrazu B pojawiającym się w sektorze 9. Rozłożony kod startowy występuje dla obrazu C, gdzie jest on inicjowany bajtem 2046 sektora 12 i kontynuuje w sektorze 13. Stąd tez, część kodu startowego znajduje się w jednym sektorze wideo wraz z resztą w następnym sektorze wideo.
Podczas pracy w trybie trikowym, a szczególnie podczas odtwarzania wstecznego wymagana jest maksymalna pojemność bufora obrazów do przechowywania grup obrazów w celu ich odczytu w odwrotnym porządku. W trakcie takich trikowych trybów pracy pewne funkcje lub właściwości odtwarzacza mogą być niewymagane, mogą być nieużyteczne lub niedostępne. Takie funkcje lub właściwości zawierają dźwięk, różnorodne języki, pod-obrazy, wyświetlanie na ekranie, a wszystkie one wykorzystują pojemność pamięci buforowej. Zatem obszar pamięci buforowej niewykorzystywany przez te funkcje lub właściwości może być w trakcie odtwarzania trikowego realokowany w celu uzyskania dodatkowej pamięci obrazów. Jednakże, podczas pewnych trybów trikowych, na przykład trybu szybkiego odtwarzania może wystąpić pożyteczne wymaganie odtwarzania towarzyszącego dźwięku z dużą prędkością i z korekcją wysokości w celu pomocy w odnajdywaniu scen. Dodatkowo, może być wymagane ograniczone wyświetlanie na ekranie mające na celu wskazywanie prędkości odtwarzania trikowego i kierunku. Stąd też niewykorzystywany obszar pamięci może być dynamicznie rekonfigurowany w celu korzystnego usprawnienia w trybie trikowym buforowania skompresowanych obrazów, zdekodowanych prognostyków klatek oraz pól wizyjnych wyświetlacza.
W układzie według wynalazku realokuje się funkcjonalnie pamięć buforową SDRAM 60E-H pomiędzy odtwarzaniem do przodu, a trybami odtwarzania trikowego. W trakcie odtwarzania trikowego, w celu dostarczenia dodatkowej pamięci dla skompresowanych obrazów, w celu zwiększenia bufora bitów wideo 60B oraz dostarczenia dodatkowej klatki prognozującej służącej dekodowaniu można wykorzystać obszar pamięci przydzielony w trakcie trybu odtwarzania do przodu dla dźwięku 60E, pod-obraz 60G. W podobny sposób może zostać realokowana pamięć buforowa, na przykład, kiedy
PL 207 381 B1 dla pewnych trybów odtwarzania trikowego przechowywanie specjalnie skompresowanych obrazów nie jest wymagane, wtedy niewykorzystywany lub niewymagany obszar pamięci jest przekonfigurowany w celu utworzenia pamięci buforowej wyświetlacza wyjściowego, oznaczonej jako 60H na fig. 3. Pamięć buforowa wyświetlacza wyjściowego może przechowywać albo klatkę albo pole danych wizyjnych mających, które ma zostać wyświetlone. Ta przydzielana dynamicznie pamięć usprawnia otrzymanie wyjściowego obrazu, a nie jest wykorzystywana jako prognostyk, upraszczając w ten sposób zarządzanie pamięcią w trakcie pracy w trybie trikowym. Realokacja pamięci może zostać zainicjowana przez wybór użytkownika, jednakże dynamiczna alokacja może być określona przez korzystne wymagania przechowywanych sekwencji odtwarzania trikowego i/lub wykorzystanie korzystnych antycypacji obrazu uzyskanych dzięki połączonej z analizą strumienia bitów identyfikacji typu skompresowanego obrazu, jak zostało to opisane powyżej.
W kolejnym korzystnym układzie pojemność pamięci buforowej klatek może zostać efektywnie podwojona w trakcie pracy w trybie trikowym poprzez horyzontalne podpróbkowanie zdekodowanych danych obrazu przed zachowaniem w pamięci. Horyzontalne podpróbkowanie, implementowane na przykład przez pod-próbnik 62 uśrednia wartości par pikseli sąsiadujących horyzontalnie w odpowiedzi na rozkaz sterujący trybu trikowego pochodzący z mikroprocesora-kontrolera 510. Na fig. 3 sygnał S1 reprezentuje dane w pełnej szerokości pasma doprowadzone do pod-próbnika 62 z pod-spróbkowanymi danymi wyjściowymi reprezentowanymi przez sygnał S2. W ten sposób pod-spróbkowany obraz zawiera w przybliżeniu połowę oryginalnej liczby pikseli i stąd wymaga połowy pojemności pamięci do zapamiętania obrazu lub klatki wideo. W ten sposób poprzez horyzontalne podpróbkowanie podczas odtwarzania trikowego dostępna jest dodatkowa pamięć buforowa klatek, zgodnie z wymaganiami algorytmu odtwarzania trikowego. Poza zwiększoną pojemnością pamięci w trybie odtwarzania trikowego, wynalazcze użycie podpróbkowania korzystnie redukuje stopień zarządzania szyną danych i adresu przez menedżera pamięci przy dostępie do pamięci w trakcie trybu trikowego. Na przykład tylko połowa danych jest przesyłana w połowie okresu czasu, upraszczając w ten sposób sterowanie i zarządzanie pamięcią.
Horyzontalnie pod-spróbkowany obraz odczytywany zostaje z pamięci, na przykład 60C, D lub wynalazczo realokowanego bufora H w celu odtworzenia przez pod-próbnik 62. Na fig. 3 sygnał S3 reprezentuje pod-spróbkowane referencyjne dane obrazu odczytane z pamięci w celu regeneracji pikseli. Pod-próbnik 62 może adresować każdą pod-spróbkowaną pozycję pamięci dwukrotnie, jednakże akcja tak podwaja ilość danych i wykorzystanie szyny adresowej, które było korzystnie zredukowane podczas procesu zachowywania. Stąd też pod-spróbkowany obraz odzyskiwany jest poprzez duplikację wartości każdego piksela i wyjście jako sygnał S4 służący do bezpośredniego sprzężenia dekodera wideo 530 przed dekodowaniem MPEG. Chociaż metoda ta podwaja pojemność bufora i redukuje obciążenie zarówno szyny danych jak i szyny adresowej, zredukowana zostaje horyzontalna rozdzielczość przestrzenna. Jednakże redukcja ta występuje podczas pracy w trybie trikowym i przy zwiększonych prędkościach ruchu obrazów ludzka percepcja psycho-wizualna może interpretować tę redukcję jako niezauważalną.
Schemat blokowy z fig. 4 przedstawia te same oznaczenia funkcji i elementów jak na fig. 2, jednakże fig. 4 zawiera dodatkowe układy według wynalazku, które zostaną wyjaśnione.
Można uważać, że przykładowy odtwarzacz cyfrowych dysków wideo pokazany na fig. 2, 3 i 4 zawiera dwie części, a mianowicie część czołową i część tylną. Część czołowa steruje dyskiem i przetwornikiem, a część tylna prowadzi proces dekodowania MPEG oraz ogólną kontrolę. Taki podział funkcjonalny może stanowić oczywiste rozwiązanie spójnego ustalonego dekodowania MPEG. Jednakże, przy takim podziale na przetwarzanie i zarządzanie w części tylnej, kontroler może zostać przeciążony, na przykład, podczas pracy w trybie trikowym, a w szczególności podczas odtwarzania wstecz.
Mikroprocesor-kontroler 510 ma zarządzać przychodzącym strumieniem bitów 41 otrzymywanym z części czołowej oraz identyfikować pożądane i niepożądane dane. W pierwszym korzystnym układzie strumień bitów 41 jest w sposób kontrolowalny prowadzony między czołową i tylną częścią. W przykładowym odtwarzaczu z fig. 2 optyczne urządzenie zbierające lub przetwornik 15 może być repozycjonowany, jak zostało to opisane. Adresy sektorów otrzymane w części tylnej są wysyłane przez szynę sterującą I 2C 514 do systemu serwo układu scalonego 50 części czołowej w celu zmiany pozycji przetwornika 15. Jednakże, optyczne urządzenie zbierające lub przetwornik 15 jest serwosterowalne i odpowiada na adres sektora, który jest obcinany w celu usunięcia najmniej znaczącej cyfry. Takie obcięcie adresu pozwala na zgromadzenie sektorów w grupach lub blokach po 16 sektorów.
PL 207 381 B1
Grupowanie takie wymagane jest do usprawnienia korekcji błędu (ECC) za pomocą kodowania iloczynu Reed'a-Solomona oraz ładowania danych z zastosowanym przeplotem dla 16 sektorów podczas rejestracji. W ten sposób uzyskiwana jest informacja z dysku w grupach ECC 16 sektorowych, i w ogólności uzyskane dane zawierające adres pożądanego sektora są dostępne z góry lub przewidując ten adres żądany przez przetwarzanie z części tylnej. W dodatku, przetwornik przesuwa się względem obracającego się dysku ruchem albo radialnym albo obwodowym w celu osiągnięcia ścieżki zawierającej blok ECC sektorów, w obrębie którego znajduje się pożądany adres lub adresy. W ten sposób, wraz ze zmianą pozycji, przetwornik zmienia ogniskowanie i sektory są odczytywane, gdy dysk obraca się w kierunku bloku sektora ECC zawierającego żądany adres sektora. Stąd, rozważając najgorszy przypadek pozycjonowania przetwornika i adresu pożądanego sektora, odczytywanych mogą być setki niepożądanych sektorów. Im większa liczba sektorów wraz z rosnącym promieniem dysku, tym większa liczba odtworzeń niepożądanych sektorów. W dodatku pozyskanie wcześniejszego lub poprzedzającego adresu może wymagać wykonania pełnego obrotu dysku z wynikającym z tego odtwarzaniem niepożądanego sektora. Wynika z tego, iż przed wystąpieniem adresu pożądanego sektora odtwarzana jest znaczna ilość danych niepożądanych. Na fig. 4 taki strumień bitów zaznaczono jako sygnał 44, zawiera on zarówno pożądane jak i niepożądane dane, które są doprowadzane do bloków korekcji błędów ECC 45 i 46. Strumień bitów z wykonaną korekcją błędów jest sygnałem wyjściowym z układu przetwarzania ECC jako sygnał 41, który doprowadzany jest do części tylnej, w której mikroprocesor-kontroler 510 dokonuje identyfikacji pożądanych i niepożądanych danych.
Na fig. 4 pokazano układ według wynalazku, w którym sygnał z danymi 44 opuszcza demodulator kodu 8:16 i jest doprowadzany poprzez bufor 45A korekcji błędów, na przykład bramkę transmisyjną lub funkcję logiczną, do bloków korekcji błędów metodą Reed'a-Solomona 45 i 46. Bufor 45A korekcji błędów jest sterowany za pomocą komparatora 43, który ma za zadanie porównanie uzyskanego bieżącego adresu sektora z wykonaną korektą błędów w bloku 47 korekcji błędów i wychodzącym jako sygnał 42 z adresem sektora 53A otrzymanym z części tylnej, który oznacza następne żądane dane, na przykład typ obrazu. Porównanie to może zostać usprawnione przez zastosowanie komparatora lub funkcji logicznej. W ten sposób, kiedy adres odtwarzanego sektora 42 równy jest adresowi 53A żądanemu przez część tylną, zdemodulowane dane wyjściowe mogą, poprzez sygnał 43A, zostać doprowadzone do bloków buforowych korekcji błędów ECC 45 i 46. Ponieważ korekcja błędów dokonywana jest na grupach po 16 sektorów, porównanie żądanego adresu z adresem bieżącym wykonywane jest w taki sposób, że blok ECC sektorów zawierający żądany sektor dostaje pozwolenie na wykonanie korekcji Reed'a-Solomona. Na przykład, porównanie adresu sektora może być usprawnione w przypadku adresów z usuniętymi najmniej znaczącymi cyframi.
Ponieważ, na przykład obraz MPEG typu B może zajmować 3 sektory, a obraz MPEG typu I może wymagać 30 sektorów lub więcej, żądany adres sektora oznacza początkowy sektor danych pożądanego typu. Dodatkowo, można uważać, że sygnał 43A, który oznacza rzeczywistą równość pomiędzy adresem pożądanego, a odtwarzanego sektora reprezentuje funkcję przerzutnika, gdzie stan logiczny jest utrzymywany, aż do momentu, gdy zmianie ulega pożądany adres, tj. kiedy żąda się skoku przetwornika. Otrzymanie nowego adresu sektora zmienia stan sygnału 43A, który wstrzymuje odtwarzane dane, aż nowy wymagany adres nie pojawi się w odtwarzanym sygnale i nie zostanie wykryty przez komparator 43. Mówiąc innymi słowy, sygnał 44 pozostaje w gotowości do korekcji błędów, bloki ECC 45 i 46 są włączone, a sygnał wyjściowy 41 utrzymywany, lub mówiąc prościej, dysk kontynuuje odtwarzanie, aż do żądania innej pozycji przetwornika.
Wykrycie pojawienia się pożądanego sektora może zostać przeprowadzone przez porównanie z obciętymi adresami sektorów tak, aby zapewnić, że bufory 45 i 46 korekcji błędów są zapełnione sektorami, które mają podlegać korekcji Reed'a-Solomona. W kolejnym przykładzie wykonania, to samo wykryte pojawienie się może zostać zrealizowane z wykorzystaniem sygnału 45B w celu sterowania lub umożliwienia pracy pamięci buforowych korekcji błędów 45 i 46. W alternatywnym wynalazczym układzie włączony jest tylko żądany sektor poprzez wyjściowy element sterujący 46A. Selekcja dokonywana przez element 46A różni się od tej prowadzonej przez bufory 45A i 45B korekcji błędów, która, ze względu na format danych zawierający przeplot lub przetasowanie, umożliwia blokowi ECC przechowywanie żądanego sektora. Detekcja żądanego sektora może zostać przeprowadzona poprzez porównanie adresu bieżącego sektora oraz żądanego lub pożądanego adresu. Jednakże, ze względu na to, iż ta funkcja kontrolna następuje zasadniczo po korekcji błędu i usunięciu przetasowania, co wykorzystuje pamięć buforową, wynikowy sygnał wyjściowy 41 jest opóźniony o przynajmniej
PL 207 381 B1 jeden okres czasowy bloku ECC. Zatem dane wyjściowe z korekcją błędów odpowiadają grupom sektorów odczytywanych z góry wobec pożądanego adresu danych obecnego na wejściu bufora ECC. Oczywiście, ponieważ opóźnienie bufora jest znane, może ono zostać skompensowane przez sprzężenie sygnału 43A z elementem 46A, na przykład przez użycie metody opóźniającej oznaczonej przez t. Element sterujący 46A przedstawiony został jako szeregowy element przełącznikowy zdolny do włączania lub wyłączania przepływu strumienia bitów do części tylnej. W ten sposób sygnał 43A, taktowany odpowiednio w celu kompensacji opóźnień przetwarzania i buforowania, może zostać zastosowany do selektywnego włączania pozbawionego przeplotu strumienia bitów 41 do bloku procesora 500. Wykorzystanie uprzednich wynalazczych przykładów wykonania pozwala na doprowadzanie do części tylnej w celu przechowania i dekodowania tylko danych odczytanych z sektorów pożądanych, redukując w ten sposób obciążenie mikroprocesora-kontrolera 510.
Jak zostało to opisane, odczytywany sygnał 31 zostaje zdemodulowany w demodulatorze 40 w celu usunięcia modulacji 8:16 oraz wytworzenia sygnałów wyjściowych 44 i 44A. Sygnał 44 prowadzony jest do operacji usunięcia przeplotu i korekcji błędów w wyniku czego otrzymywany jest sygnał 44A po dokonanej odrębnej korekcji błędów w celu wytworzenia adresów odtwarzanych sektorów. Usunięcie przeplotu i korekcja błędów wykonywana jest w pamięciach buforowych ECC 45 i 46 z fig. 4. Każdy bufor przechowuje 16 sektorów odtwarzanego strumienia danych ułożonych w formie tablicy w celu ułatwienia usunięcia przeplotu oraz umożliwienia iloczynowego przetwarzania żądanego wiersza i żądanej kolumny. Kaskadowe pamięci buforowe ECC wprowadzają pewne opóźnienie do odtwarzanego szeregowego strumienia bitów, które przy jednokrotnej prędkości obrotowej, 1X, można przybliżyć następującym oszacowaniem (2*16*1,4) milisekund, gdzie 2 reprezentuje bufory ECC 45 i 46, 16 reprezentuje sektory, na których dokonywana jest korekta, a 1,4 milisekundy reprezentuje okres sektora przy jednokrotnej prędkości obrotów. W ten sposób odtworzony szeregowy strumień bitów zostaje opóźniony w przybliżeniu o przynajmniej 45 milisekund.
Strumień bitów 44A przetwarzany jest w układzie 47 korekcji błędów w celu skorygowania błędów w adresach identyfikacji sektorów. Jednakże, ze względu na to, iż adres sektora jest krótki i charakterystyczny dla sektora, układ 47 korekcji błędów wprowadza istotne opóźnienie do sygnału adresu odtwarzanego sektora 42.
Jak zostało to już opisane, strumień bitów, na który dokonywana jest korekcja błędów podlega związanemu z nią opóźnieniu. Strumień bitów 41 przyjmowany jest w części tylnej, gdzie rozmaite pakiety MPEG zostają oddzielone od danych DVD. Pakiety wideo przechowywane są w przykładowym buforze 60B w celu zdekodowania przez dekoder wideo 530. Jak opisano to poprzednio, dekoder 530 wysyła sygnał 513 do mikroprocesora-kontrolera 510 w celu poinformowania o ukończeniu dekodowania wszystkich obrazów, co z kolei powoduje pobranie następnego obrazu do deszyfracji. Stąd też, na zakończenie poszczególnego obrazu, na przykład, obrazu zawartego w sektorze wideo oznaczonego literą A na fig. 5A, dekoder generuje sygnał 513. Przykładowy następny obraz pożądany do zdekodowania musi zostać odczytany z dysku, stąd też przetwornik 15 musi zostać przesunięty do adresu sektora zawierającego pożądany obraz. Fig. 5A ukazuje część strumienia bitów 41, doprowadzanego do pamięci 60A bufora strumienia bitów, włączając w to jednostkę obiektu wideo składającą się z wielu sektorów, z których każdy zawiera dane wideo, audio, pod-obrazy oraz dane nawigacyjne. Koniec sektora A może zostać korzystnie wykryty w pamięci 60A bufora strumienia bitów, lub przed nim, poprzez pojawienie się następnego adresu sektora, lub idąc w ślad za procesem dekodowania MPEG, jak wskazuje to sygnał 513. Stąd też, strzałka oznaczona jako NASTĘPNY na fig. 5A przedstawia przybliżone taktowane wystąpienie żądania następnego adresu sektora z mikroprocesora-kontrolera 510 wysłanego do części czołowej. Ten adres wraz z żądaniem skoku przesyłany jest przez szynę sterującą I 2C, która, zależnie od ustawień priorytetów przerwań, opóźnia ukazanie się żądania pożądanego sektora.
W kolejnym korzystnym układzie priorytety przerwań mikroprocesora-kontrolera 510 podlegają zmianie porządku pomiędzy trybami pracy. Na przykład, w trybie odtwarzania do przodu adresowanie pamięci i wymagania co do sterowania są inne od tych dla pracy w trybach trikowych, a w szczególności podczas pracy w trybie odtwarzania wstecznego. Podczas pracy w trybie trikowym pewne funkcje, a w konsekwencji związana z nimi pamięć i kontrola dekodera MPEG nie są wymagane. Na przykład, deszyfracja dźwięku i przetwarzania pod-obrazów nie są wymagane podczas pracy w trybie trikowym, stąd też przerwaniom adresu, danych i szyny sterującej mogą zostać przyznane niższe priorytety, a dostępowi do obrazu z buforów ścieżek i bitów wideo wyższe.
PL 207 381 B1
Prowadzone w porę pobieranie żądanych sektorów jest szczególnie ważne podczas pracy w trybie trikowym. Jednakże, pobieranie pożądanych sektorów w reakcji na przetwarzanie w części tylnej tworzy pewną pętlę sterującą z wieloma elementami opóźniającymi, jak zostało to opisane. Na fig. 4 ukazany jest wynalazczy układ, który redukuje opóźnienia w pobieraniu sektorów, który krótko mówiąc, zezwala, aby wykrycie pojawienia się ostatniego żądanego sektora inicjowało przeskok przetwornika do otrzymanego uprzednio adresu nowego sektora. Fig. 5A pokazuje strzałkę B w położeniu wskazującym przybliżoną relację czasową pomiędzy odtwarzanym strumieniem bitów 41 lub pamięcią 60A bufora strumienia bitów, a przekazaniem do układu serwo wynalazczych adresów sektorów typu następny/koniec. Na fig. 5A strzałka B występuje krótko po tym, jak pakiet nawigacyjny, oznaczony kreskowaniem, został odczytany ze strumienia bitów. Przy obrazie A, strzałka NASTĘPNY ilustruje pojawienie się, w przybliżeniu siedem sektorów później, sygnału 513 (dekodowanie ukończone). Jednakże, w rzeczywistości obrazy typu I i P zawierają znacznie więcej sektorów niż te zaznaczone na fig. 5A, stąd strzałka NASTĘPNY, odpowiadająca wydaniu żądania adresu i skoku, pojawia się znacznie później niż na ilustracji. Generowane są zatem przez mikroprocesor-kontroler 510 wynalazcze adresy sektorów typu następny/koniec w ślad za pobraniem pakietu nawigacyjnego i/lub korzystnym wyznaczeniu adresu obrazu/sektora oraz skonstruowaniu tabeli. Wykorzystanie adresów sektorów typu następny/koniec umożliwia rozpoznanie tego, że adres pożądanego sektora może zostać czasowo rozdzielony od rozkazu skoku dla przetwornika. Adresy sektorów typu następny/koniec zostają efektywnie załadowane wstępnie do systemu serwo przetwornika, a ruch przetwornika zostaje wykonany w odpowiedzi na odczytanie adresu pierwszego niepożądanego sektora. Ponieważ adresy sektorów nie są przedmiotem, związanego z ECC, opóźnienia strumienia bitów 41, przetwornik przesuwany jest zanim ostatni pożądany sektor pojawi się na wyjściu bloków ECC 45 i 46.
Na fig. 4 szyna sterująca I 2C 514 przesyła dane sterujące, które przekazują systemowi sterującemu serwo układowi scalonemu 50 następny adres pożądanego do odtworzenia sektora. Następny adres pożądanego sektora generowany jest przez mikroprocesor-kontroler 510, który przetwarza dane adresowe poczynając od zapamiętanego odtwarzania trikowego, określonej sekwencji prędkości, odtworzonych i pamiętanych danych nawigacyjnych lub korzystnie wyznaczonych danych obrazu. Następny adres zostaje odczytany z szyny I 2C i przechowany w elemencie 53. Szyna danych I 2C zawiera również wynalazczy adres sektora następny/koniec, lub adres pierwszego niepożądanego sektora. Adres sektora koniec/ostatni może zostać otrzymany z odczytanych i przechowywanych danych nawigacyjnych, jednakże wiąże się to z ograniczoną liczbą określonych wcześniej adresów obrazów, a zatem dla trybów trikowych wykorzystywane są określone korzystnie adresy sektorów kończących obrazy. Adres sektora koniec/ostatni odczytywany jest z szyny I 2C i przechowywany w pamięci adresowej 52. Adres ostatniego sektora może być modyfikowany albo przed transmisją po magistrali albo przy odbiorze, w celu zabezpieczenia przed utratą pożądanego sektora przez, na przykład, dodanie jedności do adresu sektora, co prowadzi do zapewnienia adresowania i detekcji pierwszego niepożądanego sektora. Adres ostatniego sektora lub adres zmodyfikowany 52A zostaje porównuje się z adresem odtwarzanego sektora 42 w przykładowym komparatorze 51 W ten sposób, kiedy adres odtwarzanego sektora 42 równy jest adresowi 52A i pierwszy niepożądany sektor ma być właśnie odczytywany to komparator 51 generuje sygnał sterujący 51A. Sygnał sterujący 51A umożliwia sprzężenie z pamięci adresowej 53, na przykład poprzez załadowanie lub przesunięcie danych przechowywanych danych adresowych do serwa, lub, jak zilustrowano to przez przykładowy przełącznik wybierający 54, który sprzęga adres następnego sektora z systemem serwo i inicjuje zmianę pozycji przetwornika 15. Jak zostało to opisane, przetwornik ten zostaje przesunięty do ścieżki zawierającej następny pożądany obraz, a po odczytaniu owego pożądanego obrazu włączony zostaje korzystnie sygnał wyjściowy 41 wysyłany przez komparator 43.
Przetwornik podąża za ścieżką odczytując pożądane sektory, które są przetwarzane przez część tylną. W odpowiedzi na dane uzyskane z tych sektorów generowana zostaje nowa para adresów sektorów następnego i końcowego i wysyłana magistralą I 2C. Te nowe adresy są odbierane i zapamiętywane tak, jak poprzednio, w pamięciach adresowych 52 i 53. Jednakże w celu uniknięcia inicjacji skoku przetwornika zanim nowy adres sektora końcowego nie zostanie odtworzony i wykryty przez element 51, przykładowy selektor 54 jest zresetowany lub otworzony, w ten sposób zapobiega się przedwczesnej inicjacji i pobraniu adresu nowego sektora.
Sekwencja sterowania przetwornikiem według wynalazku, opisana powyżej inicjuje przesunięcie przetwornika poprzez porównanie pomiędzy nieopóźnionymi istotnie adresami odtwarzanych sek14
PL 207 381 B1 torów a załadowanymi wstępnie adresami pożądanych sektorów tak, że opóźnienie w pobraniu nowego strumienia bitów zostaje usunięte, usprawniając szybszą pracę w trybie trikowym.
Porządek dekodowania obrazów MPEG określany jest, jak dobrze wiadomo, przez hierarchię zakodowanych obrazów, stąd też sekwencja dekodowania odbywa się w trybie pracy do przodu. Jednakże, trikowy tryb pracy może być korzystnie usprawniony dzięki sterowaniu porządkiem dekodowania obrazów MPEG w oparciu o sekwencje obrazów wymaganych przez predefiniowany algorytm odtwarzania trikowego, oraz o wiedzę o tym, gdzie obrazy się rozpoczynają i kończą w buforze bitów wideo. W ten sposób, znajomość położenia obrazów w buforze bitów wideo 60B, na przykład jak zostało to obliczone na fig. 5C lub określone przez przeszukiwanie strumienia bitów na fig. 6, zezwala na to, aby wskaźniki startowe pamięci w detektorze kodu startowego 520A oraz detektorze zmiennej długości 531 były korzystnie kierowane do swobodnie dostępnych obrazów zgodnie z wymaganiami stawianymi na przykład przez pracę w trybie trikowym. Przykładowy bufor bitów wideo pokazany został na fig. 5D i zawiera on fragmenty obrazów, jak zostało to opisane uprzednio. Wskaźnik pamięciowy detektora kodu startowego oznaczony został strzałką SCD, który to wskaźnik przeszukuje przykładowy bufor bitów wideo w celu zlokalizowania kodów startowych MPEG. Jednakże, w trzecim sektorze pierwszego obrazu typu P wskaźnik pamięciowy detektora kodu startowego SCD1 wskazuje wykrycie kodu startowego następnego, ale niepożądanego obrazu. Stąd też, dzięki korzystnemu skierowaniu wskaźnika pamięci kodu startowego do znanych dokładnie w bajtach miejsc w pamięci, unika się niepożądanych obrazów oraz niepożądanych zawieszeń stanu dekodera, jak wskazuje strzałka SCD2 na fig. 5D.
W kolejnym korzystnym układzie trybu trikowego niepożądane dane z poprzednich obrazów są kasowane w wejściowych i wyjściowych rejestrach typu FIFO detektora kodu startowego (SCD) 520A oraz dekodera zmiennej długości (VLD) 531. Sygnały 521/532 zaznaczone na fig. 3 czyszczą lub resetują odpowiednie sektory FIFO w celu oczyszczania danych pozostających z poprzednich operacji dekodowania. Takie oczyszczenie lub opróżnienie rejestrów FIFO zapewnia to, że SCD i VLD rozpoczynają następną operację dekodowania nowych danych z przykładowego bufora bitów 60B, eliminując kolejne źródło błędnych operacji wynikających z pozostałości uprzednich danych.
Praca wstecz z prędkością odtwarzania wymaga reprodukcji klatek typu B, a w ciągu dalszej optymalizacji trybu trikowego praca w trybie wstecznym zostaje korzystnie uproszczona pod względem wymagań pamięci buforowej dzięki odwróceniu porządku, w którym dekodowane są przylegające obrazy typu B. Takie korzystne odwrócenie porządku dekodowania osiągane jest poprzez ustawienie lub sterowanie wskaźnikami startowymi pamięci w celu umożliwienia dekodowania określonych obrazów wymaganych przez tryb trikowy. W jeszcze innej optymalizacji trybu trikowego, rozmiar i sterowanie pamięcią buforową mogą zostać uproszczone podczas odtwarzania trikowego dzięki korzystnemu pomijaniu lub nieodczytywaniu obrazów w buforze bitów wideo w wyniku manipulacji adresami, zgodnie z wymaganiami określonych algorytmów odtwarzania trikowego. Rozmiar i kontrola pamięci mogą być dalej optymalizowane podczas odtwarzania trikowego poprzez korzystne umożliwienie wielokrotnego dekodowania obrazów albo natychmiastowo lub tak, jak jest to wymagane przez określony algorytm odtwarzania trikowego. Realizacja tych korzystnych funkcji wymaga starannego sterowania funkcjami odczytu/zapisu i synchronizacji między nimi.
W jeszcze kolejnej optymalizacji trybu trikowego zdolność sterowania dekodera, która ułatwia synchronizację audio i wideo lub playbackowe nagranie dźwięku poprzez pomijanie dekodowania obrazów, zostaje korzystnie zwiększona w zakresie sterowania i wykorzystana podczas pracy w trybie trikowym w celu umożliwienia ominięcia lub niedekodowania pewnej liczby obrazów, obieralnej między 2, a przynajmniej 6. Taka manipulacja obrazami korzystnie ułatwia pracę w trybie trikowym przy sześciokrotnej prędkości odtwarzania dzięki pominięciu obrazów typu B w każdej grupie obrazów.
Dodatkowo, jeśli chodzi o wymagania sterowania i alokacji pamięci dla pracy w trybie trikowym, dekodowanie MPEG może zostać korzystnie zoptymalizowane dzięki, na przykład, zasadniczo współbieżnemu prowadzeniu dekodowania obrazów typu I oraz P, i zapisywaniu zdekodowanego wyniku w celu wyświetlenia i/lub przechowaniu w pamięci przez okres pola. Zakłada się, że możliwe jest dekodowanie obrazów typu B bez użycia pamięci buforowej. Taki sposób dekodowania obrazów typu B znany jest jako B-klatki w locie (BOF). Dodatkowo praca w trybie trikowym może zostać korzystnie usprawniona dzięki zapisywaniu zdekodowanego pola do pamięci i równoczesnemu odczytywaniu pola wyświetlacza z przeplecionego położenia w tej samej pamięci.
Pole wyświetlacza może pochodzić z rozdzielonego czasowo obrazu. Taka rzeczywiście jednoczesna operacja odczytu i zapisu może być zrealizowana w trakcie jednego okresu pola wyświetlacza.
PL 207 381 B1
Jednakże zdekodowane pole nie może zapisać lub zaburzać odczytu pola wyświetlacza. Taka przeplatana operacja odczytu i zapisu nie jest wymagana w przypadku obrazów typu B ze względu na zdolność do dekodowania bez użycia buforu.
W przykładowym odtwarzaczu z dekodowaniem w trikowym trybie wstecznym strumień bitów lub pamięć 60A bufora strumienia bitów użyta jest do przechowywania skompresowanego strumienia bitów MPEG pozyskanego z nośnika. Pamięć 60A bufora strumienia bitów lub bufor skompresowanych bitów wideo 60B może zostać użyty do ułatwienia wielokrotnego dostępu do pojedynczych obrazów MPEG. Zdekodowany sygnał wyjściowy odtwarzania trikowego musi odpowiadać standardom sygnału TV, aby mógł być wyświetlany przez normalny odbiornik telewizyjny. Następujący przykład ilustruje wynalazczą sekwencję sterującą dla dekodowania MPEG w odtwarzaczu DVD. Fig. 7 przedstawia wykres ilustrujący wynalazczy układ dla trikowego trybu odtwarzania wstecz z trzykrotną prędkością (3X) w odtwarzaczu wideo. Ten przykładowy wykres posiada kolumny, które oznaczają zakodowane obrazy MPEG typu I oraz P, które zawierają grupy obrazów A, B, C, D. Każda grupa obrazów zawiera dwanaście obrazów, które nie są otrzymane ze źródła filmowego.
W tej przykładowej sekwencji odtwarzania trikowego, dekodowanie w kierunku wstecznym może zostać ułatwione poprzez korzystny układ dekodera MPEG oraz dwa bufory klatek, które służą zarówno do dekodowania jak i wyświetlania zdekodowanego obrazu w odwrotnym porządku. W tym przykładzie dekodowane są tylko obrazy typu I i P, stąd tylko one zostały wrysowane. Fig. 7 ilustruje sekwencję 37 zakodowanych obrazów o numerach umieszczonych w nawiasach. Skrajna prawa kolumna została oznaczona jako pole wyjściowe # i oznacza oś czasową wzrastającą z okresami pól. Pierwsze pole, pole wyjściowe #1 znakuje rozpoczęcie odtwarzania trikowego. Każdy wiersz wykresu ukazuje sposób przetwarzania występujący w trakcie tego odpowiedniego okresu pola. Na fig. 7 użyte zostały następujące skróty. Bufory ramek oznaczone zostały cyframi 1 i 2. Wielka litera D oznacza dekodowanie obrazu/klatki wskazywanej na górze określonej kolumny. Proces dekodowania obrazu i zapamiętywania rezultatu oznaczony jest symbolem D>1, gdzie numer wskazuje numer docelowego bufora ramek, tj. w tym przypadku 1. Mała litera d wskazuje wyświetlenie pola pochodzącego z klatki specyficznej dla danej kolumny. Pole wyjściowe może zostać wybrane w celu zachowania sekwencji przeplotu sygnału wyjściowego. Zachowanie ciągłej sekwencji pola wyjściowego wymaga oczywiście, aby każdy wiersz wykresu zawierał jedną instrukcję wyświetlania pola d.
Sekwencja zilustrowana na fig. 7 rozpoczyna się od pola wyjściowego #1, gdzie obraz typu I, I(37) jest dekodowany i przechowywany w buforze klatek 1, 60C. Równolegle z dekodowaniem obrazu I(37) wyświetlane jest jedno pole, na przykład górne pole klatki I(37). W celu usprawnienia dekodowania i równoległego wyświetlania zdekodowanego sygnału stosowany jest korzystny dekoder wideo 530. W trakcie pola wyjściowego #2, z bufora strumienia bitów 60B otrzymywany jest obraz MPEG I(25), dekodowany i przechowywany w buforze klatek 2, 60D. W tym samym czasie z bufora klatek 1, 60C, odczytywane i wyświetlane jest inne pole, na przykład dolne pole klatki I(37).
W trakcie okresu pola wyjściowego #3 następuje operacja, która ilustruje wynalazczy aspekt. W trakcie pola #3 powtarza się przykładowe górne pole obrazu I(37) poprzez odczyt z bufora klatek 1, 60C. Równolegle z odczytem powtarzanego górnego pola obrazu I(37) dekodowany jest przewidywany obraz P(28) w odniesieniu do obrazu I(25) i jest on przechowywany w buforze klatek 1, 60C. Wraz z dokładnym zsynchronizowanym taktowaniem, zdekodowany obraz P(28) zapisywany jest do bufora klatek 1, 60C. Takie współbieżne działanie osiągane jest dzięki dekodowaniu obrazu P(28) sekwencyjnie i liniowo w ślad za odczytem pola wyświetlacza obrazu I(37). Sekwencyjne odczytywanie i zapisywanie bufora klatek 1 stanowi kolejną korzystną zdolność wykazywaną przez ten przykładowy system zarządzania dekoderem i pamięcią.
Na zakończenie pola wyjściowego #3 przechowuje się obrazy I(25) oraz P(28) grupy obrazów C, odpowiednio w buforach klatek 1 (60C) oraz 2 (60D). Jednakże, klatki te oznaczają chronologicznie wcześniejsze zdarzenia i wymagane są w celu umożliwienia dekodowania klatek, które pojawiły się w kolejności, przykładowo klatek P(31) i P(34). Obraz kodowany wewnętrznie I(25), obecny w pamięci 2 (60D) był wykorzystany do dekodowania klatki P(28) i nie jest obecnie potrzebny. Zatem, w celu wyświetlenia pola wyjściowego do pamięci klatek 2 zapisywana jest klatka I(37), odczytana i zdekodowana z bufora wideo 60B. W celu utrzymania wyjściowej sekwencji pól z przeplotem, pobiera się z bufora 2 do wyświetlenia właściwe pole klatki I(37). Dla pola wyjściowego #5 powtarza się korzystny współbieżny sposób przetwarzania wykonany dla pola #3. Pole wyjściowe #5 otrzymywane jest przez odczyt pola obrazu I(37) z bufora klatek 2. Jednocześnie dekodowany jest obraz P(37) w odniesieniu do obrazu P(28) z pamięci klatek 1 i zdekodowany wynik przechowywany jest w buforze 2. W ten sposób,
PL 207 381 B1 pierwszych pięć pól wyjściowych przykładowego odtwarzania wstecznego z potrójną prędkością zawiera nieruchomy widok obrazu I(37). Jednakże na końcu pola wyjściowego #5, z obrazami I(28) oraz P(31) przechowywanymi odpowiednio w buforach ramek 1 i 2, rozpoczyna się generowanie sygnału wyjściowego odtwarzania trikowego.
Przy polu wyjściowym #6 z pamięci 60A bufora strumienia bitów lub bufora bitów wideo 60B przewidywany obraz P(34) jest odczytywany, dekodowany, a odpowiednie pole zostaje wyświetlone bez zapamiętywania. W taki sposób pole #6 inicjuje wyświetlenie wstecznego ruchu z potrójną prędkością. Przy polu wyjściowym #7 pozyskuje się ponownie obraz P(34), dekoduje i do wyświetlenia wybiera inne pole. Obraz P(31), zdekodowany poprzednio i przechowywany w buforze klatek 2 zostaje odczytany i na tej podstawie uzyskane zostają pola wyjściowe #8 i #9.
Na zakończenie pola wyjściowego #9 nie jest wymagane dalsze przechowywanie obrazu P(31), a zatem pobiera się obraz I(13) z kolejnej poprzedzającej grupy obrazów B, dekoduje go i zapamiętuje w buforze klatek 2. Z bufora klatek 1, który zawiera przewidziany obraz P(28), odczytane zostają pola wyjściowe #10 i #11. Równolegle z odczytem pola #11 z bufora strumienia bitów 60B otrzymywany jest przewidywany obraz P(16), dekodowany i zapamiętywany sekwencyjnie w buforze klatek 1. Ponieważ obydwa bufory klatek zawierają klatki zakotwiczone w następnej poprzedzającej grupie obrazów B, pola wyjściowe #12 i #13 otrzymuje się w ten sam sposób co pola wyjściowe #6 i #7. Z bufora strumienia bitów 60B odczytywany jest przewidywany obraz P(25), dekodowany, a odpowiednie pole zostaje wyświetlone bez zapamiętywania.
W ten sposób następna poprzedzająca grupa obrazów B zawierająca obrazy I(13), P(16), P(19) i P(22) zostaje przetworzona tak, jak opisano to dla grupy obrazów C.
Claims (4)
- Zastrzeżenia patentowe1. Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika, zawierające pamięć bufora systemowego, mikroprocesor-kontroler i przetwornik optyczny oraz pamięć bufora strumienia bitów do przechowywania cyfrowo zakodowanego sygnału, znamienne tym, że mikroprocesor-kontroler (510) nadzorujący identyfikację informacji w strumieniu bitów i kontrolujący pamięć bufora systemu do przechowywania pierwszej części strumienia bitów wyprowadzonego z adresu sektora, połączony jest z pamięcią (60A) bufora strumienia bitów oraz z pamięcią (80) bufora systemu i kontrolerem bezpośredniego dostępu do pamięci (515, 516, 517), który to kontroler jest połączony z pamięcią (60A) bufora strumienia bitów do odzyskiwania i wyprowadzania strumienia bitów z adresu sektora, zaś pamięć (60A) bufora strumienia bitów jest połączona z procesorem linkującym (505), który to procesor połączony jest z przetwornikiem optycznym (15), przy czym pamięć (60A) odbiera cyfrowo zakodowany sygnał bufora strumieni bitów z procesora linkującego (505), a pamięć (80) bufora systemu gromadząca dane jest połączona w sposób sterowalny z pamięcią (60A) bufora strumienia bitów.
- 2. Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika, zawierające mikroprocesor-kontroler i przetwornik optyczny oraz pamięć bufora strumienia bitów do przechowywania cyfrowo zakodowanego sygnału, znamienne tym, że mikroprocesor-kontroler (510) przetwarzający przechowywany strumień bitów i wskazujący identyfikację oraz przechowujący adres sektora zidentyfikowanego kodu startowego MPEG, połączony jest z pamięcią (60A) bufora strumienia bitów oraz z buforem strumienia bitów i z kontrolerem bezpośredniego dostępu do pamięci (515, 516, 517) do przeszukiwania i identyfikacji kodu startowego MPEG oraz mikroprocesor-kontroler (510) połączony jest z detektorem (520A) kodu startowego, zaś pamięć (60A) bufora strumienia bitów jest połączona z procesorem linkującym (505), który to procesor połączony jest z przetwornikiem optycznym (15), przy czym pamięć (60A) odbiera cyfrowo zakodowany sygnał z procesora (505).
- 3. Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika, zawierające pamięć bufora strumienia bitów, przetwornik optyczny oraz dekoder wideo do dekodowania cyfrowo zakodowanego sygnału odbieranego z przetwornika, znamienne tym, że mikroprocesor-kontroler (510) połączony jest z dekoderem wideo (530) dla odczytu przechowywanego cyfrowo kodowanego sygnału z pamięci (60A) bufora strumienia bitów w odpowiedzi na odpowiednio pierwszą i drugą sekwencję i dla sterowania dekoderem wideo (530), który to dekoder połączony jest z pamięcią (60A) buforastrumienia bitów, dekodującego pochodzące z niej obrazy, zaś pamięć (60A) bufora strumienia bitów jest połączona z procesorem linkującym (505), który to procesor jest połączony z przetwornikiem optycznym (15), przy czym pamięć (60A) odbiera cyfrowo zakodowany sygnał z procesora (505).PL 207 381 B1
- 4. Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika, zawierające przetwornik optyczny oraz pamięć bufora strumienia bitów do przechowywania cyfrowo zakodowanego sygnału, znamienne tym, że mikroprocesor-kontroler (510) połączony jest z kontrolerem bezpośredniego dostępu do pamięci (515, 516, 517) dla odczytu przechowywanego kodowanego cyfrowo sygnału z pamięci (60A) bufora strumienia bitów w odpowiedzi na odpowiednio pierwszą i drugą sekwencję, i dla sterowania pamięcią (60A) bufora strumienia bitów, który to kontroler (515, 516, 517) połączony jest z pamięcią (60A) bufora strumienia bitów, zaś pamięć (60A) bufora strumienia bitów połączona jest z procesorem linkującym (505), który to procesor połączony jest z przetwornikiem optycznym (15), przy czym pamięć (60A) odbiera cyfrowo zakodowany sygnał.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PL374812A PL207381B1 (pl) | 1998-05-06 | 1998-05-06 | Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PL374812A PL207381B1 (pl) | 1998-05-06 | 1998-05-06 | Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika |
Publications (1)
Publication Number | Publication Date |
---|---|
PL207381B1 true PL207381B1 (pl) | 2010-12-31 |
Family
ID=43503498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PL374812A PL207381B1 (pl) | 1998-05-06 | 1998-05-06 | Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika |
Country Status (1)
Country | Link |
---|---|
PL (1) | PL207381B1 (pl) |
-
1998
- 1998-05-06 PL PL374812A patent/PL207381B1/pl unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6222979B1 (en) | Memory control in trick play mode | |
US6154603A (en) | Picture decoding for trick mode operation | |
US6222982B1 (en) | Information storage medium containing multi-scene programming and a reproducing apparatus | |
US20080008455A1 (en) | Cpi data for steam buffer channels | |
US6229951B1 (en) | Digital video picture and ancillary data processing and storage | |
JPH08214260A (ja) | 符号化データの特殊再生方法および特殊再生装置 | |
US6463209B2 (en) | Controlled data flow | |
US6453114B2 (en) | Random picture decoding | |
US6377748B1 (en) | Replay bit stream searching | |
US7043584B2 (en) | Interrupt prioritization in a digital disk apparatus | |
JP3899233B2 (ja) | 再生ビットストリーム処理 | |
KR20010101566A (ko) | Mpeg 비디오 스트림의 역방향 재생 | |
US6320826B1 (en) | Transducer repositioning | |
PL207381B1 (pl) | Urządzenie do odtwarzania kodowanego cyfrowo sygnału z nośnika | |
JP4350585B2 (ja) | 再生装置 | |
EP1005226A2 (en) | MPEG reproducing apparatus and methods | |
JP2007104703A (ja) | 再生ビットストリーム処理 | |
MXPA00010836A (es) | Procesamiento de corriente de bits para reproduccion | |
CN1783300B (zh) | 用于产生特技播放模式视频图像的播放机和方法 | |
CN1783302B (zh) | 以扇区再现的数据的方法和数字光盘播放机 | |
JP3657787B2 (ja) | データ処理生方法及び装置 | |
JP2000175151A (ja) | Mpeg再生装置及びmpeg再生方法 | |
JP2001283525A (ja) | 画像記録再生方法および画像記録再生装置 | |
JP2000270285A (ja) | デジタル映像記録再生装置及びデジタル映像再生装置 | |
JP2006166481A (ja) | 再生装置及び方法、記録媒体、データ構造、並びに記録装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RECP | Rectifications of patent specification |