Filtru median digital unidimensional cu o fereastră cu trei mostre. Filtrul median la slujba dezvoltatorului

Filtrarea mediană este o metodă neliniară de procesare a semnalului dezvoltată de Tukey. Această metodă este utilă pentru reducerea zgomotului dintr-o imagine. Filtrul median unidimensional este fereastra glisanta, care acoperă un număr impar de elemente de imagine. Elementul central este înlocuit cu mediana tuturor elementelor din fereastră. Mediana unei secvențe discrete pentru impar N este acel element pentru care există elemente mai mici sau egale ca mărime și elemente mai mari sau egale ca mărime.

Lăsați fereastra să conțină elemente de imagine cu nivelurile 80, 90, 200, 110 și 120; în acest caz, elementul central ar trebui înlocuit cu valoarea 110, care este mediana secvenței ordonate 80, 90, 110, 200. Dacă în acest exemplu valoarea 200 este un zgomot aberant într-o secvență crescătoare monoton, atunci mediana filtrarea va oferi o îmbunătățire semnificativă. Dimpotrivă, dacă valoarea 200 corespunde impulsului de semnal util (când se utilizează senzori de bandă largă), atunci procesarea va duce la o pierdere de claritate a imaginii reproduse. Astfel, filtrul median în unele cazuri asigură suprimarea zgomotului, în altele determină suprimarea semnalului nedorit.

Să luăm în considerare efectul filtrelor mediane și de mediere (netezire) cu o fereastră cu cinci elemente asupra semnalelor discrete trepte, dinți de ferăstrău, puls și triunghiulare (Fig. 4.23). Din aceste diagrame, este clar că filtrul median nu afectează funcțiile trepte sau dinți de ferăstrău, ceea ce este de obicei o proprietate de dorit. Cu toate acestea, acest filtru suprimă semnale de puls, a cărui durată

este mai mică de jumătate din lățimea ferestrei. De asemenea, filtrul determină aplatizarea vârfului funcției triunghiulare.

Capacitatea de a analiza efectul filtrului median este limitată. Se poate demonstra că mediana produsului dintre o constantă și o secvență este egală cu:

In afara de asta,

Cu toate acestea, mediana sumei a două secvențe arbitrare nu este egală cu suma medianelor lor:

Această inegalitate poate fi verificată folosind secvențele 80, 90, 100, 110, 120 și 80, 90, 100, 90, 80 ca exemplu.

Sunt posibile diferite strategii pentru aplicarea filtrului median pentru a suprima zgomotul. Una dintre ele recomandă să începeți cu un filtru median, a cărui fereastră acoperă trei elemente ale imaginii. Dacă atenuarea semnalului este nesemnificativă, fereastra filtrului este extinsă la cinci elemente. Aceasta continuă până când filtrarea mediană începe să facă mai mult rău decât bine.

O altă posibilitate este implementarea unei cascade filtrare mediană semnal folosind o lățime de fereastră fixă ​​sau variabilă. În general

De obicei, acele zone care rămân neschimbate după un singur tratament cu filtru nu se schimbă după Reprocesare. Regiunile în care durata semnalelor de impuls este mai mică de jumătate din lățimea ferestrei vor fi supuse modificărilor după fiecare ciclu de procesare.

Conceptul de filtru median poate fi generalizat cu ușurință la două dimensiuni prin utilizarea unei ferestre bidimensionale de forma dorită, cum ar fi dreptunghiulară sau aproape circulară. Evident, un filtru median bidimensional cu o fereastră de dimensiune oferă o reducere mai eficientă a zgomotului decât filtrele mediane unidimensionale orizontale și verticale aplicate succesiv cu o fereastră de dimensiune. Procesarea 2D, totuși, are ca rezultat o atenuare mai semnificativă a semnalului.

Filtrarea mediană este o tehnică de procesare a semnalului neliniară dezvoltată de Tukey. Această metodă este utilă pentru reducerea zgomotului dintr-o imagine. Un filtru median unidimensional este o fereastră glisantă care acoperă un număr impar de elemente din imagine. Elementul central este înlocuit cu mediana tuturor elementelor de imagine din fereastră. Mediana unei secvențe discrete pentru un număr impar este acel element pentru care există elemente mai mici sau egale ca mărime și elemente mai mari sau egale ca mărime. Lăsați fereastra să conțină elemente de imagine cu nivelurile 80, 90, 200, 110 și 120; în acest caz, elementul central ar trebui înlocuit cu valoarea 110, care este mediana secvenței ordonate 80, 90, 110, 120, 200. Dacă în acest exemplu valoarea 200 este un zgomot aberan într-o secvență crescătoare monoton, atunci filtrarea mediană va oferi o îmbunătățire semnificativă. Dimpotrivă, dacă valoarea 200 corespunde impulsului de semnal util (când se folosesc senzori de bandă largă), atunci procesarea va duce la o pierdere de claritate a imaginii reproduse. Astfel, filtrul median în unele cazuri asigură suprimarea zgomotului, în altele determină suprimarea semnalului nedorit.

În fig. Figura 12.6.1 prezintă efectul filtrelor mediane și de mediere (netezire) cu o fereastră cu cinci elemente asupra semnalelor discrete trepte, dinți de ferăstrău, puls și triunghiulare. Din aceste diagrame puteți vedea că filtrul median nu afectează funcțiile trepte sau dinți de ferăstrău, ceea ce este de obicei o proprietate de dorit. Cu toate acestea, acest filtru suprimă semnalele pulsate a căror durată este mai mică de jumătate din lățimea ferestrei. De asemenea, filtrul provoacă aplatizarea vârfului funcției triunghiulare.

Orez. 12.6.1. Exemple de filtrare mediană a protozoarelor semnale discrete, .

a - tranziție în trepte: b - tranziție dinți de ferăstrău; c - puls unic; e - dublu impuls; d - triplu impuls; e - semnal triunghiular.

Capacitatea de a analiza efectul filtrului median este limitată. Se poate arăta că mediana produsului dintre o constantă și o secvență este egală cu

In afara de asta,

Cu toate acestea, mediana sumei a două secvențe arbitrare nu este egală cu suma medianelor lor:

Această inegalitate poate fi verificată folosind secvențele 80, 90, 100, 110, 120 și 80, 90, 100, 90, 80 ca exemplu.

Sunt posibile diferite strategii pentru aplicarea filtrului median pentru a suprima zgomotul. Una dintre ele recomandă să începeți cu un filtru median, a cărui fereastră acoperă trei elemente ale imaginii. Dacă atenuarea semnalului este nesemnificativă, fereastra filtrului este extinsă la cinci elemente. Aceasta continuă până când filtrarea mediană începe să facă mai mult rău decât bine. O altă posibilitate este de a efectua filtrarea mediană în cascadă a semnalului folosind o lățime de fereastră fixă ​​sau variabilă. În general, acele zone care rămân neschimbate după un singur tratament cu filtru nu se modifică după procesări repetate. Regiunile în care durata semnalelor de impuls este mai mică de jumătate din lățimea ferestrei vor fi supuse modificărilor după fiecare ciclu de procesare.

Conceptul de filtru median poate fi generalizat cu ușurință la două dimensiuni prin utilizarea unei ferestre bidimensionale de forma dorită, cum ar fi dreptunghiulară sau aproape circulară. Este clar că un filtru median bidimensional cu o fereastră de dimensiune oferă o reducere mai eficientă a zgomotului decât filtrele mediane unidimensionale orizontale și verticale cu o fereastră de dimensiune aplicată secvenţial. Procesarea 2D, totuși, are ca rezultat o atenuare mai semnificativă a semnalului. În fig. Figura 12.6.2 prezintă efectul filtrării mediane bidimensionale asupra unui semnal de impuls spațial. S-au folosit filtre cu două tipuri de ferestre: pătrate și în formă de cruce. După cum puteți vedea, filtrul median cu o fereastră pătrată a distrus colțurile pătratului din imagine, în timp ce filtrul cu o fereastră în formă de cruce l-a lăsat neschimbat.

Orez. 12.6.2. Exemple de filtrare mediană 2D

În fig. 12.6.3 și 12.6.4 arată imagini eșantion supuse la filtrare mediană pentru a suprima zgomotul. După cum se poate observa, filtrul median suprimă zgomotul de impuls împrăștiat mai eficient decât zgomotul neted. Filtrarea mediană a imaginilor în scopul suprimării zgomotului ar trebui considerată o metodă euristică. Nu poate fi folosit orbește. În schimb, ar trebui să verificați rezultatele pentru a vă asigura că filtrarea mediană este adecvată.

Orez. 12.6.3. Eșantion de imagini procesate cu un filtru median unidimensional pentru a suprima zgomotul de impuls.

A - imaginea originală cu zgomot de impuls (15 elemente distorsionate pe fiecare linie); b - rezultatul filtrarii mediane la ; c este rezultatul filtrarii mediane la ; r este rezultatul filtrarii mediane la .

Orez. 12.6.4. Eșantion de imagini procesate cu un filtru median 1D pentru a suprima zgomotul gaussian.

a - imagine originală cu zgomot gaussian; b - rezultatul filtrarii mediane la ; c este rezultatul filtrarii mediane la ; r este rezultatul filtrarii mediane la .

Introducere

Filtru median- unul dintre tipurile de filtre digitale, utilizat pe scară largă în prelucrare digitală semnale și imagini pentru a reduce zgomotul.

Este implementat folosind o fereastră formată dintr-un număr impar de mostre. Valorile eșantionului din interiorul ferestrei sunt sortate în ordine; iar valoarea medie, adică valoarea din mijlocul listei ordonate, este luată ca valoare de ieșire. La pasul următor, fereastra înaintează cu o probă și calculele sunt repetate. Valorile extreme ale matricei ar trebui să fie duplicate de atâtea ori încât o fereastră poate fi aplicată la prima și ultima valoare.

filtrare mediană - procedura normala procesarea imaginii. Este folosit în special pentru a reduce zgomotul dintr-o imagine.

Formularea problemei

Având în vedere o matrice NxN. Trebuie implementat algoritm paralel filtrarea mediană a acestei matrice.

Metoda de rezolvare

(Notă: a fost implementat un filtru 3x3 pentru simplitate)

Algoritm secvenţial:

Filtrarea se efectuează rând cu rând - pentru primul element al rândului, matricea de vecinătate este completată (ținând cont de faptul că trei valori învecinate sunt adăugate artificial la stânga), această matrice este sortată după sortare rapidă, apoi valoarea medie este scrisă în matricea de ieșire. Pentru fiecare elementul următor linie, matricea de vecinătate nu este completată din nou - doar trei elemente noi i se adaugă, înlocuindu-le pe cele trei vechi. Pentru a face posibil acest lucru într-o singură trecere (prin matricea de vecinătate și noile trei elemente), a fost introdusă o matrice specială cu „numărul de vieți” al elementului. Viețile pot fi 1, 2 și 3. Cele 3 elemente adăugate sunt pre-sortate și adăugarea se face prin comasare: în timpul acesteia, elementele cu 1 viață sunt șterse, elementele care au avut 2 și 3 vieți primesc 1 și, respectiv, 2 și elementele adăugate devin proprietari a 3 vieți. Elementul din mijloc este scris în tabloul de ieșire. Ultimul element este procesat prin repetarea iterației penultimului pas. La practică aceasta metodaÎn comparație cu selecția completă a cartierului și sortarea acestuia, prezintă o îmbunătățire a vitezei de 3 ori.

Algoritm paralel:

(Notă: dimensiunile matricei au fost limitate la multipli de doi)

Deoarece În această problemă se observă independența datelor, paralelismul se realizează pe baza împărțirii matricei în părți (mai multe rânduri, și anume N/p, unde p este numărul de procese). Avand in vedere ca in calculatoare personale De obicei, procesorul are 1, 2, 4 sau 8 nuclee, apoi diviziunea va fi efectuată fără rest. După împărțirea matricei în părți după înălțime - acestea sunt procesate de un algoritm secvenţial, dar trebuie luat în considerare faptul că este imposibilă procesarea rândurilor de delimitare (cu excepția primului și ultimului din matrice) - după ce calculele paralele sunt finalizate , piesele sunt asamblate înapoi într-o singură matrice, iar rândurile rămase trebuie să fie filtrate separat.

Analiza performanței

Timp de filtrare pentru primul element de linie:

(2*9+9*ln(9)*2+1)*t, unde t este timpul de execuție al unei operații.

  • (2*9 operații – completarea matricei de vecinătate și a matricei „vieți” corespunzătoare
  • 9*ln(9)*2 – sortare rapida matrice

Filtrarea elementelor ulterioare ale unui rând:

  • 9+3 – trecerea printr-o matrice de vecinătate adăugând elemente noi și eliminând cele vechi
  • 18 – copierea matricei de vecinătate și a matricei „vieți” din tablourile auxiliare
  • 1 – eșantionarea și atribuirea medianei elementului de ieșire

Timpul total necesar pentru a filtra un șir:

((2*9+9*ln(9)*2)+1+(N-1)*(9+3+18+1))*t ≈(21N+37)*t

Timpul pentru a filtra întreaga matrice:

Tp= (α+ω/β*N^2/p)+(21N+37)*t*(N/p+2*(p-1))

  • α – latența
  • β - debitului Mijloace de transmisie
  • ω - dimensiunea elementului de matrice
  • 2*(p-1) – numărul de rânduri rămase nefiltrate la împărțirea matricei în părți)

T1= (21N+37)*t*N

Accelerare: Sp = (T1)/(Tp) = ((21N+37)*t*N)/((21N+37)*t*(N/p+2*(p-1))+α+ω/β *N^2/p) = βp/ (β+ω/21) , cu N→∞

Eficienţă: Ep = (Sp)/p = β/(β+ω/21) ,la N→∞

Demonstrație

Lățimea matricei

Timp de execuție (sec)

Comparația estimărilor teoretice ale accelerației cu cele practice:

Lățimea matricei

Caracteristicile mașinii: Intel Core i7 920 @ 2.80GHz 2.00GB RAM

latență: a = 0,00005 sec

Lățime de bandă: b = 25,6 GB/s

timp de executare a operațiunii standard: t = 0,000000004912 sec

setați dimensiunea elementului: w = 4

Lucrarea a fost realizată de studenții grupului 8411: Vladimir Muravyov și Pavel Solovyov

Recent, a trebuit să mă confrunt cu nevoia de filtrare software a datelor ADC. Cautarea pe Google și fumatul (diverse documentații) m-au condus la două tehnologii: Filtru frecvențe joase(LPF) și filtrul median. Există un articol foarte detaliat despre filtrele low-pass în comunitatea Easyelectronics, așa că în continuare vom vorbi despre filtrul median.

Disclaimer (scuză): Acest articol este în cea mai mare parte o traducere aproape cuvânt cu cuvânt a unui articol de pe site-ul web Embeddedgurus. Cu toate acestea, traducătorul (eu) a folosit și algoritmii de mai sus în munca mea și i-a găsit utile și poate de interes pentru această comunitate.

Deci, orice filtru liniar este conceput pentru a trece semnale într-o bandă de frecvență dată și a atenua pe toate celelalte cât mai mult posibil. Astfel de filtre sunt indispensabile dacă doriți să eliminați influența tuturor tipurilor de zgomot. Cu toate acestea, în lumea reală a sistemelor încorporate, un designer se poate confrunta cu faptul că aceste filtre clasice sunt practic inutile împotriva supratensiunilor de mare putere pe termen scurt.

Acest tip de zgomot apare de obicei în urma unui eveniment aleatoriu, cum ar fi o descărcare electrostatică, o alarmă pentru chei care se declanșează în apropierea dispozitivului etc. În acest caz, semnalul de intrare poate lua o valoare care este evident imposibilă. De exemplu, ADC-ul a primit date: 385, 389, 388, 388, 912, 388, 387. Evident, valoarea 912 aici este falsă și ar trebui aruncată. Când utilizați un filtru clasic, acest lucru este aproape sigur număr mare va afecta foarte mult valoarea de ieșire. Soluția evidentă aici ar fi folosirea unui filtru median.

Fidel numelui său, filtrul median trece media unui set de valori. De obicei, dimensiunea acestui grup este ciudată pentru a evita ambiguitatea în alegerea mediei. Ideea principală este că există un tampon cu mai multe valori, din care este selectată mediana.

Diferențele dintre mediană și media aritmetică

Să presupunem că sunt 19 oameni săraci și un miliardar într-o cameră. Toată lumea pune bani pe masă - săracii din buzunare, iar miliardarul din valiza lui. Fiecare om sărac contribuie cu 5 dolari, iar miliardarul contribuie cu 1 miliard de dolari (109). Totalul este de 1.000.000.095 USD Dacă împărțim banii în mod egal între 20 de persoane, obținem 50.000.004,75 USD. Va fi mediu valoare aritmetică suma de numerar pe care o aveau toate cele 20 de persoane din camera respectivă.

Mediana în acest caz va fi egală cu 5 USD (jumătate din suma a zecea și a unsprezecelea, valorile mediane ale seriei clasate). Acest lucru poate fi interpretat după cum urmează. După ce ne-am împărțit compania în două grupuri egale de 10 persoane, putem spune că în primul grup toată lumea pune pe masă nu mai mult de 5 USD, iar în al doilea nu mai puțin de 5 USD. În general, putem spune că mediana este cât a adus persoana medie cu el. Dimpotrivă, media aritmetică este o caracteristică nepotrivită, deoarece depășește semnificativ suma de numerar disponibilă pentru persoana medie.
ru.wikipedia.org/wiki/Median_ (statistici)

În funcție de dimensiunea acestui set, împărțim filtrele în două tipuri:
Dimensiune = 3
Dimensiune > 3

Dimensiunea filtrului 3
Dimensiunea trei este cea mai mică posibilă. Este posibil să se calculeze media folosind doar câteva operații IF. Mai jos este codul care implementează acest filtru:

Uint16_t middle_of_3(uint16_t a, uint16_t b, uint16_t c) ( uint16_t middle; if ((a<= b) && (a <= c)) { middle = (b <= c) ? b: c; } else if ((b <= a) && (b <= c)) { middle = (a <= c) ? a: c; } else { middle = (a <= b) ? a: b; } return middle; }

Dimensiunea filtrului >3
Pentru un filtru cu dimensiuni mai mari de trei, sugerez să folosiți algoritmul propus de Phil Ekstrom în numărul din noiembrie al revistei Embedded Systems și rescris din Dynamic C în standard C de Nigel Jones. Algoritmul folosește o listă unică legată și profită de faptul că atunci când o matrice este sortată, eliminarea celei mai vechi valori și adăugarea uneia noi nu rupe sortarea.

#define STOPPER 0 /* Mai mic decât orice datum */ #define MEDIAN_FILTER_SIZE (13) uint16_t median_filter(uint16_t datum) ( struct pair ( struct pair *point; /* Pointerii formând o listă legată în ordine sortată */ uint16_t value; /* Valori pentru a sorta */ ); buffer de perechi de structuri statice = (0); ); /* Chain stopper */ static struct pair big = (&small, 0) /* Pointer to head (cel mai mare) din lista legată.*/ struct pair *succesor /* struct; pair *scan /* Pointer folosit pentru a scana în jos lista sortată */ struct pair */ struct pair */ struct pair */ uint16_t i; 1; /* Nu sunt permise opriri */ ) if ((++datpoint - buffer) >= MEDIAN_FILTER_SIZE) ( datpoint = buffer; /* Incrementează și înfășoară datele în pointer.*/ ) datpoint-> value = datum; /* Copiați în nou datum */ succesor = datpoint->point; /* Salvați indicatorul la succesorul vechii valori */ median = /* Mediana inițial la primul din lanț */ scanold = NULL; /* Scanold inițial null. */ scan = /* Indică indicatorul către primul (cel mai mare) datum din lanț */ /* Gestionează înlănțuirea primului articol din lanț ca caz special */ if (scan->point == datpoint) ( scan->point = succesor; ) scanold = scan /* Salvați acest indicator și */ scanați = scan->point ; /* step down chain */ /* Buclă prin lanț, ieșire normală prin pauză.< MEDIAN_FILTER_SIZE; ++i) { /* Handle odd-numbered item in chain */ if (scan->point == datpoint) ( scan->point = succesor; /* Înlănțuiește vechiul datum.*/ ) if (scan->valoare< datum) /* If datum is larger than scanned value,*/ { datpoint->punct = scanold->punct; /* Înlănțuiește-l aici. */ scanold->point = datpoint; /* Marcați-l înlănțuit. */ datum = STOPPER; ); /* Treceți indicatorul median în jos în lanț după ce faceți elementul impar */ median = median->point; /* Indicator median al pasului. */ if (scan == &small) ( break; /* Break the end of chain */ ) scanold = scan; /* Salvați acest indicator și */ scan = scan->point; /* coborâți lanțul */ /* Manipulați elementul cu număr par în lanț. */ if (scan->point == datpoint) ( scan->point = succesor; ) if (scan->valoare< datum) { datpoint->punct = scanold->punct; scanold->point = datpoint; datum = STOPPER; ) if (scan == &small) ( break; ) scanold = scan; scanare = scanare->punct; ) returnează mediana->valoare; )
Pentru a folosi acest cod, apelăm pur și simplu funcția de fiecare dată când apare o nouă valoare. Va returna mediana celor mai recente măsurători MEDIAN_FILTER_SIZE.
Această abordare necesită destul de multă memorie RAM, deoarece... trebuie să stocați atât valori, cât și indicatori. Cu toate acestea, este destul de rapid (58µs pe un PIC18 de 40MHz).

concluzii
La fel ca majoritatea lucrurilor din lumea încorporată, filtrul median are un preț. De exemplu, introduce o întârziere de o citire atunci când valorile de intrare cresc continuu. În plus, acest filtru distorsionează foarte mult informațiile despre frecvența semnalului. Desigur, dacă ne interesează doar componenta constantă, aceasta nu creează probleme speciale.

Pentru a reduce nivelul de zgomot. Filtrul median este un filtru FIR neliniar.

Valorile eșantionului din interiorul ferestrei de filtru sunt sortate în ordine crescătoare (descrescătoare); iar valoarea din mijlocul listei ordonate este scoasă la filtru. În cazul unui număr par de mostre în fereastră, valoarea de ieșire a filtrului este egală cu media celor două mostre din mijlocul listei ordonate. Fereastra se deplasează de-a lungul semnalului filtrat și calculele se repetă.

Filtrarea mediană este o procedură eficientă pentru procesarea semnalelor supuse zgomotului de impuls.

Exemple

Exemplul 1

Mai jos este un exemplu de aplicare a unui filtru median pentru un semnal unidimensional cu o fereastră de trei eșantioane la matricea de intrare x (sunt afișate valorile duplicate introduse artificial îndrăzneţ):

  • y = mediana[ 2 2 80] = 2
  • y = mediana = mediana = 6
  • y = mediana = mediana = 6
  • y = mediana = mediana = 3

si in sfarsit:

y = - ieșirea mediană a filtrului

Exemplul 2

Filtru median M de la semnalul de intrare C, creează o imagine mediană a semnalului \widetilde(C). Semnal de intrare C, alimentat la filtrul median M:C\rightarrow\widetilde(C).
În filtrul median, valorile care se încadrează în fereastra filtrului sunt selectate mai întâi atunci când fereastra este în punctul X, \hat(O)(x):C \rightarrow O.
În continuare, valorile ferestrei sunt sortate O, funcție de comparare a valorii \Phi, și se construiește un set ordonat , iar apoi valoarea mediană este selectată ( median): și este înregistrat în \widetilde(C)(x)= o_(m).

Deci filtrul median M:C\rightarrow\widetilde(C), este o secvență de trei acțiuni:

  1. Selectarea valorilor incluse în fereastra de filtrare \hat(O)(x):C \rightarrow O.
  2. Sortarea valorilor ferestrei \Phi(O) \rightarrow \widetilde(O).
  3. Alege din \widetilde(O) valoarea mediană m(\widetilde(O)) \rightarrow o_(m)și înregistrarea acestuia în imaginea mediană a semnalului \widetilde(C) pana la punctul cu coordonata X, \widetilde(C)(x) = o_(m).

Acești pași se repetă pentru fiecare punct al semnalului de intrare.

Filtru median 2D (pseudocod)

Algoritmul primitiv de filtru median 2D arată cam așa:

Alocați outputPixelValue edgex:= (lățimea ferestrei / 2) rotunjită în jos edgey:= (înălțimea ferestrei / 2) rotunjită în jos pentru x de la edgex la lățimea imaginii - edgex pentru y de la edgey la înălțimea imaginii - edgey alocă colorArray pentru fx de la 0 la fereastră lățime pentru fy de la 0 la înălțimea ferestrei colorArray := inputPixelValue sortează toate intrările în colorArray outputPixelValue[x][y] := colorArray

Caracteristicile acestui algoritm:

  • Se aplică doar unui canal de culoare,
  • Nu se aplică pixelilor de margine.

Vezi si

Scrieți o recenzie despre articolul „Filtru median”

Legături

  • (Engleză)

Un extras care descrie filtrul median

- Precum ce? - a vorbit prințul Andrei, oprindu-se de emoție. - Da, trebuie să înțelegeți că fie suntem ofițeri care ne slujesc țarul și patria și ne bucurăm de succesul comun și suntem triști de eșecul comun, fie suntem lachei cărora nu le pasă de afacerile stăpânului. „Quarante milles hommes massacres et l"ario mee de nos allies distrugte, et vous trouvez la le mot pour rire", a spus el, ca și cum și-ar întări opinia cu această expresie franceză. „C"est bien pour un garcon de rien, comme cet individu , dont vous avez fait un ami, mais pas pour vous, pas pour vous. [Patruzeci de mii de oameni au murit și armata aliată cu noi a fost distrusă, și puteți glumi despre asta. Acest lucru este de iertare pentru un băiat neînsemnat ca acest domn pe care ți-ai făcut prieten, dar nu pentru tine, nu pentru tine.] Băieții nu se pot distra decât așa”, a spus prințul Andrei în rusă, pronunțând acest cuvânt cu accent francez, notând că Jherkov încă îl auzea.
A așteptat să vadă dacă va răspunde cornetul. Dar cornetul s-a întors și a părăsit coridorul.

Regimentul de Husari Pavlograd era staționat la două mile de Braunau. Escadrila, în care Nikolai Rostov a servit ca cadet, era situată în satul german Salzenek. Comandantului de escadrilă, căpitanul Denisov, cunoscut în întreaga divizie de cavalerie sub numele Vaska Denisov, i s-a alocat cel mai bun apartament din sat. Junker Rostov, de când a ajuns din urmă cu regimentul în Polonia, a locuit cu comandantul escadronului.
Pe 11 octombrie, chiar ziua în care totul în apartamentul principal a fost ridicat în picioare de vestea înfrângerii lui Mack, la sediul escadronului, viața de lagăr a continuat cu calm ca înainte. Denisov, care pierduse toată noaptea la cărți, încă nu venise acasă când Rostov s-a întors de la hrană dis-de-dimineață călare. Rostov, în uniformă de cadet, s-a dus până în verandă, și-a împins calul, și-a aruncat piciorul cu un gest flexibil, tineresc, s-a ridicat pe etrier, parcă nu ar fi vrut să se despartă de cal, în cele din urmă a sărit jos și a strigat către mesager.
„Ah, Bondarenko, dragă prietene”, i-a spus husarului care s-a repezit spre calul său. „Dă-mă afară, prietene”, a spus el cu acea tandrețe frățească și veselă cu care tinerii buni îi tratează pe toți când sunt fericiți.
„Te ascult, Excelență”, a răspuns Micul Rus, clătinând vesel din cap.
- Uite, scoate-l bine!
Un alt husar s-a repezit și el la cal, dar Bondarenko deja aruncase peste frâiele bitului. Era evident că cadetul a cheltuit mulți bani pe votcă și că era profitabil să-l servească. Rostov a mângâiat gâtul calului, apoi crupa lui și s-a oprit pe verandă.
"Grozav! Acesta va fi calul!” îşi spuse el şi, zâmbind şi ţinând sabia în mână, alergă pe verandă, zdrăngănindu-şi pintenii. Proprietarul german, în hanorac și șapcă, cu o furcă cu care curățea gunoiul de grajd, a privit afară din hambar. Chipul germanului s-a luminat brusc de îndată ce l-a văzut pe Rostov. A zâmbit vesel și a făcut cu ochiul: „Schon, gut Morgen!” Schon, gut Morgen! [Minunat, bună dimineața!] repetă el, aparent găsindu-și plăcere în a-l saluta pe tânăr.
– Schon fleissig! [Deja la serviciu!] - a spus Rostov cu același zâmbet vesel, frățesc, care nu i-a părăsit fața animată. - Hoch Oestreicher! Hoch Russen! Kaiser Alexander hoch! [Hura austrieci! Ura rușii! Împărat Alexandru, ura!] - s-a întors spre german, repetând cuvintele rostite des de proprietarul german.