\begin{tikzpicture}
  [xscale=1.2,yscale=.5]

  \tikzset{carte/.style={color=blue!50!black}}
  \tikzset{symbole/.style={color=red!50!black}}
  \tikzset{dernier/.style={color=purple!50!black}}
  \tikzset{marqueur/.style={color=green!50!black}}
  \tikzset{generique/.style={color=red,scale=1.5}}
  \tikzset{contourcarte/.style={fill=lightgray!10,rounded corners=2pt}}
  % Contour des cartes
  \foreach \x/\y in {0/-1, 0/1, 2/-2, 2/0, 2/2, 4/-1, 4/1} {
    \begin{scope}[xshift={90*\x}]
      \draw[contourcarte] ({\y-.7}, -.4)
                              -- ({\y-.7}, {5+.4})
                              -- ({\y+.7}, {5+.4})
                              -- ({\y+.7}, -.4)
                              -- cycle;
    \end{scope}
  }

  % Cartes
  \foreach \x/\index in {0/0, 4/{{p-1}}} {
    \begin{scope}[xshift={90*\x}]
      \node[marqueur] at (-1,5) {$t_\index$};
      \node[carte] (bottomleft) at (-1,-1) {$T_{\index,0}$};
      \node[marqueur] at (1,5) {$t_\index$};
      \node[carte] (bottomright) at (1,-1) {$T_{\index,p-1}$};

      \ifnum\x=0{
        \node[symbole] at (-1,0) {$s_{0,0}$};
        \node[symbole] at (1,0) {$s_{0,p-1}$};
        \node[symbole] at (-1,4) {$s_{{p-1},0}$};
        \node[symbole] at (1,4) {$s_{{p-1},p-1}$};
        \node (tzeroright) at (1,3) {};
      }\fi
      \ifnum\x=4{
        \node[symbole] at (-1,0) {$s_{0,0}$};
        \node[symbole] at (1,0) {$s_{0,p-1}$};
        \node[symbole] at (-1,4) {$s_{{p-1},1}$};
        \node[symbole] at (1,4) {$s_{{p-1},0}$};
        \node (tpleft) at (-1,3) {};
      }\fi
      \node at (0,3) {\Large $\dots$};
      \foreach \i/\j in {-1/2, 1/2} {
        \node[symbole] at (\i,\j) {\Large $\vdots$};
      }
      \draw[carte,decorate,decoration={brace,amplitude=10pt,mirror}] (bottomleft.south west) -- (bottomright.south east) node [midway,below=1em] {$T_{\index}$};
    \end{scope}
  }

  \begin{scope}[xshift={90*2}]
    % Cartes T(x,0) à T(x,p-1)
    \node[marqueur] at (-2,5) {$t_x$};
    \node[carte] (bottomleft) at (-2,-1) {$T_{x,0}$};
    \node[marqueur] at (0,5) {$t_x$};
    \node[carte] at (0,-1) {$T_{x,y}$};
    \node[marqueur] at (2,5) {$t_x$};
    \node[carte] (bottomright) at (2,-1) {$T_{x,p-1}$};
    \node[symbole] at (-2,0) {$s_{0,0}$};
    \node[symbole] at (0,0) {$s_{0,y}$};
    \node[symbole] at (2,0) {$s_{0,p-1}$};
    \node[generique] at (0,2) {$s_{z,xz+y}$};
    \node[symbole] at (-2,4) {$s_{{p-1},p-x}$};
    \node[symbole] at (0,4) {$s_{{p-1},p-x+y}$};
    \node[symbole] at (2,4) {$s_{{p-1},p-x-1}$};
    \foreach \i/\j in {-1/2, 1/2} {
      \node at (\i,\j) {\Large $\dots$};
    }
    \foreach \i/\j in {-2/2, 2/2, 0/1, 0/3} {
      \node[symbole] at (\i,\j) {\Large $\vdots$};
    }
    \node (txleft) at (-2,3) {};
    \node (txright) at (2,3) {};
    \draw[carte,decorate,decoration={brace,amplitude=10pt,mirror}] (bottomleft.south west) -- (bottomright.south east) node [midway,below=1em] {$T_x$};
  \end{scope}

  \node at ($.5*(tpleft)+.5*(txright)$) {\Huge $\ldots$};
  \node at ($.5*(tzeroright)+.5*(txleft)$) {\Huge $\ldots$};

  % Cartes S_0 à S_{p-1}
  \begin{scope}[xshift={95*5}]
    \foreach \z in {0, 4, 5} {
      \draw[contourcarte] ({-1-.5}, {\z-.4})
                              -- ({-1-.5}, {\z+.4})
                              -- ({2+.6}, {\z+.4})
                              -- ({2+.6}, {\z-.4})
                              -- cycle;
    }
    \draw[draw=none] (-1,5) node[marqueur]{${t_0}$}
                -- ++(1,0) node[marqueur]{\Large $\dots$}
                -- ++(1,0) node[marqueur]{$t_{p-1}$}
                -- ++(1,0) node[dernier]{$d$}
                -- ++(1,0) node[carte]{$T$};
    \draw[draw=none] (-1,0) node[symbole]{${s_{0,0}}$}
                -- ++(1,0) node[symbole]{\Large $\dots$}
                -- ++(1,0) node[symbole]{$s_{0,p-1}$}
                -- ++(1,0) node[dernier]{$d$}
                -- ++(1,0) node(Szero)[carte]{$S_0$};
    \draw[draw=none] (-1,4) node[symbole]{${s_{p-1,0}}$}
                -- ++(1,0) node[symbole]{\Large $\dots$}
                -- ++(1,0) node[symbole]{$s_{p-1,p-1}$}
                -- ++(1,0) node[dernier]{$d$}
                -- ++(1,0) node(Sp)[carte]{$S_{p-1}$};
    \node at (0.5,2) {\Large $\vdots$};
    \draw[carte,decorate,decoration={brace,amplitude=10pt,mirror}] ($(Szero.center)+(.4,0)$) -- ($(Sp.center)+(.4,0)$) node [midway,right=1em] {$S$};
  \end{scope}
\end{tikzpicture}
