Skip to main content
Log in

Priority Based Error Correction Code (ECC) for the Embedded SRAM Memories in H.264 System

  • Published:
Journal of Signal Processing Systems Aims and scope Submit manuscript

Abstract

With aggressive supply voltage scaling, SRAM bit-cell failures in the embedded memory of the H.264 system result in significant degradation to video quality. Error Correction Coding (ECC) has been widely used in the embedded memories in order to correct these failures, however, the conventional ECC approach does not consider the differences in the importance of the data stored in the memory. This paper presents a priority based ECC (PB-ECC) approach, where the more important higher order bits (HOBs) are protected with higher priority than the less important lower order bits (LOBs) since the human visual system is less sensitive to LOB errors. The mathematical analysis regarding the error correction capability of the PB-ECC scheme and its resulting peak signal-to-noise ratio(PSNR) degradation in H.264 system are also presented to help the designers to determine the bit-allocation of the higher and lower priority segments of the embedded memory. We designed and implemented three PB-ECC cases (Hamming only, BCH only, and Hybrid PB-ECC) using 90 nm CMOS technology. With the supply voltage at 900 mV or below, the experiment results delivers up to 6.0 dB PSNR improvement with a smaller circuit area compared to the conventional ECC approach.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16

Similar content being viewed by others

References

  1. Chen, T.-C., Lian, C.-J., Chen, L.-G. (2006). Hardware architecture design of an H.264/AVC Video Codec. In Proc. of IEEE international symposium on asia and south pacific design automation conference (pp. 750–757).

  2. Chandrakasan, A.P., Sheng, S., Brodersen, R.W. (1992). Low-power digital CMOS design. IEEE Journal of Solid-State Circuits, 27(4), 473–484.

    Article  Google Scholar 

  3. Seevinck, E., List, F.J., Lohstroh, J. (1987). Static-noise margin analysis of MOS SRAM cells. IEEE J. Solid-State Circuits, sc-22(5), 748.

    Article  Google Scholar 

  4. Chang, L., Montoye, R.K., Nakamura, Y., Batson, K.A., Eickemeyer, R.J., Dennard, R.H., Haensch, W., Jamsek, D. (2008). An 8T-SRAM for variability tolerance and low-voltage operation in high-performance caches. IEEE J. Solid-State Circuits, 44(4), 956–963.

    Article  Google Scholar 

  5. Calhoun, B.H., & Chandrakasan, A.P. (2007). A 256-kb 65-nm sub-threshold SRAM design for ultra-low-voltage operation. IEEE Journal of Solid-State Circuits, 42(3), 680–688.

    Article  Google Scholar 

  6. Qin, H., Kumar, A., Ramchandran, K., Rabaey, J., Ishwar, P. (2008). Error-tolerant SRAM design for ultra-low power standby operation. In Proc. IEEE int. symp. quality electron. Design (pp. 30–34).

  7. Kumar, A., Qin, H., Ishwar, P., Rabaey, J., Ramchandran, K. (2007). Fundamental redundancy versus power trade-off in standby SRAM. In Proc. IEEE Int. conf. acoust., speech signal process (pp. 85–88).

  8. Chang, L., Kang, K., Mukhopadhyay, S., Kim, C., Roy, K. (2005). Fast and accyrate estimation of nano-scaled sram read failure probability using critical point sampling. In IEEE Custom integrated circuits conference (Vol. 3, pp. 439–442).

  9. Chien, C., Lin, C., Shih, Y., Chen, H., Huang, C., Yu, C., Chen, C., Cheng, C., Guo, J. (2007). A 252kgate/71mW multi-standard multi-channel video decoder for high definition video applications. In IEEE Int. solid-state circuits conf (Vol. 2, pp. 5–7).

  10. Nii, K., Yabuuchi, M., Tsukamoto, Y., Ohbayashi, S., Imaoka, S., Makino, H., Yamagami, Y., Ishikura, S., Terano, T., Oashi, T., Hashimoto, K., Sebe, A., Okazaki, G., Satomi, K., Akamatsu, H., Shinohara, H. (2008). A 45-nm bulk CMOS embedded SRAM with improved immunity against process and temperature variations. IEEE Journal of Solid-State Circuits, 43, 180–191.

    Article  Google Scholar 

  11. Chen, T., Chien, S., Huang, Y., Tsai, C., Chen, C., Chen, T., Chen, L. (2006). Analysis and architecture design of an HDTV720p 30 frames/s H.264/AVC encoder. IEEE Transactions on Circuits Systems & Video Technology, 16(6), 673–688.

    Article  Google Scholar 

  12. Sullivan, G.J., Topiwala, P., Luthra, A. (2004). The H.264/AVC advanced video coding standard: overview and introduction to the fidelity range extensions. In SPIE Annual conf. apps. of digital image processing XXVII, special session on advances in the new emerging standard H.264/AVC (Vol. 74, p. 454).

  13. Available online:ftp://ftp.tnt.uni-hannover.de/pub/svc/testsequences/.

  14. Slayman, C.W. (2005). Cache and memory error detection, correction, and reduction techniques for terrestrial servers and workstations. IEEE Transactions on Development Matematicas Religion, 5(3), 397–404.

    Article  Google Scholar 

  15. Moon, T.K. (2005). Error correction codes: Mathematical methods and algorithms. Hoboken, NJ: Wiley.

    Book  Google Scholar 

  16. Wei, V.K. (1991). Generalized hamming weights for linear codes. IEEE Transactions on Information Theory, 37, 1412–1418.

    Article  MATH  Google Scholar 

  17. Thoziyoor, S., Muralimanohar, N., Ahn, J.H., Jouppi, N.P. (2008). CACTI 5.1, Tech. Rep. HPL-2008-20, HP Laboratories.

  18. Krasikov, I., & Litsyn, S. (1995). On spectra of BCH codes. IEEE Transactions on Information Theory, 41, 786–788.

    Article  MathSciNet  MATH  Google Scholar 

  19. Joint Video Team (JVT). H.264/AVC Reference software JM 16.0 [Online]. Available: http://iphome.hhi.de/suehring/tml/, 2011.

  20. Astro™ User Guide (2007). Version Z-2007. Synopsys, Mountain View, CA, [Online]. Available: http://www.synopsys.com, 2011.

Download references

Acknowledgment

The authors would like to thank the IC Design Education Center (IDEC) for its software assistance.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jongsun Park.

Additional information

This work is supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education, Science and Technology (2010-0004484).

Appendix A

Appendix A

The \(MSE_{\mathrm {err}}\) in Eq. (13) is derived as follows: In the one luma pixel, the numerical value of the pixel data (Y) and the memory bit-cell failures (F) are expressed as: \(Y=\sum\limits _{i=0}^{7} y_{i} \cdot 2^{i}\) And \(F=\sum\limits _{i=0}^{7} f_{i} \cdot 2^{i}\), respectively.

Using the expected error values due to the memory failures, the \(MSE_{\mathrm {err}}\) can be expressed as:

$$\begin{array}{@{}rcl@{}}MSE_{\mathrm{err}} & = & E\Big[\big\{(Y-F) \cdot C \big\}^{2} \Big] \\ & = & E\left[\left\{\sum\limits_{i=0}^{7} (y_{i}-f_{i}) \cdot 2^{i} \cdot C_{i} \right\}^{2}\right]. \end{array} $$
(20)

where \(C_{i}\) is the distortion ratio of the \(i_{th}\) order of memory bit-cell failures.

Considering the fact that the memory bit-cell failures are independent to each other and the probabilities of the flip directions \((p_{0\rightarrow 1} = p_{1\rightarrow 0} = \frac {1}{2})\)are generally the same, we can change the above equation to:

$$\begin{array}{lll} && E\left[ \left\{ \sum\limits_{i=0}^{7} (y_{i}-f_{i}) \cdot 2^{i} \cdot C_{i} \right\}^{2} \right] \\&&\quad =E\left[ \sum\limits_{i=0}^{7} (y_{i}-f_{i}) \cdot 2^{2i} \cdot C_{i}^{2} \right]\\ &&\quad\quad - E\left[ \sum\limits_{i=0}^{7} \sum\limits_{j \neq i} (y_{i}-f_{i}) (y_{j}-f_{j}) \cdot C_{i} \cdot C_{j} \cdot 2^{i+j}\right]\\ &&\quad=\sum\limits_{i=0}^{7} E[(y_{i}-f_{i})]^{2} \cdot 2^{2i} \cdot C_{i}^{2}\\ &&\quad\quad- \sum\limits_{i=0}^{7} \sum\limits_{j \neq i} E[(y_{i}-f_{i}) (y_{j}-f_{j}) ] \cdot C_{i} \cdot C_{j} \cdot 2^{i+j}. \end{array} $$
(21)

Assuming that each bit in the luma pixel data are independent each other, the second term of the above equation can be written as:

$$\begin{array}{lll} &&\sum\limits_{i=0}^{7} \sum\limits_{j \neq i} E[(y_{i}-f_{i}) (y_{j}-f_{j}) ] \cdot C_{i} \cdot C_{j} \cdot 2^{i+j}\\ &&\quad\;=\sum\limits_{i=0}^{7} \sum\limits_{j \neq i} E[(y_{i}-f_{i})] \cdot E[(y_{j}-f_{j})] \cdot C_{i} \cdot C_{j} \cdot 2^{i+j}.\\ \end{array} $$
(22)

where

$$\begin{array}{lll} && E\big[(y_{j}-f_{j})\big]\\ &&\quad=0 \cdot (1-p_{i})+1\cdot p_{i}\cdot p_{0\rightarrow 1} +(-1)\cdot p_{i}\cdot p_{1\rightarrow 0} =0.\\ &&E\Big[(y_{j}-f_{j})^{2}\Big]\\ &&\quad=0^{2}{}\cdot{}(1{}-{}p_{i})\,+\,1^{2}\cdot p_{i}\cdot p_{0\rightarrow 1}\,+\,(-1)^{2}\cdot p_{i}\cdot p_{1\rightarrow 0} =p_{i}.\\ \end{array} $$
(23)

\(p_{i}\) is the failure probability of a memory bit-cell. Therefore, \(MSE_{\mathrm {err}}\) is expressed as:

$$ MSE_{\mathrm{err}}=\sum\limits_{i=0}^{7} p_{i} \cdot 2^{2i} \cdot C_{i}^{2}. $$
(24)

When the PB-ECC is used, the \(p_{i}\) of the HPP and LPP are equal to \(P_{b_{HPP}} (E,k_{HPP})\) and \(P_{b_{LPP}} (E,k_{LPP})\), respectively. \(MSE_{\mathrm {err}}\) is divided into two parts as:

$$\begin{array}{rll} MSE_{\mathrm{err}}&=&\alpha(h) \cdot P_{b_{HPP}}(E,8h) \,+\,\beta(h) \cdot P_{b_{LPP}}(E,64-8h) \\ \alpha(h)&=&\sum\limits_{i=8-h}^{7} 2^{2i} \cdot C_{i}^{2},\beta(h)\,=\,\sum\limits_{i=0}^{7-h} 2^{2i} \cdot C_{i}^{2}. \end{array} $$
(25)

where, h is the number of bit allocation. \(\alpha (h)\) and \(\beta (h)\) are the sum of the expected numerical square value of the errors in HPP and LPP, respectively.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lee, I., Kwon, J., Park, J. et al. Priority Based Error Correction Code (ECC) for the Embedded SRAM Memories in H.264 System. J Sign Process Syst 73, 123–136 (2013). https://doi.org/10.1007/s11265-013-0736-4

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11265-013-0736-4

Keywords

Navigation