Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ac-is:teme:tema2 [2022/12/09 21:12]
ionut.pascal [Tema 2 - Hiding secrets]
ac-is:teme:tema2 [2022/12/23 16:50] (current)
ionut.pascal [Tema 2 - Hiding secrets]
Line 3: Line 3:
  
   * Responsabili:​ Ionut P, Ovidiu M (checker)   * Responsabili:​ Ionut P, Ovidiu M (checker)
-  * Deadline soft (fără penalizări):​ **23.12.2021**, ora **23:59** +  * Deadline soft (fără penalizări):​<​del> ​**23.12.2022**</​del> ​ **26.12.2022**, ora **23:59** 
-  * Deadline hard (cu penalizări):​ **28.12.2021**, ora **23:59**+  * Deadline hard (cu penalizări): ​<​del>​**27.12.2022**</​del>  ​**30.12.2022**, ora **23:59**
   * Data publicării:​ **09.12.2022**   * Data publicării:​ **09.12.2022**
-  * Data ultimei actualizări:​ **09.12.2022, ​21:13**+  * Data ultimei actualizări:​ **23.12.2022, ​13:13**
   * Istoric modificări:​   * Istoric modificări:​
     * 09.12.2022     * 09.12.2022
       * publicare enunț temă       * publicare enunț temă
 +    * 11.12.2022
 +      * ''​[23:​0] array [15:​0][15:​0]''​ -> ''​[23:​0] array [3:​0][3:​0]'',​ pentru a reduce riscul de confuzie
 +    * 13.12.2022
 +      * adăugare checker offline
 +      * modificare punctaj task2 (3.5 -> 3.6) și task3 (2.0 -> 1.9)
 +    * 17.12.2022
 +      * **Versiune nouă checker offline/​online - UPDATE your offline checker** - rezolvă problema semnalată [[https://​curs.upb.ro/​2022/​mod/​forum/​discuss.php?​d=2825 | Aici]] referitoare la parcurgerea șirului de caractere
 +    * 23.12.2022 ​
 +      * Prelungire deadline soft și deadline hard
  
 ===== Obiectiv ===== ===== Obiectiv =====
Line 15: Line 24:
  
 Tema are ca scop exersarea noțiunilor Verilog folosite pentru implementarea circuitelor secvențiale complexe, prin: Tema are ca scop exersarea noțiunilor Verilog folosite pentru implementarea circuitelor secvențiale complexe, prin:
-  * implementarea unui automat finit complex, pornind de la un algorim ​dat;+  * implementarea unui automat finit complex, pornind de la un algoritm ​dat;
   * interacțiunea cu o memorie exernă, prin operații de citire/​scriere;​   * interacțiunea cu o memorie exernă, prin operații de citire/​scriere;​
   * interacțiunea cu alte circuite secvențiale,​ prin folosirea semnalelor de control.   * interacțiunea cu alte circuite secvențiale,​ prin folosirea semnalelor de control.
Line 36: Line 45:
   - Se calculează media aritmetică $AVG$ $$ AVG = \frac{\sum_{i=1}^{M \cdot M}\mu_i}{M\cdot M} $$   - Se calculează media aritmetică $AVG$ $$ AVG = \frac{\sum_{i=1}^{M \cdot M}\mu_i}{M\cdot M} $$
   - Se calculează deviația standard $var$  $$ var = \frac{\sum_{i=1}^{M\cdot M}|\mu_i-AVG|}{M\cdot M} $$   - Se calculează deviația standard $var$  $$ var = \frac{\sum_{i=1}^{M\cdot M}|\mu_i-AVG|}{M\cdot M} $$
-  - Se construiește ​un hartă (bitmap 4x4) //aux// după următoarele două reguli:+  - Se construiește ​hartă (bitmap 4x4) //aux// după următoarele două reguli:
       * dacă valoarea pixelului $μ_i < AVG$ atunci $0$       * dacă valoarea pixelului $μ_i < AVG$ atunci $0$
       * altfel $1$       * altfel $1$
Line 50: Line 59:
 <spoiler **Detalierea metodei de integrare a mesajului **> <spoiler **Detalierea metodei de integrare a mesajului **>
 Mesajul ce trebuie secretizat este constituit dintr-un șir de caractere ASCII. Fiecare caracter este codat pe 8 biți. Astfel, în fiecare bloc putem încapsula doar 2 caractere. Mesajul ce trebuie secretizat este constituit dintr-un șir de caractere ASCII. Fiecare caracter este codat pe 8 biți. Astfel, în fiecare bloc putem încapsula doar 2 caractere.
-Inițial șirul de biți se va transforma din baza 2 în baza 3. Fiecare valoare $S_j$ va fi integrată în pixelii blocului, ​exeptând ​prima valoare $L_m$ și $H_m$. Procedura va fi executată după următorul algoritm:+Inițial șirul de biți se va transforma din baza 2 în baza 3. Fiecare valoare $S_j$ va fi integrată în pixelii blocului, ​exceptând ​prima valoare $L_m$ și $H_m$. Procedura va fi executată după următorul algoritm:
 <code c> <code c>
   pentru fiecare pixel compresat p[j] din blocul b[i]   pentru fiecare pixel compresat p[j] din blocul b[i]
Line 94: Line 103:
   * ''​row''​ - selectează un rând din imagine;   * ''​row''​ - selectează un rând din imagine;
   * ''​col''​ - selectează o coloană din imagine;   * ''​col''​ - selectează o coloană din imagine;
-  * ''​we'' ​ - write enable - activează scrierea în imagine la rândul și coloana date);+  * ''​we'' ​ - write enable - activează scrierea în imagine la rândul și coloana date;
   * ''​in'' ​ - valoarea pixelului care va fi scris pe poziția dată;   * ''​in'' ​ - valoarea pixelului care va fi scris pe poziția dată;
   * ''​out''​ - valoarea pixelului care va fi citit de pe pozitia dată.   * ''​out''​ - valoarea pixelului care va fi citit de pe pozitia dată.
Line 140: Line 149:
  
 ==== base2_to_base3 ==== ==== base2_to_base3 ====
-Modul deja implementat,​ responsabil cu executarea ​algoritmul ​de transformare din baza 2 în baza 3.+Modul deja implementat,​ responsabil cu executarea ​algoritmului ​de transformare din baza 2 în baza 3.
  
 Modulul are următoarea interfață:​ Modulul are următoarea interfață:​
Line 166: Line 175:
 ===== Observații ===== ===== Observații =====
  
-  * Operația de citite ​este asincronă, operația de scriere este sincronă; nu se poate executa mai mult de o operație într-un ciclu de ceas.   +  * Operația de citire ​este asincronă, operația de scriere este sincronă; nu se poate executa mai mult de o operație într-un ciclu de ceas.   
-  * Nu este permisă cache-uirea întregii imagini (citirea și salvarea acesteia în cadrul modulului pentru procesare ulterioară). Pentru procesare sunt permise **maxim** 3 blocuri de tip ''​[23:​0] array [15:0][15:​0]'',​ dacă considerați necesar; motivați folosirea lor.+  * Nu este permisă cache-uirea întregii imagini (citirea și salvarea acesteia în cadrul modulului pentru procesare ulterioară). Pentru procesare sunt permise **maxim** 3 blocuri de tip ''​[23:​0] array [3:0][3:​0]'',​ dacă considerați necesar; motivați folosirea lor.
   * Semnalele ''​gray_done'',​ ''​compress_done''​ și ''​encode_done''​ trebuie să mențină valoarea HIGH timp de **un ciclu de ceas** pentru a putea fi luate în considerare de tester. În acest ciclu de ceas nu veți face alte procesări și nu veți începe rezolvarea următorului task.   * Semnalele ''​gray_done'',​ ''​compress_done''​ și ''​encode_done''​ trebuie să mențină valoarea HIGH timp de **un ciclu de ceas** pentru a putea fi luate în considerare de tester. În acest ciclu de ceas nu veți face alte procesări și nu veți începe rezolvarea următorului task.
    
Line 192: Line 201:
   * +10 pct: implementarea corectă ​   * +10 pct: implementarea corectă ​
     * 4.5 pct: implementarea transformării grayscale     * 4.5 pct: implementarea transformării grayscale
-    * 3.pct: implementarea AMBTC +    * 3.pct: implementarea AMBTC 
-    * 2.pct: implementarea codării mesajului+    * 1.pct: implementarea codării mesajului
   * +1 pct: fiecare bug găsit în implementarea de referință - cea din tester - (se acordă primei persoane care-l semnalează); ​   * +1 pct: fiecare bug găsit în implementarea de referință - cea din tester - (se acordă primei persoane care-l semnalează); ​
   * **-1.5pct: folosirea intregii imagini cache-uite pentru fiecare subpunct. (max -4pct dacă imaginea este cache-uită pentru toate subpunctele);​**   * **-1.5pct: folosirea intregii imagini cache-uite pentru fiecare subpunct. (max -4pct dacă imaginea este cache-uită pentru toate subpunctele);​**
Line 212: Line 221:
 ===== Resurse ===== ===== Resurse =====
   * **Schelet** - {{:​ac-is:​teme:​tema2:​tema2_skel.zip| skel}}   * **Schelet** - {{:​ac-is:​teme:​tema2:​tema2_skel.zip| skel}}
-  * **Tester** ​ - {{:​ac-is:​teme:​tema2:​tester_tema2.zip| Tester offline}}+  * **Tester** ​ - {{:​ac-is:​teme:​tema2:​tester_tema2.zip| Tester offline ​- updated 17.12.2022}}
   * **Articol** - {{:​ac-is:​teme:​tema2:​articol.pdf|An AMBTC compression based data hiding scheme using pixel value adjusting strategy}}   * **Articol** - {{:​ac-is:​teme:​tema2:​articol.pdf|An AMBTC compression based data hiding scheme using pixel value adjusting strategy}}
   ​   ​
ac-is/teme/tema2.1670613168.txt.gz · Last modified: 2022/12/09 21:12 by ionut.pascal
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0