\begin{figure}
  \centering
  \usetikzlibrary{positioning,backgrounds}
  \begin{tikzpicture}[
    image/.style={rectangle,draw,text width=1.3cm,text centered},
    cspace/.style={rectangle,draw,text width=1.3cm, text centered},
    quant/.style={rectangle,draw,text width=0.51cm, text centered, text height=0.0ex, text depth=1.7ex},
    dct/.style={rectangle,draw,text width=0.8cm, text centered, text height=0.0ex, text depth=1.7ex},
    downsampleinvisible/.style={rectangle,text width=1.0cm},
    downsample/.style={rectangle,draw,text width=1.0cm, text centered, text height=0.0ex, text depth=1.7ex},
    encode/.style={rectangle,draw,text width=1.3cm, text centered, text height=0.0ex, text depth=1.7ex},
    line/.style={shorten >=0.1cm, shorten <=0.1cm}]
    \matrix[column sep=5mm] {
      & & \node[downsampleinvisible] (luma) {}; & \node[dct] (lumadct) {DCT}; & \node[quant] (lumaquant) {$Q_\mathsf{\,L}$}; & \node[encode] (lumaenc) {Encode}; & \\
      \node[image] (uncompressed) {Image}; & \node[cspace] (cspace) {Colour space convert}; & \node[downsample] (cbdownsample) {\small{$\downarrow 2 \times 2$}}; & \node[dct] (cbdct) {DCT}; & \node[quant] (cbquant) {$Q_\mathsf{\,C}$}; & \node[encode] (cbenc) {Encode}; & \\
      & & \node[downsample] (crdownsample) {\small{$\downarrow 2 \times 2$}}; & \node[dct] (crdct) {DCT}; & \node[quant] (crquant) {$Q_\mathsf{\,C}$}; &  \node[encode] (crenc) {Encode}; & \\
    };
    \begin{scope}[every path/.style=line, auto]
      \draw[->] (uncompressed.east) to node [near start] {} (cspace.west);

      \draw[-, shorten >=0.0] (cspace.north east) to [bend left=25] node [near end] {\small{$\text{Y}_\text{\hspace{0.5mm}}$}} (luma.west);
      \draw[->] (cspace.east) to node [] {\small{$\text{C}_\text{b}$}} (cbdownsample.west);
      \draw[->] (cspace.south east) to [bend right=25] node [swap, near end] {\small{$\text{C}_\text{r}$}} (crdownsample.west);

      \draw[->, shorten <=0.0cm] (luma.west) to node {} (lumadct.west);
      \draw[->] (cbdownsample.east) to node {} (cbdct.west);
      \draw[->] (crdownsample.east) to node {} (crdct.west);

      \draw[->] (lumadct.east) to node {} (lumaquant.west);
      \draw[->] (cbdct.east) to node {} (cbquant.west);
      \draw[->] (crdct.east) to node {} (crquant.west);

      \draw[->] (lumaquant.east) to node {} (lumaenc.west);
      \draw[->] (cbquant.east) to node {} (cbenc.west);
      \draw[->] (crquant.east) to node {} (crenc.west);
    \end{scope}
  \end{tikzpicture}
\end{figure}

