A minimum edge coloring of a bipartite graph is a partition of the edges into $\Delta $ matchings, where $\Delta $ is the maximum degree in the graph. Coloring algorithms that run in time $O(\min (m(\log n)^2 ,n^2 \log n))$ are presented. The algorithms rely on an efficient procedure for the special case of $\Delta $ an exact power of two. The coloring algorithms can be used to find maximum cardinality matchings on regular bipartite graphs in the above time bound. An algorithm for coloring multigraphs with large multiplicities is also presented.